/* | |
* strlcat.c | |
*/ | |
#include <string.h> | |
#include <klibc/compiler.h> | |
size_t strlcat(char *dst, const char *src, size_t size) | |
{ | |
size_t bytes = 0; | |
char *q = dst; | |
const char *p = src; | |
char ch; | |
while ( bytes < size && *q ) { | |
q++; | |
bytes++; | |
} | |
if (bytes == size) | |
return (bytes + strlen(src)); | |
while ( (ch = *p++) ) { | |
if ( bytes+1 < size ) | |
*q++ = ch; | |
bytes++; | |
} | |
*q = '\0'; | |
return bytes; | |
} | |