X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=sbr%2Fconcat.c;h=5c519e9f4896f324fcd6df117e338c12b1f6db28;hb=adf591eb56d60000e806e20c42eb1907e2cc6fcd;hp=82979f5aa0229e529000fe293279be5b4cc70e45;hpb=5dd6771b28c257af405d7248639ed0e3bcdce38b;p=mmh diff --git a/sbr/concat.c b/sbr/concat.c index 82979f5..5c519e9 100644 --- a/sbr/concat.c +++ b/sbr/concat.c @@ -1,38 +1,48 @@ - /* - * concat.c -- concatenate a variable number (minimum of 1) - * of strings in managed memory - * - * This code is Copyright (c) 2002, by the authors of nmh. See the - * COPYRIGHT file in the root directory of the nmh distribution for - * complete copyright information. - */ +** concat.c -- concatenate a variable number (minimum of 1) +** of strings in managed memory +** +** This code is Copyright (c) 2002, by the authors of nmh. See the +** COPYRIGHT file in the root directory of the nmh distribution for +** complete copyright information. +*/ #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; + char *cp, *dp, *sp; + size_t len; + va_list list; - len = strlen (s1) + 1; - va_start(list, s1); - while ((cp = va_arg(list, char *))) - len += strlen (cp); - va_end(list); + len = strlen(s1) + 1; + va_start(list, s1); + while ((cp = va_arg(list, char *))) + len += strlen(cp); + va_end(list); - dp = sp = mh_xmalloc(len); + dp = sp = mh_xmalloc(len); - sp = copy(s1, sp); + sp = copy(s1, sp); - va_start(list, s1); - while ((cp = va_arg (list, char *))) - sp = copy(cp, sp); - va_end(list); + va_start(list, s1); + while ((cp = va_arg(list, char *))) + sp = copy(cp, sp); + va_end(list); - return dp; + return dp; }