summaryrefslogtreecommitdiff
path: root/Build/source/texk/dvipsk
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2010-10-22 13:56:41 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2010-10-22 13:56:41 +0000
commit2c078412ccd9dab1d59b28b73b5b9eee8b72eb7d (patch)
treec0aa791fc3df4a847581ea55b11de8f8a1cc4389 /Build/source/texk/dvipsk
parentb46211a1d0f00cb5ab42d2510ddd0d656aa52989 (diff)
output.c: recover the old code in hvpos() for japanese typesetting because the changed code leads to incorrect result in some cases. other cases than japanese are not affected.
git-svn-id: svn://tug.org/texlive/trunk@20155 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/dvipsk')
-rw-r--r--Build/source/texk/dvipsk/ChangeLog6
-rw-r--r--Build/source/texk/dvipsk/output.c43
2 files changed, 35 insertions, 14 deletions
diff --git a/Build/source/texk/dvipsk/ChangeLog b/Build/source/texk/dvipsk/ChangeLog
index 1036a80675a..ee8443c8da2 100644
--- a/Build/source/texk/dvipsk/ChangeLog
+++ b/Build/source/texk/dvipsk/ChangeLog
@@ -1,3 +1,9 @@
+2010-10-22 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * output.c (hvpos): recover the old code in hvpos() for japanese
+ because the changed code leads to incorrect result in some cases.
+ other cases than japanese are not affected.
+
2010-10-02 Peter Breitenlohner <peb@mppmu.mpg.de>
* search.c (selfautoloc_prog): #include <kpathsea/concatn.h>
diff --git a/Build/source/texk/dvipsk/output.c b/Build/source/texk/dvipsk/output.c
index 6e64bd7e020..915335a1387 100644
--- a/Build/source/texk/dvipsk/output.c
+++ b/Build/source/texk/dvipsk/output.c
@@ -914,13 +914,19 @@ hvpos(void)
numout(hh);
numout(vv);
chrcmd('y');
- } else if (rhh != hh) {
- numout(hh);
- numout(vv);
- chrcmd('a');
- } else { /* hard to get this case, but it's there when you need it! */
- numout(vv - rvv);
- chrcmd('x');
+ } else if (jflag) {
+ numout(hh) ;
+ numout(vv) ;
+ chrcmd('a') ;
+ } else {
+ if (rhh != hh) {
+ numout(hh);
+ numout(vv);
+ chrcmd('a');
+ } else { /* hard to get this case, but it's there when you need it! */
+ numout(vv - rvv);
+ chrcmd('x');
+ }
}
rvv = vv;
} else if (rhh != hh || jflag) {
@@ -957,13 +963,19 @@ hvpos(void)
numout(vv);
numout(-hh);
chrcmd('y');
- } else if (rvv != vv) {
- numout(vv);
- numout(-hh);
- chrcmd('a');
- } else { /* hard to get this case, but it's there when you need it! */
- numout(rhh - hh);
- chrcmd('x');
+ } else if (jflag) {
+ numout(vv) ;
+ numout(-hh) ;
+ chrcmd('a') ;
+ } else {
+ if (rvv != vv) {
+ numout(vv);
+ numout(-hh);
+ chrcmd('a');
+ } else { /* hard to get this case, but it's there when you need it! */
+ numout(rhh - hh);
+ chrcmd('x');
+ }
}
rhh = hh;
} else if (rvv != vv || jflag) {
@@ -1654,7 +1666,10 @@ drawchar(chardesctype *c, int cc)
}
if (curfnt->iswide == 0 && curfnt->codewidth == 2) {
+ Boolean savejflag = jflag;
+ jflag = 1;
hvpos();
+ jflag = savejflag;
if (lastfont != curfnt->psname)
fontout(curfnt->psname);
scout2(cc);