From 8f5376d30e1004a35a62ddbb8d9d8fcc0673fe8e Mon Sep 17 00:00:00 2001 From: Robin Watts Date: Tue, 23 Apr 2013 17:53:39 +0100 Subject: Add fz_write method for output streams. --- fitz/stm_output.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'fitz/stm_output.c') diff --git a/fitz/stm_output.c b/fitz/stm_output.c index f438a5b1..60e898b4 100644 --- a/fitz/stm_output.c +++ b/fitz/stm_output.c @@ -8,6 +8,14 @@ file_printf(fz_output *out, const char *fmt, va_list ap) return vfprintf(file, fmt, ap); } +static int +file_write(fz_output *out, const char *buffer, int count) +{ + FILE *file = (FILE *)out->opaque; + + return fwrite(buffer, 1, count, file); +} + fz_output * fz_new_output_file(fz_context *ctx, FILE *file) { @@ -15,6 +23,7 @@ fz_new_output_file(fz_context *ctx, FILE *file) out->ctx = ctx; out->opaque = file; out->printf = file_printf; + out->write = file_write; out->close = NULL; return out; } @@ -45,6 +54,14 @@ fz_printf(fz_output *out, const char *fmt, ...) return ret; } +int +fz_write(fz_output *out, const char *data, int len) +{ + if (!out) + return 0; + return out->write(out, data, len); +} + static int buffer_printf(fz_output *out, const char *fmt, va_list list) { @@ -53,6 +70,15 @@ buffer_printf(fz_output *out, const char *fmt, va_list list) return fz_buffer_vprintf(out->ctx, buffer, fmt, list); } +static int +buffer_write(fz_output *out, const char *data, int len) +{ + fz_buffer *buffer = (fz_buffer *)out->opaque; + + fz_write_buffer(out->ctx, buffer, (unsigned char *)data, len); + return len; +} + fz_output * fz_new_output_buffer(fz_context *ctx, fz_buffer *buf) { @@ -60,6 +86,7 @@ fz_new_output_buffer(fz_context *ctx, fz_buffer *buf) out->ctx = ctx; out->opaque = buf; out->printf = buffer_printf; + out->write = buffer_write; out->close = NULL; return out; } -- cgit v1.2.3