changeset 1203:2a68f22aa286

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.
author Rob Landley <rob@landley.net>
date Sun, 16 Feb 2014 17:31:33 -0600
parents 4f080cdb2f6e
children a0f08d393def
files scripts/mkflags.c
diffstat 1 files changed, 3 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/mkflags.c	Sun Feb 16 11:09:23 2014 -0600
+++ b/scripts/mkflags.c	Sun Feb 16 17:31:33 2014 -0600
@@ -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) {