Make CLEANUP transitions work, so multiple NEWTOY() can exist in the same file.
Don't #undefine TT in the CLEANUP blocks of generated/flags.h, and #ifdef
around the other TT definition. That way you can put a union at the start
of your GLOBALS() with the arguments filled out by option parsing, and then
have multiple main() functions with different argumetns and different
FLAG_x macros, while sharing infrastructure that's not under lib.
diff --git a/scripts/mkflags.c b/scripts/mkflags.c
index c350b19..a8e5216 100644
--- a/scripts/mkflags.c
+++ b/scripts/mkflags.c
@@ -85,7 +85,7 @@
offlist = aflist = digest(allflags);
- printf("#ifdef CLEANUP_%s\n#undef CLEANUP_%s\n#undef FOR_%s\n#undef TT\n",
+ printf("#ifdef CLEANUP_%s\n#undef CLEANUP_%s\n#undef FOR_%s\n",
command, command, command);
while (offlist) {
@@ -99,7 +99,8 @@
}
printf("#endif\n\n");
- printf("#ifdef FOR_%s\n#define TT this.%s\n", command, command);
+ printf("#ifdef FOR_%s\n#ifndef TT\n#define TT this.%s\n#endif\n",
+ command, command);
while (aflist) {
if (aflist->lopt) {