autoconf-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] m4sh: preserve set -vx over re-exec


From: Eric Blake
Subject: [PATCH] m4sh: preserve set -vx over re-exec
Date: Wed, 8 Sep 2010 10:45:29 -0600

See http://lists.gnu.org/archive/html/bug-gnulib/2010-09/msg00035.html
for the motivation for this patch.

* lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): Trace through
re-exec, to make it easier to debug script startup issues.
Idea from recent bug-gnulib change to init.sh.

Signed-off-by: Eric Blake <address@hidden>
---
 ChangeLog           |    5 +++++
 lib/m4sugar/m4sh.m4 |    9 ++++++++-
 2 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 5edb50c..0277419 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2010-09-08  Eric Blake  <address@hidden>

+       m4sh: preserve set -vx over re-exec
+       * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): Trace through
+       re-exec, to make it easier to debug script startup issues.
+       Idea from recent bug-gnulib change to init.sh.
+
        docs: update alloca recommendations
        * doc/autoconf.texi (Particular Functions): Don't redeclare alloca
        on FreeBSD.
diff --git a/lib/m4sugar/m4sh.m4 b/lib/m4sugar/m4sh.m4
index ef99cb5..ca22161 100644
--- a/lib/m4sugar/m4sh.m4
+++ b/lib/m4sugar/m4sh.m4
@@ -227,11 +227,18 @@ dnl Remove any tests from suggested that are also required
        [# We cannot yet assume a decent shell, so we have to provide a
        # neutralization value for shells without unset; and this also
        # works around shells that cannot unset nonexistent variables.
+       # Preserve -v and -x to the replacement shell.
        BASH_ENV=/dev/null
        ENV=/dev/null
        (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
        export CONFIG_SHELL
-       exec "$CONFIG_SHELL" "$as_myself" ${1+"address@hidden"}])
+       case $- in @%:@ ((((
+         *v*x* | *x*v* ) as_opts=-vx ;;
+         *v* ) as_opts=-v ;;
+         *x* ) as_opts=-x ;;
+         * ) as_opts= ;;
+       esac
+       exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"address@hidden"}])

 dnl Unfortunately, $as_me isn't available here.
     AS_IF([test x$as_have_required = xno],
-- 
1.7.2.2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]