From 99a649ddf6ff09bc24bd902917a4dc6c258d482c Mon Sep 17 00:00:00 2001
From: Benno Schulenberg <bensberg@justemail.net>
Date: Mon, 16 Jun 2014 12:30:35 +0000
Subject: [PATCH] Avoiding an "Unknown Command" on every cursor-positioning
 mouse click.

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

diff --git a/ChangeLog b/ChangeLog
index f1ce1a39..37c8da59 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,9 @@
 	* configure.ac: For the sake of statically linked systems, make sure
 	the compiler also links against libz, which is used by libmagic.
 	This fixes Savannah bug #38378, reported by Alan Hourihane.
+	* src/nano.c (do_mouse, do_input): Don't bother returning zero when
+	the cursor moved, just reset the cutbuffer directly.  This avoids an
+	"Unknown Command" message on every cursor-positioning mouse click.
 
 2014-06-14  Mark Majeres  <mark@engine12.com>
 	* src/nano.h, src/text.c (undo_cut, update_undo): When undoing a
diff --git a/src/nano.c b/src/nano.c
index 84de5fe1..50de0adc 100644
--- a/src/nano.c
+++ b/src/nano.c
@@ -1584,14 +1584,12 @@ int do_input(bool *meta_key, bool *func_key, bool allow_funcs)
 #ifndef DISABLE_MOUSE
     if (*func_key && input == KEY_MOUSE) {
 	/* We received a mouse click. */
-	int result = do_mouse();
-
-	if (result == 1)
+	if (do_mouse() == 1)
 	    /* The click was on a shortcut -- read in the character
 	     * that it was converted into. */
 	    input = get_kbinput(edit, meta_key, func_key);
-	else if (result != 0)
-	    /* The click was invalid -- get out. */
+	else
+	    /* The click was invalid or has been handled -- get out. */
 	    return ERR;
     }
 #endif
@@ -1810,15 +1808,15 @@ int do_mouse(void)
 	 * the line. */
 	if (sameline && openfile->current_x == current_x_save)
 	    do_mark();
+	else
 #endif
+	    /* The cursor moved; clean the cutbuffer on the next cut. */
+	    cutbuffer_reset();
 
 	edit_redraw(current_save, pww_save);
-
-	/* The click influenced the cursor. */
-	return 0;
     }
 
-    /* The click was elsewhere, ignore it. */
+    /* No more handling is needed. */
     return 2;
 }
 #endif /* !DISABLE_MOUSE */
-- 
GitLab