From 40e4acf55e57e2fa263c3b9b84771216863f4c29 Mon Sep 17 00:00:00 2001
From: David Lawrence Ramsey <pooka109@gmail.com>
Date: Thu, 26 May 2005 06:09:07 +0000
Subject: [PATCH] port over DB's (better) equivalent of the last fix, and tweak
 a few comments

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2550 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
---
 ChangeLog    |  2 +-
 src/global.c | 10 ++++++++--
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index d79e0a07..2e4fe494 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 5c8cd08c..0ce8b662 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)
-- 
GitLab