when i say i'll use C99 that's mostly a concession to be completely honest.
sure i like types like uint32_t and whatnot of fixed sizes. But I am perfectly capable of just using C89 instead and setting compliler specific appropriate data types to get that using a preprocessor. C89's enough.
@[email protected] my "c99" is basically c89 plus stdint, stdbool, // comments, and variable declarations elsewhere than the top of a function.

maaaaybe VLAs and variadic macros but i don't use either of those often.

i use a lot more things from C11 and C23 than i do C99 and most of those things, too, can be added to c89 or c99 compilers with little but a header file
@linear i never use c11/c23 things because they dont feel necessary and just make my stuff less portable for no reason
@[email protected] c11 threads are nice and there's single-header portable implementations available that work with strict c89

#embed is nice and it's generally pretty feasible to get a preprocesor with modern features like this even with a decades old busted vendor compiler

anonymous structs and unions are really nice syntax sugar for certain types of network, event handling, parsing, and interpreter type things, a lot of ancient compilers already had it because it was an obvious thing to add, and sometimes missing support can be hacked around with macro tricks

defer behavior very similar to that in the draft TS can also be done in both modern and many older compilers (dating back at least as far as ~25 years ago ime) using a combination of macros and compiler-specific behavior
@linear still not interesting and less portable than not using them, especially stuff like defer
@[email protected] your loss. personally i've gotten tired of being backed into a corner by other peoples' bad API designs and forced to use goto for error handling and cleanup boilerplate, when defer cleanly solves this and so far works in every circumstance i've had to care about in this regard even though exactly 0 compilers officially support it yet
@linear i like goto
@[email protected] and i like it when the boilerplate for writing a FUSE module will fit on a single page of code and still be readable
@linear i don't consider new c syntax to be readable to my old brain that lives in 80s hardware