xref: /inferno-os/libkern/memccpy.c (revision 37da2899f40661e3e9631e497da8dc59b971cbd0)
1*37da2899SCharles.Forsyth #include	<lib9.h>
2*37da2899SCharles.Forsyth 
3*37da2899SCharles.Forsyth void*
memccpy(void * a1,void * a2,int c,ulong n)4*37da2899SCharles.Forsyth memccpy(void *a1, void *a2, int c, ulong n)
5*37da2899SCharles.Forsyth {
6*37da2899SCharles.Forsyth 	uchar *s1, *s2;
7*37da2899SCharles.Forsyth 
8*37da2899SCharles.Forsyth 	s1 = a1;
9*37da2899SCharles.Forsyth 	s2 = a2;
10*37da2899SCharles.Forsyth 	c &= 0xFF;
11*37da2899SCharles.Forsyth 	while(n > 0) {
12*37da2899SCharles.Forsyth 		if((*s1++ = *s2++) == c)
13*37da2899SCharles.Forsyth 			return s1;
14*37da2899SCharles.Forsyth 		n--;
15*37da2899SCharles.Forsyth 	}
16*37da2899SCharles.Forsyth 	return 0;
17*37da2899SCharles.Forsyth }
18