From 53a2e4c56058db01dbe7bcbaeb37a9352fc73959 Mon Sep 17 00:00:00 2001 From: Arun Prakash Jana Date: Fri, 8 Nov 2019 19:15:53 +0530 Subject: [PATCH] Incorporate PR #368 --- src/nnn.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) 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;