memccpy.c 216 B

123456789101112131415161718
  1. #include <u.h>
  2. #include <libc.h>
  3. void*
  4. memccpy(void *a1, void *a2, int c, ulong n)
  5. {
  6. uchar *s1, *s2;
  7. s1 = a1;
  8. s2 = a2;
  9. c &= 0xFF;
  10. while(n > 0) {
  11. if((*s1++ = *s2++) == c)
  12. return s1;
  13. n--;
  14. }
  15. return 0;
  16. }