]> git.wh0rd.org Git - nano.git/commitdiff
2014-07-11 Chris Allegretta <chrisa@asty.org>
authorChris Allegretta <chrisa@asty.org>
Fri, 11 Jul 2014 11:16:15 +0000 (11:16 +0000)
committerChris Allegretta <chrisa@asty.org>
Fri, 11 Jul 2014 11:16:15 +0000 (11:16 +0000)
        * 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

ChangeLog
src/files.c

index 14f1b99be486f87a2fbd5a57109a9a1ef31d930b..53b9b8830ce242dc99fdfd3d6ceaf47478353c2c 100644 (file)
--- 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
index 11a5051d539bab0f56b079b342e10a09fd2fab6a..6d8c3062f3416604644b4481a73ddb335a0ec7c6 100644 (file)
@@ -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);