--- sort.c Sat Dec 1 12:29:26 2001 +++ sort_good.c Sat Feb 9 16:41:18 2002 @@ -1649,5 +1649,5 @@ /* Read initial lines from each input file. */ - for (i = 0; i < nfiles; ++i) + for (i = 0; i < nfiles; ) { fps[i] = xfopen (files[i], "r"); @@ -1655,5 +1655,5 @@ MAX (merge_buffer_size, sort_size / nfiles)); /* If a file is empty, eliminate it from future consideration. */ - while (i < nfiles && !fillbuf (&buffer[i], fps[i], files[i])) + if (i < nfiles && !fillbuf (&buffer[i], fps[i], files[i])) { xfclose (fps[i], files[i]); @@ -1662,4 +1662,6 @@ for (j = i; j < nfiles; ++j) files[j] = files[j + 1]; + + continue; // redo this loop } if (i == nfiles) @@ -1671,4 +1673,5 @@ base[i] = linelim - buffer[i].nlines; } + i++; }