summaryrefslogtreecommitdiff
path: root/Build/source/texk/dvipdfm-x/spc_tpic.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/dvipdfm-x/spc_tpic.c')
-rw-r--r--Build/source/texk/dvipdfm-x/spc_tpic.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/Build/source/texk/dvipdfm-x/spc_tpic.c b/Build/source/texk/dvipdfm-x/spc_tpic.c
index 7f1e8e76e55..7cc38556c64 100644
--- a/Build/source/texk/dvipdfm-x/spc_tpic.c
+++ b/Build/source/texk/dvipdfm-x/spc_tpic.c
@@ -381,6 +381,16 @@ tpic__arc (struct spc_tpic_ *tp,
set_styles(tp, c, f_fs, f_vp, pn, da);
+ /* The arcx operator here draws an excess straight line from current
+ * point to the starting point of the arc if they are different, as in
+ * PostScript language. It may cuase an unexpected behavior when DVIPS
+ * transformation command is inserted before TPIC ar command: it invokes
+ * moveto and sets currentpoint which may be different from the starting
+ * point of arc to be drawn. We use newpath here to avoid drawing an
+ * excess line. I'm not sure if it is proper TPIC implementation but this
+ * seems to be DVIPS compatible behavior.
+ */
+ pdf_dev_newpath();
pdf_dev_arcx(v[0], v[1], v[2], v[3], v[4], v[5], +1, 0.0);
showpath(f_vp, f_fs);