summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2014-11-19 09:38:17 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2014-11-19 09:38:17 +0000
commit03282d8528ff06458868dee6d8a284e2998ebad1 (patch)
tree948754c061b0b7c3622a6c568c0e91386cdd073e
parent53c6d09e9471b7bac44eca767c5488a5b0a527a0 (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
-rw-r--r--Build/source/texk/web2c/eptexdir/eptex.ech17
-rw-r--r--Build/source/texk/web2c/euptexdir/euptex.ch111
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