Annotation of researchv10dc/man/adm/man9/muxstring.9, revision 1.1

1.1     ! root        1: .TH MUXSTRING 9.3
        !             2: .CT 2 comm_term
        !             3: .SH NAME
        !             4: strinsure, strinsert, strdelete, strzero, setmuxbuf, getmuxbuf, movstring \- dynamic strings in mux
        !             5: .SH SYNOPSIS
        !             6: .B #include <jerq.h>
        !             7: .PP
        !             8: .B strinsure(s, n);  String *s;
        !             9: .PP
        !            10: .B "strinsert(d, i, s); String *d, *s;
        !            11: .PP
        !            12: .B "strdelete(d, i, j); String *d;
        !            13: .PP
        !            14: .B strzero(d); String *d;
        !            15: .PP
        !            16: .B setmuxbuf(s); String *s;
        !            17: .PP
        !            18: .B getmuxbuf(d); String *d;
        !            19: .PP
        !            20: .B movstring(n, sp, dp); char *sp, *dp;
        !            21: .SH DESCRIPTION
        !            22: These functions manipulate strings represented
        !            23: in the following form.
        !            24: .IP
        !            25: .EX
        !            26: .ta \w'struct 'u
        !            27: struct String {
        !            28:        char *s;
        !            29:        short n;
        !            30:        short size;
        !            31: };
        !            32: .EE
        !            33: .LP
        !            34: The string proper occupies the first 
        !            35: .B n
        !            36: characters of a data block of
        !            37: .L size
        !            38: characters pointed to by
        !            39: .BR s .
        !            40: Initially both
        !            41: .B size
        !            42: and
        !            43: .B s
        !            44: should be 0.
        !            45: Strings are always counted, not terminated by
        !            46: .BR \e0 .
        !            47: The functions obtain space as needed from
        !            48: .IR gcalloc  ;
        !            49: see
        !            50: .IR alloc (9.3).
        !            51: Thus a
        !            52: .B String
        !            53: structure should never be copied.
        !            54: .PP
        !            55: .I Strinsure
        !            56: arranges that 
        !            57: .IB s ->size\(>= n.
        !            58: It must be called before any operation that could
        !            59: overflow the current size.
        !            60: .PP
        !            61: .I Strinsert
        !            62: inserts a copy of source
        !            63: .I s
        !            64: into destination
        !            65: .I d
        !            66: beginning at character 
        !            67: .I i
        !            68: (counted from 0),
        !            69: adding
        !            70: .IB s ->n
        !            71: to
        !            72: .IB d ->n .
        !            73: .PP
        !            74: .I Strdelete
        !            75: removes characters
        !            76: .I i
        !            77: through
        !            78: .IR j \-1
        !            79: from string
        !            80: .I d,
        !            81: subtracting
        !            82: .IR j \- i,
        !            83: which must be nonnegative, from
        !            84: .IB d ->n .
        !            85: .PP
        !            86: .IB Strzero
        !            87: frees the memory associated with
        !            88: .I d
        !            89: and sets both
        !            90: .IB d ->n
        !            91: and
        !            92: .IB d ->size
        !            93: to zero.
        !            94: .PP
        !            95: .I Setmuxbuf
        !            96: copies string 
        !            97: .I s
        !            98: into the snarf buffer maintained by
        !            99: .IR mux (9.1);
        !           100: .I getmuxbuf
        !           101: copies from the snarf buffer into
        !           102: .I d.
        !           103: .PP
        !           104: .I Movstr
        !           105: copies a block of
        !           106: .I n
        !           107: characters beginning at
        !           108: .I sp
        !           109: to a block beginning at
        !           110: .I dp.
        !           111: If
        !           112: .I n
        !           113: is negative it copies
        !           114: .RI \- n
        !           115: characters ending at
        !           116: .IR sp \- 1
        !           117: to a block ending at
        !           118: .IR dp \-1.
        !           119: Notice that
        !           120: .I movstring 
        !           121: does not operate on
        !           122: .BR String s.
        !           123: .SH SEE ALSO
        !           124: .IR libc (9.3)

unix.superglobalmegacorp.com

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