Annotation of researchv9/jerq/src/sam/term/str.c, revision 1.1.1.1

1.1       root        1: #include "frame.h"
                      2: 
                      3: /*
                      4:  * The code here and elsewhere requires that strings not be gcalloc()ed
                      5:  */
                      6: 
                      7: #define        CHUNK   16
                      8: #define        ROUNDUP(n)      ((n+CHUNK)&~(CHUNK-1))
                      9: long   clicks;
                     10: uchar *
                     11: allocstr(n)
                     12:        unsigned n;
                     13: {
                     14:        register uchar *p;
                     15:        p=(uchar *)alloc(ROUNDUP(n));
                     16:        if(p==0)
                     17:                panic("out of memory");
                     18:        return p;
                     19: }
                     20: insure(b, n)
                     21:        register Box *b;
                     22:        unsigned n;
                     23: {
                     24:        register uchar *p;
                     25:        if(b->len<0)
                     26:                panic("insure");
                     27:        if(ROUNDUP(b->len)>n)   /* > guarantees room for terminal NUL */
                     28:                return;
                     29:        p=allocstr(n);
                     30:        copystr(b->ptr, p);
                     31:        freestr(b->ptr);
                     32:        b->ptr=p;
                     33: }
                     34: freestr(s)
                     35:        uchar *s;
                     36: {
                     37:        free((char *)s);
                     38: }
                     39: copystr(from, to)
                     40:        register uchar *from, *to;
                     41: {
                     42:        do;while(*to++=*from++);
                     43: }

unix.superglobalmegacorp.com

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