Changes for running scripts

This commit is contained in:
Arun Prakash Jana 2018-12-08 16:18:46 +05:30
parent a5755ec855
commit 71fbf80925
No known key found for this signature in database
GPG key ID: A75979F35C080412
2 changed files with 18 additions and 20 deletions

View file

@ -1058,7 +1058,7 @@ static int entrycmp(const void *va, const void *vb)
* Also modifies the run and env pointers (used on SEL_{RUN,RUNARG}).
* The next keyboard input can be simulated by presel.
*/
static int nextsel(char **run, char **env, int *presel)
static int nextsel(int *presel)
{
static int c;
static uint i;
@ -2537,7 +2537,7 @@ static void browse(char *ipath)
static char newpath[PATH_MAX] __attribute__ ((aligned));
static char mark[PATH_MAX] __attribute__ ((aligned));
char *path, *lastdir, *lastname;
char *dir, *tmp, *run = NULL, *env = NULL;
char *dir, *tmp;
struct stat sb;
int r, fd, presel, ncp = 0, copystartid = 0, copyendid = 0;
enum action sel;
@ -2612,7 +2612,7 @@ nochange:
if (getppid() == 1)
_exit(0);
sel = nextsel(&run, &env, &presel);
sel = nextsel(&presel);
switch (sel) {
case SEL_BACK:
@ -3377,7 +3377,7 @@ nochange:
close(fd);
xstrlcpy(lastname, tmp, NAME_MAX + 1);
goto begin;
case SEL_RUN: // fallthrough
case SEL_SHELL: // fallthrough
case SEL_RUNSCRIPT:
if (sel == SEL_RUNSCRIPT) {
tmp = getenv("NNN_SCRIPT");
@ -3388,31 +3388,29 @@ nochange:
tmp = xreadline(NULL, "script suffix: ");
if (tmp && tmp[0])
xstrlcpy(newpath + _len - 1, tmp, PATH_MAX - _len);
tmp = newpath;
}
char *curfile = NULL;
dir = NULL; /* dir used as temp var */
if (ndents)
curfile = dents[cur].name;
spawn(shell, tmp, curfile, path, F_NORMAL | F_SIGINT);
} else
dir = dents[cur].name;
spawn(shell, tmp, dir, path, F_NORMAL | F_SIGINT);
} else {
printmsg("set NNN_SCRIPT");
} else {
goto nochange;
}
} else
spawn(shell, shell_arg, NULL, path, F_NORMAL | F_MARKER);
/* Continue in navigate-as-you-type mode, if enabled */
if (cfg.filtermode)
presel = FILTER;
}
/* Continue in navigate-as-you-type mode, if enabled */
if (cfg.filtermode)
presel = FILTER;
/* Save current */
if (ndents)
copycurname();
/* Repopulate as directory content may have changed */
/* Re-populate as directory content may have changed */
goto begin;
case SEL_QUITCD: // fallthrough
case SEL_QUIT:

View file

@ -80,7 +80,7 @@ enum action {
SEL_RENAME,
SEL_RENAMEALL,
SEL_HELP,
SEL_RUN,
SEL_SHELL,
SEL_RUNSCRIPT,
SEL_RUNEDIT,
SEL_RUNPAGE,
@ -210,8 +210,8 @@ static struct key bindings[] = {
/* Show help */
{ '?', SEL_HELP },
/* Run command */
{ '!', SEL_RUN },
{ CONTROL(']'), SEL_RUN },
{ '!', SEL_SHELL },
{ CONTROL(']'), SEL_SHELL },
/* Run a custom script */
{ 'R', SEL_RUNSCRIPT },
/* Run command with argument */