err(2, files.names[j+i]);
err(2, "%s", files.names[j+i]);
fmerge(binno, files, nfiles, get, outfp, fput, ftbl)	union f_handle files;	int binno, nfiles;	int (*get)();	FILE *outfp;	void (*fput)();	struct field *ftbl;{	FILE *tout;	int i, j, last;	void (*put)(RECHEADER *, FILE *);	extern int geteasy();	struct tempfile *l_fstack;	wts = ftbl->weights;	if (!UNIQUE && SINGL_FLD && ftbl->flags & F)		wts1 = (ftbl->flags & R) ? Rascii : ascii;	if (!cfilebuf) {		cfilebuf = malloc(MAXLLEN + sizeof(TMFILE));		if (cfilebuf == NULL)			errx(2, "cannot allocate memory");	}	i = min(16, nfiles) * LALIGN(MAXLLEN+sizeof(TMFILE));	if (!buffer || i > BUFSIZE) {		buffer = buffer ? realloc(buffer, i) : malloc(i);		if (!buffer)			errx(2, "cannot allocate memory");		if (!SINGL_FLD) {			if ((linebuf = malloc(MAXLLEN)) == NULL)				errx(2, "cannot allocate memory");		}	}	if (binno >= 0)		l_fstack = fstack + files.top;	else		l_fstack = fstack;	while (nfiles) {		put = putrec;		for (j = 0; j < nfiles; j += 16) {			if (nfiles <= 16) {				tout = outfp;				put = fput;			}			else				tout = ftmp();			last = min(16, nfiles - j);			if (binno < 0) {				for (i = 0; i < last; i++)					if (!(l_fstack[i+MAXFCT-1-16].fp =					    fopen(files.names[j + i], "r")))						err(2, files.names[j+i]);				merge(MAXFCT-1-16, last, get, tout, put, ftbl);			} else {				for (i = 0; i< last; i++)					rewind(l_fstack[i+j].fp);				merge(files.top+j, last, get, tout, put, ftbl);			}			if (nfiles > 16)				l_fstack[j/16].fp = tout;		}		nfiles = (nfiles + 15) / 16;		if (nfiles == 1)			nfiles = 0;		if (binno < 0) {			binno = 0;			get = geteasy;			files.top = 0;		}	}}