Annotation of 43BSDReno/pgrm/mkstr/mkstr.1, revision 1.1

1.1     ! root        1: .\" Copyright (c) 1980, 1990 The Regents of the University of California.
        !             2: .\" All rights reserved.
        !             3: .\"
        !             4: .\" Redistribution and use in source and binary forms are permitted provided
        !             5: .\" that: (1) source distributions retain this entire copyright notice and
        !             6: .\" comment, and (2) distributions including binaries display the following
        !             7: .\" acknowledgement:  ``This product includes software developed by the
        !             8: .\" University of California, Berkeley and its contributors'' in the
        !             9: .\" documentation or other materials provided with the distribution and in
        !            10: .\" all advertising materials mentioning features or use of this software.
        !            11: .\" Neither the name of the University nor the names of its contributors may
        !            12: .\" be used to endorse or promote products derived from this software without
        !            13: .\" specific prior written permission.
        !            14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
        !            15: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
        !            16: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !            17: .\"
        !            18: .\"     @(#)mkstr.1    6.4 (Berkeley) 7/24/90
        !            19: .\"
        !            20: .Dd July 24, 1990
        !            21: .Dt MKSTR 1
        !            22: .Sh NAME
        !            23: .Nm mkstr
        !            24: .Nd create an error message file by massaging C source
        !            25: .Sh SYNOPSIS
        !            26: .Nm mkstr
        !            27: .Op Fl
        !            28: .Ar messagefile
        !            29: .Ar prefix file ...
        !            30: .Sh DESCRIPTION
        !            31: .Nm Mkstr
        !            32: creates files containing error messages extracted from C source,
        !            33: and restructures the same C source, to utilize the created error message
        !            34: file.
        !            35: The intent of
        !            36: .Nm mkstr
        !            37: was to reduce the size of large programs and
        !            38: reduce swapping (see BUGS section below).
        !            39: .Pp
        !            40: .Nm Mkstr
        !            41: processes each of the specified
        !            42: .Ar files ,
        !            43: placing a restructured version of the input in a file whose name
        !            44: consists of the specified
        !            45: .Ar prefix
        !            46: and the original name.
        !            47: A typical usage of
        !            48: .Nm mkstr
        !            49: is
        !            50: .Pp
        !            51: .Dl mkstr pistrings xx *.c
        !            52: .Pp
        !            53: This command causes all the error messages from the C source
        !            54: files in the current directory to be placed in the file
        !            55: .Ar pistrings
        !            56: and restructured copies of the sources to be placed in
        !            57: files whose names are prefixed with
        !            58: .Ar xx .
        !            59: .Pp
        !            60: Options:
        !            61: .Tw Ds
        !            62: .Tp Fl
        !            63: Error messages are placed at the end of the specified
        !            64: message file for recompiling part of a large
        !            65: .Nm mkstr
        !            66: ed
        !            67: program.
        !            68: .Tp
        !            69: .Pp
        !            70: .Nm mkstr
        !            71: finds error messages in the source by
        !            72: searching for the string
        !            73: .Li \&`error("'
        !            74: in the input stream.
        !            75: Each time it occurs, the C string starting at the
        !            76: .Sq \&"\&
        !            77: is stored
        !            78: in the message file followed by a null character and a new-line character;
        !            79: The new source is restructured with
        !            80: .Xr lseek 2
        !            81: pointers into the error message file for retrieval.
        !            82: .Ds I
        !            83: char efilname = "/usr/lib/pi_strings";
        !            84: int efil = -1;
        !            85: 
        !            86: error(a1, a2, a3, a4)
        !            87: \&{
        !            88:        char buf[256];
        !            89: 
        !            90:        if (efil < 0) {
        !            91:                efil = open(efilname, 0);
        !            92:                if (efil < 0) {
        !            93: oops:
        !            94:                        perror(efilname);
        !            95:                        exit 1 ;
        !            96:                }
        !            97:        }
        !            98:        if (lseek(efil, (long) a1, 0) \ read(efil, buf, 256) <= 0)
        !            99:                goto oops;
        !           100:        printf(buf, a2, a3, a4);
        !           101: }
        !           102: .De
        !           103: .Sh SEE ALSO
        !           104: .Xr lseek 2 ,
        !           105: .Xr xstr 1
        !           106: .Sh HISTORY
        !           107: .Nm Mkstr
        !           108: appeared in 3 BSD.
        !           109: .Sh BUGS
        !           110: .Nm mkstr
        !           111: was intended for the limited architecture of the PDP 11 family.
        !           112: Very few programs in 4.4 BSD actually use it. The pascal interpreter,
        !           113: .Xr pi 1
        !           114: and the editor,
        !           115: .Xr ex 1
        !           116: are two programs that are built this way.
        !           117: It is not an efficient method, the error messages
        !           118: should be stored in the program text.

unix.superglobalmegacorp.com

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