Annotation of researchv10dc/man/adm/man9/muxstring.9, revision 1.1.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.