summaryrefslogtreecommitdiffstats
path: root/usr/klibc/strncat.c
blob: beb026cdc28125b2b28f7df452c0bcec8337ff88 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/*
 * strncat.c
 */

#include <string.h>
#include <klibc/compiler.h>

char *strncat(char *dst, const char *src, size_t n)
{
	char *q = strchr(dst, '\0');
	const char *p = src;
	char ch;

	while (n--) {
		*q++ = ch = *p++;
		if (!ch)
			return dst;
	}
	*q = '\0';

	return dst;
}