Ok, I made a script to grep all the `#define` and `#undef` symbols in `config.h` and Geany appears to be fairly careful using `ifdef` `ifndef` or `defined()`, Scintilla has at least one place where it compares a symbol to 0, but I think its its own internal one so fine.
But ctags!!!! `if HAVE_FOO && HAVE_BAR && HAVE_BLETCH` all over the place. This relies on the identifiers having been defined `1` or it would become `if && &&` after the defined but empty identifiers were substituted. Sigh!!!
So I guess we have no choice but to continue defining `1` until C23 when `true` will be accepted :-)