prt_ps: add ctrl+d support

This commit is contained in:
David Hrdlička
2019-12-04 19:52:49 +01:00
parent 08fceb79c0
commit dd0e8532d0

View File

@@ -39,6 +39,7 @@
#define PATH_GHOSTSCRIPT_DLL "gsdll32.dll" #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_revision)(gsapi_revision_t *pr, int len);
static GSDLLAPI int (*ghostscript_new_instance)(void **pinstance, void *caller_handle); 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); fseek(fp, 0, SEEK_END);
fprintf(fp, "%s\n", dev->buffer); fprintf(fp, "%s65536\n", dev->buffer);
fclose(fp); fclose(fp);
dev->buffer[0] = 0;
dev->buffer_pos = 0;
} }
static void static void
@@ -255,10 +259,13 @@ ps_write_ctrl(uint8_t val, void *p)
dev->buffer_pos = 0; dev->buffer_pos = 0;
if(!dev->autofeed) if(!dev->autofeed)
break; break;
// fallthrough
case '\n': case '\n':
write_buffer(dev); write_buffer(dev);
dev->buffer[0] = 0; break;
dev->buffer_pos = 0; case 0x04: // Ctrl+D
write_buffer(dev);
finish_document(dev);
break; break;
} }
} }