char *dupcat(char *s1, ...)
char *dupcat(const char *s1, ...)
char *dupcat(char *s1, ...){    int len;    char *p, *q, *sn;    va_list ap;    len = strlen(s1);    va_start(ap, s1);    while (1) {	sn = va_arg(ap, char *);	if (!sn)	    break;	len += strlen(sn);    }    va_end(ap);    p = smalloc(len + 1);    strcpy(p, s1);    q = p + strlen(p);    va_start(ap, s1);    while (1) {	sn = va_arg(ap, char *);	if (!sn)	    break;	strcpy(q, sn);	q += strlen(q);    }    va_end(ap);    return p;}