From e642197ff7200fb928e99eed09a062d4b674b37a Mon Sep 17 00:00:00 2001 From: Chris Allegretta Date: Wed, 18 Jul 2001 01:03:36 +0000 Subject: [PATCH] new_file() and close_open_file() fixes by DLR git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@735 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- ChangeLog | 8 ++++++-- files.c | 19 +++++++++++++++---- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index f67198a6..2cc1ff34 100644 --- 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 f35e69ae..f5bef069 100644 --- 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); } -- 2.39.5