diff --git a/converter/other/pnmtops.c b/converter/other/pnmtops.c index 24dc7df..e393931 100644 --- a/converter/other/pnmtops.c +++ b/converter/other/pnmtops.c @@ -1909,6 +1909,7 @@ convertPage(FILE * const ifP, /* The file stream which is the head of the filter chain; we write to this and filtered stuff comes out the other end. */ + FILE * filterChainOfP; pnm_readpaminit(ifP, &inpam, PAM_STRUCT_SIZE(tuple_type)); @@ -1951,7 +1952,11 @@ convertPage(FILE * const ifP, initOutputEncoder(&oe, inpam.width, bitsPerSample, rle, flate, ascii85, psFilter); - spawnFilters(stdout, &oe, &feedFileP, filterPidList); + fflush(stdout); + filterChainOfP = fdopen(dup(fileno(stdout)), "w"); + /* spawnFilters() closes this. See FILE MANAGEMENT above */ + + spawnFilters(filterChainOfP, &oe, &feedFileP, filterPidList); convertRaster(&inpam, bitsPerSample, psFilter, feedFileP);