diff options
author | Felix Lee <flee@cygnus.com> | 2000-04-03 07:43:51 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2000-04-03 01:43:51 -0600 |
commit | bebac7017578ded99c68902c9ce24a2acc342cdd (patch) | |
tree | 9d7f09db96ec6edd300216bf823504a8544e0fb6 /gcc/fixinc/server.c | |
parent | 7bfe3c970f80d54aa454adc26acc8df9de359da6 (diff) | |
download | gcc-bebac7017578ded99c68902c9ce24a2acc342cdd.zip gcc-bebac7017578ded99c68902c9ce24a2acc342cdd.tar.gz gcc-bebac7017578ded99c68902c9ce24a2acc342cdd.tar.bz2 |
server.c (find_shell): New function.
* fixinc/server.c (find_shell): New function. Avoid $SHELL.
(run_shell): Use it.
From-SVN: r32878
Diffstat (limited to 'gcc/fixinc/server.c')
-rw-r--r-- | gcc/fixinc/server.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/fixinc/server.c b/gcc/fixinc/server.c index 676df8c..5d737ac 100644 --- a/gcc/fixinc/server.c +++ b/gcc/fixinc/server.c @@ -235,6 +235,28 @@ server_setup () p_cur_dir = getcwd ((char *) NULL, MAXPATHLEN + 1); } +/* + * find_shell + * + * Locate a shell suitable for use. For various reasons + * (like the use of "trap" in server_setup(), it must be a + * Bourne-like shell. + * + * Most of the time, /bin/sh is preferred, but sometimes + * it's quite broken (like on Ultrix). autoconf lets you + * override with $CONFIG_SHELL, so we do the same. + */ + +static char * +find_shell () +{ + char * shell = getenv ("CONFIG_SHELL"); + if (shell) + return shell; + + return "/bin/sh"; +} + /* * run_shell @@ -266,6 +288,8 @@ run_shell (pz_cmd) THEN try to start it. */ if (server_id == NULLPROCESS) { + def_args[0] = find_shell (); + server_id = proc2_fopen (&server_pair, def_args); if (server_id > 0) server_setup (); |