aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cmd/page/cache.c7
-rw-r--r--src/cmd/page/ps.c1
2 files changed, 7 insertions, 1 deletions
diff --git a/src/cmd/page/cache.c b/src/cmd/page/cache.c
index 0063a339..5110840f 100644
--- a/src/cmd/page/cache.c
+++ b/src/cmd/page/cache.c
@@ -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);
diff --git a/src/cmd/page/ps.c b/src/cmd/page/ps.c
index 7935f694..84689571 100644
--- a/src/cmd/page/ps.c
+++ b/src/cmd/page/ps.c
@@ -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;