chiark / gitweb /
6111445f0629948c738ecd91b2cd2fe54a86c5db
[elogind.git] / klibc / klibc / strlcat.c
1 /*
2  * strlcat.c
3  */
4
5 #include <string.h>
6 #include <klibc/compiler.h>
7
8 size_t strlcat(char *dst, const char *src, size_t size)
9 {
10   size_t bytes = 0;
11   char *q = dst;
12   const char *p = src;
13   char ch;
14
15   while ( bytes < size && *q ) {
16     q++;
17     bytes++;
18   }
19
20   while ( (ch = *p++) ) {
21     if ( bytes < size )
22       *q++ = ch;
23
24     bytes++;
25   }
26
27   *q = '\0';
28   return bytes;
29 }
30
31