From dd0e8532d0e4fb9260d25190de930543be630be4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Hrdli=C4=8Dka?= Date: Wed, 4 Dec 2019 19:52:49 +0100 Subject: [PATCH] prt_ps: add ctrl+d support --- src/printer/prt_ps.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/printer/prt_ps.c b/src/printer/prt_ps.c index 1391b7e0a..ac8319ef8 100644 --- a/src/printer/prt_ps.c +++ b/src/printer/prt_ps.c @@ -39,6 +39,7 @@ #define PATH_GHOSTSCRIPT_DLL "gsdll32.dll" +#define PATH_GHOSTSCRIPT_SO "libgs.so" static GSDLLAPI int (*ghostscript_revision)(gsapi_revision_t *pr, int len); static GSDLLAPI int (*ghostscript_new_instance)(void **pinstance, void *caller_handle); @@ -192,9 +193,12 @@ write_buffer(ps_t *dev) fseek(fp, 0, SEEK_END); - fprintf(fp, "%s\n", dev->buffer); + fprintf(fp, "%s65536\n", dev->buffer); fclose(fp); + + dev->buffer[0] = 0; + dev->buffer_pos = 0; } static void @@ -255,10 +259,13 @@ ps_write_ctrl(uint8_t val, void *p) dev->buffer_pos = 0; if(!dev->autofeed) break; + // fallthrough case '\n': write_buffer(dev); - dev->buffer[0] = 0; - dev->buffer_pos = 0; + break; + case 0x04: // Ctrl+D + write_buffer(dev); + finish_document(dev); break; } }