From 047fd921744f39a82a86d9370e03f7af511e6e84 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Mon, 25 Feb 2019 09:45:53 -0500 Subject: page: handle EPS without showpage --- src/cmd/page/gs.c | 4 ++++ src/cmd/page/ps.c | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/cmd/page/gs.c b/src/cmd/page/gs.c index 7179429a..5c493b35 100644 --- a/src/cmd/page/gs.c +++ b/src/cmd/page/gs.c @@ -186,6 +186,10 @@ spawngs(GSInfo *g, char *safer) Binit(&g->gsrd, stdoutp[0], OREAD); + gscmd(g, "/PAGEDIDSHOWPAGE false def\n"); + gscmd(g, "/showpage { /PAGEDIDSHOWPAGE true def showpage } bind def\n"); + gscmd(g, "/PAGEFLUSH { PAGEDIDSHOWPAGE not {showpage} if /PAGEDIDSHOWPAGE false def } def\n"); + gscmd(g, "/PAGEOUT (/dev/fd/4) (w) file def\n"); if(!strcmp(safer, "-dSAFER")) gscmd(g, ".setsafe\n"); diff --git a/src/cmd/page/ps.c b/src/cmd/page/ps.c index e75a1477..7935f694 100644 --- a/src/cmd/page/ps.c +++ b/src/cmd/page/ps.c @@ -353,7 +353,7 @@ Keepreading: } if(dumb) { - fprint(ps->gs.gsfd, "(%s) run\n", argv[0]); + 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"); } @@ -420,6 +420,7 @@ psdrawpage(Document *d, int page) * so send one to avoid deadlock. */ write(ps->gs.gsfd, "\n", 1); + fprint(ps->gs.gsfd, "\nPAGEFLUSH\n"); im = convert(&ps->gs.g); if(im == nil) { fprint(2, "fatal: readimage error %r\n"); -- cgit v1.2.3