News for hackers. Stuff that matters.
Re:Using the C preprocessor as an HTML templating engine by ninjin on Monday June 17, 2024 @01:18AM (#40702528)
> 1. built-in macro names that require arguments such as `define' are not "expanded" if you don't follow them with parentheses

This one is pure pain. Thankfully, the only implementation I have encountered that does this is Heirloom's [1]. I doubt POSIX will do it, but I wish they would just define this behaviour out of existence for the built-ins as it is a minefield when trying to write prose (or comments, for that matter).

[1]: https://heirloom.sourceforge.net

As for outputs being interpreted iteratively, there is no way around it that I know of. To make invocation more explicit, I have just settled on prefixing macros with an underscore and it has worked well so far as it is uncommon in English text, HTML, and CSS.

There are no comments on this comment yet.