summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/eptexdir/eptex.ech
diff options
context:
space:
mode:
authorPeter Breitenlohner <peb@mppmu.mpg.de>2011-03-28 07:58:06 +0000
committerPeter Breitenlohner <peb@mppmu.mpg.de>2011-03-28 07:58:06 +0000
commitdd0ed622db05246c65cfec9450bf7c20ce1995b0 (patch)
tree4e4bf806822fdab741bdafde4ccae985a64a1af6 /Build/source/texk/web2c/eptexdir/eptex.ech
parent568ba93dc2f7b54626e711e1da207b6d5c2e1081 (diff)
e-TeX, pTeX, and e-pTeX: reformulate and fix bugs from r21810, r21817, and r21837
git-svn-id: svn://tug.org/texlive/trunk@21859 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/eptexdir/eptex.ech')
-rw-r--r--Build/source/texk/web2c/eptexdir/eptex.ech72
1 files changed, 43 insertions, 29 deletions
diff --git a/Build/source/texk/web2c/eptexdir/eptex.ech b/Build/source/texk/web2c/eptexdir/eptex.ech
index 8a102eb99e4..49d80ac2d75 100644
--- a/Build/source/texk/web2c/eptexdir/eptex.ech
+++ b/Build/source/texk/web2c/eptexdir/eptex.ech
@@ -39,43 +39,51 @@
@d set_box_dir(#) == subtype(#):=(subtype(#)div 8)*8+set_box_dir_end
@z
+@x [26.413] l.8343 - e-pTeX: scan_something_internal
+var m:halfword; {|chr_code| part of the operand token}
+@y
+label exit;
+var m:halfword; {|chr_code| part of the operand token}
+@z
+
+@x [26.420] l.8474 - pTeX: Fetch a box dimension: dir_node
+begin scan_eight_bit_int; q:=box(cur_val);
+@y
+begin scan_register_num; fetch_box(q);
+@z
+
@x [26.424] l.8510 - e-pTeX: last node
@d find_effective_tail==find_effective_tail_pTeX
@y
-@d find_effective_tail_epTeX(#)== {sets |tx| to last non-\.{\\endM} non-|disp_node|}
-find_effective_tail_pTeX(#);
-if (type(tx)=math_node)and(subtype(tx)=end_M_code) then
- begin r:=head;
- repeat q:=r; r:=link(q); until link(r)=tx;
- if is_char_node(r) then #;
- if type(r)=disp_node then
- if is_char_node(q)or(q=head) then #
- else tx:=q
- else tx:=r;
+@d find_effective_tail_epTeX== {sets |tx| to last non-\.{\\endM} non-|disp_node|}
+tx:=tail;
+if not is_char_node(tx) then
+ begin if type(tx)=disp_node then tx:=prev_node;
+ if not is_char_node(tx) then
+ if (type(tx)=math_node)and(subtype(tx)=end_M_code) then
+ begin r:=head;
+ repeat q:=r; r:=link(q);
+ until r=tx;
+ tx:=q;
+ end;
+ if not is_char_node(tx) then
+ if type(tx)=disp_node then tx:=prev_node;
end
@#
@d find_effective_tail==find_effective_tail_epTeX
@z
-@x [26.424] l.8517 - e-pTeX: node types
- if (tail=head)or(mode=0) then cur_val:=-1;
-@y
- if (tail=head)or(mode=0)or@|
- ((tail=link(head))and not is_char_node(tail)and(type(tail)=disp_node))
- then cur_val:=-1;
-@z
-
@x [26.424] e-pTeX: node types
- last_node_type_code: if type(tx)<=unset_node then cur_val:=type(tx)+1
- else cur_val:=unset_node+2;
+ last_node_type_code: if type(tx)<=unset_node then cur_val:=type(tx)+1
+ else cur_val:=unset_node+2;
@y
- last_node_type_code: if type(tx)<=unset_node then
- begin if type(tx)=dir_node then tx:=list_ptr(tx);
- cur_val:=type(tx);
- if cur_val<dir_node then cur_val:=cur_val+1
- 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_type_code: if type(tx)<=unset_node then
+ begin if type(tx)=dir_node then tx:=list_ptr(tx);
+ cur_val:=type(tx);
+ if cur_val<dir_node then cur_val:=cur_val+1
+ 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|}
@z
@x e-pTeX: if primitives - leave room for three e-TeX codes
@@ -94,6 +102,12 @@ if (type(tx)=math_node)and(subtype(tx)=end_M_code) then
@d set_box_lrstat_end(#) == (#)
@z
+@x [45.996] l.19420
+last_node_type:=type(p)+1;
+@y
+last_node_type:=type(p)+1;
+@z
+
@x [47.1079] l.20920
@!fd:boolean; {a final |disp_node| pair?}
@y
@@ -201,10 +215,10 @@ if fm>0 then {drop \.{\\beginM} \.{\\endM} pair}
@z
@x e-pTeX: displacement value when typesetting right-to-left l.27798
-@!LR_temp:pointer; {holds a temporarily removed \.{\\endM} node}
+@!LR_ptr:pointer; {stack of LR codes for |hpack|, |ship_out|, and |init_math|}
@y
@!revdisp:scaled; {temporary value of displacement}
-@!LR_temp:pointer; {holds a temporarily removed \.{\\endM} node}
+@!LR_ptr:pointer; {stack of LR codes for |hpack|, |ship_out|, and |init_math|}
@z
@x e-pTeX: reverse nodes of an hlist l.28010