Annotation of researchv10dc/man/mana/xstr.8, revision 1.1

1.1     ! root        1: .TH XSTR 8
        !             2: .CT 1 prog_c
        !             3: .SH NAME
        !             4: xstr \- preprocessor for sharing strings in C programs
        !             5: .SH SYNOPSIS
        !             6: .B xstr
        !             7: [
        !             8: .B -c
        !             9: ]
        !            10: [
        !            11: .B -
        !            12: ]
        !            13: [
        !            14: .I file
        !            15: ]
        !            16: .SH DESCRIPTION
        !            17: .I Xstr
        !            18: maintains a file
        !            19: .F strings
        !            20: into which strings in component parts of a large program are hashed.
        !            21: These strings are replaced with references to this common area.
        !            22: This serves to implement shared constant strings, most useful if they
        !            23: are also read-only.
        !            24: .PP
        !            25: The command
        !            26: .IP
        !            27: .L
        !            28: xstr -c name.c
        !            29: .PP
        !            30: will extract the strings from the named C source, replacing
        !            31: string references by expressions of the form
        !            32: .BI (&xstr[ number ])
        !            33: for some
        !            34: .I number.
        !            35: An appropriate declaration of
        !            36: .I xstr
        !            37: is prepended to the file.
        !            38: The resulting C text is placed in the file
        !            39: .BR x.c .
        !            40: The strings from this file are placed in the
        !            41: .F strings
        !            42: data base if they are not there already.
        !            43: Repeated strings and strings which are suffixes of existing strings
        !            44: do not cause changes to the data base.
        !            45: .PP
        !            46: After all components of a large program have been compiled a file
        !            47: .B xs.c
        !            48: declaring the common
        !            49: .I xstr
        !            50: space can be created by running
        !            51: .B xstr
        !            52: with no arguments.
        !            53: This
        !            54: .B xs.c
        !            55: file should then be compiled and loaded with the rest
        !            56: of the program.
        !            57: If possible, the array can be made read-only (shared) saving
        !            58: space and swap overhead.
        !            59: .PP
        !            60: Without option
        !            61: .BR -c ,
        !            62: creates files
        !            63: .I x.c
        !            64: and
        !            65: .I xs.c
        !            66: as before, but does not use or affect any
        !            67: .F strings
        !            68: file in the same directory.
        !            69: .PP
        !            70: It may be useful to run
        !            71: .I xstr
        !            72: after the C preprocessor if any macro definitions yield strings
        !            73: or if there is conditional code which contains strings
        !            74: which may not, in fact, be needed.
        !            75: .I Xstr
        !            76: reads from its standard input when the argument 
        !            77: .L -
        !            78: is given.
        !            79: An appropriate command sequence for running
        !            80: .I xstr
        !            81: after the C preprocessor is:
        !            82: .IP
        !            83: .EX
        !            84: cc -E name.c | xstr -c -
        !            85: cc -c x.c
        !            86: mv x.o name.o
        !            87: .EE
        !            88: .SH FILES
        !            89: .TF /tmp/xs*
        !            90: .TP
        !            91: .F strings
        !            92: Data base of strings
        !            93: .TP
        !            94: .F x.c
        !            95: Massaged C source
        !            96: .TP
        !            97: .F xs.c
        !            98: C source for definition of array
        !            99: .L xstr
        !           100: .TP
        !           101: .F /tmp/xs*
        !           102: Temp file
        !           103: .SH BUGS
        !           104: If a string is a suffix of another string in the data base,
        !           105: but the shorter string is seen first by
        !           106: .I xstr
        !           107: both strings will be placed in the data base, when just
        !           108: placing the longer one there will do.

unix.superglobalmegacorp.com

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