Annotation of cci/usr/src/man/man1/xstr.1, revision 1.1.1.1

1.1       root        1: .TH XSTR 1 "24 February 1979"
                      2: .UC
                      3: .SH NAME
                      4: xstr \- extract strings from C programs to implement shared strings
                      5: .SH SYNOPSIS
                      6: .B xstr
                      7: [
                      8: .B \-c
                      9: ] [
                     10: .B \-
                     11: ] [
                     12: file
                     13: ]
                     14: .SH DESCRIPTION
                     15: .I Xstr
                     16: maintains a file
                     17: .I strings
                     18: into which strings in component parts of a large program are hashed.
                     19: These strings are replaced with references to this common area.
                     20: This serves to implement shared constant strings, most useful if they
                     21: are also read-only.
                     22: .PP
                     23: The command
                     24: .PP
                     25: .DT
                     26:        \fBxstr \-c\fR name
                     27: .PP
                     28: will extract the strings from the C source in name, replacing
                     29: string references by expressions of the form (&xstr[number])
                     30: for some number.
                     31: An appropriate declaration of
                     32: .I xstr
                     33: is prepended to the file.
                     34: The resulting C text is placed in the file
                     35: .I x.c,
                     36: to then be compiled.
                     37: The strings from this file are placed in the
                     38: .I strings
                     39: data base if they are not there already.
                     40: Repeated strings and strings which are suffices of existing strings
                     41: do not cause changes to the data base.
                     42: .PP
                     43: After all components of a large program have been compiled a file
                     44: .I xs.c
                     45: declaring the common
                     46: .I xstr
                     47: space can be created by a command of the form
                     48: .PP
                     49: .DT
                     50:        \fBxstr\fR
                     51: .PP
                     52: This
                     53: .I xs.c
                     54: file should then be compiled and loaded with the rest
                     55: of the program.
                     56: If possible, the array can be made read-only (shared) saving
                     57: space and swap overhead.
                     58: .PP
                     59: .I Xstr
                     60: can also be used on a single file.
                     61: A command
                     62: .PP
                     63: .DT
                     64:        \fBxstr\fR name
                     65: .PP
                     66: creates files
                     67: .I x.c
                     68: and
                     69: .I xs.c
                     70: as before, without using or affecting any
                     71: .I strings
                     72: file in the same directory.
                     73: .PP
                     74: It may be useful to run
                     75: .I xstr
                     76: after the C preprocessor if any macro definitions yield strings
                     77: or if there is conditional code which contains strings
                     78: which may not, in fact, be needed.
                     79: .I Xstr
                     80: reads from its standard input when the argument `\-' is given.
                     81: An appropriate command sequence for running
                     82: .I xstr
                     83: after the C preprocessor is:
                     84: .PP
                     85: .nf
                     86: .DT
                     87:        \fBcc \-E\fR name.c | \fBxstr \-c\fR \-
                     88:        \fBcc \-c\fR x.c
                     89:        \fBmv\fR x.o name.o
                     90: .fi
                     91: .PP
                     92: .I Xstr
                     93: does not touch the file
                     94: .I strings
                     95: unless new items are added, thus
                     96: .I make
                     97: can avoid remaking
                     98: .I xs.o
                     99: unless truly necessary.
                    100: .SH FILES
                    101: .DT
                    102: strings                Data base of strings
                    103: .br
                    104: x.c            Massaged C source
                    105: .br
                    106: xs.c           C source for definition of array `xstr'
                    107: .br
                    108: /tmp/xs*       Temp file when `xstr name' doesn't touch
                    109: .I strings
                    110: .SH "SEE ALSO"
                    111: mkstr(1)
                    112: .SH AUTHOR
                    113: William Joy
                    114: .SH BUGS
                    115: If a string is a suffix of another string in the data base,
                    116: but the shorter string is seen first by
                    117: .I xstr
                    118: both strings will be placed in the data base, when just
                    119: 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.