strlcat.c (721B)
1 /************************************************************************* 2 * This file is part of Crosroads 1.23, a load balancer and fail over 3 * utility for TCP. Copyright (c) Karel Kubat, distributed under GPL. 4 * Visit http://crossroads.e-tunity.com for information. 5 *************************************************************************/ 6 #ifndef HAVE_STRLCAT 7 8 #include "crossroads.h" 9 10 size_t strlcat (char *dst, char const *src, size_t size) { 11 size_t bytes = 0; 12 char *q = dst; 13 char const *p = src; 14 char ch; 15 16 while ( bytes < size && *q ) { 17 q++; 18 bytes++; 19 } 20 while ( (ch = *p++) ) { 21 if ( bytes < size ) 22 *q++ = ch; 23 bytes++; 24 } 25 *q = '\0'; 26 return bytes; 27 } 28 29 #endif