unifdef(1-BSD) MISC. REFERENCE MANUAL PAGES unifdef(1-BSD)
NAME
unifdef - resolve and remove ifdef'ed lines from C program
source
SYNOPSIS
/usr/ucb/unifdef [ -clt ] [ -Dname ] [ -Uname ] [ -iDname ]
[ -iUname ] ... [ filename ]
DESCRIPTION
unifdef removes ifdefed lines from a file while otherwise
leaving the file alone. It is smart enough to deal with the
nested ifdefs, comments, single and double quotes of C syn-
tax, but it does not do any including or interpretation of
macros. Neither does it strip out comments, though it
recognizes and ignores them. You specify which symbols you
want defined with -D options, and which you want undefined
with -U options. Lines within those ifdefs will be copied
to the output, or removed, as appropriate. Any ifdef,
ifndef, else, and endif lines associated with filename will
also be removed. ifdefs involving symbols you do not
specify are untouched and copied out along with their asso-
ciated ifdef, else, and endif lines. If an ifdefX occurs
nested inside another ifdefX, 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. unifdef copies its output to the
standard output and will take its input from the standard
input if no filename argument is given. The following
options are available:
-c Complement the normal operation. Lines that would
have been removed or blanked are retained, and
vice versa.
-l Replace ``lines removed'' lines with blank lines.
-t Plain text option. unifdef refrains from attempt-
ing to recognize comments and single and double
quotes.
-iDname Ignore, but print out, lines associated with the
defined symbol name. If you use ifdefs to delimit
non-C lines, such as comments or code which is
under construction, then you must tell unifdef
which symbols are used for that purpose so that it
will not try to parse for quotes and comments
within them.
-iUname Ignore, but print out, lines associated with the
undefined symbol name.
1
unifdef(1-BSD) MISC. REFERENCE MANUAL PAGES unifdef(1-BSD)
SEE ALSO
cc(1) cc(1) in the Programmer's Reference Manual.
diff(1) in the User's Reference Manual.
DIAGNOSTICS
Premature EOF Inappropriate else or endif. Exit
status is 0 if output is exact copy of
input, 1 if not, 2 if unifdef encounters
problems.
2