diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-26 16:38:00 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-26 16:38:00 -0400 |
| commit | 97d5c458cfa039d857301e1ca7d5af3beb37131d (patch) | |
| tree | b460cd850d0537eb71806ba30358840377b27688 /static/unix-v10/man1/mkstr.1 | |
| parent | b89dc2331a50c63f8b33272a5c4c61ab98abdaa3 (diff) | |
build: Better Build System
Diffstat (limited to 'static/unix-v10/man1/mkstr.1')
| -rw-r--r-- | static/unix-v10/man1/mkstr.1 | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/static/unix-v10/man1/mkstr.1 b/static/unix-v10/man1/mkstr.1 new file mode 100644 index 00000000..2906eb97 --- /dev/null +++ b/static/unix-v10/man1/mkstr.1 @@ -0,0 +1,88 @@ +.TH MKSTR 1 2/24/79 +.UC +.SH NAME +mkstr \- create an error message file by massaging C source +.SH SYNOPSIS +.B mkstr +[ +.B \- +] +messagefile prefix file ... +.SH DESCRIPTION +.I Mkstr +is used to create files of error messages. +Its use can make programs with large numbers of error diagnostics much +smaller, and reduce system overhead in running the program as the +error messages do not have to be constantly swapped in and out. +.PP +.I Mkstr +will process each of the specified +.I files, +placing a massaged version of the input file in a file whose name +consists of the specified +.I prefix +and the original name. +A typical usage of +.I mkstr +would be +.DT +.PP + mkstr pistrings xx *.c +.PP +This command would cause all the error messages from the C source +files in the current directory to be placed in the file +.I pistrings +and processed copies of the source for these files to be placed in +files whose names are prefixed with +.I xx. +.PP +To process the error messages in the source to the message file +.I mkstr +keys on the string +\%`error("' +in the input stream. +Each time it occurs, the C string starting at the `"' is placed +in the message file followed by a null character and a new-line character; +the null character terminates the message so it can be easily used +when retrieved, the new-line character makes it possible to sensibly +.I cat +the error message file to see its contents. +The massaged copy of the input file then contains a +.I lseek +pointer into the file which can be used to retrieve the message, i.e.: +.IP +.DT +.nf +\fBchar\fR efilname[] = "/usr/lib/pi_strings"; +\fBint\fR efil = -1; +.sp +error(a1, a2, a3, a4) +{ + \fBchar\fR buf[256]; + + \fBif\fR (efil < 0) { + efil = open(efilname, 0); + \fBif\fR (efil < 0) { +oops: + perror(efilname); + exit(1); + } + } + \fBif\fR (lseek(efil, (long) a1, 0) |\|| read(efil, buf, 256) <= 0) + \fBgoto\fR oops; + printf(buf, a2, a3, a4); +} +.fi +.PP +The optional +.B \- +causes the error messages to be placed at the end of the specified +message file for recompiling part of a large +.IR mkstr \|ed +program. +.SH SEE\ ALSO +lseek(2), xstr(1) +.SH AUTHORS +William Joy and Charles Haley +...SH BUGS +...All the arguments except the name of the file to be processed could be made unnecessary. |
