# Written by Jerry James # December 13, 2002 # Produce a list of macros and the packages/files in which they are defined BEGIN { FS = "[\/:; \t]" } { for (i = 1; i <= NF; i++) # Pick up both defmacro and defmacro* if ($i == "(defmacro" || i == "(defmacro*") { mac = i + 1 # If the macro name contains a comma, we don't know how to deal with it if ($mac ~ ",") continue for (pack = i - 1; pack >= 1; pack--) if ($pack ~ "\.el") { pack-- break } if (pack > 0) { filename = pack + 1 printf("%s\t%s/%s\n", $mac, $pack, $filename) } break } }