Version submitted to autoconf.
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 3 Oct 2001 23:34:51 +0000 (23:34 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 3 Oct 2001 23:34:51 +0000 (23:34 +0000)
m4/shell.m4

index 784f0b78c22a0cbdd7289e8d2699abfd036fb68a..8ef21e0c2dd3be9983f124318d7d420a92f79212 100644 (file)
@@ -1,46 +1,58 @@
-#serial 1
+#serial 2
 
+# AC_PROG_SHELL
+# -------------
 # Check for a working (i.e. POSIX-compatible) shell.
-
 # Written by Paul Eggert <eggert@twinsun.com>,
 # from an idea suggested by Albert Chin-A-Young <china@thewrittenword.com>.
-
-AC_DEFUN(AC_PROG_SHELL,
-  [AC_MSG_CHECKING(for a POSIX-compliant shell)
+AC_DEFUN([AC_PROG_SHELL],
+  [AC_MSG_CHECKING([for a POSIX-compliant shell])
    AC_CACHE_VAL(ac_cv_path_shell,
-     [ac_cv_path_shell=no
-      IFS="${IFS=      }"; ac_save_ifs="$IFS"; IFS=":"
-      ac_dummy=/bin:/usr/bin:/usr/bin/posix:/usr/xpg4/bin:$PATH
-      for ac_dir in $ac_dummy; do
-       for ac_base in sh bash ksh sh5; do
-         case "$ac_dir" in
-         /*)
-           if ("$ac_dir/$ac_base" -c '
+     [ac_command='
+       # Test the noclobber option, using the portable POSIX.2 syntax.
+       set -C
+       rm -f conftest.c
+       >conftest.c || exit
+       >|conftest.c || exit
+       !>conftest.c || exit
+      '
+      ac_cv_path_shell=no
 
-                 # Test the noclobber option,
-                 # using the portable POSIX.2 syntax.
-                 set -C
-                 rm -f conftest.c || exit
-                 >conftest.c || exit
-                 >|conftest.c || exit
-                 !>conftest.c || exit
+      case $SHELL in
+      /*)
+       rm -f conftest.c
+       if ("$SHELL" -c "$ac_command") 2>/dev/null; then
+         ac_cv_path_shell=$SHELL
+       fi;;
+      esac
 
-               ') 2>/dev/null; then
-             ac_cv_path_shell="$ac_dir/$ac_base"
-             break
-           fi
-           ;;
+      case $ac_cv_path_shell in
+      no)
+       ac_dummy=/bin:/usr/bin:/usr/bin/posix:/usr/xpg4/bin:$PATH
+       ac_save_IFS=$IFS; IFS=:
+       for ac_dir in $ac_dummy; do
+         for ac_base in sh bash ksh sh5; do
+           case $ac_dir in
+           /*)
+             rm -f conftest.c
+             if ("$ac_dir/$ac_base" -c "$ac_command") 2>/dev/null; then
+               ac_cv_path_shell="$ac_dir/$ac_base"
+               break
+             fi;;
+           esac
+         done
+         case $ac_cv_path_shell in
+         no) ;;
+         *) break;;
          esac
        done
-       if test "$ac_cv_path_shell" != no; then
-         break
-       fi
-      done
-      IFS="$ac_save_ifs"])
+       rm -f conftest.c
+       IFS=$ac_save_IFS;;
+      esac])
    AC_MSG_RESULT($ac_cv_path_shell)
    SHELL=$ac_cv_path_shell
    if test "$SHELL" = no; then
      SHELL=/bin/sh
-     AC_MSG_WARN(Using $SHELL, even though it is not POSIX-compliant)
+     AC_MSG_WARN([using $SHELL, even though it does not conform to POSIX])
    fi
    AC_SUBST(SHELL)])