Annotation of 3BSD/cmd/pxp/string.c, revision 1.1.1.1

1.1       root        1: /* Copyright (c) 1979 Regents of the University of California */
                      2: #
                      3: /*
                      4:  * pxp - Pascal execution profiler
                      5:  *
                      6:  * Bill Joy UCB
                      7:  * Version 1.2 January 1979
                      8:  */
                      9: 
                     10: #include "0.h"
                     11: 
                     12: /*
                     13:  * STRING SPACE DECLARATIONS
                     14:  *
                     15:  * Strng is the base of the current
                     16:  * string space and strngp the
                     17:  * base of the free area therein.
                     18:  * No array of descriptors is needed
                     19:  * as string space is never freed.
                     20:  */
                     21: STATIC char strings[STRINC];
                     22: STATIC char *strng strings;
                     23: STATIC char *strngp strings;
                     24: 
                     25: /*
                     26: initstring()
                     27: {
                     28: 
                     29: }
                     30:  */
                     31: /*
                     32:  * Copy a string into the string area.
                     33:  */
                     34: savestr(cp)
                     35:        register char *cp;
                     36: {
                     37:        register int i;
                     38: 
                     39:        i = strlen(cp) + 1;
                     40:        if (strngp + i >= strng + STRINC) {
                     41:                strngp = alloc(STRINC);
                     42:                if (strngp == -1) {
                     43:                        yerror("Ran out of memory (string)");
                     44:                        pexit(DIED);
                     45:                }
                     46:                strng = strngp;
                     47:        }
                     48:        strcpy(strngp, cp);
                     49:        cp = strngp;
                     50:        strngp = cp + i;
                     51:        return (cp);
                     52: }
                     53: 
                     54: esavestr(cp)
                     55:        char *cp;
                     56: {
                     57: 
                     58:        strngp = (int)(strngp + (sizeof (int) - 1)) &~ (sizeof (int) - 1);
                     59:        return (savestr(cp));
                     60: }

unix.superglobalmegacorp.com

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