Annotation of 43BSD/usr.bin/struct/0.string.c, revision 1.1

1.1     ! root        1: #ifndef lint
        !             2: static char sccsid[] = "@(#)0.string.c 4.1     (Berkeley)      2/11/83";
        !             3: #endif not lint
        !             4: 
        !             5: #include <stdio.h>
        !             6: #include "def.h"
        !             7: #include "1.defs.h"
        !             8: 
        !             9: str_copy(s,ptr,length) /* copy s at ptr, return length of s */
        !            10: char *s, *ptr;
        !            11: int length;
        !            12:        {int i;
        !            13:        for (i = 0; i < length; i++)
        !            14:                {
        !            15:                ptr[i] = s[i];
        !            16:                if (ptr[i] == '\0')
        !            17:                        return(i + 1);
        !            18:                }
        !            19:        faterr("string too long to be copied at given address:\n",s,"");
        !            20:        }
        !            21: 
        !            22: 
        !            23: find(s,ar,size)
        !            24: char *s,*ar[];
        !            25: int size;
        !            26:        {
        !            27:        int i;
        !            28:        for (i=0; i < size; i++)
        !            29:                {if (str_eq(s, ar[i])) return(i);}
        !            30:        return(-1);
        !            31:        }
        !            32: 
        !            33: 
        !            34: str_eq(s,t)
        !            35: char s[],t[];
        !            36:        {int j;
        !            37:        for (j = 0; s[j] == t[j]; j++)
        !            38:                {if (s[j] == '\0') return(1);}
        !            39:        return(0);
        !            40:        }
        !            41: 
        !            42: 
        !            43: classmatch(c,i)
        !            44: char c;
        !            45: int i;
        !            46:        {switch(i)
        !            47:                {case _digit:
        !            48:                        if ('0' <= c && c <= '9')  return(1);
        !            49:                        else return(0);
        !            50: 
        !            51:                case _letter:
        !            52:                        if ( ('A' <= c && c <= 'Z') || ('a' <= c && c <= 'z'))
        !            53:                                return(1);
        !            54:                        else return(0);
        !            55: 
        !            56:                case _diglet:  return(classmatch(c,_digit)||classmatch(c,_letter) );
        !            57: 
        !            58:                case _arith:
        !            59:                        if (050 <= c && c<= 057)  return(1);
        !            60:                        else return(0);
        !            61:                case _nl:
        !            62:                        return(c=='\n');
        !            63:                case _other:
        !            64:                        return(1);
        !            65:                }
        !            66:        }
        !            67: 
        !            68: 
        !            69: copychars(cbeg,target,n)               /* copy n chars from cbeg to target */
        !            70: char *cbeg, *target;
        !            71: int n;
        !            72:        {
        !            73:        int i;
        !            74:        for (i = 0; i < n; i++)
        !            75:                target[i] = cbeg[i];
        !            76:        }
        !            77: 
        !            78: 
        !            79: 
        !            80: copycs(cbeg,target,n)                  /* copy n chars from cbeg to target, add '\0' */
        !            81: char *cbeg, *target;
        !            82: int n;
        !            83:        {
        !            84:        copychars(cbeg,target,n);
        !            85:        target[n] = '\0';
        !            86:        }
        !            87: 
        !            88: 
        !            89: slength(s)                     /* return number of chars in s, not counting '\0' */
        !            90: char *s;
        !            91:        {
        !            92:        int i;
        !            93:        if (!s) return(-1);
        !            94:        for (i = 0; s[i] != '\0'; i++);
        !            95:        return(i);
        !            96:        }
        !            97: 
        !            98: 
        !            99: concat(x,y)                    /* allocate space, return xy */
        !           100: char *x, *y;
        !           101:        {
        !           102:        char *temp;
        !           103:        int i,j;
        !           104:        i = slength(x);
        !           105:        j = slength(y);
        !           106:        temp = galloc(i + j + 1);
        !           107:        sprintf(temp,"%s",x);
        !           108:        sprintf(&temp[i],"%s",y);
        !           109:        return(temp);
        !           110:        }

unix.superglobalmegacorp.com

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