page: fix hang for forward-only postscript files

Page was hanging because ghostscript never closes the fd from which
we're reading BMP data. We close our end of the pipe so that ghostscript
will close its end.

Tested with ghostscript version 9.50.

Fixes #124
This commit is contained in:
Fazlul Shahriar 2019-11-14 00:47:58 -05:00 committed by Dan Cross
parent 436ff26c36
commit 46606276c3
2 changed files with 7 additions and 1 deletions

View file

@ -168,7 +168,12 @@ raproc(void *a)
c = a;
lockdisplay(display);
_cachedpage(c->doc, c->angle, c->page, "-ra");
/*
* If there is only one page in a fwdonly file, we may reach EOF
* while doing readahead and page will exit without showing anything.
*/
if(!c->doc->fwdonly)
_cachedpage(c->doc, c->angle, c->page, "-ra");
rabusy = 0;
unlockdisplay(display);
free(c);

View file

@ -355,6 +355,7 @@ Keepreading:
if(dumb) {
fprint(ps->gs.gsfd, "(%s) run PAGEFLUSH\n", argv[0]);
fprint(ps->gs.gsfd, "(/dev/fd/3) (w) file dup (THIS IS NOT A PLAN9 BITMAP 01234567890123456789012345678901234567890123456789\\n) writestring flushfile\n");
close(ps->gs.gsfd);
}
ps->bbox = bbox;