From: Michael D. Lowis Date: Fri, 11 Dec 2020 18:06:50 +0000 (-0500) Subject: added strmcat X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=9b27c07a9cd275b61d0908aca1bc9c45b332e059;p=proto%2Faos.git added strmcat --- diff --git a/lib/a/strmcat.c b/lib/a/strmcat.c new file mode 100644 index 0000000..1cefc62 --- /dev/null +++ b/lib/a/strmcat.c @@ -0,0 +1,32 @@ +#include + +char* strmcat(char* first, ...) +{ + va_list args; + /* calculate the length of the final string */ + size_t len = strlen(first); + va_start(args, first); + for (char* s = NULL; (s = va_arg(args, char*));) + { + len += strlen(s); + } + va_end(args); + /* allocate the final string and copy the args into it */ + char *str = malloc(len+1), *curr = str; + while (first && *first) + { + *(curr++) = *(first++); + } + va_start(args, first); + for (char* s = NULL; (s = va_arg(args, char*));) + { + while (s && *s) + { + *(curr++) = *(s++); + } + } + va_end(args); + /* null terminate and return */ + *curr = '\0'; + return str; +}