1% eptexdir/etex.ch0: changefile used to build e-pTeX, see eptexdir/eptex-base.ch for details.
2% Public domain. Originally written by Peter Breitenlohner <tex-live@tug.org>.
3
4@x [10] m.135 l.2895 - e-TeX TeXXeT
5|fil|, |fill|, or |filll|). The |subtype| field is not used in \TeX.
6@y
7|fil|, |fill|, or |filll|). The |subtype| field is not used.
8@z
9
10@x [17.236] l.4960 - first web2c, then e-TeX additional integer parameters
11@d int_pars=web2c_int_pars {total number of integer parameters}
12@#
13@d etex_int_base=tex_int_pars {base for \eTeX's integer parameters}
14@y
15@d int_pars=web2c_int_pars {total number of integer parameters}
16@d count_base=int_base+int_pars {256 user \.{\\count} registers}
17@z
18
19@x [26.413]
20  {fetch an internal parameter}
21label exit;
22var m:halfword; {|chr_code| part of the operand token}
23@!q,@!r:pointer; {general purpose indices}
24@!tx:pointer; {effective tail node}
25@y
26  {fetch an internal parameter}
27var m:halfword; {|chr_code| part of the operand token}
28@z
29
30@x [26.413]
31exit:end;
32@y
33end;
34@z
35
36@x [26.420]
37begin scan_register_num; fetch_box(q);
38if q=null then cur_val:=0 @+else cur_val:=mem[q+m].sc;
39@y
40begin scan_eight_bit_int;
41if box(cur_val)=null then cur_val:=0 @+else cur_val:=mem[box(cur_val)+m].sc;
42@z
43
44@x [26.424]
45legal in similar contexts.
46
47@y
48legal in similar contexts.
49@z
50
51@x [26.424]
52@d find_effective_tail==find_effective_tail_eTeX
53
54@y
55@z
56
57@x [26.424]
58  find_effective_tail;
59@y
60@z
61
62@x [26.424]
63  if not is_char_node(tx)and(mode<>0) then
64    case cur_chr of
65    int_val: if type(tx)=penalty_node then cur_val:=penalty(tx);
66    dimen_val: if type(tx)=kern_node then cur_val:=width(tx);
67    glue_val: if type(tx)=glue_node then
68      begin cur_val:=glue_ptr(tx);
69      if subtype(tx)=mu_glue then cur_val_level:=mu_val;
70@y
71  if not is_char_node(tail)and(mode<>0) then
72    case cur_chr of
73    int_val: if type(tail)=penalty_node then cur_val:=penalty(tail);
74    dimen_val: if type(tail)=kern_node then cur_val:=width(tail);
75    glue_val: if type(tail)=glue_node then
76      begin cur_val:=glue_ptr(tail);
77      if subtype(tail)=mu_glue then cur_val_level:=mu_val;
78@z
79
80@x [26.424]
81  else if (mode=vmode)and(tx=head) then
82@y
83  else if (mode=vmode)and(tail=head) then
84@z
85
86@x [27.468]
87@d etex_convert_base=5 {base for \eTeX's command codes}
88@d eTeX_revision_code=etex_convert_base {command code for \.{\\eTeXrevision}}
89@d etex_convert_codes=etex_convert_base+1 {end of \eTeX's command codes}
90@d job_name_code=etex_convert_codes {command code for \.{\\jobname}}
91@y
92@d job_name_code=5 {command code for \.{\\jobname}}
93@z
94
95@x [30.581]
96var old_setting: integer; {saved value of |tracing_online|}
97@y
98@z
99
100@x [32.619]
101save_loc:=dvi_offset+dvi_ptr; base_line:=cur_v;
102prev_p:=this_box+list_offset;
103@<Initialize |hlist_out| for mixed direction typesetting@>;
104left_edge:=cur_h;
105@y
106save_loc:=dvi_offset+dvi_ptr; base_line:=cur_v; left_edge:=cur_h;
107@z
108
109@x [32.620]
110  prev_p:=link(prev_p); {N.B.: not |prev_p:=p|, |p| might be |lig_trick|}
111@y
112@z
113
114@x [32.624] l.13005 - pTeX: output a box(and dir_node) with disp
115  cur_h:=edge; cur_v:=base_line;
116@y
117  cur_h:=edge+width(p); cur_v:=base_line;
118@z
119
120@x [33.649]
121exit: if TeXXeT_en then @<Check for LR anomalies at the end of |hpack|@>;
122hpack:=r;
123@y
124exit: hpack:=r;
125@z
126
127@x [44.977]
128q:=prune_page_top(q,saving_vdiscards>0);
129p:=list_ptr(v); free_node(v,box_node_size);
130if q<>null then q:=vpack(q,natural);
131change_box(q); {the |eq_level| of the box stays the same}
132@y
133q:=prune_page_top(q); p:=list_ptr(v); free_node(v,box_node_size);
134if q=null then box(n):=null {the |eq_level| of the box stays the same}
135else box(n):=vpack(q,natural);
136@z
137
138@x [47.1079]
139@!r:pointer; {running behind |p|}
140@!fm:boolean; {a final \.{\\beginM} \.{\\endM} node pair?}
141@!tx:pointer; {effective tail node}
142@y
143@z
144
145@x [47.1080]
146@d check_effective_tail(#)==find_effective_tail_eTeX
147@d fetch_effective_tail==fetch_effective_tail_eTeX
148
149@y
150@z
151@x [47.1080]
152else  begin check_effective_tail(goto done);
153  if not is_char_node(tx) then
154    if (type(tx)=hlist_node)or(type(tx)=vlist_node) then
155      @<Remove the last box, unless it's part of a discretionary@>;
156  done:end;
157@y
158else  begin if not is_char_node(tail) then
159    if (type(tail)=hlist_node)or(type(tail)=vlist_node) then
160      @<Remove the last box, unless it's part of a discretionary@>;
161  end;
162@z
163
164@x [47.1081]
165begin fetch_effective_tail(goto done);
166cur_box:=tx; shift_amount(cur_box):=0;
167end
168@y
169begin q:=head;
170repeat p:=q;
171if not is_char_node(q) then if type(q)=disc_node then
172  begin for m:=1 to replace_count(q) do p:=link(p);
173  if p=tail then goto done;
174  end;
175q:=link(p);
176until q=tail;
177cur_box:=tail; shift_amount(cur_box):=0;
178tail:=p; link(p):=null;
179done:end
180@z
181
182@x [47.1096]
183  else line_break(false);
184@y
185  else line_break(widow_penalty);
186@z
187
188@x [47.1105]
189@!r:pointer; {running behind |p|}
190@!fm:boolean; {a final \.{\\beginM} \.{\\endM} node pair?}
191@!tx:pointer; {effective tail node}
192@y
193@z
194
195@x [47.1105]
196else  begin check_effective_tail(return);
197  if not is_char_node(tx) then if type(tx)=cur_chr then
198    begin fetch_effective_tail(return);
199    flush_node_list(tx);
200@y
201else  begin if not is_char_node(tail) then if type(tail)=cur_chr then
202    begin q:=head;
203    repeat p:=q;
204    if not is_char_node(q) then if type(q)=disc_node then
205      begin for m:=1 to replace_count(q) do p:=link(p);
206      if p=tail then return;
207      end;
208    q:=link(p);
209    until q=tail;
210    link(p):=null; flush_node_list(tail); tail:=p;
211@z
212
213@x [47.1110]
214else  begin link(tail):=list_ptr(p); change_box(null);
215@y
216else  begin link(tail):=list_ptr(p); box(cur_val):=null;
217@z
218
219@x [48.1145]
220else  begin line_break(true);@/
221@y
222else  begin line_break(display_widow_penalty);@/
223@z
224
225@x [49.1247]
226if b<>null then mem[b+c].sc:=cur_val;
227@y
228if box(b)<>null then mem[box(b)+c].sc:=cur_val;
229@z
230
231