|
|
1.1 root 1: /****************************************************************
2: Copyright 1990 by AT&T Bell Laboratories and Bellcore.
3:
4: Permission to use, copy, modify, and distribute this software
5: and its documentation for any purpose and without fee is hereby
6: granted, provided that the above copyright notice appear in all
7: copies and that both that the copyright notice and this
8: permission notice and warranty disclaimer appear in supporting
9: documentation, and that the names of AT&T Bell Laboratories or
10: Bellcore or any of their entities not be used in advertising or
11: publicity pertaining to distribution of the software without
12: specific, written prior permission.
13:
14: AT&T and Bellcore disclaim all warranties with regard to this
15: software, including all implied warranties of merchantability
16: and fitness. In no event shall AT&T or Bellcore be liable for
17: any special, indirect or consequential damages or any damages
18: whatsoever resulting from loss of use, data or profits, whether
19: in an action of contract, negligence or other tortious action,
20: arising out of or in connection with the use or performance of
21: this software.
22: ****************************************************************/
23:
24: /* This is for the benefit of people whose systems don't provide
25: * memset, memcpy, and memcmp. If yours is such a system, adjust
26: * the makefile by adding memset.o to the "OBJECTS =" assignment.
27: * WARNING: the memcpy below is adequate for f2c, but is not a
28: * general memcpy routine (which must correctly handle overlapping
29: * fields).
30: */
31:
32: int
33: memcmp(s1, s2, n)
34: register char *s1, *s2;
35: int n;
36: {
37: register char *se;
38:
39: for(se = s1 + n; s1 < se; s1++, s2++)
40: if (*s1 != *s2)
41: return *s1 - *s2;
42: return 0;
43: }
44:
45: char *
46: memcpy(s1, s2, n)
47: register char *s1, *s2;
48: int n;
49: {
50: register char *s0 = s1, *se = s1 + n;
51:
52: while(s1 < se)
53: *s1++ = *s2++;
54: return s0;
55: }
56:
57: memset(s, c, n)
58: register char *s;
59: register int c;
60: int n;
61: {
62: register char *se = s + n;
63:
64: while(s < se)
65: *s++ = c;
66: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.