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:
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;