From cd12a7faeaac12c8f55f1a48e56436146be9e3ce Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Wed, 8 Sep 2010 10:31:50 -0600 Subject: [PATCH] m4sh: preserve set -vx over re-exec 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 --- ChangeLog | 5 +++++ lib/m4sugar/m4sh.m4 | 9 ++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 5edb50c4..02774194 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2010-09-08 Eric Blake + 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 ef99cb5a..ca221614 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+"$[@]"}]) + 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+"$[@]"}]) dnl Unfortunately, $as_me isn't available here. AS_IF([test x$as_have_required = xno], -- 2.47.2