From 907616a0580106e9925f49ae59d9a7f5a1fd136b Mon Sep 17 00:00:00 2001
From: Arun Prakash Jana <engineerarun@gmail.com>
Date: Wed, 12 May 2021 10:07:29 +0530
Subject: [PATCH] Fix #998: remove ^Space keybind

netbsd-curses sends a NULL (key value 0) following the KEY_RESIZE.
The keybind ^Space also issues a 0. It seems even the key ^@ sends
the same. Dropping this ambiguous keybind in favour of alternative
key m (more appropriate for 'm'ark anyway). Keys with value 0 will
now be ignored in the filter function.
---
 src/nnn.c | 8 +++-----
 src/nnn.h | 1 -
 2 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/src/nnn.c b/src/nnn.c
index 1cdc20d8..a8c8a6ca 100644
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -2935,6 +2935,7 @@ static int filterentries(char *path, char *lastname)
 
 		switch (*ch) {
 #ifdef KEY_RESIZE
+		case 0: // fallthrough
 		case KEY_RESIZE:
 			clearoldprompt();
 			redraw(path);
@@ -3002,11 +3003,8 @@ static int filterentries(char *path, char *lastname)
 			break;
 
 		/* Handle all control chars in main loop */
-		if (*ch < ASCII_MAX && keyname(*ch)[0] == '^' && *ch != '^') {
-			if (keyname(*ch)[1] == '@')
-				*ch = 'm';
+		if (*ch < ASCII_MAX && keyname(*ch)[0] == '^' && *ch != '^')
 			goto end;
-		}
 
 		if (len == 1) {
 			if (*ch == '?') /* Help and config key, '?' is an invalid regex */
@@ -4590,7 +4588,7 @@ static void show_help(const char *path)
 		 "b^R  Rename/dup%-14cr  Batch rename\n"
 		  "cz  Archive%-17ce  Edit file\n"
 		  "c*  Toggle exe%-14c>  Export list\n"
-	   "5Space ^J  (Un)select%-7cm ^Space  Mark range/clear sel\n"
+	   "5Space ^J  (Un)select%-12cm-m  Mark range/clear sel\n"
 	          "ca  Select all%-14cA  Invert sel\n"
 	       "9p ^P  Copy sel here%-8cw ^W  Cp/mv sel as\n"
 	       "9v ^V  Move sel here%-11cE  Edit sel\n"
diff --git a/src/nnn.h b/src/nnn.h
index 1e1e3dd9..95d4fc34 100644
--- a/src/nnn.h
+++ b/src/nnn.h
@@ -213,7 +213,6 @@ static struct key bindings[] = {
 	{ ' ',            SEL_SEL },
 	/* Toggle select multiple files */
 	{ 'm',            SEL_SELMUL },
-	{ CONTROL(' '),   SEL_SELMUL },
 	/* Select all files in current dir */
 	{ 'a',            SEL_SELALL },
 	/* Invert selection in current dir */
-- 
2.51.0