aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/nnn.c25
1 files changed, 14 insertions, 11 deletions
diff --git a/src/nnn.c b/src/nnn.c
index 3dfc84a..dcdafcc 100644
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -4187,25 +4187,28 @@ static bool run_selected_plugin(char **path, const char *file, char *runfile, ch
g_states |= STATE_PLUGIN_INIT;
}
- if (*file == '_')
- return run_cmd_as_plugin(*path, file, runfile);
-
fd = open(g_pipepath, O_RDONLY | O_NONBLOCK);
if (fd == -1)
return FALSE;
- /* Generate absolute path to plugin */
- mkpath(plugindir, file, g_buf);
+ /* Run plugin from command */
+ if (*file == '_')
+ run_cmd_as_plugin(*path, file, runfile);
- if (runfile && runfile[0]) {
- xstrsncpy(*lastname, runfile, NAME_MAX);
- spawn(g_buf, *lastname, *path, *path, F_NORMAL);
- } else
- spawn(g_buf, NULL, *path, *path, F_NORMAL);
+ /* Run command from plugin */
+ else {
+ /* Generate absolute path to plugin */
+ mkpath(plugindir, file, g_buf);
+
+ if (runfile && runfile[0]) {
+ xstrsncpy(*lastname, runfile, NAME_MAX);
+ spawn(g_buf, *lastname, *path, *path, F_NORMAL);
+ } else
+ spawn(g_buf, NULL, *path, *path, F_NORMAL);
+ }
len = read(fd, g_buf, PATH_MAX);
g_buf[len] = '\0';
-
close(fd);
if (len > 1) {