summaryrefslogtreecommitdiff
path: root/pdf
diff options
context:
space:
mode:
authorRobin Watts <robin.watts@artifex.com>2012-12-13 14:12:52 +0000
committerRobin Watts <robin.watts@artifex.com>2012-12-13 14:16:33 +0000
commit6e392e5e9a539bef5f608e2c1ee11ea4c1f68f2a (patch)
tree1fc9ab964201168ee582d32cdc3ae267ea4712d5 /pdf
parentfce1eb15fcdb720b7c7ca96220971a246b90bb7a (diff)
downloadmupdf-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.c25
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");
}
}