commit 733ca94f8e3ce493435d7fc08af1e85a83beba79
parent a9c3bbf8e0e2c2bcb45692c9368938039685057b
Author: Chris Allegretta <chrisa@asty.org>
Date: Fri, 11 Jul 2014 11:16:15 +0000
2014-07-11 Chris Allegretta <chrisa@asty.org>
* src/files.c (do_lockfile, open_file): If locking fails,
allow the lock failure message to be preserved AND
preserve the filename passed on the cmdline. Fixes
Savannah bug #42668.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5059 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
Diffstat:
2 files changed, 22 insertions(+), 10 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -1,8 +1,14 @@
+2014-07-11 Chris Allegretta <chrisa@asty.org>
+ * src/files.c (do_lockfile, open_file): If locking fails,
+ allow the lock failure message to be preserved AND
+ preserve the filename passed on the cmdline. Fixes
+ Savannah bug #42668.
+
2014-07-02 Chris Allegretta <chrisa@asty.org>
* src/files.c (do_lockfile): Check whether the directory
- of the file we're trying to lock exists, and make the
- resulting error message more intuitive. Fixes
- Savannah bug #42639 reported by Benno Schulenberg.
+ of the file we're trying to lock exists, and make the
+ resulting error message more intuitive. Fixes
+ Savannah bug #42639 reported by Benno Schulenberg.
2014-07-02 Mark Majeres <mark@engine12.com>
* src/text.c (undo_cut, redo_cut, update_undo): Handle the
diff --git a/src/files.c b/src/files.c
@@ -301,7 +301,7 @@ int do_lockfile(const char *filename)
if (stat(lockfiledir, &fileinfo) == -1) {
statusbar(_("Error writing lock file: Directory \'%s\' doesn't exist"),
lockfiledir);
- return -1;
+ return 0;
}
}
@@ -891,7 +891,7 @@ void read_file(FILE *f, int fd, const char *filename, bool undoable, bool checkw
int open_file(const char *filename, bool newfie, FILE **f)
{
struct stat fileinfo, fileinfo2;
- int fd;
+ int fd, quiet = 0;
char *full_filename;
assert(filename != NULL && f != NULL);
@@ -907,22 +907,28 @@ int open_file(const char *filename, bool newfie, FILE **f)
#ifndef NANO_TINY
- if (ISSET(LOCKING))
- if (do_lockfile(full_filename) < 0)
- return -1;
+ if (ISSET(LOCKING)) {
+ int lockstatus = do_lockfile(full_filename);
+ if (lockstatus < 0)
+ return -1;
+ else if (lockstatus == 0)
+ quiet = 1;
+ }
#endif
if (stat(full_filename, &fileinfo) == -1) {
/* Well, maybe we can open the file even if the OS says it's
* not there. */
if ((fd = open(filename, O_RDONLY)) != -1) {
- statusbar(_("Reading File"));
+ if (!quiet)
+ statusbar(_("Reading File"));
free(full_filename);
return 0;
}
if (newfie) {
- statusbar(_("New File"));
+ if (!quiet)
+ statusbar(_("New File"));
return -2;
}
statusbar(_("\"%s\" not found"), filename);