Annotation of 43BSDReno/pgrm/unifdef/unifdef.1, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1985 The Regents of the University of California.
                      2: .\" All rights reserved.
                      3: .\"
                      4: .\" This code is derived from software contributed to Berkeley by
                      5: .\" Dave Yost.
                      6: .\"
                      7: .\" Redistribution and use in source and binary forms are permitted
                      8: .\" provided that the above copyright notice and this paragraph are
                      9: .\" duplicated in all such forms and that any documentation,
                     10: .\" advertising materials, and other materials related to such
                     11: .\" distribution and use acknowledge that the software was developed
                     12: .\" by the University of California, Berkeley.  The name of the
                     13: .\" University may not be used to endorse or promote products derived
                     14: .\" from this software without specific prior written permission.
                     15: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                     16: .\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                     17: .\" WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     18: .\"
                     19: .\"    @(#)unifdef.1   6.3 (Berkeley) 12/14/88
                     20: .\"
                     21: .TH UNIFDEF 1 "December 14, 1988"
                     22: .SH NAME
                     23: unifdef \- remove ifdef'ed lines
                     24: .SH SYNOPSIS
                     25: \fBunifdef\fR
                     26: [
                     27: \fB\-t\fR
                     28: \fB\-l\fR
                     29: \fB\-c\fR
                     30: \fB\-D\fR\fIsym\fR 
                     31: \fB\-U\fR\fIsym\fR 
                     32: \fB\-iD\fR\fIsym\fR
                     33: \fB\-iD\fR\fIsym\fR
                     34: ] ...  [ file ]
                     35: .SH DESCRIPTION
                     36: \fIUnifdef\fR is useful for removing ifdef'ed lines
                     37: from a file while otherwise leaving the file alone.
                     38: \fIUnifdef\fR acts on
                     39: #ifdef, #ifndef, #else, and #endif lines,
                     40: and it knows only enough about C
                     41: to know when one of these is inactive
                     42: because it is inside
                     43: a comment,
                     44: or a single or double quote.
                     45: Parsing for quotes is very simplistic:
                     46: when it finds an open quote,
                     47: it ignores everything (except escaped quotes)
                     48: until it finds a close quote, and
                     49: it will not complain if it gets
                     50: to the end of a line and finds no backslash for continuation.
                     51: .PP
                     52: If you want to use \fIunifdef\fR
                     53: for plain text (not C code),
                     54: use the \fB\-t\fR option,
                     55: which disables this parsing for
                     56: C comments and quotes.
                     57: .PP
                     58: You specify which symbols you want defined
                     59: (\fB\-D\fR\fIsym\fR)
                     60: or undefined
                     61: (\fB\-U\fR\fIsym\fR)
                     62: and the lines inside those ifdefs will be copied to the output or removed as
                     63: appropriate.
                     64: The ifdef, ifndef, else, and endif lines associated with
                     65: \fIsym\fR will also be removed.
                     66: Ifdefs involving symbols you don't specify
                     67: and ``#if'' control lines
                     68: are untouched and copied out
                     69: along with their associated
                     70: ifdef, else, and endif lines.
                     71: If an ifdef X occurs nested inside another ifdef X, then the
                     72: inside ifdef is treated as if it were an unrecognized symbol.
                     73: If the same symbol appears in more than one argument,
                     74: the last occurrence dominates.
                     75: .PP
                     76: The \fB\-l\fR option causes \fIunifdef\fR
                     77: to replace removed lines with blank lines
                     78: instead of deleting them.
                     79: .PP
                     80: If your C code uses ifdefs to delimit non-C lines,
                     81: such as comments
                     82: or code which is under construction,
                     83: then you must tell \fIunifdef\fR
                     84: which symbols are used for that purpose so that it won't try to parse
                     85: for quotes and comments
                     86: inside those ifdefs.
                     87: You specify ignored ifdefs with
                     88: \fB\-iD\fR\fIsym\fR
                     89: and
                     90: \fB\-iU\fR\fIsym\fR
                     91: similar to
                     92: \fB\-D\fR\fIsym\fR
                     93: and
                     94: \fB\-U\fR\fIsym\fR
                     95: above.
                     96: .PP
                     97: \fIUnifdef\fR copies its output to \fIstdout\fR
                     98: and will take its input from \fIstdin\fR
                     99: if no \fIfile\fR argument is given.
                    100: If the \fB\-c\fR argument is specified,
                    101: then the operation of \fIunifdef\fR is complemented,
                    102: i.e. the lines that would have been removed or blanked
                    103: are retained and vice versa.
                    104: .PP
                    105: \fIUnifdef\fR works nicely with the \fB\-D\fR\fIsym\fR option added
                    106: to \fIdiff\fR(1) as of the 4.1 Berkeley Software Distribution.
                    107: .SH "SEE ALSO"
                    108: diff(1)
                    109: .SH DIAGNOSTICS
                    110: Inappropriate else or endif.
                    111: .br
                    112: Premature EOF with line numbers of the unterminated #ifdefs.
                    113: .PP
                    114: Exit status is 0 if output is exact copy of input, 1 if not, 2 if trouble.
                    115: .SH AUTHOR
                    116: Dave Yost for The Rand Corporation.
                    117: .br
                    118: Still maintained independently by Dave Yost as of 3/85
                    119: .SH BUGS
                    120: Should try to deal with ``#if'' lines.
                    121: .br
                    122: Doesn't work correctly if input contains null characters.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.