Annotation of 43BSDTahoe/games/trek/utility.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1980 Regents of the University of California.
                      3:  * All rights reserved.
                      4:  *
                      5:  * Redistribution and use in source and binary forms are permitted
                      6:  * provided that the above copyright notice and this paragraph are
                      7:  * duplicated in all such forms and that any documentation,
                      8:  * advertising materials, and other materials related to such
                      9:  * distribution and use acknowledge that the software was developed
                     10:  * by the University of California, Berkeley.  The name of the
                     11:  * University may not be used to endorse or promote products derived
                     12:  * from this software without specific prior written permission.
                     13:  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                     14:  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                     15:  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     16:  */
                     17: 
                     18: #ifndef lint
                     19: static char sccsid[] = "@(#)utility.c  5.3 (Berkeley) 6/18/88";
                     20: #endif /* not lint */
                     21: 
                     22: /*
                     23: **  ASSORTED UTILITY ROUTINES
                     24: */
                     25: 
                     26: /*
                     27: **  BLOCK MOVE
                     28: **
                     29: **     Moves a block of storage of length `l' bytes from the data
                     30: **     area pointed to by `a' to the area pointed to by `b'.
                     31: **     Returns the address of the byte following the `b' field.
                     32: **     Overflow of `b' is not tested.
                     33: */
                     34: 
                     35: char *bmove(a, b, l)
                     36: char   *a, *b;
                     37: int    l;
                     38: {
                     39:        register int            n;
                     40:        register char           *p, *q;
                     41: 
                     42:        p = a;
                     43:        q = b;
                     44:        n = l;
                     45:        while (n--)
                     46:                *q++ = *p++;
                     47:        return (q);
                     48: }
                     49: 
                     50: 
                     51: /*
                     52: **  STRING EQUALITY TEST
                     53: **     null-terminated strings `a' and `b' are tested for
                     54: **     absolute equality.
                     55: **     returns one if equal, zero otherwise.
                     56: */
                     57: 
                     58: sequal(a, b)
                     59: char   *a, *b;
                     60: {
                     61:        register char           *p, *q;
                     62: 
                     63:        p = a;
                     64:        q = b;
                     65:        while (*p || *q)
                     66:                if (*p++ != *q++)
                     67:                        return(0);
                     68:        return(1);
                     69: }
                     70: 
                     71: 
                     72: /*
                     73: **  STRING CONCATENATE
                     74: **
                     75: **     The strings `s1' and `s2' are concatenated and stored into
                     76: **     `s3'.  It is ok for `s1' to equal `s3', but terrible things
                     77: **     will happen if `s2' equals `s3'.  The return value is is a
                     78: **     pointer to the end of `s3' field.
                     79: */
                     80: 
                     81: char *concat(s1, s2, s3)
                     82: char   *s1, *s2, *s3;
                     83: {
                     84:        register char           *p;
                     85:        register char           *q;
                     86: 
                     87:        p = s3;
                     88:        q = s1;
                     89:        while (*q)
                     90:                *p++ = *q++;
                     91:        q = s2;
                     92:        while (*q)
                     93:                *p++ = *q++;
                     94:        *p = 0;
                     95:        return (p);
                     96: }
                     97: 
                     98: 
                     99: /*
                    100: **  FIND STRING LENGTH
                    101: **
                    102: **     The length of string `s' (excluding the null byte which
                    103: **             terminates the string) is returned.
                    104: */
                    105: 
                    106: length(s)
                    107: char   *s;
                    108: {
                    109:        register int    l;
                    110:        register char   *p;
                    111: 
                    112:        l = 0;
                    113:        p = s;
                    114:        while (*p++)
                    115:                l++;
                    116:        return(l);
                    117: }
                    118: 
                    119: 
                    120: /*
                    121: **  SYSTEM ERROR
                    122: */
                    123: 
                    124: syserr(p0, p1, p2, p3, p4, p5)
                    125: {
                    126:        extern int      errno;
                    127: 
                    128:        printf("\n\07TREK SYSERR: ");
                    129:        printf(p0, p1, p2, p3, p4, p5);
                    130:        printf("\n");
                    131:        if (errno)
                    132:                printf("\tsystem error %d\n", errno);
                    133:        exit(-1);
                    134: }

unix.superglobalmegacorp.com

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