From b49daec3f2b11875c7822008345411e82953cdb7 Mon Sep 17 00:00:00 2001
From: David Lawrence Ramsey <pooka109@gmail.com>
Date: Tue, 5 Oct 2004 02:46:24 +0000
Subject: [PATCH] in do_insertfile(), if file browsing succeeds, copy the
 filename we browsed to into ans, put back Enter, and show the prompt one last
 time so that it's exited properly and the cursor position at the statusbar is
 reset

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

diff --git a/ChangeLog b/ChangeLog
index c9719a9a..e9f2531d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -76,6 +76,10 @@ CVS code -
 	- Simplify by reusing variables whereever possible, and add a
 	  parameter execute to indicate whether or not to be in "Execute
 	  Command" mode. (DLR)
+	- If file browsing succeeds, copy the filename we browsed to
+	  into ans, put back Enter, and show the prompt one last time so
+	  that it's exited properly and the cursor position at the
+	  statusbar is reset. (DLR)
   open_prevfile(), open_nextfile()
 	- Translate the "New Buffer" string when displaying "Switched
 	  to" messages on the statusbar. (DLR)
diff --git a/src/files.c b/src/files.c
index d2402913..8b55a639 100644
--- a/src/files.c
+++ b/src/files.c
@@ -558,10 +558,13 @@ void do_insertfile(
 	if (i == NANO_TOFILES_KEY) {
 	    char *tmp = do_browse_from(answer);
 
-	    if (tmp == NULL)
-		goto start_again;
-	    free(answer);
-	    answer = tmp;
+	    if (tmp != NULL) {
+		free(answer);
+		answer = tmp;
+		ans = mallocstrcpy(ans, answer);
+		unget_kbinput(NANO_ENTER_KEY, FALSE);
+	    }
+	    goto start_again;
 	}
 #endif
 
-- 
GitLab