autoconf-patches
[Top][All Lists]
Advanced

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

FYI: m4_dumpdefs


From: Akim Demaille
Subject: FYI: m4_dumpdefs
Date: 12 Oct 2000 09:49:06 +0200
User-agent: Gnus/5.0807 (Gnus v5.8.7) XEmacs/21.1 (Channel Islands)

I've just checked in an extension to libm4 which was extremely useful
while working on the `circular dependency' patch.

Index: ChangeLog
from  Akim Demaille  <address@hidden>

        * libm4.m4 (m4_dumpdefs, _m4_dumpdefs_up, _m4_dumpdefs_down): New
        macros.

Index: libm4.m4
===================================================================
RCS file: /cvs/autoconf/libm4.m4,v
retrieving revision 1.23
diff -u -r1.23 libm4.m4
--- libm4.m4 2000/09/28 14:26:51 1.23
+++ libm4.m4 2000/10/12 07:38:03
@@ -276,16 +276,45 @@
         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 ##



reply via email to

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