diff options
-rw-r--r-- | main.c | 6 | ||||
-rw-r--r-- | toys/toylist.h | 14 |
2 files changed, 8 insertions, 12 deletions
@@ -8,8 +8,12 @@ // Populate toy_list[]. +#undef NEWTOY +#undef OLDTOY +#define NEWTOY(name, opts, flags) {#name, name##_main, opts, flags}, +#define OLDTOY(name, oldname, opts, flags) {#name, oldname##_main, opts, flags}, + struct toy_list toy_list[] = { -#define FROM_MAIN #include "toys/toylist.h" }; diff --git a/toys/toylist.h b/toys/toylist.h index 6914f4ee..d6b9866c 100644 --- a/toys/toylist.h +++ b/toys/toylist.h @@ -5,18 +5,10 @@ */ -// When #included from main.c, provide the guts for toy_list[] +// Provide function declarations and structs. Note that main.c #includes this +// file twice (with different macros) to populate toy_list[]. -#ifdef FROM_MAIN -#undef NEWTOY -#undef OLDTOY -#define NEWTOY(name, opts, flags) {#name, name##_main, opts, flags}, -#define OLDTOY(name, oldname, opts, flags) {#name, oldname##_main, opts, flags}, - -// When #included from toys.h, provide function declarations and structs. -// The #else is because main.c #includes this file twice. - -#else +#ifndef NEWTOY #define NEWTOY(name, opts, flags) int name##_main(void); #define OLDTOY(name, oldname, opts, flags) |