X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=sbr%2Fconcat.c;h=9efe73180d894870b7e14e606b1950a0f7da0c39;hp=65ded77c7eaed63a1e4d4439598606fce21f71bc;hb=ee8d01d64e8832304256de53db07228e2be67f6a;hpb=ced6090a330d3d83d0bce709f756aa3d7d65fea4 diff --git a/sbr/concat.c b/sbr/concat.c index 65ded77..9efe731 100644 --- a/sbr/concat.c +++ b/sbr/concat.c @@ -9,27 +9,39 @@ #include #include +#include + + +static char * +copy(char *from, char *to) +{ + while ((*to = *from)) { + to++; + from++; + } + return (to); +} char * -concat (char *s1, ...) +concat(char *s1, ...) { char *cp, *dp, *sp; size_t len; va_list list; - len = strlen (s1) + 1; + len = strlen(s1) + 1; va_start(list, s1); while ((cp = va_arg(list, char *))) - len += strlen (cp); + len += strlen(cp); va_end(list); - dp = sp = mh_xmalloc(len); + dp = sp = mh_xcalloc(len, sizeof(char)); sp = copy(s1, sp); va_start(list, s1); - while ((cp = va_arg (list, char *))) + while ((cp = va_arg(list, char *))) sp = copy(cp, sp); va_end(list);