% eptexdir/etex.ch0: changefile used to build e-pTeX, see eptexdir/eptex-base.ch for details. % Public domain. Originally written by Peter Breitenlohner . @x [17.236] l.4960 - first web2c, then e-TeX additional integer parameters @d int_pars=web2c_int_pars {total number of integer parameters} @# @d etex_int_base=tex_int_pars {base for \eTeX's integer parameters} @y @d int_pars=web2c_int_pars {total number of integer parameters} @d count_base=int_base+int_pars {256 user \.{\\count} registers} @z @x [26.413] {fetch an internal parameter} label exit; var m:halfword; {|chr_code| part of the operand token} @!tx:pointer; {effective tail node} @y {fetch an internal parameter} var m:halfword; {|chr_code| part of the operand token} @z @x [26.413] exit:end; @y end; @z @x [26.420] if q=null then cur_val:=0 @+else cur_val:=mem[q+m].sc; @y if box(cur_val)=null then cur_val:=0 @+else cur_val:=mem[box(cur_val)+m].sc; @z @x [26.424] @d set_effective_tail==set_effective_tail_eTeX @y @z @x [26.424] begin set_effective_tail(return); case cur_chr of int_val: if type(tx)=penalty_node then cur_val:=penalty(tx); dimen_val: if type(tx)=kern_node then cur_val:=width(tx); glue_val: if type(tx)=glue_node then begin cur_val:=glue_ptr(tx); if subtype(tx)=mu_glue then cur_val_level:=mu_val; end; @y case cur_chr of int_val: if type(tail)=penalty_node then cur_val:=penalty(tail); dimen_val: if type(tail)=kern_node then cur_val:=width(tail); glue_val: if type(tail)=glue_node then begin cur_val:=glue_ptr(tail); if subtype(tail)=mu_glue then cur_val_level:=mu_val; end; @z @x [26.424] end; {there are no other cases} end @y end {there are no other cases} @z @x [27.468] @d etex_convert_base=5 {base for \eTeX's command codes} @d eTeX_revision_code=etex_convert_base {command code for \.{\\eTeXrevision}} @d etex_convert_codes=etex_convert_base+1 {end of \eTeX's command codes} @d job_name_code=etex_convert_codes {command code for \.{\\jobname}} @y @d job_name_code=5 {command code for \.{\\jobname}} @z @x [30.581] var old_setting: integer; {saved value of |tracing_online|} @y @z @x [32.619] save_loc:=dvi_offset+dvi_ptr; base_line:=cur_v; prev_p:=this_box+list_offset; @; left_edge:=cur_h; @y save_loc:=dvi_offset+dvi_ptr; base_line:=cur_v; left_edge:=cur_h; @z @x [32.620] prev_p:=link(prev_p); {N.B.: not |prev_p:=p|, |p| might be |lig_trick|} @y @z @x [32.624] l.13005 - pTeX: output a box(and dir_node) with disp cur_h:=edge; cur_v:=base_line; @y cur_h:=edge+width(p); cur_v:=base_line; @z @x [33.649] exit: if TeXXeT_en then @; hpack:=r; @y exit: hpack:=r; @z @x [44.977] q:=prune_page_top(q,saving_vdiscards>0); p:=list_ptr(v); free_node(v,box_node_size); if q<>null then q:=vpack(q,natural); change_box(q); {the |eq_level| of the box stays the same} @y q:=prune_page_top(q); p:=list_ptr(v); free_node(v,box_node_size); if q=null then box(n):=null {the |eq_level| of the box stays the same} else box(n):=vpack(q,natural); @z @x [47.1080] begin if (type(tail)=math_node)and(subtype(tail)=end_M_code) then remove_end_M; @y @z @x [47.1080] if LR_temp<>null then insert_end_M; end; @y @z @x [47.1096] else line_break(false); @y else line_break(widow_penalty); @z @x [47.1105] else begin if not is_char_node(tail) then begin if (type(tail)=math_node)and(subtype(tail)=end_M_code) then remove_end_M; if type(tail)=cur_chr then @y else begin if not is_char_node(tail) then if type(tail)=cur_chr then @z @x [47.1105] if LR_temp<>null then insert_end_M; end; @y @z @x [47.1110] else begin link(tail):=list_ptr(p); change_box(null); @y else begin link(tail):=list_ptr(p); box(cur_val):=null; @z @x [48.1145] else begin line_break(true);@/ @y else begin line_break(display_widow_penalty);@/ @z @x [49.1247] if b<>null then mem[b+c].sc:=cur_val; @y if box(b)<>null then mem[box(b)+c].sc:=cur_val; @z