


     UUUUNNNNIIIIFFFFDDDDEEEEFFFF((((1111))))               UUUUNNNNIIIIXXXX 5555....0000 ((((RRRRaaaannnndddd))))               UUUUNNNNIIIIFFFFDDDDEEEEFFFF((((1111))))



     NNNNAAAAMMMMEEEE
          unifdef - remove ifdef'ed lines

     SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
          uuuunnnniiiiffffddddeeeeffff [ ----tttt ----llll ----cccc ----dddd_s_y_m ----uuuu_s_y_m ----iiiidddd_s_y_m ----iiiiuuuu_s_y_m ] ...  [ file ]

     DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
          _U_n_i_f_d_e_f is useful for removing ifdef'ed lines from a file
          while otherwise leaving the file alone.  _U_n_i_f_d_e_f 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.

          You specify which symbols you want defined (----dddd_s_y_m) or
          undefined (----uuuu_s_y_m) and the lines inside those ifdefs will be
          copied to the output or removed as appropriate.  The ifdef,
          ifndef, else, and endif lines associated with _s_y_m will also
          be removed.  Ifdefs involving symbols you don't specify and
          ``#if'' control lines 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.

          The ----llll option causes _u_n_i_f_d_e_f to replace removed lines with
          blank lines instead of deleting them.

          If you use ifdefs to delimit non-C lines, such as comments
          or code which is under construction, then you must tell
          _u_n_i_f_d_e_f which symbols are used for that purpose so that it
          won't try to parse for quotes and comments in those ifdef'ed
          lines.  You specify that you want the lines inside certain
          ifdefs to be ignored but copied out with ----iiiidddd_s_y_m and ----iiiiuuuu_s_y_m
          similar to ----dddd_s_y_m and ----uuuu_s_y_m above.

          If you want to use _u_n_i_f_d_e_f for plain text (not C code), use
          the ----tttt option.  This makes _u_n_i_f_d_e_f refrain from attempting
          to recognize comments and single and double quotes.

          _U_n_i_f_d_e_f copies its output to _s_t_d_o_u_t and will take its input
          from _s_t_d_i_n if no _f_i_l_e argument is given.  If the ----cccc argument
          is specified, then the operation of _u_n_i_f_d_e_f is complemented,
          i.e. the lines that would have been removed or blanked are
          retained and vice versa.

          _U_n_i_f_d_e_f works nicely with the ----iiii_s_y_m option recently added to
          _d_i_f_f at Rand.

     SSSSEEEEEEEE AAAALLLLSSSSOOOO



     PPPPaaaaggggeeee 1111                                          ((((pppprrrriiiinnnntttteeeedddd 7777////22227777////88886666))))






     UUUUNNNNIIIIFFFFDDDDEEEEFFFF((((1111))))               UUUUNNNNIIIIXXXX 5555....0000 ((((RRRRaaaannnndddd))))               UUUUNNNNIIIIFFFFDDDDEEEEFFFF((((1111))))



          diff(1)

     DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
          Premature EOF, inappropriate else or endif.

          Exit status is 0 if output is exact copy of input, 1 if not,
          2 if trouble.

     AAAAUUUUTTTTHHHHOOOORRRR
          Dave Yost, The Rand Corporation

     BBBBUUUUGGGGSSSS
          Should try to deal with ``#if'' lines.










































     Page 2                                          (printed 7/27/86)



