Annotation of 43BSDTahoe/man/man1/mkstr.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: .\"    @(#)mkstr.1     6.2 (Berkeley) 5/7/86
                      6: .\"
                      7: .TH MKSTR 1 "May 7, 1986"
                      8: .UC
                      9: .SH NAME
                     10: mkstr \- create an error message file by massaging C source
                     11: .SH SYNOPSIS
                     12: .B mkstr
                     13: [
                     14: .B \-
                     15: ]
                     16: messagefile prefix file ...
                     17: .SH DESCRIPTION
                     18: .I Mkstr
                     19: is used to create files of error messages.
                     20: Its use can make programs with large numbers of error diagnostics much
                     21: smaller, and reduce system overhead in running the program as the
                     22: error messages do not have to be constantly swapped in and out.
                     23: .PP
                     24: .I Mkstr
                     25: will process each of the specified
                     26: .I files,
                     27: placing a massaged version of the input file in a file whose name
                     28: consists of the specified
                     29: .I prefix 
                     30: and the original name.
                     31: A typical usage of
                     32: .I mkstr
                     33: would be
                     34: .DT
                     35: .PP
                     36:        mkstr pistrings xx *.c
                     37: .PP
                     38: This command would cause all the error messages from the C source
                     39: files in the current directory to be placed in the file
                     40: .I pistrings
                     41: and processed copies of the source for these files to be placed in
                     42: files whose names are prefixed with
                     43: .I xx.
                     44: .PP
                     45: To process the error messages in the source to the message file
                     46: .I mkstr
                     47: keys on the string
                     48: \%`error("'
                     49: in the input stream.
                     50: Each time it occurs, the C string starting at the `"' is placed
                     51: in the message file followed by a null character and a new-line character;
                     52: the null character terminates the message so it can be easily used
                     53: when retrieved, the new-line character makes it possible to sensibly
                     54: .I cat
                     55: the error message file to see its contents.
                     56: The massaged copy of the input file then contains a
                     57: .I lseek
                     58: pointer into the file which can be used to retrieve the message, i.e.:
                     59: .IP
                     60: .DT
                     61: .nf
                     62: \fBchar\fR     efilname[] =  "/usr/lib/pi_strings";
                     63: \fBint\fR      efil = -1;
                     64: .sp
                     65: error(a1, a2, a3, a4)
                     66: {
                     67:        \fBchar\fR buf[256];
                     68: 
                     69:        \fBif\fR (efil < 0) {
                     70:                efil = open(efilname, 0);
                     71:                \fBif\fR (efil < 0) {
                     72: oops:
                     73:                        perror(efilname);
                     74:                        exit(1);
                     75:                }
                     76:        }
                     77:        \fBif\fR (lseek(efil, (long) a1, 0) |\|| read(efil, buf, 256) <= 0)
                     78:                \fBgoto\fR oops;
                     79:        printf(buf, a2, a3, a4);
                     80: }
                     81: .fi
                     82: .PP
                     83: The optional
                     84: .B \-
                     85: causes the error messages to be placed at the end of the specified
                     86: message file for recompiling part of a large
                     87: .IR mkstr \|ed
                     88: program.
                     89: .SH SEE\ ALSO
                     90: lseek(2), xstr(1)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.