Resurrect NNN_OPENER

This commit is contained in:
Arun Prakash Jana 2019-01-16 20:11:33 +05:30
parent e7e09483b6
commit 5f519841e7
No known key found for this signature in database
GPG Key ID: A75979F35C080412
3 changed files with 18 additions and 1 deletions

View File

@ -372,6 +372,10 @@ The following indicators are used in the detail view:
| $PAGER | page through files (fallback less) |
| $SHELL | spawn a shell, run script (fallback sh) |
To specify a custom file opener:
export NNN_OPENER=mimeopen
To edit all text files in EDITOR (preferably CLI, fallback vi):
export NNN_USE_EDITOR=1

5
nnn.1
View File

@ -260,6 +260,11 @@ To list the file paths copied to memory press \fIy\fR.
The SHELL, EDITOR (VISUAL, if defined) and PAGER environment variables take precedence
when dealing with the !, e and p commands respectively. A single combination to arguments is supported for SHELL and PAGER.
.Pp
\fBNNN_OPENER:\fR specify a custom file opener.
.Bd -literal
export NNN_OPENER=mimeopen
.Ed
.Pp
\fBNNN_BMS:\fR bookmark string as \fIkey_char:location\fR pairs (max 10) separated by
\fI;\fR:
.Bd -literal

View File

@ -297,6 +297,7 @@ static char *pnamebuf, *pcopybuf;
static int ndents, cur, total_dents = ENTRY_INCR;
static uint idle;
static uint idletimeout, copybufpos, copybuflen;
static char *opener;
static char *copier;
static char *editor;
static char *pager, *pager_arg;
@ -2157,6 +2158,8 @@ static bool show_help(char *path)
dprintf(fd, "\n");
}
if (getenv("NNN_OPENER"))
dprintf(fd, "NNN_OPENER: %s\n", opener);
if (cfg.useeditor)
dprintf(fd, "NNN_USE_EDITOR: 1\n");
if (getenv("NNN_CONTEXT_COLORS"))
@ -2793,7 +2796,7 @@ nochange:
}
/* Invoke desktop opener as last resort */
spawn(utils[OPENER], newpath, NULL, NULL, F_NOWAIT | F_NOTRACE);
spawn(opener, newpath, NULL, NULL, F_NOWAIT | F_NOTRACE);
continue;
}
default:
@ -3767,6 +3770,11 @@ int main(int argc, char *argv[])
}
#endif
/* Get custom opener, if set */
opener = getenv("NNN_OPENER");
if (!opener)
opener = utils[OPENER];
/* Get locker wait time, if set; copier used as tmp var */
copier = getenv("NNN_IDLE_TIMEOUT");
if (copier) {