tradcpp is a K&R-style ("traditional") C preprocessor. It was written to support
historical uses of the C preprocessor for preprocessing things that aren't C, as
the preprocessors that ship with C compilers are increasingly unsuitable for
this task and/or don't provide a traditional mode at all.
Update to 0.5.3
- Fix markup typo in the man page.
- Abort on line numbering or column numbering overflow. Line numbers are limited
to values that fit in "unsigned int". Also reject input lines longer than
2^32-1 characters. It seems reasonable to presume that any input that violates
these constraints is someone screwing around and not a serious attempt to
compile or preprocess anything useful. Done in response to n2129, but without
getting into any of the silliness found there.
- Recognize __ia64__ for IA64 builds.
- Recognize __aarch64__ for 64-bit ARM builds, as sent in by various people.
- Recognize __riscv__ and __riscv64__ for risc-v builds.
- Update to 0.5.2
- Add my LOCAL to MASTER_SITES
- Fix typo in -U usage message, noticed by Joerg.
- Add a -debuglog option to send an execution trace to a file. Intended to be
used when debugging imake templates and other complex input, not for debugging
tradcpp itself.
Update to 0.3:
Changes:
- Don't eval the control expression of the first #if of a block when
already in a false block; it might not be valid
- Don't recognize comments within character constants.
- Don't recognize macro argument parentheses or commas within strings,
or within character constants either.
Update to 0.2
Changes:
- auto-recognize more builtin PowerPC and mips macros
- pass -Wunused
- allow absolute paths in include files
- don't use getprogname() in the name of portability
- add tests
- clean out usage of sys/cdefs.h macros and don't use the implementation
namespace
- make -Wcomment work again
- fix handling of relative includes
- provide a man page
- other minor improvements
tradcpp is a traditional (K&R-style) preprocessor.
It has the particular property that it doesn't (for the most part)
trash whitespace, so it can be used on makefiles.
This is only release 0.1; it is missing some features and doubtless
has quite a few bugs, but it's capable of building at least some
packages when used with imake.