summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/eptexdir/eptex.ech
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2014-11-09 08:29:49 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2014-11-09 08:29:49 +0000
commit32056f55040157895e4151ead5fbd8067e8b3754 (patch)
tree2e7f83ac3e2370988d78fc1b7788eeff9a3faf74 /Build/source/texk/web2c/eptexdir/eptex.ech
parent2c6669571d899717d79f83f055289568cfc11a32 (diff)
web2c/eptexdir, web2c/euptexdir: Improve the new primitive \lastnodechar (H. Kitagawa)
git-svn-id: svn://tug.org/texlive/trunk@35551 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/eptexdir/eptex.ech')
-rw-r--r--Build/source/texk/web2c/eptexdir/eptex.ech27
1 files changed, 21 insertions, 6 deletions
diff --git a/Build/source/texk/web2c/eptexdir/eptex.ech b/Build/source/texk/web2c/eptexdir/eptex.ech
index 761af8a7447..fc71a4a42a1 100644
--- a/Build/source/texk/web2c/eptexdir/eptex.ech
+++ b/Build/source/texk/web2c/eptexdir/eptex.ech
@@ -19,7 +19,7 @@
@y
@d eTeX_version_string=='-2.6' {current \eTeX\ version}
@#
-@d epTeX_version_string=='-141108'
+@d epTeX_version_string=='-141109'
@z
@x e-pTeX: banner
@@ -110,6 +110,25 @@ if not is_char_node(tx) then
end
@#
@d find_effective_tail==find_effective_tail_epTeX
+@#
+@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
+ tx:=last_jchr
+else if (type(tx)=kern_node) and (subtype(tx)=normal) then
+ begin r:=head; q:=link(head);
+ while q<>tx do
+ begin r:=q;
+ if is_char_node(q) then if font_dir[font(q)]<>dir_default then q:=link(q);
+ q:=link(q);
+ end;
+ if ((type(r)=penalty_node) and (subtype(r)=kinsoku_pena)) then tx:=last_jchr else tx:=r;
+ end;
+if not is_char_node(tx) then
+ if type(tx)=ligature_node then cur_val:=character(lig_char(tx)) else cur_val:=-1
+else if font_dir[font(tx)]<>dir_default then cur_val:=info(link(tx))
+else cur_val:=character(tx);
+end
@z
@x
@@ -143,11 +162,7 @@ if not is_char_node(tx) then
else if cur_val>disp_node then cur_val:=cur_val-1;
end
else cur_val:=unset_node; {\epTeX's |unset_node| is \eTeX's |unset_node+2|}
- last_node_char_code:
- if ((type(tx)=glue_node) and (subtype(tx)=jfm_skip+1))
- or ((type(tx)=penalty_node) and (subtype(tx)=kinsoku_pena)) then
- cur_val:=info(link(last_jchr))
- else cur_val:=-1;
+ last_node_char_code: ignore_font_kerning;
@z
@x e-pTeX: if primitives - leave room for three e-TeX codes