Handle plugin selection early

This commit is contained in:
Arun Prakash Jana 2021-11-01 12:54:47 +05:30
parent cffcd655e9
commit bdbd182c65
No known key found for this signature in database
GPG Key ID: A75979F35C080412
1 changed files with 30 additions and 29 deletions

View File

@ -6896,6 +6896,36 @@ nochange:
printwait(messages[MSG_UNSUPPORTED], &presel);
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
if (g_state.fifomode && (sel == SEL_OPEN)) {
send_to_explorer(&presel); /* Write selection to explorer fifo */
@ -6936,35 +6966,6 @@ 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) {
printwait(messages[MSG_EMPTY_FILE], &presel);
goto nochange;