unifdef (selectively processes C conditional compilation)
The unifdef utility selectively processes conditional C preprocessor #if
and #ifdef directives. It removes from a file both the directives and the
additional text that they delimit, while otherwise leaving the file alone.
It is useful for avoiding distractions when studying code that uses
#ifdef heavily for portability: the author's original motivation was to
understand xterm's pty handling code. It can be used as a lightweight
preprocessor; for example the Linux kernel uses unifdef to strip out
#ifdef __KERNEL__ sections from the headers it exports to userland. You
can use unifdef with languages other than C; for example UIT, a publisher
in Cambridge, uses unifdef with LaTeX.