The shell interprets "$nnn" now

This commit is contained in:
Arun Prakash Jana 2021-09-05 18:19:30 +05:30
parent d34741107a
commit fa7cef2df7
No known key found for this signature in database
GPG key ID: A75979F35C080412
3 changed files with 12 additions and 19 deletions

11
nnn.1
View file

@ -391,20 +391,19 @@ separated by \fI;\fR:
NOTES: NOTES:
1. Use single quotes for $NNN_PLUG so $nnn is not interpreted 1. Use single quotes for $NNN_PLUG so $nnn is not interpreted
2. $nnn should be the last argument (IF used) 2. (Again) add \fB!\fR before the command
3. (Again) add \fB!\fR before the command 3. To disable directory refresh after running a \fIcommand as plugin\fR,
4. To disable directory refresh after running a \fIcommand as plugin\fR,
prefix with \fB-!\fR prefix with \fB-!\fR
5. To skip user confirmation after command execution, suffix with \fB*\fR 4. To skip user confirmation after command execution, suffix with \fB*\fR
Note: Do not use \fB*\fR with programs those run and exit e.g. cat Note: Do not use \fB*\fR with programs those run and exit e.g. cat
export NNN_PLUG='y:-!sync*' export NNN_PLUG='y:-!sync*'
6. To run a \fIGUI app as plugin\fR, add a \fB&\fR after \fB!\fR 5. To run a \fIGUI app as plugin\fR, add a \fB&\fR after \fB!\fR
export NNN_PLUG='m:-!&mousepad $nnn' export NNN_PLUG='m:-!&mousepad $nnn'
7. To show the output of run-and-exit commands which do not need user input, 6. To show the output of run-and-exit commands which do not need user input,
add \fB|\fR (pipe) after \fB!\fR add \fB|\fR (pipe) after \fB!\fR
Note: This option is incompatible with \fB&\fR (terminal output is masked Note: This option is incompatible with \fB&\fR (terminal output is masked
for GUI programs) and ignores \fB*\fR (output is already paged for user) for GUI programs) and ignores \fB*\fR (output is already paged for user)

View file

@ -178,9 +178,8 @@ This option is incompatible with `&` (terminal output is masked for GUI programs
Notes: Notes:
1. Use single quotes for `$NNN_PLUG` so `$nnn` is not interpreted 1. Use single quotes for `$NNN_PLUG` so `$nnn` is not interpreted
2. `$nnn` should be the last argument (IF used) 2. (_Again_) add `!` before the command
3. (_Again_) add `!` before the command 3. To disable directory refresh after running a _command as plugin_, prefix with `-!`
4. To disable directory refresh after running a _command as plugin_, prefix with `-!`
#### Some useful key-command examples #### Some useful key-command examples

View file

@ -5076,7 +5076,7 @@ static void setexports(void)
} }
} }
static bool run_cmd_as_plugin(const char *file, char *runfile, uchar_t flags) static bool run_cmd_as_plugin(const char *file, uchar_t flags)
{ {
size_t len; size_t len;
@ -5089,15 +5089,10 @@ static bool run_cmd_as_plugin(const char *file, char *runfile, uchar_t flags)
--len; --len;
} }
if (is_suffix(g_buf, " $nnn"))
g_buf[len - 5] = '\0'; /* Set `\0` to clear ' $nnn' suffix */
else
runfile = NULL;
if (flags & F_PAGE) if (flags & F_PAGE)
get_output(g_buf, runfile, NULL, -1, TRUE, TRUE); get_output(g_buf, NULL, NULL, -1, TRUE, TRUE);
else else
spawn(g_buf, runfile, NULL, NULL, flags); spawn(g_buf, NULL, NULL, NULL, flags);
return TRUE; return TRUE;
} }
@ -5230,7 +5225,7 @@ static bool run_plugin(char **path, const char *file, char *runfile, char **last
return FALSE; return FALSE;
if ((flags & F_NOTRACE) || (flags & F_PAGE)) if ((flags & F_NOTRACE) || (flags & F_PAGE))
return run_cmd_as_plugin(file, runfile, flags); return run_cmd_as_plugin(file, flags);
cmd_as_plugin = TRUE; cmd_as_plugin = TRUE;
} }
@ -5264,7 +5259,7 @@ static bool run_plugin(char **path, const char *file, char *runfile, char **last
} else } else
spawn(g_buf, NULL, *path, sel, 0); spawn(g_buf, NULL, *path, sel, 0);
} else } else
run_cmd_as_plugin(file, runfile, flags); run_cmd_as_plugin(file, flags);
close(wfd); close(wfd);
_exit(EXIT_SUCCESS); _exit(EXIT_SUCCESS);