]> diplodocus.org Git - nmh/blob - docs/historical/mh-6.8.5/sbr/concat.c
sbr/mts.c: Delete mmdlm2; use same-valued mmdlm1 instead.
[nmh] / docs / historical / mh-6.8.5 / sbr / concat.c
1 /* concat.c - concatenate a bunch of strings in managed memory */
2
3 #include "../h/mh.h"
4 #include <stdio.h>
5 #include <varargs.h>
6
7
8 /* VARARGS */
9
10 char *concat (va_alist)
11 va_dcl
12 {
13 register char *cp,
14 *dp,
15 *sp;
16 register unsigned len;
17 register va_list list;
18
19 len = 1;
20 va_start (list);
21 while (cp = va_arg (list, char *))
22 len += strlen (cp);
23 va_end (list);
24
25 dp = sp = malloc (len);
26 if (dp == NULL)
27 adios (NULLCP, "unable to allocate string storage");
28
29 va_start (list);
30 while (cp = va_arg (list, char *))
31 sp = copy (cp, sp);
32 va_end (list);
33
34 return dp;
35 }