src/nnn.c | 10 ++++++++++ diff --git a/src/nnn.c b/src/nnn.c index bc7b629cc296e7f9b208e5466f245b60e3a76655..1cbb7d2bb11b780c9e19b4cf5f723861db1361d8 100644 --- a/src/nnn.c +++ b/src/nnn.c @@ -6330,11 +6330,16 @@ /* Copy path so we can return back to earlier dir */ xstrsncpy(path, rundir, PATH_MAX); rundir[0] = '\0'; + bool picker = g_state.picker; + if (chdir(path) == -1 || !run_selected_plugin(&path, pent->name, runfile, &lastname, &lastdir)) { DPRINTF_S("plugin failed!"); } + + if (picker != g_state.picker) + return EXIT_SUCCESS; if (runfile[0]) runfile[0] = '\0'; @@ -7050,11 +7055,16 @@ r = FALSE; /* Do not refresh dir after completion */ } else r = TRUE; + bool picker = g_state.picker; + if (!run_selected_plugin(&path, tmp, (ndents ? pdents[cur].name : NULL), &lastname, &lastdir)) { printwait(messages[MSG_FAILED], &presel); goto nochange; } + + if (picker != g_state.picker) + return EXIT_SUCCESS; if (ndents) copycurname();