in execute_command(), instead of hardcoding /bin/sh as the shell to use
when executing a command, use $SHELL, and only fall back to /bin/sh if $SHELL isn't set git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3220 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
Этот коммит содержится в:
родитель
da1f55cec7
Коммит
5da68ee193
@ -185,6 +185,10 @@ CVS code -
|
||||
- Only include the whole_word parameter when DISABLE_SPELLER
|
||||
isn't defined, as it's only used then. (DLR)
|
||||
- text.c:
|
||||
execute_command()
|
||||
- Instead of hardcoding /bin/sh as the shell to use when
|
||||
executing a command, use $SHELL, and only fall back to /bin/sh
|
||||
if $SHELL isn't set. (DLR)
|
||||
do_wrap()
|
||||
- Rename variable wrapping to prepending, to avoid confusion,
|
||||
and rename the static bool same_line_wrap to prepend_wrap to
|
||||
|
10
src/text.c
10
src/text.c
@ -271,12 +271,20 @@ bool execute_command(const char *command)
|
||||
|
||||
/* Fork a child. */
|
||||
if ((pid = fork()) == 0) {
|
||||
char *shellenv;
|
||||
|
||||
close(fd[0]);
|
||||
dup2(fd[1], fileno(stdout));
|
||||
dup2(fd[1], fileno(stderr));
|
||||
|
||||
/* Check $SHELL for the shell to use. If it isn't set, use
|
||||
* /bin/sh. */
|
||||
shellenv = getenv("SHELL");
|
||||
if (shellenv == NULL)
|
||||
shellenv = "/bin/sh";
|
||||
|
||||
/* If execl() returns at all, there was an error. */
|
||||
execl("/bin/sh", "sh", "-c", command, NULL);
|
||||
execl(shellenv, tail(shellenv), "-c", command, NULL);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user