Annotation of researchv10no/cmd/odist/pax/man/man3/re.3, revision 1.1

1.1     ! root        1: .TH RE 3
        !             2: .SH NAME
        !             3: recomp, reexec, resub, refree, reerror \(mi regular expression library
        !             4: .SH SYNOPSIS
        !             5: .B #include <re.h>
        !             6: .PP
        !             7: .L reprogram* recomp(char* pattern, int flags)
        !             8: .PP
        !             9: .L int reexec(reprogram* re, char* source)
        !            10: .PP
        !            11: .L void resub(reprogram* re, char* old, char* new, char* destination, int flags)
        !            12: .PP
        !            13: .L void reerror(char* message)
        !            14: .PP
        !            15: .L void refree(reprogram* re)
        !            16: .SH DESCRIPTION
        !            17: .I recomp
        !            18: compiles a regular expression in
        !            19: .B pattern
        !            20: and returns a pointer to a compiled regular expression.
        !            21: The space is allocated by
        !            22: .IR malloc (3)
        !            23: and may be released by
        !            24: .IR refree .
        !            25: Regular expressions are as in
        !            26: .I egrep
        !            27: (see
        !            28: .IR grep (1))
        !            29: except that newlines are treated as ordinary
        !            30: characters and
        !            31: .B $
        !            32: matches the end of a null-terminated string.
        !            33: .B flags
        !            34: may be
        !            35: .B RE_EDSTYLE
        !            36: which specifies
        !            37: .IR ed (1)
        !            38: style special characters,
        !            39: .BR \e( ,
        !            40: .BR \e) ,
        !            41: .BR \e? ,
        !            42: .B \e+
        !            43: and
        !            44: .B \e|
        !            45: for the
        !            46: .IR egrep (1)
        !            47: .BR ( ,
        !            48: .BR ) ,
        !            49: .BR ? ,
        !            50: .B +
        !            51: and
        !            52: .BR | ,
        !            53: respectively.
        !            54: .PP
        !            55: .I reexec
        !            56: matches the null-terminated
        !            57: .B source
        !            58: string against the compiled regular expression
        !            59: .I re
        !            60: from a previous call to
        !            61: .IR recomp .
        !            62: If it matches,
        !            63: .I reexec
        !            64: returns a non-zero value.
        !            65: If
        !            66: .B flags
        !            67: is
        !            68: .B RE_MATCH
        !            69: then the array
        !            70: .B re\->match
        !            71: is filled with character pointers to the substrings of
        !            72: .B source
        !            73: that correspond to the
        !            74: parenthesized subexpressions of 
        !            75: .BR pattern :
        !            76: .B re\->match[i].sp
        !            77: points to the beginning and
        !            78: .B re\->match[i].ep
        !            79: points just beyond
        !            80: the end of substring
        !            81: .BR i .
        !            82: (Subexpression
        !            83: .B i
        !            84: begins at the
        !            85: .BR i th
        !            86: matched left parenthesis, counting from 1.)
        !            87: Pointers in
        !            88: .B re\->match[0]
        !            89: pick out the substring that corresponds to
        !            90: the entire regular expression.
        !            91: Unused elements of
        !            92: .B re\->match
        !            93: are filled with zeros.
        !            94: Matches involving
        !            95: .BR * ,
        !            96: .BR + ,
        !            97: and 
        !            98: .B ?
        !            99: are extended as far as possible.
        !           100: A maximum of 9 subexpressions will be matched.
        !           101: The structure of elements of
        !           102: .B re\->match 
        !           103: is:
        !           104: .nf
        !           105: .ta 8n
        !           106:        typedef struct
        !           107:        {
        !           108:                char* sp;
        !           109:                char* ep;
        !           110:        } rematch;
        !           111: .fi
        !           112: .LP
        !           113: .I resub
        !           114: places in
        !           115: .I destination
        !           116: a substitution instance of
        !           117: .B old
        !           118: to
        !           119: .B new
        !           120: in
        !           121: .B source
        !           122: in the context of the last
        !           123: .I reexec
        !           124: performed on
        !           125: .IR re\->match .
        !           126: Each instance of
        !           127: .BI \e n ,
        !           128: where
        !           129: .I n
        !           130: is a digit, is replaced by the
        !           131: string delimited by
        !           132: .BI re\->match[ n ].sp
        !           133: and
        !           134: .BI re\->match[ n ].ep .
        !           135: Each instance of 
        !           136: .B &
        !           137: is replaced by the string delimited by
        !           138: .B re\->match[0].sp
        !           139: and
        !           140: .BR re\->match[0].ep .
        !           141: If
        !           142: .B RE_ALL
        !           143: is set in
        !           144: .B flags
        !           145: then all occurrences of
        !           146: .B old
        !           147: are replaced by
        !           148: .IR new .
        !           149: If
        !           150: .B RE_LOWER
        !           151: .RB [ RE_UPPER ]
        !           152: is set in
        !           153: .B flags
        !           154: then
        !           155: .B old
        !           156: is converted to lower [upper] case.
        !           157: .LP
        !           158: .I reerror,
        !           159: called whenever an error is detected in
        !           160: .I recomp,
        !           161: .I reexec,
        !           162: or
        !           163: .I resub,
        !           164: writes the string
        !           165: .B msg
        !           166: on the standard error file and exits.
        !           167: .I reerror
        !           168: may be replaced to perform
        !           169: special error processing.
        !           170: .SH DIAGNOSTICS
        !           171: .I recomp
        !           172: returns 0 for an invalid expression or other failure.
        !           173: .I reexec
        !           174: returns 1 if
        !           175: .B source
        !           176: is accepted, 0 otherwise.
        !           177: .SH "SEE ALSO"
        !           178: ed(1), grep(1), expr(1)

unix.superglobalmegacorp.com

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