Commit Diff


commit - 436ff26c3688198de8e8e48121296eace0b5d119
commit + 46606276c3fe20fa81597cf87378e18f7baf88a7
blob - 0063a339627b3a61a23d67970a30e788cce77228
blob + 5110840f7e52e3395b5db5170b71510f80e05499
--- src/cmd/page/cache.c
+++ 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);
blob - 7935f694c7f43e10981e924926b15b95ffdfbc59
blob + 846895718caafaa40d16309961cc1b0884793743
--- src/cmd/page/ps.c
+++ 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;