mirror of
https://github.com/tmux/tmux.git
synced 2024-11-05 02:18:47 +00:00
Sync OpenBSD patchset 1127:
Use default-shell not _PATH_BSHELL to spawn commands, pointed out by Dennis G?nnewig and Thomas Adam.
This commit is contained in:
parent
b24829a99c
commit
2e3a260315
17
window.c
17
window.c
@ -740,23 +740,24 @@ window_pane_spawn(struct window_pane *wp, const char *cmd, const char *shell,
|
||||
clear_signals(1);
|
||||
log_close();
|
||||
|
||||
if (*wp->cmd != '\0') {
|
||||
/* Set SHELL but only if it is currently not useful. */
|
||||
shell = getenv("SHELL");
|
||||
if (checkshell(shell))
|
||||
setenv("SHELL", wp->shell, 1);
|
||||
setenv("SHELL", wp->shell, 1);
|
||||
ptr = strrchr(wp->shell, '/');
|
||||
|
||||
execl(_PATH_BSHELL, "sh", "-c", wp->cmd, (char *) NULL);
|
||||
if (*wp->cmd != '\0') {
|
||||
/* Use the command. */
|
||||
if (ptr != NULL && *(ptr + 1) != '\0')
|
||||
xasprintf(&argv0, "%s", ptr + 1);
|
||||
else
|
||||
xasprintf(&argv0, "%s", wp->shell);
|
||||
execl(wp->shell, argv0, "-c", wp->cmd, (char *) NULL);
|
||||
fatal("execl failed");
|
||||
}
|
||||
|
||||
/* No command; fork a login shell. */
|
||||
ptr = strrchr(wp->shell, '/');
|
||||
if (ptr != NULL && *(ptr + 1) != '\0')
|
||||
xasprintf(&argv0, "-%s", ptr + 1);
|
||||
else
|
||||
xasprintf(&argv0, "-%s", wp->shell);
|
||||
setenv("SHELL", wp->shell, 1);
|
||||
execl(wp->shell, argv0, (char *) NULL);
|
||||
fatal("execl failed");
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user