diff options
author | Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> | 2019-02-01 22:55:37 +0000 |
---|---|---|
committer | Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> | 2019-02-03 18:22:05 -0600 |
commit | 5b57d28ffb6e1ef86b50f7d05d977826eae89bfe (patch) | |
tree | 154a22fe556b49e6927197336f8bf91b12eacd5e /usr.bin/mkstr/mkstr.1 | |
download | userland-5b57d28ffb6e1ef86b50f7d05d977826eae89bfe.tar.gz userland-5b57d28ffb6e1ef86b50f7d05d977826eae89bfe.tar.bz2 userland-5b57d28ffb6e1ef86b50f7d05d977826eae89bfe.tar.xz userland-5b57d28ffb6e1ef86b50f7d05d977826eae89bfe.zip |
initial population
Diffstat (limited to 'usr.bin/mkstr/mkstr.1')
-rw-r--r-- | usr.bin/mkstr/mkstr.1 | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/usr.bin/mkstr/mkstr.1 b/usr.bin/mkstr/mkstr.1 new file mode 100644 index 0000000..5fd812d --- /dev/null +++ b/usr.bin/mkstr/mkstr.1 @@ -0,0 +1,131 @@ +.\" $NetBSD: mkstr.1,v 1.13 2017/07/03 21:34:20 wiz Exp $ +.\" +.\" Copyright (c) 1980, 1990, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)mkstr.1 8.1 (Berkeley) 6/6/93 +.\" +.Dd June 6, 1993 +.Dt MKSTR 1 +.Os +.Sh NAME +.Nm mkstr +.Nd create an error message file by massaging C source +.Sh SYNOPSIS +.Nm +.Op Fl +.Ar messagefile +.Ar prefix file ... +.Sh DESCRIPTION +.Nm +creates files containing error messages extracted from C source, +and restructures the same C source, to use the created error message +file. +The intent of +.Nm +was to reduce the size of large programs and +reduce swapping (see +.Sx BUGS +section below). +.Pp +.Nm +processes each of the specified +.Ar files , +placing a restructured version of the input in a file whose name +consists of the specified +.Ar prefix +and the original name. +A typical usage of +.Nm +is +.Bd -literal -offset indent +mkstr pistrings xx *.c +.Ed +.Pp +This command causes all the error messages from the C source +files in the current directory to be placed in the file +.Ar pistrings +and restructured copies of the sources to be placed in +files whose names are prefixed with +.Ar \&xx . +.Pp +Options: +.Bl -tag -width indent +.It Fl +Error messages are placed at the end of the specified +message file for recompiling part of a large +.Nm +ed +program. +.El +.Pp +.Nm +finds error messages in the source by +searching for the string +.Li \&`error("' +in the input stream. +Each time it occurs, the C string starting at the +.Sq \&"\& +is stored +in the message file followed by a null character and a new-line character; +The new source is restructured with +.Xr lseek 2 +pointers into the error message file for retrieval. +.Bd -literal -offset indent +char efilname = "/usr/lib/pi_strings"; +int efil = -1; + +error(a1, a2, a3, a4) +\&{ + char buf[256]; + + if (efil < 0) { + efil = open(efilname, 0); + if (efil < 0) { +oops: + perror(efilname); + exit 1 ; + } + } + if (lseek(efil, a1, 0) < 0 || read(efil, buf, 256) \*[Le] 0) + goto oops; + printf(buf, a2, a3, a4); +} +.Ed +.Sh SEE ALSO +.Xr xstr 1 , +.Xr lseek 2 +.Sh HISTORY +.Nm +appeared in +.Bx 1 . +.Sh BUGS +.Nm +was intended for the limited architecture of the PDP-11 family. +Very few programs actually use it. +It is not an efficient method, the error messages +should be stored in the program text. |