To list the file paths copied to memory press \fIy\fR.
.Sh ENVIRONMENT
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, e.g.:
-.Bd -literal
- export EDITOR='vim -xR'
-.Ed
+when dealing with the !, e and p commands respectively. A single combination to arguments is supported for SHELL and PAGER.
.Pp
\fBNNN_BMS:\fR bookmark string as \fIkey_char:location\fR pairs (max 10) separated by
\fI;\fR:
static uint idle;
static uint idletimeout, copybufpos, copybuflen;
static char *copier;
-static char *editor, *editor_arg;
+static char *editor;
static char *pager, *pager_arg;
static char *shell, *shell_arg;
static char *runpath;
if (getenv("SHLVL"))
dprintf(fd, "SHLVL: %s\n", getenv("SHLVL"));
if (getenv("VISUAL"))
- dprintf(fd, "VISUAL: %s %s\n", editor, editor_arg);
+ dprintf(fd, "VISUAL: %s\n", editor);
else if (getenv("EDITOR"))
- dprintf(fd, "EDITOR: %s %s\n", editor, editor_arg);
+ dprintf(fd, "EDITOR: %s\n", editor);
if (getenv("PAGER"))
dprintf(fd, "PAGER: %s %s\n", pager, pager_arg);
if (cfg.useeditor &&
get_output(g_buf, CMD_LEN_MAX, "file", FILE_OPTS, newpath, FALSE) &&
strstr(g_buf, "text/") == g_buf) {
- spawn(editor, editor_arg, newpath, path, F_NORMAL);
+ r = xstrlcpy(g_buf, editor, CMD_LEN_MAX);
+ g_buf[r - 1] = ' ';
+ xstrlcpy(g_buf + r, newpath, CMD_LEN_MAX - r);
+ DPRINTF_S(g_buf);
+ spawn("sh", "-c", g_buf, path, F_NORMAL);
continue;
}
r = show_help(path);
break;
case SEL_RUNEDIT:
+ r = xstrlcpy(g_buf, editor, CMD_LEN_MAX);
+ g_buf[r - 1] = ' ';
+ xstrlcpy(g_buf + r, dents[cur].name, CMD_LEN_MAX - r);
r = TRUE;
- spawn(editor, editor_arg, dents[cur].name, path, F_NORMAL);
+ spawn("sh", "-c", g_buf, path, F_NORMAL);
break;
case SEL_RUNPAGE:
r = TRUE;
/* Get VISUAL/EDITOR */
editor = xgetenv("VISUAL", xgetenv("EDITOR", "vi"));
- getprogarg(editor, &editor_arg);
/* Get PAGER */
pager = xgetenv("PAGER", "less");