mirror of
https://github.com/jarun/nnn.git
synced 2025-01-09 01:21:10 +00:00
Handle plugin selection early
This commit is contained in:
parent
cffcd655e9
commit
bdbd182c65
59
src/nnn.c
59
src/nnn.c
|
@ -6896,6 +6896,36 @@ nochange:
|
||||||
printwait(messages[MSG_UNSUPPORTED], &presel);
|
printwait(messages[MSG_UNSUPPORTED], &presel);
|
||||||
goto nochange;
|
goto nochange;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Handle plugin selection mode */
|
||||||
|
if (g_state.runplugin) {
|
||||||
|
g_state.runplugin = 0;
|
||||||
|
/* Must be in plugin dir and same context to select plugin */
|
||||||
|
if ((g_state.runctx == cfg.curctx) && !strcmp(path, plgpath)) {
|
||||||
|
endselection(FALSE);
|
||||||
|
/* Copy path so we can return back to earlier dir */
|
||||||
|
xstrsncpy(path, rundir, PATH_MAX);
|
||||||
|
rundir[0] = '\0';
|
||||||
|
clearfilter();
|
||||||
|
|
||||||
|
if (chdir(path) == -1
|
||||||
|
|| !run_plugin(&path, pent->name,
|
||||||
|
runfile, &lastname, &lastdir)) {
|
||||||
|
DPRINTF_S("plugin failed!");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (g_state.picked)
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
|
||||||
|
if (runfile[0]) {
|
||||||
|
xstrsncpy(lastname, runfile, NAME_MAX + 1);
|
||||||
|
runfile[0] = '\0';
|
||||||
|
}
|
||||||
|
setdirwatch();
|
||||||
|
goto begin;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#ifndef NOFIFO
|
#ifndef NOFIFO
|
||||||
if (g_state.fifomode && (sel == SEL_OPEN)) {
|
if (g_state.fifomode && (sel == SEL_OPEN)) {
|
||||||
send_to_explorer(&presel); /* Write selection to explorer fifo */
|
send_to_explorer(&presel); /* Write selection to explorer fifo */
|
||||||
|
@ -6936,35 +6966,6 @@ nochange:
|
||||||
goto nochange;
|
goto nochange;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Handle plugin selection mode */
|
|
||||||
if (g_state.runplugin) {
|
|
||||||
g_state.runplugin = 0;
|
|
||||||
/* Must be in plugin dir and same context to select plugin */
|
|
||||||
if ((g_state.runctx == cfg.curctx) && !strcmp(path, plgpath)) {
|
|
||||||
endselection(FALSE);
|
|
||||||
/* Copy path so we can return back to earlier dir */
|
|
||||||
xstrsncpy(path, rundir, PATH_MAX);
|
|
||||||
rundir[0] = '\0';
|
|
||||||
clearfilter();
|
|
||||||
|
|
||||||
if (chdir(path) == -1
|
|
||||||
|| !run_plugin(&path, pent->name,
|
|
||||||
runfile, &lastname, &lastdir)) {
|
|
||||||
DPRINTF_S("plugin failed!");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (g_state.picked)
|
|
||||||
return EXIT_SUCCESS;
|
|
||||||
|
|
||||||
if (runfile[0]) {
|
|
||||||
xstrsncpy(lastname, runfile, NAME_MAX + 1);
|
|
||||||
runfile[0] = '\0';
|
|
||||||
}
|
|
||||||
setdirwatch();
|
|
||||||
goto begin;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!sb.st_size) {
|
if (!sb.st_size) {
|
||||||
printwait(messages[MSG_EMPTY_FILE], &presel);
|
printwait(messages[MSG_EMPTY_FILE], &presel);
|
||||||
goto nochange;
|
goto nochange;
|
||||||
|
|
Loading…
Reference in a new issue