summaryrefslogtreecommitdiff
path: root/lib/libc/string/memccpy.c
blob: 29828182df3fa82f9cdc9355d53e224fdc79f55a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stddef.h>

void *memccpy(void *restrict s1, const void *restrict s2, int c, size_t n)
{
	const unsigned char *p2 = s2;
	unsigned char *p1 = s1;
	while (n--) {
		if (*p2 == (unsigned char)c)
			return p1 + 1;
		*p1++ = *p2++;
	}
	return NULL;
}