warn(fn);
warn("%s", fn);
forward(ms, fp, fn, f)	char ms[];	FILE *fp;	char *fn;	int f;{	int *msgvec;	struct ignoretab *ig;	char *tabst;	msgvec = (int *)salloc((msgCount+1) * sizeof(*msgvec));	if (msgvec == NULL)		return(0);	if (getmsglist(ms, msgvec, 0) < 0)		return(0);	if (*msgvec == 0) {		*msgvec = first(0, MMNORM);		if (*msgvec == NULL) {			puts("No appropriate messages");			return(0);		}		msgvec[1] = NULL;	}	if (f == 'f' || f == 'F')		tabst = NULL;	else if ((tabst = value("indentprefix")) == NULL)		tabst = "\t";	ig = isupper(f) ? NULL : ignore;	fputs("Interpolating:", stdout);	for (; *msgvec != 0; msgvec++) {		struct message *mp = message + *msgvec - 1;		touch(mp);		printf(" %d", *msgvec);		if (sendmessage(mp, fp, ig, tabst) < 0) {			warn(fn);			return(-1);		}	}	putchar('\n');	return(0);}