]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
* libm4.m4 (m4_dumpdefs, _m4_dumpdefs_up, _m4_dumpdefs_down): New
authorAkim Demaille <akim@epita.fr>
Thu, 12 Oct 2000 07:38:42 +0000 (07:38 +0000)
committerAkim Demaille <akim@epita.fr>
Thu, 12 Oct 2000 07:38:42 +0000 (07:38 +0000)
macros.

ChangeLog
libm4.m4

index 42605526c92145b8a08eda89e7d42dca04c33e94..37fe6bc6070bde5c140b45e017fb2976d7417d27 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2000-10-12  Akim Demaille  <akim@epita.fr>
+
+       * libm4.m4 (m4_dumpdefs, _m4_dumpdefs_up, _m4_dumpdefs_down): New
+       macros.
+
 2000-10-11  Pavel Roskin  <proski@gnu.org>
 
        * tests/atgeneral.m4 (AT_CHECK): Make sure that $? is set to 0
index 8b6d3188813829c2bd23fee79be09c90ba77fd34..7fd7b813a789e68464fc1c8d78a65d1afa77722a 100644 (file)
--- a/libm4.m4
+++ b/libm4.m4
@@ -276,17 +276,46 @@ define([m4_match],
         regexp([$1], [$2]), -1, [m4_match([$1], m4_shiftn(3, $@))],
         [$3])])
 
+
 # m4_do(STRING, ...)
 # ------------------
 # This macro invokes all its arguments (in sequence, of course).  It is
 # useful for making your macros more structured and readable by dropping
 # unecessary dnl's and have the macros indented properly.
-
 define([m4_do],
   [ifelse($#, 0, [],
           $#, 1, [$1],
           [$1[]m4_do(m4_shift($@))])])
 
+
+# _m4_dumpdefs_up(NAME)
+# ---------------------
+define([_m4_dumpdefs_up],
+[ifdef([$1],
+       [pushdef([_m4_dumpdefs], defn([$1]))dnl
+dumpdef([$1])dnl
+popdef([$1])dnl
+_m4_dumpdefs_up([$1])])])
+
+
+# _m4_dumpdefs_down(NAME)
+# -----------------------
+define([_m4_dumpdefs_down],
+[ifdef([_m4_dumpdefs],
+       [pushdef([$1], defn([_m4_dumpdefs]))dnl
+popdef([_m4_dumpdefs])dnl
+_m4_dumpdefs_down([$1])])])
+
+
+# m4_dumpdefs(NAME)
+# -----------------
+# Similar to `dumpdef(NAME)', but if NAME was pushdef'ed, display its
+# value stack (most recent displayed first).
+define([m4_dumpdefs],
+[_m4_dumpdefs_up([$1])dnl
+_m4_dumpdefs_down([$1])])
+
+
 ## --------------------- ##
 ## Implementing m4 loops ##
 ## --------------------- ##