12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- #include "php.h"
- #ifdef USE_STRLCAT_PHP_IMPL
- #if defined(LIBC_SCCS) && !defined(lint)
- static const char *rcsid = "$OpenBSD: strlcat.c,v 1.17 2016/10/14 18:19:04 dtucker Exp $";
- #endif
- #include <sys/types.h>
- #include <string.h>
- PHPAPI size_t php_strlcat(dst, src, siz)
- char *dst;
- const char *src;
- size_t siz;
- {
- const char *d = dst;
- const char *s = src;
- size_t n = siz;
- size_t dlen;
-
- while (n-- != 0 && *dst != '\0')
- dst++;
- dlen = dst - d;
- n = siz - dlen;
- if (n-- == 0)
- return(dlen + strlen(src));
- while (*src != '\0') {
- if (n != 0) {
- *dst++ = *src;
- n--;
- }
- src++;
- }
- *dst = '\0';
- return(dlen + (src - s));
- }
- #endif
|