diff --git a/ChangeLog b/ChangeLog index d79e0a07f1f573163ee608249d2c1838ed69703a..2e4fe494eb1ad2f7af9dfbcef01aac71b750c2ce 100644 --- a/ChangeLog +++ b/ChangeLog @@ -72,7 +72,7 @@ CVS code - only called here anyway. (David Benbennick) - Fix the code to free all open file buffers to work properly with the previous overhaul of the multibuffer code instead of - going into an infinite loop. (DLR) + going into an infinite loop. (David Benbennick) - Add additional checks for variables' not being NULL before we try to free them, to avoid assertion failures. (DLR) - nano.c: diff --git a/src/global.c b/src/global.c index 5c8cd08c0bbf16e61d074103b0fded7527a1ea33..0ce8b6628d59d6a61b8672cff5b9df619f7dfb62 100644 --- a/src/global.c +++ b/src/global.c @@ -1208,6 +1208,7 @@ void thanks_for_all_the_fish(void) free_shortcutage(&gotodir_list); #endif #ifndef NANO_SMALL + /* Free the memory associated with each toggle. */ while (toggles != NULL) { toggle *t = toggles; @@ -1217,8 +1218,13 @@ void thanks_for_all_the_fish(void) #endif #ifdef ENABLE_MULTIBUFFER /* Free the memory associated with each open file buffer. */ - if (open_files != NULL) + if (open_files != NULL) { + /* Make sure open_files->fileage is up to date, in case we've + * cut the top line of the file. */ + open_files->fileage = fileage; + free_openfilestruct(open_files); + } #else if (fileage != NULL) free_filestruct(fileage); @@ -1252,7 +1258,7 @@ void thanks_for_all_the_fish(void) } #endif /* ENABLE_COLOR */ #ifndef NANO_SMALL - /* Free the history lists. */ + /* Free the search and replace history lists. */ if (searchage != NULL) free_filestruct(searchage); if (replaceage != NULL)