1
1

Check for NCDU_SHELL environment variable when spawning shell

Check if the environment variable NCDU_SHELL is defined before the SHELL
variable is checked. This makes it possible to specify a program to
execute when 'b' is pressed. Setting SHELL to for example "mc" (Midnight
Commander) didn't work because mc already uses SHELL to execute
commands.
Этот коммит содержится в:
Øyvind A. Holm 2015-06-02 04:06:09 +02:00
родитель 7ca912e452
Коммит 7be85679c5
2 изменённых файлов: 15 добавлений и 6 удалений

Просмотреть файл

@ -214,9 +214,15 @@ Refresh/recalculate the current directory.
Spawn shell in current directory.
We first check the $SHELL environment variable of the user for the preferred
shell interpreter. If it's not set, we fall back to the compile time
configured default shell (usually /bin/bash).
We first check the $NCDU_SHELL environment variable of the user for the
preferred shell interpreter. If it's not set, $SHELL is checked. If that
variable also isn't defined, we fall back to the compile time configured
default shell (usually /bin/bash). This allows you to specify which program to
launch when 'b' is pressed. For example, if you want ncdu to execute the
Midnight Commander file manager in the current directory:
export NCDU_SHELL=mc
ncdu
=item q

Просмотреть файл

@ -52,9 +52,12 @@ void shell_draw() {
"Press any key to continue.",
full_path, res);
} else {
char *shell = getenv("SHELL");
if (shell == NULL)
shell = DEFAULT_SHELL;
char *shell = getenv("NCDU_SHELL");
if (shell == NULL) {
shell = getenv("SHELL");
if (shell == NULL)
shell = DEFAULT_SHELL;
}
res = system(shell);