From 2c078412ccd9dab1d59b28b73b5b9eee8b72eb7d Mon Sep 17 00:00:00 2001 From: Akira Kakuto Date: Fri, 22 Oct 2010 13:56:41 +0000 Subject: 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 --- Build/source/texk/dvipsk/ChangeLog | 6 ++++++ Build/source/texk/dvipsk/output.c | 43 +++++++++++++++++++++++++------------- 2 files changed, 35 insertions(+), 14 deletions(-) (limited to 'Build/source') 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 + + * 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 * search.c (selfautoloc_prog): #include 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); -- cgit v1.2.3