X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Fposix-shell.m4;h=709995ddf5b5a863fc293c45eeca48b8e8153167;hb=4226cf28cbf8b81423e6a1ee4075020f55e320d8;hp=ac526d5c3788a606351beb57d597e69f7b20a9aa;hpb=04f591dbbe18273eab516bd668b5cab8896c3a00;p=gnulib.git diff --git a/m4/posix-shell.m4 b/m4/posix-shell.m4 index ac526d5c3..709995ddf 100644 --- a/m4/posix-shell.m4 +++ b/m4/posix-shell.m4 @@ -1,6 +1,6 @@ # Find a POSIX-conforming shell. -# Copyright (C) 2007 Free Software Foundation, Inc. +# Copyright (C) 2007-2011 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -15,34 +15,39 @@ AC_DEFUN([gl_POSIX_SHELL], [ AC_CACHE_CHECK([for a shell that conforms to POSIX], [gl_cv_posix_shell], - [gl_test_POSIX_SHELL=' + [gl_test_posix_shell_script=' func_return () { - (exit [$]1) + (exit [$]1) } func_success () { - func_return 0 + func_return 0 } func_failure () { - func_return 1 + func_return 1 } func_ret_success () { - return 0 + return 0 } func_ret_failure () { - return 1 + return 1 + } + subshell_umask_sanity () { + (umask 22; (umask 0); test $(umask) -eq 22) } test "[$](echo foo)" = foo && func_success && ! func_failure && func_ret_success && ! func_ret_failure && - (set x && func_ret_success y && test x = "[$]1") + (set x && func_ret_success y && test x = "[$]1") && + subshell_umask_sanity ' for gl_cv_posix_shell in \ - "$CONFIG_SHELL" "$SHELL" /bin/sh /bin/bash /bin/ksh /bin/sh5 no; do + "$CONFIG_SHELL" "$SHELL" /bin/sh /bin/bash /bin/ksh /bin/sh5 no; do case $gl_cv_posix_shell in /*) - "$gl_cv_posix_shell" -c "$gl_test_POSIX_shell" 2>/dev/null && break;; + "$gl_cv_posix_shell" -c "$gl_test_posix_shell_script" 2>/dev/null \ + && break;; esac done])