diff options
author | Robin Watts <robin.watts@artifex.com> | 2012-12-13 14:12:52 +0000 |
---|---|---|
committer | Robin Watts <robin.watts@artifex.com> | 2012-12-13 14:16:33 +0000 |
commit | 6e392e5e9a539bef5f608e2c1ee11ea4c1f68f2a (patch) | |
tree | 1fc9ab964201168ee582d32cdc3ae267ea4712d5 /pdf | |
parent | fce1eb15fcdb720b7c7ca96220971a246b90bb7a (diff) | |
download | mupdf-6e392e5e9a539bef5f608e2c1ee11ea4c1f68f2a.tar.xz |
Bug 693463: TR2 is defined for gstates, not for SMasks.
Move the TR2 handling code. Thanks to zeniko for this.
Diffstat (limited to 'pdf')
-rw-r--r-- | pdf/pdf_interpret.c | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/pdf/pdf_interpret.c b/pdf/pdf_interpret.c index 9a6f973a..e655cc87 100644 --- a/pdf/pdf_interpret.c +++ b/pdf/pdf_interpret.c @@ -1598,18 +1598,9 @@ pdf_run_extgstate(pdf_csi *csi, pdf_obj *rdb, pdf_obj *extgstate) else gstate->luminosity = 0; - tr = pdf_dict_gets(val, "TR2"); - if (tr) - { - if (strcmp(pdf_to_name(tr), "Identity") && strcmp(pdf_to_name(tr), "Default")) - fz_warn(ctx, "ignoring transfer function"); - } - else - { - tr = pdf_dict_gets(val, "TR"); - if (strcmp(pdf_to_name(tr), "Identity")) - fz_warn(ctx, "ignoring transfer function"); - } + tr = pdf_dict_gets(val, "TR"); + if (strcmp(pdf_to_name(tr), "Identity")) + fz_warn(ctx, "ignoring transfer function"); } else if (pdf_is_name(val) && !strcmp(pdf_to_name(val), "None")) { @@ -1621,9 +1612,17 @@ pdf_run_extgstate(pdf_csi *csi, pdf_obj *rdb, pdf_obj *extgstate) } } + else if (!strcmp(s, "TR2")) + { + if (strcmp(pdf_to_name(val), "Identity") && strcmp(pdf_to_name(val), "Default")) + fz_warn(ctx, "ignoring transfer function"); + } + else if (!strcmp(s, "TR")) { - if (!pdf_is_name(val) || strcmp(pdf_to_name(val), "Identity")) + /* TR is ignored in the presence of TR2 */ + pdf_obj *tr2 = pdf_dict_gets(extgstate, "TR2"); + if (!tr2 && !pdf_is_name(val) || strcmp(pdf_to_name(val), "Identity")) fz_warn(ctx, "ignoring transfer function"); } } |