autoconf-patches
[Top][All Lists]
Advanced

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

Re: m4_version_compare and octal numbers


From: Eric Blake
Subject: Re: m4_version_compare and octal numbers
Date: Thu, 20 Nov 2008 21:08:37 -0700
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.18) Gecko/20081105 Thunderbird/2.0.0.18 Mnenhy/0.7.5.666

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

According to Eric Blake on 11/20/2008 8:29 PM:
> With current git tip, I'm getting AC_PREREQ failures such as:
> 
> /usr/bin/m4:configure.ac:212: Warning: m4_eval: bad expression (missing
> right parenthesis): (03118+0) != (0*4)

Fixed as follows:

- --
Don't work too hard, make some time for fun as well!

Eric Blake             address@hidden
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkkmNEUACgkQ84KuGfSFAYCkMgCgjUvuk4d1HPHKBaH34ZAqirFR
0agAoK1hYMCBO5WpY8RV3Sib8L5sy40d
=dZg4
-----END PGP SIGNATURE-----
>From 7811a6d5a908c215fcb838c19667c5c7daf0009f Mon Sep 17 00:00:00 2001
From: Eric Blake <address@hidden>
Date: Thu, 20 Nov 2008 21:02:22 -0700
Subject: [PATCH] Handle version numbers as decimal, even if they start with 0.

* lib/m4sugar/m4sugar.m4 (_m4_version_unletter): Avoid
interpreting leading zeros as octal.

Signed-off-by: Eric Blake <address@hidden>
---
 ChangeLog              |    6 ++++++
 lib/m4sugar/m4sugar.m4 |   13 +++++++------
 tests/m4sugar.at       |    4 ++++
 3 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index b14c98d..24b8091 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2008-11-20  Eric Blake  <address@hidden>
 
+       Handle version numbers as decimal, even if they start with 0.
+       * lib/m4sugar/m4sugar.m4 (_m4_version_unletter): Avoid
+       interpreting leading zeros as octal.
+
+2008-11-20  Eric Blake  <address@hidden>
+
        Speed up AT_CHECK.
        * lib/autotest/general.m4 (AT_CHECK, AT_CHECK_UNQUOTED): Expand
        third and fourth arguments once.
diff --git a/lib/m4sugar/m4sugar.m4 b/lib/m4sugar/m4sugar.m4
index 4657995..fd443ca 100644
--- a/lib/m4sugar/m4sugar.m4
+++ b/lib/m4sugar/m4sugar.m4
@@ -2589,9 +2589,10 @@ m4_define([m4_sign],
 #   Nl -> (N+1).-1.(l#)
 #
 # for example:
-#   [2.14a] -> [2,14+1,-1,[0r36:a]] -> 2.15.-1.10
-#   [2.14b] -> [2,15+1,-1,[0r36:b]] -> 2.15.-1.11
-#   [2.61aa.b] -> [2.61,1,-1,[0r36:aa],+1,-1,[0r36:b]] -> 2.62.-1.370.1.-1.11
+#   [2.14a] -> [0,2,14+1,-1,[0r36:a]] -> 2.15.-1.10
+#   [2.14b] -> [0,2,15+1,-1,[0r36:b]] -> 2.15.-1.11
+#   [2.61aa.b] -> [0,2.61,1,-1,[0r36:aa],+1,-1,[0r36:b]] -> 2.62.-1.370.1.-1.11
+#   [08] -> [0,[0r10:0]8] -> 8
 #
 # This macro expects reasonable version numbers, but can handle double
 # letters and does not expand any macros.  Original version strings can
@@ -2602,11 +2603,11 @@ m4_define([m4_sign],
 # but since [0r36:a] and commas are less readable than 10 and dots, we
 # provide a wrapper for human use.
 m4_define([m4_version_unletter],
-[m4_substr(m4_map_args([.m4_eval], m4_unquote(_$0([$1]))), [1])])
+[m4_substr(m4_map_args([.m4_eval], m4_unquote(_$0([$1]))), [3])])
 m4_define([_m4_version_unletter],
-[m4_bpatsubst(m4_translit([[[$1]]], [.-], [,,]),]dnl
+[m4_bpatsubst(m4_bpatsubst(m4_translit([[[[0,$1]]]], [.-], [,,]),]dnl
 m4_dquote(m4_dquote(m4_defn([m4_cr_Letters])))[[+],
-             [+1,-1,[0r36:\&]])])
+             [+1,-1,[0r36:\&]]), [,0], [,[0r10:0]])])
 
 
 # m4_version_compare(VERSION-1, VERSION-2)
diff --git a/tests/m4sugar.at b/tests/m4sugar.at
index e3387f6..4bdc06c 100644
--- a/tests/m4sugar.at
+++ b/tests/m4sugar.at
@@ -809,6 +809,8 @@ m4_version_compare([1.1a], [1.1A])
 m4_version_compare([1z], [1aa])
 m4_version_compare([2.61a], [2.61a-248-dc51])
 m4_version_compare([2.61b], [2.61a-248-dc51])
+m4_version_compare([08], [09])
+m4_version_compare([010], [8])
 dnl Test that side effects to m4_list_cmp occur exactly once
 m4_list_cmp([[0], [0], [0]m4_errprintn([hi])],
             [[0], [0], [0]m4_errprintn([hi])])
@@ -829,6 +831,8 @@ m4_list_cmp([[0], [0], [0]m4_errprintn([hi])],
 -1
 -1
 1
+-1
+1
 0
 0
 ]], [[hi
-- 
1.6.0.4


reply via email to

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