Annotation of 43BSDTahoe/man/man1/xstr.1, revision 1.1.1.1

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