unifdef man page on DigitalUNIX

Man page or keyword search:  
man Server   12896 pages
apropos Keyword Search (all sections)
Output format
DigitalUNIX logo
[printable version]

unifdef(1)							    unifdef(1)

NAME
       unifdef - Removes #ifdefed lines

SYNOPSIS
       unifdef [-tlc] [-Dsymbol] [-idsymbol] [-iusymbol] [file] [-Usymbol]

       The  unifdef  command  partially	 simulates  the behavior of the C pre‐
       processor in processing #ifdef conditionals.

OPTIONS
       Complements the action of unifdef; retains lines that would normally be
       removed	and  removes lines that would normally be retained.  Specifies
       symbol as a defined #ifdef symbol.  Specifies defined lines inside cer‐
       tain  #ifdefs  to be ignored but copied out.  Specifies undefined lines
       inside certain #ifdefs to be ignored  and  not  copied  out.   Replaces
       removed	lines  with  blank  lines instead of deleting them.  Processes
       plain text (rather than C code) input. The unifdef command does not try
       to  recognize  comments,	 single	 quotes, and double quotes.  Specifies
       symbol as an undefined #ifdef symbol.

DESCRIPTION
       The unifdef command recognizes nested  #ifdefs,	comments,  single  and
       double  quotes  of C syntax so that it can function correctly, but does
       not include files or interpret macros. The unifdef command  recognizes,
       but does not remove comments.

       The  unifdef  command takes its input from stdin if no file argument is
       given, and copies its output to stdout.

       You specify the symbols you want defined	 with  -Dsymbol	 or  undefined
       with -Usymbol and the lines inside those #ifdefs are copied to the out‐
       put or removed, as appropriate. The #ifdef, #ifndef, #else, #elif,  and
       endif  lines  associated	 with  symbol  are  also  removed. The #ifdefs
       involving unspecified symbols are untouched and copied out  along  with
       their  associated  #ifdef,  #else, elif, and #endif lines.  If the same
       symbol appears in more than one argument, only the first occurrence  is
       significant.  For instance, if an #ifdef X occurs nested inside another
       #ifdef X, the inside #ifdef is considered an unrecognized symbol.

       If you use #ifdefs to delimit non-C lines, such as comments  or	unfin‐
       ished code, it is necessary to specify which symbols are to be used for
       that purpose.  Otherwise, the unifdef command tries to parse for quotes
       and comments in those #ifdef lines.

   Keywords
       The following keywords can be used with the unifdef command:

       ifdef ifndef else endif elif

       The  unifdef  command  uses  the	 elif  keyword	as follows. (Note that
       “Understood” means unifdef knows how to convert elif  to	 if.)	Under‐
       stood Not understood Not understood

       For example:

       # ifdef X x # elif defined (Y) y # elif defined (A)  || defined (B) a #
       else default # endif

       The following list shows the results of using  the  elif	 keyword  with
       variables:

       -DX x

       -UX  #  if  defined  (Y)	 y # elif defined (A)  || defined (B) a # else
       default # endif -UX -DY y

       -UY -UX # if defined (Y) y # elif defined (A)  || defined (B) a #  else
       default # endif

       -UY  -UX	 -DA # if defined (Y) y # elif defined (A)  || defined (B) a #
       else default # endif

NOTES
       The unifdef command cannot process cpp constructs such as:

       #if defined(X) || defined(Y)

DIAGNOSTICS
       The unifdef command can fail for several reasons: a  premature  end  of
       file, or an inappropriate else, elif, or endif.

EXIT STATUS
       Exit  status  is	 0 if output is an exact copy of input, 1 if not, 2 if
       the unifdef command fails.

EXAMPLES
       The following command line causes the unifdef command to read the  file
       original.c  and	remove the #ifdef A lines.  It then removes everything
       following an #elif/#else associated with	 the  #ifdef  A	 down  to  the
       #endif:	unifdef -DA original.c > modified.c The following command line
       causes the unifdef command to read the file original.c, and remove  the
       #ifdef  A  down to either its associated #elif/#else, or its associated
       #endif: unifdef -UA original.c > modified.c

	      In the case of the #elif, the #elif is replaced with #if. In the
	      case  of	#else,	the #else is deleted along with its associated
	      #endif.

SEE ALSO
       Commands:  diff(1)

								    unifdef(1)
[top]

List of man pages available for DigitalUNIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net