diff options
author | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2014-11-19 09:38:17 +0000 |
---|---|---|
committer | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2014-11-19 09:38:17 +0000 |
commit | 03282d8528ff06458868dee6d8a284e2998ebad1 (patch) | |
tree | 948754c061b0b7c3622a6c568c0e91386cdd073e /Build/source | |
parent | 53c6d09e9471b7bac44eca767c5488a5b0a527a0 (diff) |
web2c/eptexdir, web2c/euptexdir: Fix a bug introduced in \lastnodechar (H. Kitagawa)
git-svn-id: svn://tug.org/texlive/trunk@35619 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source')
-rw-r--r-- | Build/source/texk/web2c/eptexdir/eptex.ech | 17 | ||||
-rw-r--r-- | Build/source/texk/web2c/euptexdir/euptex.ch1 | 11 |
2 files changed, 14 insertions, 14 deletions
diff --git a/Build/source/texk/web2c/eptexdir/eptex.ech b/Build/source/texk/web2c/eptexdir/eptex.ech index 3cf81163cb0..07d81b821e2 100644 --- a/Build/source/texk/web2c/eptexdir/eptex.ech +++ b/Build/source/texk/web2c/eptexdir/eptex.ech @@ -111,6 +111,10 @@ if not is_char_node(tx) then @# @d find_effective_tail==find_effective_tail_epTeX @# +@d find_last_char== +if font_dir[font(tx)]<>dir_default then cur_val:=KANJI(info(link(tx))) +else cur_val:=qo(character(tx)) + @d ignore_font_kerning== begin if ((type(tx)=glue_node) and (subtype(tx)=jfm_skip+1)) or ((type(tx)=penalty_node) and (subtype(tx)=kinsoku_pena)) then @@ -131,8 +135,7 @@ if not is_char_node(tx) then cur_val:=qo(character(r)); end end -else if font_dir[font(tx)]<>dir_default then cur_val:=KANJI(info(link(tx))) -else cur_val:=qo(character(tx)); +else find_last_char; end @z @@ -151,9 +154,13 @@ end begin cur_val_level:=int_val; cur_val:=-1; end else cur_val_level:=cur_chr; - if (cur_chr=last_node_char_code)and(is_char_node(tx))and(tx<>head) then - begin if font_dir[font(tx)]<>dir_default then cur_val:=KANJI(info(link(tx))) - else cur_val:=qo(character(tx)); end; + if (cur_chr=last_node_char_code)and(is_char_node(tx))and(tx<>head) then + { |tx| might be ``second node'' of a KANJI character; so we need to look the node before |tx| } + begin r:=head; q:=head; + while q<>tx do begin r:=q; q:=link(q); end; { |r| is the node just before |tx| } + if (r<>head)and is_char_node(r) then if font_dir[font(r)]<>dir_default then tx:=r; + find_last_char; + end; @z @x [26.424] e-pTeX: node types diff --git a/Build/source/texk/web2c/euptexdir/euptex.ch1 b/Build/source/texk/web2c/euptexdir/euptex.ch1 index 14550ad64c5..0745836dead 100644 --- a/Build/source/texk/web2c/euptexdir/euptex.ch1 +++ b/Build/source/texk/web2c/euptexdir/euptex.ch1 @@ -7,16 +7,9 @@ @z @x -else if font_dir[font(tx)]<>dir_default then cur_val:=KANJI(info(link(tx))) +if font_dir[font(tx)]<>dir_default then cur_val:=KANJI(info(link(tx))) @y -else if font_dir[font(tx)]<>dir_default then cur_val:=KANJI(info(link(tx))) mod max_cjk_val -@z - -@x - begin if font_dir[font(tx)]<>dir_default then cur_val:=KANJI(info(link(tx))) -@y - begin if font_dir[font(tx)]<>dir_default then cur_val:=KANJI(info(link(tx))) mod max_cjk_val - {it seems that |mod max_cjk_val| is not necessary in the above line, but why?} +if font_dir[font(tx)]<>dir_default then cur_val:=KANJI(info(link(tx))) mod max_cjk_val @z @x e-pTeX: ifcsname l.28620 |