diff --git a/src/basic/strxcpyx.c b/src/basic/strxcpyx.c index 6277f56b80..9210277cde 100644 --- a/src/basic/strxcpyx.c +++ b/src/basic/strxcpyx.c @@ -31,12 +31,11 @@ size_t strpcpy(char **dest, size_t size, const char *src) { if (size > 1) *dest = mempcpy(*dest, src, size-1); size = 0; - } else { - if (len > 0) { - *dest = mempcpy(*dest, src, len); - size -= len; - } + } else if (len > 0) { + *dest = mempcpy(*dest, src, len); + size -= len; } + *dest[0] = '\0'; return size; } @@ -56,9 +55,8 @@ size_t strpcpyf(char **dest, size_t size, const char *src, ...) { if (i < (int)size) { *dest += i; size -= i; - } else { + } else size = 0; - } va_end(va); return size; } @@ -73,7 +71,7 @@ size_t strpcpyl(char **dest, size_t size, const char *src, ...) { do { size = strpcpy(dest, size, src); src = va_arg(va, char *); - } while (src != NULL); + } while (src); va_end(va); return size; } @@ -100,7 +98,7 @@ size_t strscpyl(char *dest, size_t size, const char *src, ...) { do { size = strpcpy(&s, size, src); src = va_arg(va, char *); - } while (src != NULL); + } while (src); va_end(va); return size;