From a90d0cf21419309b464d76cc6a007b5c85abd28f Mon Sep 17 00:00:00 2001
From: Chris Allegretta <chrisa@asty.org>
Date: Mon, 10 Feb 2003 02:55:03 +0000
Subject: [PATCH] DB's gotoline fix

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1443 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
---
 ChangeLog |  6 ++++++
 search.c  | 10 +++++++---
 winio.c   |  3 +--
 3 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 73252f70..c5337d62 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -27,10 +27,16 @@ CVS code
 	  (David Benbennick).
   colortoint, parse_colors()
 	- Don't add strings with invalid fg colors at all.
+- search.c:
+  do_gotoline()
+	- Only goto_abort() if we *didnt* abort the command, making
+	  the function seem horribly misnamed ;-) (David Benbennick).
 - winio.c:
   nanogetstr()
 	- Remove unnecessary reset of x since it is now handled
 	  elsewhere (David Lawrence Ramsey).
+  statusq()
+	- Always blank the statusbar on exit (David Benbennick).
 - nano.1, nano.1.html:
 	- Add initialization file comments, change some options from 
 	  bracketed to underlined to emphasize that they are not 
diff --git a/search.c b/search.c
index 5af81656..06dc82c5 100644
--- a/search.c
+++ b/search.c
@@ -776,12 +776,16 @@ void goto_abort(void)
 int do_gotoline(int line, int save_pos)
 {
     if (line <= 0) {		/* Ask for it */
-	if (statusq(0, goto_list, (line ? answer : ""),
+	int st = statusq(FALSE, goto_list, line != 0 ? answer : "",
 #ifndef NANO_SMALL
-	    0,
+			NULL,
 #endif
-	    _("Enter line number"))) {
+			_("Enter line number"));
+
+	/* Cancel, or Enter with blank string. */
+	if (st == -1 || st == -2)
 	    statusbar(_("Aborted"));
+	if (st != 0) {
 	    goto_abort();
 	    return 0;
 	}
diff --git a/winio.c b/winio.c
index bc3062fc..4529a92d 100644
--- a/winio.c
+++ b/winio.c
@@ -1197,9 +1197,8 @@ int statusq(int tabs, const shortcut *s, const char *def,
 	ret = -1;
 	resetpos = 1;
 	break;
-    default:
-	blank_statusbar();
     }
+    blank_statusbar();
 
 #ifdef DEBUG
     fprintf(stderr, _("I got \"%s\"\n"), answer);
-- 
GitLab