summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2015-03-01 09:46:33 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2015-03-01 09:46:33 +0000
commit51b5f3be5fb8ffa88fe3ecfe6a171e89e55b7929 (patch)
tree717dfa136c5e6bee143004c10b7f768584ee87f1
parent527bd842526e23b88e1f6151442eacc21f1e82ee (diff)
texk/dvipdfm-x: Fix a bug in a tpic special (S. Hirata)
git-svn-id: svn://tug.org/texlive/trunk@36412 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Build/source/texk/dvipdfm-x/ChangeLog6
-rw-r--r--Build/source/texk/dvipdfm-x/spc_tpic.c10
2 files changed, 16 insertions, 0 deletions
diff --git a/Build/source/texk/dvipdfm-x/ChangeLog b/Build/source/texk/dvipdfm-x/ChangeLog
index 74ac35aaa50..6a6ffdfe079 100644
--- a/Build/source/texk/dvipdfm-x/ChangeLog
+++ b/Build/source/texk/dvipdfm-x/ChangeLog
@@ -1,3 +1,9 @@
+2015-03-01 Shunsaku Hirata <shunsaku.hirata74@gmail.com>
+
+ * spc_tpic.c: Make tpic "ar" command dvips compatible to fix the problem
+ that an excess line is drawn when "ar" command is used along
+ with dvips transformation commands.
+
2015-02-25 Peter Breitenlohner <peb@mppmu.mpg.de>
* fontmap.h (pdf_insert_native_fontmap_record): Declare also
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);