autoconf-commit
[Top][All Lists]
Advanced

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

[SCM] GNU Autoconf source repository branch, master, updated. v2.63-186-


From: Eric Blake
Subject: [SCM] GNU Autoconf source repository branch, master, updated. v2.63-186-g74bb1a4
Date: Tue, 11 Nov 2008 04:06:55 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Autoconf source repository".

http://git.sv.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=74bb1a450dd690f08cd39a6597f2acbb76c69024

The branch, master has been updated
       via  74bb1a450dd690f08cd39a6597f2acbb76c69024 (commit)
      from  5bf2204ddb1cd6f4430ed6f76ad7eb6de4d0d470 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 74bb1a450dd690f08cd39a6597f2acbb76c69024
Author: Eric Blake <address@hidden>
Date:   Mon Nov 10 21:00:44 2008 -0700

    Work around <=m4-1.4.9 bug in m4_format.
    
    * lib/m4sugar/m4sugar.m4 (_m4_index): New internal macro.
    (m4_init): Only use it in older m4.
    * lib/autoconf/general.m4 (_AC_DEFINE_Q): Use it to avoid
    m4_format bug in older m4.
    * lib/autoconf/status.m4 (_AC_CONFIG_COMPUTE_DEST): Likewise.
    Reported by Bob Proulx.
    
    Signed-off-by: Eric Blake <address@hidden>

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog               |   10 ++++++++++
 lib/autoconf/general.m4 |    4 +++-
 lib/autoconf/status.m4  |    4 ++--
 lib/m4sugar/m4sugar.m4  |   26 ++++++++++++++++++++++----
 4 files changed, 37 insertions(+), 7 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 2367c7c..b28abcd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
 2008-11-10  Eric Blake  <address@hidden>
 
+       Work around <=m4-1.4.9 bug in m4_format.
+       * lib/m4sugar/m4sugar.m4 (_m4_index): New internal macro.
+       (m4_init): Only use it in older m4.
+       * lib/autoconf/general.m4 (_AC_DEFINE_Q): Use it to avoid
+       m4_format bug in older m4.
+       * lib/autoconf/status.m4 (_AC_CONFIG_COMPUTE_DEST): Likewise.
+       Reported by Bob Proulx.
+
+2008-11-10  Eric Blake  <address@hidden>
+
        Match upstream standards.texi.
        * doc/standards.texi: Resync from upstream.
        * doc/fdl-1.3.texi: Rename...
diff --git a/lib/autoconf/general.m4 b/lib/autoconf/general.m4
index 2c184fc..15377cb 100644
--- a/lib/autoconf/general.m4
+++ b/lib/autoconf/general.m4
@@ -2077,8 +2077,10 @@ m4_define([AC_DEFINE_UNQUOTED], [_AC_DEFINE_Q([], $@)])
 # m4_format rather than regex to grab prefix up to first ().  AC_name
 # is defined with over-quotation, so that we can avoid m4_defn; this
 # is only safe because the name should not contain $.
+#
+# Use _m4_index to avoid a bug in m4_format in older m4.
 m4_define([_AC_DEFINE_Q],
-[m4_pushdef([AC_name], m4_format([[[%.*s]]], m4_index([$2], [(]), [$2]))]dnl
+[m4_pushdef([AC_name], m4_format([[[%.*s]]], _m4_index([$2], [(]), [$2]))]dnl
 [AC_DEFINE_TRACE(AC_name)]dnl
 [m4_cond([m4_index([$3], [
 ])], [-1], [],
diff --git a/lib/autoconf/status.m4 b/lib/autoconf/status.m4
index 388b90f..c134bb7 100644
--- a/lib/autoconf/status.m4
+++ b/lib/autoconf/status.m4
@@ -247,9 +247,9 @@ m4_define([_AC_CONFIG_FOOS],
 # _AC_CONFIG_COMPUTE_DEST(STRING)
 # -------------------------------
 # Compute the DEST from STRING by stripping any : and following
-# characters.
+# characters.  Use _m4_index to avoid a bug in m4_format in older m4.
 m4_define([_AC_CONFIG_COMPUTE_DEST],
-[m4_format([[%.*s]], m4_index([$1], [:]), [$1])])
+[m4_format([[%.*s]], _m4_index([$1], [:]), [$1])])
 
 # _AC_CONFIG_REGISTER(MODE, TAG, [COMMANDS])
 # ------------------------------------------
diff --git a/lib/m4sugar/m4sugar.m4 b/lib/m4sugar/m4sugar.m4
index 2a0d7ce..8884714 100644
--- a/lib/m4sugar/m4sugar.m4
+++ b/lib/m4sugar/m4sugar.m4
@@ -625,6 +625,22 @@ m4_define([m4_dumpdefs],
        [m4_map_args([$0], $@)])])
 
 
+# _m4_index(HAYSTACK, NEEDLE)
+# ---------------------------
+# Like the original, except return -2 instead of -1 if NEEDLE is not
+# present in HAYSTACK.  That way, it can be used to work around a bug
+# in m4 1.4.9 and earlier where m4_format did not accept a precision
+# of -1; this macro can be safely used in the idiom:
+#   m4_format([[%.*s]], _m4_index([$1],[$2]), [$1])
+# to grab the prefix of $1 up to but excluding $2, if it was present,
+# otherwise the entire $1.
+m4_define([_m4_index],
+[$0_(m4_index($@))])
+
+m4_define([_m4_index_],
+[m4_if([$1], [-1], [-2], [$1])])
+
+
 # m4_popdef(NAME)
 # ---------------
 # Like the original, except guarantee a warning when using something which is
@@ -2975,7 +2991,8 @@ m4_pattern_forbid([^dnl$])
 
 # If __m4_version__ is defined, we assume that we are being run by M4
 # 1.6 or newer, and thus that $@ recursion is linear and debugmode(d)
-# is available for faster checks of dereferencing undefined macros.
+# is available for faster checks of dereferencing undefined macros,
+# and we don't need to worry about _m4_format bugs with _m4_index.
 # But if it is missing, we assume we are being run by M4 1.4.x, that
 # $@ recursion is quadratic, and that we need foreach-based
 # replacement macros.  Use the raw builtin to avoid tripping up
@@ -2983,9 +3000,10 @@ m4_pattern_forbid([^dnl$])
 # undefines m4_defn.
 m4_ifdef([__m4_version__],
 [m4_debugmode([+d])
-m4_define([m4_defn], _m4_defn([m4_defn]))
-m4_define([m4_popdef], _m4_defn([m4_popdef]))
-m4_define([m4_undefine], _m4_defn([m4_undefine]))],
+m4_define([m4_defn], _m4_defn([_m4_defn]))
+m4_define([_m4_index], _m4_defn([m4_index]))
+m4_define([m4_popdef], _m4_defn([_m4_popdef]))
+m4_define([m4_undefine], _m4_defn([_m4_undefine]))],
 [m4_builtin([include], [m4sugar/foreach.m4])])
 
 # Rewrite the first entry of the diversion stack.


hooks/post-receive
--
GNU Autoconf source repository




reply via email to

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