1: /*
2: ** LOCAL STRING CONCATENATE
3: ** Strings `a' and `b' are concatenated and left in an
4: ** internal buffer. A pointer to that buffer is returned.
5: **
6: ** Ztack can be called recursively as:
7: ** ztack(ztack(ztack(w, x), y), z);
8: */
9:
10: char *ztack(a, b)
11: char *a, *b;
12: {
13: register char *c;
14: register char *q;
15: static char buf[101];
16:
17: c = buf;
18:
19: q = a;
20: while (*q)
21: *c++ = *q++;
22: q = b;
23: while (*q)
24: *c++ = *q++;
25: *c = '\0';
26: if (buf[100] != 0)
27: syserr("ztack overflow: %s", buf);
28: return (buf);
29: }
Defined functions
ztack
defined in line
10; used 24 times