Changes since 1.4:
- Fixed some more obscure corner cases, involving parameterised macro
expansion within conditionals e.g. #if FOO(BAR,QUUX)
- Internal refactoring, affecting parts of the library API.
* Added a "--pragma" option to retain #pragma in the output.
* Fixed a number of obscure corner cases involving the interaction of
multiple features e.g. foo##__LINE__.
* Added the "--nowarn" option.
Changes:
- Added a "--cpp" option for drop-in compatibility with standard cpp.
It causes cpphs to accept standard cpp flags and translate them to
cpphs equivalents. Compatibility options include: -o, -ansi, -traditional,
-stdc, -x, -include, -P, -C, -CC, -A. The file behaviour is different
too - if two filenames are given on the commandline, then the second is
treated as the output location.
- Fixed a corner-case bug in evaluating chained and overlapping #ifdefs.
Changes:
* Re-arranged the source files into hierarchical libraries.
* Exposed the library interface as an installable Cabal package,
with Haddock documentation.
* Added the --unlit option, for removing literate-style comments.
From changelog:
Version 1.1
-----------
* Fix the .cabal way of building cpphs.
* Update the --version reported (forgotten in 1.0, which still reports 0.9)
* No longer throws an error when given an empty file as input.
in Haskell. This version of cpp is pretty-much feature-complete, and
compatible with the -traditional style. It has two main modes:
* conditional compilation only (--nomacro),
* and full macro-expansion (default).