From: Arun Prakash Jana <engineerarun@gmail.com>
Date: Wed, 13 Nov 2019 21:25:05 +0000 (+0530)
Subject: Refactor plugin handling
X-Git-Tag: v2.8~94
X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=3c28d1f1d7fac7c4d8764cfce0749ec22dbbbaa3;p=nnn.git

Refactor plugin handling
---

diff --git a/src/.clang-tidy b/src/.clang-tidy
index a2815f06..ca009226 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:           '950'
+    value:           '900'
 ...
diff --git a/src/nnn.c b/src/nnn.c
index 61963c12..99b216a7 100644
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -4956,8 +4956,6 @@ nochange:
 				}
 
 				if (sel == SEL_PLUGKEY) {
-					uchar flag = F_NORMAL;
-
 					r = get_input("");
 					tmp = get_kv_val(plug, NULL, r, PLUGIN_MAX, FALSE);
 					if (!tmp)
@@ -4965,9 +4963,8 @@ nochange:
 
 					if (tmp[0] == '_' && tmp[1]) {
 						xstrlcpy(newpath, ++tmp, PATH_MAX);
-						flag = F_CLI | F_CONFIRM;
 						spawn(newpath, (ndents ? dents[cur].name : NULL),
-						      NULL, path, flag);
+						      NULL, path, F_CLI | F_CONFIRM);
 					} else {
 						xstrlcpy(rundir, path, PATH_MAX);
 						xstrlcpy(path, plugindir, PATH_MAX);
@@ -4978,33 +4975,30 @@ nochange:
 							goto nochange;
 
 					}
-
-					setdirwatch();
-					goto begin;
-				}
-
-				cfg.runplugin ^= 1;
-				if (!cfg.runplugin && rundir[0]) {
-					/*
-					 * If toggled, and still in the plugin dir,
-					 * switch to original directory
-					 */
-					if (strcmp(path, plugindir) == 0) {
-						xstrlcpy(path, rundir, PATH_MAX);
-						xstrlcpy(lastname, runfile, NAME_MAX);
-						rundir[0] = runfile[0] = '\0';
-						setdirwatch();
-						goto begin;
+				} else {
+					cfg.runplugin ^= 1;
+					if (!cfg.runplugin && rundir[0]) {
+						/*
+						 * If toggled, and still in the plugin dir,
+						 * switch to original directory
+						 */
+						if (strcmp(path, plugindir) == 0) {
+							xstrlcpy(path, rundir, PATH_MAX);
+							xstrlcpy(lastname, runfile, NAME_MAX);
+							rundir[0] = runfile[0] = '\0';
+							setdirwatch();
+							goto begin;
+						}
+						break;
 					}
-					break;
-				}
 
-				xstrlcpy(rundir, path, PATH_MAX);
-				xstrlcpy(path, plugindir, PATH_MAX);
-				if (ndents)
-					xstrlcpy(runfile, dents[cur].name, NAME_MAX);
-				cfg.runctx = cfg.curctx;
-				lastname[0] = '\0';
+					xstrlcpy(rundir, path, PATH_MAX);
+					xstrlcpy(path, plugindir, PATH_MAX);
+					if (ndents)
+						xstrlcpy(runfile, dents[cur].name, NAME_MAX);
+					cfg.runctx = cfg.curctx;
+					lastname[0] = '\0';
+				}
 				setdirwatch();
 				goto begin;
 			case SEL_LAUNCH: