UNIFDEF(1) BSD UNIFDEF(1)
NAME
unifdef - remove ifdef'ed lines
SYNOPSIS
unifdef [ -t ] [ -l ] [-c ] [ -Dsym | -Usym | -idsym | -iusym ] ... [
file ]
DESCRIPTION
unifdef is useful for removing ifdef'ed lines from a file while otherwise
leaving the file alone. unifdef is like a stripped-down C preprocessor:
it is smart enough to deal with the nested ifdefs, comments, single and
double quotes of C syntax so that it can do its job, but it doesn't do
any including or interpretation of macros. Neither does it strip out
comments, though it recognizes and ignores them.
unifdef copies its output to the standard output and will take its input
from the standard input if no file argument is given.
OPTIONS
-t Refrain from attempting to recognize comments and single and
double quotes. Used for plain text files (not C code).
-l Replace removed lines with blank lines instead of deleting
them.
-c Complement the operation of unifdef: the lines that would have
been removed or blanked are retained and vice versa.
-Dsym Specify that sym is defined.
-Usym Specify that sym is undefined. The lines inside those ifdefs
will be removed. The ifdef, ifndef, else, and endif lines
associated with sym will also be removed. Ifdefs involving
symbols you don't specify are untouched and copied out along
with their associated ifdef, else, and endif lines. If an
ifdef X occurs nested inside another ifdef X, then the inside
ifdef is treated as if it were an unrecognized symbol. If the
same symbol appears in more than one argument, only the first
occurrence is significant.
-idsym Specify that sym is defined. If you use ifdefs to delimit
non-C lines, such as comments or code which is under
construction, then you must use this option tell unifdef which
symbols are used for that purpose so that it won't try to parse
for quotes and comments in those ifdef'ed lines. The lines
inside are ignored but copied out.
-iusym Specify that sym is undefined. This option complements -id.
DIAGNOSTICS
Premature EOF, inappropriate else or endif.
Exit status is 0 if output is exact copy of input, 1 if not, 2 if
trouble.
BUGS
Does not know how to deal with cpp consructs such as
#if defined(X) || defined(Y)
SEE ALSO
diff(1)