From 82b666579e02a4d35b3087b79353373c355d107f Mon Sep 17 00:00:00 2001 From: Robin Watts Date: Thu, 29 Nov 2012 13:47:38 +0000 Subject: Bug 693463: Various small fixes. Thanks to zeniko for these. Use otf as extension for opentype fonts. fz_clampi should take ints, not floats! Fix typo in prototype. Squash unwanted warning. Remove magic number in favour of #define. Reset generation numbers when renumbering. --- apps/pdfextract.c | 2 ++ fitz/dev_text.c | 2 +- fitz/dev_trace.c | 2 +- fitz/fitz.h | 2 +- pdf/mupdf-internal.h | 2 +- pdf/pdf_font.c | 3 ++- pdf/pdf_interpret.c | 2 +- pdf/pdf_repair.c | 1 - pdf/pdf_write.c | 8 ++++++++ 9 files changed, 17 insertions(+), 7 deletions(-) diff --git a/apps/pdfextract.c b/apps/pdfextract.c index 7d49f997..f17edff2 100644 --- a/apps/pdfextract.c +++ b/apps/pdfextract.c @@ -96,6 +96,8 @@ static void savefont(pdf_obj *dict, int num) ext = "cff"; else if (!strcmp(subtype, "CIDFontType0C")) ext = "cid"; + else if (!strcmp(subtype, "OpenType")) + ext = "otf"; else fz_throw(ctx, "Unhandled font type '%s'", subtype); } diff --git a/fitz/dev_text.c b/fitz/dev_text.c index 280d1b55..a5d765eb 100644 --- a/fitz/dev_text.c +++ b/fitz/dev_text.c @@ -714,7 +714,7 @@ fz_print_text_page_xml(fz_context *ctx, FILE *out, fz_text_page *page) break; } fprintf(out, "\"/>\n"); - } + } fprintf(out, "\n"); } fprintf(out, "\n"); diff --git a/fitz/dev_trace.c b/fitz/dev_trace.c index 514ee780..a56cc67b 100644 --- a/fitz/dev_trace.c +++ b/fitz/dev_trace.c @@ -114,7 +114,7 @@ fz_trace_stroke_path(fz_device *dev, fz_path *path, fz_stroke_state *stroke, fz_ static void fz_trace_clip_path(fz_device *dev, fz_path *path, fz_rect *rect, int even_odd, fz_matrix ctm) { - printf(" min ? (f < max ? f : max) : min); } -static inline int fz_clampi(int i, float min, float max) +static inline int fz_clampi(int i, int min, int max) { return (i > min ? (i < max ? i : max) : min); } diff --git a/pdf/mupdf-internal.h b/pdf/mupdf-internal.h index 3f3d0fb5..839f30f4 100644 --- a/pdf/mupdf-internal.h +++ b/pdf/mupdf-internal.h @@ -600,7 +600,7 @@ typedef struct pdf_js_event_s int rc; } pdf_js_event; -int pdf_js_suported(); +int pdf_js_supported(); pdf_js *pdf_new_js(pdf_document *doc); void pdf_drop_js(pdf_js *js); void pdf_js_load_document_level(pdf_js *js); diff --git a/pdf/pdf_font.c b/pdf/pdf_font.c index 33a1a651..6879d12b 100644 --- a/pdf/pdf_font.c +++ b/pdf/pdf_font.c @@ -260,7 +260,8 @@ pdf_load_system_font(fz_context *ctx, pdf_font_desc *fontdesc, char *fontname, c pdf_load_substitute_cjk_font(ctx, fontdesc, fontname, PDF_ROS_KOREA, serif); else { - fz_warn(ctx, "unknown cid collection: %s", collection); + if (strcmp(collection, "Adobe-Identity") != 0) + fz_warn(ctx, "unknown cid collection: %s", collection); pdf_load_substitute_font(ctx, fontdesc, fontname, mono, serif, bold, italic); } } diff --git a/pdf/pdf_interpret.c b/pdf/pdf_interpret.c index 1acef7df..6a2eab04 100644 --- a/pdf/pdf_interpret.c +++ b/pdf/pdf_interpret.c @@ -28,7 +28,7 @@ struct pdf_material_s pdf_pattern *pattern; fz_shade *shade; float alpha; - float v[32]; + float v[FZ_MAX_COLORS]; }; struct pdf_gstate_s diff --git a/pdf/pdf_repair.c b/pdf/pdf_repair.c index dac02731..44d69b99 100644 --- a/pdf/pdf_repair.c +++ b/pdf/pdf_repair.c @@ -419,7 +419,6 @@ pdf_repair_xref(pdf_document *xref, pdf_lexbuf *buf) pdf_drop_obj(dict); } - } xref->table[0].type = 'f'; diff --git a/pdf/pdf_write.c b/pdf/pdf_write.c index a8b56964..98f0dd2e 100644 --- a/pdf/pdf_write.c +++ b/pdf/pdf_write.c @@ -1737,6 +1737,14 @@ dowriteobject(pdf_document *xref, pdf_write_options *opts, int num, int pass) if (xref->table[num].type == 'o') opts->gen_list[num] = 0; + /* If we are renumbering, then make sure all generation numbers are + * zero (except object 0 which must be free, and have a gen number of + * 65535). Changing the generation numbers (and indeed object numbers) + * will break encryption - so only do this if we are renumbering + * anyway. */ + if (opts->do_garbage >= 2) + opts->gen_list[num] = (num == 0 ? 65535 : 0); + if (opts->do_garbage && !opts->use_list[num]) return; -- cgit v1.2.3