summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/eptexdir/eptex.ech
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/web2c/eptexdir/eptex.ech')
-rw-r--r--Build/source/texk/web2c/eptexdir/eptex.ech37
1 files changed, 32 insertions, 5 deletions
diff --git a/Build/source/texk/web2c/eptexdir/eptex.ech b/Build/source/texk/web2c/eptexdir/eptex.ech
index 3f3b0e01e4b..9a180515b7a 100644
--- a/Build/source/texk/web2c/eptexdir/eptex.ech
+++ b/Build/source/texk/web2c/eptexdir/eptex.ech
@@ -19,8 +19,8 @@
@y
@d eTeX_version_string=='-2.6' {current \eTeX\ version}
@#
-@d epTeX_version_string=='-180121'
-@d epTeX_version_number==180121
+@d epTeX_version_string=='-180226'
+@d epTeX_version_number==180226
@z
@x e-pTeX: banner
@@ -75,8 +75,9 @@ var m:halfword; {|chr_code| part of the operand token}
@d badness_code=glue_val+2 {code for \.{\\badness}}
@y
@d last_node_char_code=glue_val+2 {code for \.{\\lastnodechar}}
-@d input_line_no_code=glue_val+3 {code for \.{\\inputlineno}}
-@d badness_code=glue_val+4 {code for \.{\\badness}}
+@d last_node_subtype_code=glue_val+3 {code for \.{\\lastnodesubtype}}
+@d input_line_no_code=glue_val+4 {code for \.{\\inputlineno}}
+@d badness_code=glue_val+5 {code for \.{\\badness}}
@z
@x
@@ -181,7 +182,7 @@ end
end
else cur_val_level:=cur_chr;
@y
- if cur_chr=last_node_type_code then
+ if (cur_chr=last_node_type_code)or(cur_chr=last_node_subtype_code) then
begin cur_val_level:=int_val;
if (tx=head)or(mode=0) then cur_val:=-1;
end
@@ -209,9 +210,17 @@ end
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_subtype_code: cur_val:=subtype(tx);
last_node_char_code: ignore_font_kerning;
@z
+@x
+ last_node_type_code: cur_val:=last_node_type;
+@y
+ last_node_type_code: cur_val:=last_node_type;
+ last_node_subtype_code: cur_val:=last_node_subtype;
+@z
+
@x e-pTeX: if primitives - leave room for three e-TeX codes
@d if_tdir_code=if_case_code+1 { `\.{\\iftdir}' }
@y
@@ -228,6 +237,19 @@ end
@d set_box_lr_end(#) == qi(16*(#))
@z
+@x
+@!last_node_type:integer; {used to implement \.{\\lastnodetype}}
+@y
+@!last_node_type:integer; {used to implement \.{\\lastnodetype}}
+@!last_node_subtype:integer; {used to implement \.{\\lastnodesubtype}}
+@z
+
+@x
+last_node_type:=-1;
+@y
+last_node_type:=-1; last_node_subtype:=-1;
+@z
+
@x [45.996] l.19420
last_node_type:=type(p)+1;
@y
@@ -235,6 +257,7 @@ if type(p)<dir_node then last_node_type:=type(p)+1
else if type(p)=dir_node then last_node_type:=type(list_ptr(p))+1
else if type(p)<disp_node then last_node_type:=type(p)
else last_node_type:=type(p)-1; {no |disp_node| in a vertical list}
+last_node_subtype:=subtype(p);
@z
@x [47.1079] l.20920
@@ -431,6 +454,8 @@ primitive("lastnodetype",last_item,last_node_type_code);
@!@:last_node_type_}{\.{\\lastnodetype} primitive@>
primitive("lastnodechar",last_item,last_node_char_code);
@!@:last_node_char_}{\.{\\lastnodechar} primitive@>
+primitive("lastnodesubtype",last_item,last_node_subtype_code);
+@!@:last_node_subtype_}{\.{\\lastnodesubtype} primitive@>
@z
@x
@@ -438,7 +463,9 @@ last_node_type_code: print_esc("lastnodetype");
@y
last_node_type_code: print_esc("lastnodetype");
last_node_char_code: print_esc("lastnodechar");
+last_node_subtype_code: print_esc("lastnodesubtype");
@z
+
@x e-pTeX: font_char_{wd,ht,dp,ic}_code l.27306
if (font_bc[q]<=cur_val)and(font_ec[q]>=cur_val) then
begin i:=char_info(q)(qi(cur_val));