From: Arun Prakash Jana <engineerarun@gmail.com>
Date: Sun, 29 Mar 2020 08:06:07 +0000 (+0530)
Subject: No re-filter on MSGWAIT
X-Git-Tag: v3.1~51
X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=e9ff65a7b522d492d22eeb969a828fcae872eaf1;p=nnn.git

No re-filter on MSGWAIT
---

diff --git a/src/.clang-tidy b/src/.clang-tidy
index a9606bd7..f94a365f 100644
--- a/src/.clang-tidy
+++ b/src/.clang-tidy
@@ -11,5 +11,5 @@ CheckOptions:
   - key:             fuchsia-restrict-system-includes.Includes
     value:           '*,-stdint.h,-stdbool.h'
   - key:             readability-function-size.StatementThreshold
-    value:           '905'
+    value:           '900'
 ...
diff --git a/src/nnn.c b/src/nnn.c
index 53951b2d..23383d2e 100644
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -2310,8 +2310,8 @@ static int nextsel(int presel)
 		//DPRINTF_D(c);
 		//DPRINTF_S(keyname(c));
 
-		if (c == ERR && presel == MSGWAIT)
-			c = (cfg.filtermode || filterset()) ? FILTER : CONTROL('L');
+		if (c == ERR)
+			c = 0;
 		else if (c == FILTER || c == CONTROL('L'))
 			/* Clear previous filter when manually starting */
 			clearfilter();
@@ -5225,8 +5225,11 @@ nochange:
 		}
 
 		sel = nextsel(presel);
-		if (presel)
+		if (presel) {
+			if (presel == MSGWAIT)
+				statusbar(path);
 			presel = 0;
+		}
 
 		switch (sel) {
 #ifndef NOMOUSE
@@ -5897,20 +5900,17 @@ nochange:
 					mkpath(tmp, dents[cur].name, newpath);
 					xrm(newpath);
 
-					if (cfg.filtermode || filterset())
-						presel = FILTER;
+					if (access(newpath, F_OK) == 0) /* File not removed */
+						continue;
 
-					if (access(newpath, F_OK) == 0) { /* File not removed */
-						copycurname();
-						if (!cfg.filtermode)
-							statusbar(path);
-						goto nochange;
-					} else if (ndents) {
+					if (ndents) {
 						cur += (cur != (ndents - 1)) ? 1 : -1;
 						copycurname();
 					} else
 						lastname[0] = '\0';
 
+					if (cfg.filtermode || filterset())
+						presel = FILTER;
 					goto begin;
 				}
 			}
@@ -6028,12 +6028,9 @@ nochange:
 				if (access(newpath, F_OK) == 0) { /* File created */
 					xstrlcpy(lastname, tmp, NAME_MAX + 1);
 					clearfilter(); /* Archive name may not match */
-				} else {
-					if (cfg.filtermode)
-						presel = FILTER;
-					copycurname();
+					goto begin;
 				}
-				goto begin;
+				continue;
 			case SEL_OPENWITH:
 				/* Confirm if app is CLI or GUI */
 				r = get_input(messages[MSG_CLI_MODE]);
@@ -6219,12 +6216,8 @@ nochange:
 				break;
 			case SEL_LAUNCH:
 				launch_app(path, newpath);
-
-				if (cfg.filtermode)
-					presel = FILTER;
-				if (ndents)
-					copycurname();
-				goto nochange;
+				r = FALSE;
+				break;
 			default: /* SEL_RUNCMD */
 				r = TRUE;
 #ifndef NORL