xstr.1 (f682f10c76449b3af3b1dd9afff859cd1cd07116) | xstr.1 (46122f64a613f1ef232d4adbeeb4753d725e5102) |
---|---|
1.\" Copyright (c) 1980, 1993 2.\" The Regents of the University of California. All rights reserved. 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions 6.\" are met: 7.\" 1. Redistributions of source code must retain the above copyright 8.\" notice, this list of conditions and the following disclaimer. --- 49 unchanged lines hidden (view full) --- 58.It Fl 59Read from the standard input. 60.It Fl c 61Extract the strings from the C source 62.Ar file 63or the standard input 64.Pq Fl , 65replacing | 1.\" Copyright (c) 1980, 1993 2.\" The Regents of the University of California. All rights reserved. 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions 6.\" are met: 7.\" 1. Redistributions of source code must retain the above copyright 8.\" notice, this list of conditions and the following disclaimer. --- 49 unchanged lines hidden (view full) --- 58.It Fl 59Read from the standard input. 60.It Fl c 61Extract the strings from the C source 62.Ar file 63or the standard input 64.Pq Fl , 65replacing |
66string references by expressions of the form (&xstr[number]) 67for some number. | 66string references by expressions of the form 67.Li (&xstr[number]) 68for some 69.Ar number . |
68An appropriate declaration of | 70An appropriate declaration of |
69.Nm | 71.Va xstr |
70is prepended to the file. 71The resulting C text is placed in the file 72.Pa x.c , 73to then be compiled. 74The strings from this file are placed in the 75.Pa strings 76data base if they are not there already. 77Repeated strings and strings which are suffixes of existing strings 78do not cause changes to the data base. 79.It Fl v 80Verbose mode. 81.El 82.Pp 83After all components of a large program have been compiled a file 84.Pa xs.c 85declaring the common | 72is prepended to the file. 73The resulting C text is placed in the file 74.Pa x.c , 75to then be compiled. 76The strings from this file are placed in the 77.Pa strings 78data base if they are not there already. 79Repeated strings and strings which are suffixes of existing strings 80do not cause changes to the data base. 81.It Fl v 82Verbose mode. 83.El 84.Pp 85After all components of a large program have been compiled a file 86.Pa xs.c 87declaring the common |
86.Nm | 88.Va xstr |
87space can be created by a command of the form | 89space can be created by a command of the form |
88.Bd -literal -offset indent 89xstr 90.Ed | |
91.Pp | 90.Pp |
91.Dl xstr 92.Pp |
|
92The file 93.Pa xs.c 94should then be compiled and loaded with the rest 95of the program. 96If possible, the array can be made read-only (shared) saving 97space and swap overhead. 98.Pp 99The --- 17 unchanged lines hidden (view full) --- 117after the C preprocessor if any macro definitions yield strings 118or if there is conditional code which contains strings 119which may not, in fact, be needed. 120An appropriate command sequence for running 121.Nm 122after the C preprocessor is: 123.Pp 124.Bd -literal -offset indent -compact | 93The file 94.Pa xs.c 95should then be compiled and loaded with the rest 96of the program. 97If possible, the array can be made read-only (shared) saving 98space and swap overhead. 99.Pp 100The --- 17 unchanged lines hidden (view full) --- 118after the C preprocessor if any macro definitions yield strings 119or if there is conditional code which contains strings 120which may not, in fact, be needed. 121An appropriate command sequence for running 122.Nm 123after the C preprocessor is: 124.Pp 125.Bd -literal -offset indent -compact |
125cc \-E name.c | xstr \-c \- 126cc \-c x.c | 126cc -E name.c | xstr -c - 127cc -c x.c |
127mv x.o name.o 128.Ed 129.Pp 130The 131.Nm 132utility does not touch the file 133.Pa strings 134unless new items are added, thus 135.Xr make 1 136can avoid remaking 137.Pa xs.o 138unless truly necessary. 139.Sh FILES | 128mv x.o name.o 129.Ed 130.Pp 131The 132.Nm 133utility does not touch the file 134.Pa strings 135unless new items are added, thus 136.Xr make 1 137can avoid remaking 138.Pa xs.o 139unless truly necessary. 140.Sh FILES |
140.Bl -tag -width /tmp/xsxx* -compact | 141.Bl -tag -width ".Pa /tmp/xs*" -compact |
141.It Pa strings 142data base of strings 143.It Pa x.c 144massaged C source 145.It Pa xs.c | 142.It Pa strings 143data base of strings 144.It Pa x.c 145massaged C source 146.It Pa xs.c |
146C source for definition of array `xstr' | 147C source for definition of array 148.Va xstr |
147.It Pa /tmp/xs* | 149.It Pa /tmp/xs* |
148temp file when `xstr name' does not touch | 150temporary file when 151.Dq Li "xstr name" 152does not touch |
149.Pa strings 150.El 151.Sh SEE ALSO 152.Xr mkstr 1 153.Sh HISTORY 154The 155.Nm 156command appeared in 157.Bx 3.0 . 158.Sh BUGS 159If a string is a suffix of another string in the data base, 160but the shorter string is seen first by 161.Nm 162both strings will be placed in the data base, when just 163placing the longer one there will do. | 153.Pa strings 154.El 155.Sh SEE ALSO 156.Xr mkstr 1 157.Sh HISTORY 158The 159.Nm 160command appeared in 161.Bx 3.0 . 162.Sh BUGS 163If a string is a suffix of another string in the data base, 164but the shorter string is seen first by 165.Nm 166both strings will be placed in the data base, when just 167placing the longer one there will do. |