Skip to content

Commit

Permalink
Ticket #4549: subshell: call execl with argv[0] being the actual path…
Browse files Browse the repository at this point in the history
… to Bash.

We currently call Bash with argv[0] being just the fixed string
"bash", but this confuses Bash when it initializes the shell variable
BASH, which are expected to be the absolute file path to the current
Bash image.  This patch fixes argv[0] to be the actual path that mc
uses to start Bash.

Signed-off-by: Andrew Borodin <[email protected]>
  • Loading branch information
akinomyoga authored and aborodin committed Jun 20, 2024
1 parent ed2c15c commit 61675a9
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/subshell/common.c
Original file line number Diff line number Diff line change
Expand Up @@ -418,13 +418,13 @@ init_subshell_child (const char *pty_name)
switch (mc_global.shell->type)
{
case SHELL_BASH:
execl (mc_global.shell->path, "bash", "-rcfile", init_file, (char *) NULL);
execl (mc_global.shell->path, mc_global.shell->path, "-rcfile", init_file, (char *) NULL);
break;

case SHELL_ZSH:
/* Use -g to exclude cmds beginning with space from history
* and -Z to use the line editor on non-interactive term */
execl (mc_global.shell->path, "zsh", "-Z", "-g", (char *) NULL);
execl (mc_global.shell->path, mc_global.shell->path, "-Z", "-g", (char *) NULL);
break;

case SHELL_ASH_BUSYBOX:
Expand Down

0 comments on commit 61675a9

Please sign in to comment.