]> git.wh0rd.org Git - nano.git/commitdiff
new_file() and close_open_file() fixes by DLR
authorChris Allegretta <chrisa@asty.org>
Wed, 18 Jul 2001 01:03:36 +0000 (01:03 +0000)
committerChris Allegretta <chrisa@asty.org>
Wed, 18 Jul 2001 01:03:36 +0000 (01:03 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@735 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
files.c

index f67198a639b411a1be927d17e8e45a2c9399c01e..2cc1ff3485d0281974236554cfefa114be362624 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,8 +3,12 @@ CVS code -
   main()
        - Change the getop option to 'F' (David Lawrence Ramsey)
 - files.c:
-  do_writeout()
-       - Check for open_files == NULL before using it (Ryan Krebs)
+  new_file()
+       - Do add_open_files if there aren't any open yet (David Lawrence 
+         Ramsey).
+  close_open_file()
+       - Try to open the next file first, then the previous one 
+         (David Lawrence Ramsey).
 - global.c:
   shortcut_init()
        - Rewrote the whereis and replace lists to put CANCEL at the end
diff --git a/files.c b/files.c
index f35e69ae176aeeb11108d13f6e2a76053266d8b5..f5bef06910ca8ea6ecc18e3100d19bb78c308633 100644 (file)
--- a/files.c
+++ b/files.c
@@ -74,6 +74,17 @@ void new_file(void)
     editbot = fileage;
     current = fileage;
     totlines = 1;
+
+#ifdef ENABLE_MULTIBUFFER
+    /* if there aren't any entries in open_files, create the entry for
+       this new file, and, of course, don't bother checking for
+       duplicates; without this, if nano is started without a filename on
+       the command line, a new file with no name will be created, but it
+       will be given no open_files entry, leading to problems later on */
+    if (!open_files)
+       add_open_file(0, 0);
+#endif
+
     UNSET(VIEW_MODE);
 }
 
@@ -730,7 +741,7 @@ int open_nextfile(int closing_file)
 
 /*
  * Delete an entry from the open_files filestruct.  After deletion of an
- * entry, the previous or next entry is opened, whichever is found first.
+ * entry, the next or previous entry is opened, whichever is found first.
  * Return 0 on success or 1 on error.
  */
 int close_open_file(void)
@@ -741,8 +752,8 @@ int close_open_file(void)
        return 1;
 
     tmp = open_files;
-    if (open_prevfile(1)) {
-       if (open_nextfile(1))
+    if (open_nextfile(1)) {
+       if (open_prevfile(1))
            return 1;
     }
 
@@ -1168,7 +1179,7 @@ int do_writeout(char *path, int exiting, int append)
                   update the filename and full path stored in the
                   current entry, and then update the current entry,
                   checking for duplicate entries */
-               if (open_files != NULL && strcmp(open_files->data, filename)) {
+               if (strcmp(open_files->data, filename)) {
                    open_file_change_name();
                    add_open_file(1, 1);
                }