[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] Shell function reporting
From: |
Eric Sunshine |
Subject: |
[PATCH] Shell function reporting |
Date: |
Tue, 6 Jan 2004 11:07:26 -0500 |
Hello,
The logic in AS_SHELL_SANITIZE() for reporting that it failed to find a
function-supporting shell is just plain buggy. In the case when $SHELL does
not support functions, AS_SHELL_SANITIZE() reports that it could not find an
appropriate shell even if it actually locates such a shell (which it assigns
to CONFIG_SHELL). Furthermore, when it actually does fail to find a suitable
shell, it neglects to complain at all. The logic is backward.
Here is a patch which implements the correct logic. The patch also makes
the code more robust by preventing the user from fooling configure into
thinking that it has a valid shell if the user manually sets CONFIG_SHELL to
a non-function-supporting shell.
Eric
2004-01-06 Eric Sunshine <address@hidden>
* lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Fixed bogus error reporting
logic. If $SHELL did not support shell functions, and if it found a
shell which did support functions, it would complain that it failed to
find such a shell (backward logic). Worse, it did not complain if it
failed to find a suitable shell. Now it complains iff it fails to find
a function-supporting shell.
--- lib/m4sugar/m4sh.m4 Tue Jan 6 10:44:28 2004
+++ lib/m4sugar/m4sh.m4-fix Tue Jan 6 10:44:08 2004
@@ -249,25 +249,22 @@
fi
dnl In the future, the `else' branch will be that in AS_INIT_WITH_SHELL_FN.
-AS_IF([_AS_SHELL_FN_WORK([$SHELL])], [], [
- case $CONFIG_SHELL in
- '')
- _AS_PATH_WALK([/bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH],
- [for as_base in sh bash ksh sh5; do
- case $as_dir in
- /*)
- AS_IF([_AS_SHELL_FN_WORK([$as_dir/$as_base])], [
- AS_UNSET(BASH_ENV)
- AS_UNSET(ENV)
- CONFIG_SHELL=$as_dir/$as_base
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$as_myself" ${1+"address@hidden"}
- ]);;
- esac
- done]);;
- *)
- $1;;
- esac
+AS_IF([_AS_SHELL_FN_WORK([${CONFIG_SHELL-${SHELL-/bin/sh}}])], [], [
+ _AS_PATH_WALK([/bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH],
+ [for as_base in sh bash ksh sh5; do
+ case $as_dir in
+ /*)
+ AS_IF([_AS_SHELL_FN_WORK([$as_dir/$as_base])], [
+ AS_UNSET(BASH_ENV)
+ AS_UNSET(ENV)
+ CONFIG_SHELL=$as_dir/$as_base
+ export CONFIG_SHELL
+ exec "$CONFIG_SHELL" "$as_myself" ${1+"address@hidden"}
+ ]);;
+ esac
+ done])
+ # If we got this far, then we failed to find a function-supporting shell.
+ $1
])
# Work around bugs in pre-3.0 UWIN ksh.
- [PATCH] Shell function reporting,
Eric Sunshine <=
- Re: [PATCH] Shell function reporting, Paul Eggert, 2004/01/06
- Re: [PATCH] Shell function reporting, Eric Sunshine, 2004/01/06
- Re: [PATCH] Shell function reporting, Paul Eggert, 2004/01/07
- Re: [PATCH] Shell function reporting, Paul Jarc, 2004/01/07
- Re: [PATCH] Shell function reporting, Eric Sunshine, 2004/01/07
- Re: [PATCH] Shell function reporting, Paul Eggert, 2004/01/07
- Re: [PATCH] Shell function reporting, Eric Sunshine, 2004/01/07