diff options
Diffstat (limited to 'source/fitz')
-rw-r--r-- | source/fitz/output-cbz.c | 4 | ||||
-rw-r--r-- | source/fitz/writer.c | 15 |
2 files changed, 15 insertions, 4 deletions
diff --git a/source/fitz/output-cbz.c b/source/fitz/output-cbz.c index d6f1e07c..d9aff180 100644 --- a/source/fitz/output-cbz.c +++ b/source/fitz/output-cbz.c @@ -60,7 +60,7 @@ cbz_end_page(fz_context *ctx, fz_document_writer *wri_, fz_device *dev) } static void -cbz_drop_imp(fz_context *ctx, fz_document_writer *wri_) +cbz_close(fz_context *ctx, fz_document_writer *wri_) { fz_cbz_writer *wri = (fz_cbz_writer*)wri_; fz_try(ctx) @@ -80,7 +80,7 @@ fz_new_cbz_writer(fz_context *ctx, const char *path, const char *options) wri = fz_malloc_struct(ctx, fz_cbz_writer); wri->super.begin_page = cbz_begin_page; wri->super.end_page = cbz_end_page; - wri->super.drop_imp = cbz_drop_imp; + wri->super.close = cbz_close; fz_try(ctx) wri->zip = fz_new_zip_writer(ctx, path); diff --git a/source/fitz/writer.c b/source/fitz/writer.c index b015b5bb..cb4ca77a 100644 --- a/source/fitz/writer.c +++ b/source/fitz/writer.c @@ -54,15 +54,26 @@ fz_new_document_writer(fz_context *ctx, const char *path, const char *format, co if (!fz_strcasecmp(format, "cbz")) return fz_new_cbz_writer(ctx, path, options); + if (!fz_strcasecmp(format, "pdf")) + return fz_new_pdf_writer(ctx, path, options); fz_throw(ctx, FZ_ERROR_GENERIC, "unknown document format: %s", format); } void +fz_close_document_writer(fz_context *ctx, fz_document_writer *wri) +{ + if (wri->close) + wri->close(ctx, wri); + wri->close = NULL; + fz_free(ctx, wri); +} + +void fz_drop_document_writer(fz_context *ctx, fz_document_writer *wri) { - if (wri->drop_imp) - wri->drop_imp(ctx, wri); + if (wri->close) + wri->close(ctx, wri); fz_free(ctx, wri); } |