aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Todd Yamakawa <toddyamakawa@users.noreply.github.com>2020-04-17 07:21:57 -0500
committerGravatar GitHub <noreply@github.com>2020-04-17 17:51:57 +0530
commitc63fb28effb2fbae903928b9b9453974c6e96c9f (patch)
tree4831d24d38828faa1e537960d315923383320376
parent58ecc240edbd7a3f80a465c2e83bbef4f943f06b (diff)
downloadnnn-c63fb28effb2fbae903928b9b9453974c6e96c9f.tar.gz
Fix #523: handle NNN_PIPE (#525)
Co-authored-by: Todd Yamakawa <todd.yamakawa@arm.com>
-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) {