xref: /plan9-contrib/sys/src/ape/lib/ap/gen/strcpy.c (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
1 #include <string.h>
2 #define	N	10000
3 
4 static void*
5 memccpy(void *a1, void *a2, int c, ulong n)
6 {
7 	char *s1, *s2;
8 
9 	s1 = a1;
10 	s2 = a2;
11 	while(n > 0) {
12 		if((*s1++ = *s2++) == c)
13 			return s1;
14 		n--;
15 	}
16 	return 0;
17 }
18 
19 char*
20 strcpy(char *s1, const char *s2)
21 {
22 	char *os1;
23 
24 	os1 = s1;
25 	while(!memccpy(s1, s2, 0, N)) {
26 		s1 += N;
27 		s2 += N;
28 	}
29 	return os1;
30 }
31