From 9a145d906f2fe2bcc5bc0274bf96dcf29a3ac386 Mon Sep 17 00:00:00 2001
From: David Lawrence Ramsey <pooka109@gmail.com>
Date: Thu, 13 Jul 2006 03:06:36 +0000
Subject: [PATCH] in do_insertfile(), if we're in view mode, as we can be if
 multibuffer mode is on, don't mark the file as modified (and remove the code
 that does this in execute_command()); also, if we execute a command in a new
 buffer, move back to the beginning of the first line of the buffer
 afterwards, for consistency

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3785 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
---
 ChangeLog   | 10 ++++++++++
 src/files.c | 18 +++++++++++++++---
 src/text.c  |  5 -----
 3 files changed, 25 insertions(+), 8 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index a47b8f65..23020d65 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -77,6 +77,12 @@ CVS code -
 	  string.  Also, return the stripped path instead of modifying
 	  path. (DLR)
 - files.c:
+  do_insertfile()
+	- If we're in view mode, as we can be if multibuffer mode is on,
+	  don't mark the file as modified. (DLR)
+	- If we execute a command in a new buffer, move back to the
+	  beginning of the first line of the buffer afterwards, for
+	  consistency. (DLR)
   get_full_path()
 	- Don't return NULL when the current directory doesn't exist, as
 	  we can still recover from that. (DLR, found by Mike Frysinger)
@@ -93,6 +99,10 @@ CVS code -
 - nano.h:
 	- Remove the manual disabling of color support if regex.h isn't
 	  found, as configure.ac now handles that. (DLR)
+- text.c:
+  execute_command()
+	- Remove the marking of the file as modified, as do_insertfile()
+	  handles that. (DLR)
 - winio.c:
   display_string()
 	- Properly handle buf[start_index]'s being a null terminator.
diff --git a/src/files.c b/src/files.c
index 34ab942d..cf4234c9 100644
--- a/src/files.c
+++ b/src/files.c
@@ -811,8 +811,18 @@ void do_insertfile(
 
 		/* Save the command's output in the current buffer. */
 		execute_command(answer);
-	    } else {
+
+#ifdef ENABLE_MULTIBUFFER
+		if (ISSET(MULTIBUFFER)) {
+		    /* Move back to the beginning of the first line of
+		     * the buffer. */
+		    openfile->current = openfile->fileage;
+		    openfile->current_x = 0;
+		    openfile->placewewant = 0;
+		}
 #endif
+	    } else {
+#endif /* !NANO_TINY */
 		/* Make sure the path to the file specified in answer is
 		 * tilde-expanded. */
 		answer = mallocstrassn(answer,
@@ -861,8 +871,10 @@ void do_insertfile(
 		/* Restore the old place we want. */
 		openfile->placewewant = pww_save;
 
-		/* Mark the file as modified. */
-		set_modified();
+		/* Mark the file as modified, unless we're here in view
+		 * mode, which we can be if multibuffer mode is on. */
+		if (!ISSET(VIEW_MODE))
+		    set_modified();
 
 		/* Update the screen. */
 		edit_refresh();
diff --git a/src/text.c b/src/text.c
index 4e3f26e0..88b39b05 100644
--- a/src/text.c
+++ b/src/text.c
@@ -497,11 +497,6 @@ bool execute_command(const char *command)
 
     read_file(f, "stdin");
 
-    /* If multibuffer mode is on, we could be here in view mode.  If so,
-     * don't set the modification flag. */
-    if (!ISSET(VIEW_MODE))
-	set_modified();
-
     if (wait(NULL) == -1)
 	nperror("wait");
 
-- 
GitLab