From 33266033414f1a6adc092a6c4088cd7610ba3905 Mon Sep 17 00:00:00 2001
From: David Lawrence Ramsey <pooka109@gmail.com>
Date: Thu, 9 Feb 2006 21:43:14 +0000
Subject: [PATCH] in get_prompt_string(), redraw the prompt and set finished to
 FALSE when NANO_HELP_KEY is pressed, so that we don't leave the prompt, enter
 the help browser, and restart the prompt after leaving it; this will properly
 preserve the cursor position after doing the last of these

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

diff --git a/ChangeLog b/ChangeLog
index 6d9d5708..ff400295 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -43,6 +43,11 @@ CVS code -
   get_prompt_string()
 	- Use a do/while loop instead of a while loop, for consistency.
 	  (DLR)
+	- Redraw the prompt and set finished to FALSE when NANO_HELP_KEY
+	  is pressed, so that we don't leave the prompt, enter the help
+	  browser, and restart the prompt after leaving it.  This will
+	  properly preserve the cursor position after doing the last of
+	  these. (DLR)
 - utils.c:
   ngetdelim()
 	- Do sanity checks manually again instead of in an assert, and
diff --git a/src/prompt.c b/src/prompt.c
index e31da893..61575d3d 100644
--- a/src/prompt.c
+++ b/src/prompt.c
@@ -1047,6 +1047,17 @@ int get_prompt_string(bool allow_tabs,
 		}
 		break;
 #endif /* !NANO_TINY */
+#ifndef DISABLE_HELP
+	    case NANO_HELP_KEY:
+		update_statusbar_line(answer, statusbar_x);
+
+		/* This key has a shortcut list entry when it's used to
+		 * to go to the help browser, which means that finished
+		 * has been set to TRUE.  Set it back to FALSE here, so
+		 * that we aren't kicked out of the statusbar prompt. */
+		finished = FALSE;
+		break;
+#endif /* !DISABLE_HELP */
 	}
 
 	/* If we have a shortcut with an associated function, break out
-- 
GitLab