From: Arun Prakash Jana <engineerarun@gmail.com>
Date: Fri, 8 Nov 2019 13:45:53 +0000 (+0530)
Subject: Incorporate PR #368
X-Git-Tag: v2.8~100
X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=53a2e4c56058db01dbe7bcbaeb37a9352fc73959;p=nnn.git

Incorporate PR #368
---

diff --git a/src/nnn.c b/src/nnn.c
index 9a2f05e3..0fc42f43 100644
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -3424,7 +3424,7 @@ static bool run_selected_plugin(char **path, const char *file, char *newpath, ch
 	if (len > 1) {
 		int ctx = g_buf[0] - '0';
 
-		if (ctx == 0) {
+		if (ctx == 0 || ctx == cfg.curctx + 1) {
 			xstrlcpy(*lastdir, *path, PATH_MAX);
 			xstrlcpy(*path, g_buf + 1, PATH_MAX);
 		} else if (ctx >= 1 && ctx <= CTX_MAX) {
@@ -4966,18 +4966,20 @@ nochange:
 					if (tmp[0] == '_' && tmp[1]) {
 						xstrlcpy(newpath, ++tmp, PATH_MAX);
 						flag = F_CLI | F_CONFIRM;
-						tmp = NULL;
+						spawn(newpath, (ndents ? dents[cur].name : NULL),
+						      NULL, path, flag);
 					} else {
-						mkpath(plugindir, tmp, newpath);
-						tmp = path;
-					}
+						xstrlcpy(rundir, path, PATH_MAX);
+						xstrlcpy(path, plugindir, PATH_MAX);
+						if (!run_selected_plugin(&path, tmp, newpath, rundir,
+								(ndents ? dents[cur].name : NULL),
+								&lastname, &lastdir))
+							goto nochange;
 
-					spawn(newpath, (ndents ? dents[cur].name : NULL),
-					      tmp, path, flag);
+					}
 
-					if (cfg.filtermode)
-						presel = FILTER;
-					goto nochange;
+					setdirwatch();
+					goto begin;
 				}
 
 				cfg.runplugin ^= 1;