diff options
-rw-r--r-- | Build/source/texk/dvipsk/ChangeLog | 6 | ||||
-rw-r--r-- | Build/source/texk/dvipsk/output.c | 43 |
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); |