bug-autoconf
[Top][All Lists]
Advanced

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

[PATCH] Fix parsing of empty variable settings on the command line.


From: Ralf Wildenhues
Subject: [PATCH] Fix parsing of empty variable settings on the command line.
Date: Tue, 20 Jul 2010 07:58:14 +0200
User-agent: Mutt/1.5.20 (2010-04-22)

* lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Work around
expr bug returning 0 instead of the empty string.
* lib/autotest/general.m4 (AT_INIT): Likewise.

Signed-off-by: Ralf Wildenhues <address@hidden>
---

* Ralf Wildenhues wrote on Tue, Jul 20, 2010 at 07:09:03AM CEST:
> I don't get it, esp. I don't get why I haven't seen this anywhere
> before.  This is with bash 3.2.39 on Debian GNU/Linux x86.  Can anyone
> confirm this failure?  Otherwise I guess I should go looking for weird
> stuff in my setup.
> 
> Anyway, rerunning
>   ./micro-suite -x 1 FROB=default FROB_ARG=
> 
> in the test directory does not show any failures.

Ah, a leftover $builddir/tests/expr from maintainer-check-posix.

This patch aims to fix the both instances I found at a glance.  I'm
running out of time for adding tests or verifying that
maintainer-check-posix already exposes the issues, or that there are no
further issues; sorry.

Cheers,
Ralf

 ChangeLog               |    5 +++++
 lib/autoconf/general.m4 |    5 +++--
 lib/autotest/general.m4 |    4 ++--
 3 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index b2a81e5a..edcb8c2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2010-07-20  Ralf Wildenhues  <address@hidden>
 
+       Fix parsing of empty variable settings on the command line.
+       * lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Work around
+       expr bug returning 0 instead of the empty string.
+       * lib/autotest/general.m4 (AT_INIT): Likewise.
+
        Let autoreconf pass warning flags to new-enough aclocal.
        * bin/autoreconf.in ($aclocal_supports_warnings)
        ($automake_supports_warnings): New globals.
diff --git a/lib/autoconf/general.m4 b/lib/autoconf/general.m4
index 477c4ab..bb18845 100644
--- a/lib/autoconf/general.m4
+++ b/lib/autoconf/general.m4
@@ -613,8 +613,9 @@ do
   fi
 
   case $ac_option in
-  *=*) ac_optarg=`expr "X$ac_option" : '[[^=]]*=\(.*\)'` ;;
-  *)   ac_optarg=yes ;;
+  *=?*) ac_optarg=`expr "X$ac_option" : '[[^=]]*=\(.*\)'` ;;
+  *=)   ac_optarg= ;;
+  *)    ac_optarg=yes ;;
   esac
 
   # Accept the important Cygnus configure options, so we can diagnose typos.
diff --git a/lib/autotest/general.m4 b/lib/autotest/general.m4
index 2b46705..e27d601 100644
--- a/lib/autotest/general.m4
+++ b/lib/autotest/general.m4
@@ -474,8 +474,8 @@ do
   fi
 
   case $at_option in
-  *=*) at_optarg=`expr "x$at_option" : 'x[[^=]]*=\(.*\)'` ;;
-  *)   at_optarg= ;;
+  *=?*) at_optarg=`expr "X$at_option" : '[[^=]]*=\(.*\)'` ;;
+  *)    at_optarg= ;;
   esac
 
   # Accept the important Cygnus configure options, so we can diagnose typos.
-- 
1.7.2.rc3.47.g996ce




reply via email to

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