[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: m4_version_compare and octal numbers,
Eric Blake <=