From e3739090376cece1aad1e7c21fce9d4e61774fc7 Mon Sep 17 00:00:00 2001
From: Chris Allegretta <chrisa@asty.org>
Date: Fri, 29 Mar 2002 15:06:05 +0000
Subject: [PATCH] - files.c:do_insertfile() - Handle cancel from ExtCmd
 properly (David Benbennick)

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

diff --git a/ChangeLog b/ChangeLog
index bce56a36..021d7fac 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -13,6 +13,8 @@ CVS code -
 	- Stat full_path, not path (Steven Kneizys).
   open_pipe()
 	- I18nize the pipe error (DLR).
+  do_insertfile()
+	- Handle cancel from ExtCmd properly (David Benbennick).
   read_file()
 	- Abort if we read a file of 0 lines (num_lines == 0), fixes BUG #70.
 	- Reverse tests to stop segfault on editing a new file of 0 
diff --git a/files.c b/files.c
index b94838da..0df7b24d 100644
--- a/files.c
+++ b/files.c
@@ -472,6 +472,19 @@ int do_insertfile(int loading_file)
 	}
 #endif
 
+#ifndef NANO_SMALL
+	if (i == NANO_EXTCMD_KEY) {
+	    int ts;
+	    ts = statusq(1, extcmd_list, "", _("Command to execute "));
+	    if (ts == -1  || answer == NULL || !strcmp(answer,"")) {
+		statusbar(_("Cancelled"));
+		UNSET(KEEP_CUTBUFFER);
+		display_main_list();
+		return 0;
+	    }
+	}
+#endif
+
 #ifdef ENABLE_MULTIBUFFER
 	if (loading_file) {
 
@@ -485,16 +498,7 @@ int do_insertfile(int loading_file)
 
 #ifndef NANO_SMALL
 	if (i == NANO_EXTCMD_KEY) {
-	    i = statusq(1, extcmd_list, "", _("Command to execute "));
-	    if (i == -1) {
-		statusbar(_("Cancelled"));
-		UNSET(KEEP_CUTBUFFER);
-		display_main_list();
-		return 0;
-	    }
-	    if (answer != NULL) {
-		i = open_pipe(answer);
-	    }
+	    i = open_pipe(answer);
 	}
 	else 
 #endif /* NANO_SMALL */
-- 
GitLab