Annotation of 41BSD/cmd/pxp/string.c, revision 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.