err(2, filelist.names[fileno]);
err(2, "%s", filelist.names[fileno]);
makeline(flno, filelist, nfiles, buffer, bufend, dummy2)	int flno;	union f_handle filelist;	int nfiles;	RECHEADER *buffer;	u_char *bufend;	struct field *dummy2;{	static char *opos;	register char *end, *pos;	static int fileno = 0, overflow = 0;	static FILE *fp = 0;	register int c;	pos = (char *) buffer->data;	end = min((char *) bufend, pos + MAXLLEN);	if (overflow) {		memmove(pos, opos, bufend - (u_char *) opos);		pos += ((char *) bufend - opos);		overflow = 0;	}	for (;;) {		if (flno >= 0 && (fp = fstack[flno].fp) == NULL)			return (EOF);		else if (fp == 0) {			if (fileno  >= nfiles)				return (EOF);			if (!(fp = fopen(filelist.names[fileno], "r")))				err(2, filelist.names[fileno]);			fileno++;		}		while ((pos < end) && ((c = getc(fp)) != EOF)) {			if ((*pos++ = c) == REC_D) {				buffer->offset = 0;				buffer->length = pos - (char *) buffer->data;				return (0);			}		}		if (pos >= end && end == (char *) bufend) {			if ((char *) buffer->data < end) {				overflow = 1;				opos = (char *) buffer->data;			}			return (BUFFEND);		} else if (c == EOF) {			if (buffer->data != (u_char *) pos) {				warnx("last character not record delimiter");				*pos++ = REC_D;				buffer->offset = 0;				buffer->length = pos - (char *) buffer->data;				return (0);			}			FCLOSE(fp);			fp = 0;			if (flno >= 0)				fstack[flno].fp = 0;		} else {			buffer->data[100] = '\000';			warnx("line too long: ignoring %s...", buffer->data);		}	}}