nnn

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit ac281cb63b8c5dc8881a91303eab715b08c228bd
parent 6b5bb16b46cbf8ee2b6c34d7b52ddbf872f40930
Author: Arun Prakash Jana <engineerarun@gmail.com>
Date:   Wed, 18 Dec 2019 22:27:23 +0530

Fix cmd as plugin showing prompt on playing twice

Diffstat:
Msrc/nnn.c | 17++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/src/nnn.c b/src/nnn.c @@ -3553,28 +3553,27 @@ static void show_help(const char *path) unlink(g_tmpfpath); } -static bool run_cmd_as_plugin(const char *path, char *file, char *newpath, char *runfile) +static bool run_cmd_as_plugin(const char *path, const char *file, char *newpath, char *runfile) { uchar flags = F_CLI | F_CONFIRM; size_t len; - DPRINTF_S(file); - /* Get rid of preceding _ */ ++file; if (!*file) return FALSE; - len = strlen(file); - if (len > 1 && file[len - 1] == '*') { + xstrlcpy(newpath, file, PATH_MAX); + + len = strlen(newpath); + if (len > 1 && newpath[len - 1] == '*') { flags &= ~F_CONFIRM; /* GUI case */ - file[len - 1] = '\0'; /* Get rid of trailing nowait symbol */ + newpath[len - 1] = '\0'; /* Get rid of trailing nowait symbol */ --len; } - xstrlcpy(newpath, file, PATH_MAX); - if (is_suffix(file, " $nnn")) { + if (is_suffix(newpath, " $nnn")) { /* Set `\0` to clear ' $nnn' suffix */ newpath[len - 5] = '\0'; } else @@ -3599,7 +3598,7 @@ static bool plctrl_init(void) return _SUCCESS; } -static bool run_selected_plugin(char **path, char *file, char *newpath, char *runfile, char **lastname, char **lastdir) +static bool run_selected_plugin(char **path, const char *file, char *newpath, char *runfile, char **lastname, char **lastdir) { int fd; size_t len;