unifdef(1)




NAME

     unifdef - resolve and remove ifdef'ed lines from  C  program
     source


SYNOPSIS

     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 recog-
     nizes  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 associated ifdef, else, and
     endiff1 lines.

     If an ifdefX occurs nested inside another ifdefX,  then  the
     inside  ifdef  is treated as if it were an unrecognized sym-
     bol. 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 argu-
     ment is given.


OPTIONS

     The following options are supported:

     -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 attempting to
           recognize comments and single and double quotes.

     -Dname
           Lines associated with the defined symbol name.

     -Uname
           Lines associated with the undefined symbol name.

     -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 unde-
           fined symbol name.


EXIT STATUS

     The following exit values are returned:

     0     Successful operation.

     1     Operation failed.


ATTRIBUTES

     See attributes(5) for descriptions of the  following  attri-
     butes:

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Availability                | SUNWbtool                   |
    |_____________________________|_____________________________|


SEE ALSO

     diff(1), attributes(5)


DIAGNOSTICS

     Premature EOF
           Inappropriate else or endif.


Man(1) output converted with man2html