diff options
Diffstat (limited to 'Build/source/texk/web2c/euptexdir/etex.ch1')
-rw-r--r-- | Build/source/texk/web2c/euptexdir/etex.ch1 | 214 |
1 files changed, 214 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/euptexdir/etex.ch1 b/Build/source/texk/web2c/euptexdir/etex.ch1 new file mode 100644 index 00000000000..5826dbcb4f8 --- /dev/null +++ b/Build/source/texk/web2c/euptexdir/etex.ch1 @@ -0,0 +1,214 @@ +% eptexdir/etex.ch1: changefile used to build e-pTeX, see eptexdir/eptex-base.ch for details. +% Public domain. Originally written by Peter Breitenlohner <tex-live@tug.org>. + +@x [12.184] + begin print(", "); print_direction(box_dir(p)); +@y + begin print_direction_alt(box_dir(p)); +@z + +@x [16.215] - e-pTeX last_node_subtype +last_glue:=max_halfword; last_penalty:=0; last_kern:=0; +last_node_type:=-1; +@y +last_glue:=max_halfword; last_penalty:=0; last_kern:=0; +last_node_type:=-1; last_node_subtype:=-1; +@z + +@x [17.236] +@d int_pars=web2c_int_pars {total number of integer parameters} +@y +@d etex_int_base=web2c_int_pars {base for \eTeX's integer parameters} +@z + +@x [18] + for j:=0 to l-1 do begin + buffer[j]:=Lo(so(str_pool[k+j])); buffer2[j]:=Hi(so(str_pool[k+j])); end; +@y + for j:=0 to l-1 do begin + buffer[first+j]:=Lo(so(str_pool[k+j])); buffer2[first+j]:=Hi(so(str_pool[k+j])); end; +@z + +@x [26.413] +@<Fix the reference count, if any, and negate |cur_val| if |negative|@>; +end; +@y +@<Fix the reference count, if any, and negate |cur_val| if |negative|@>; +exit:end; +@z + +@x +@d eTeX_int=badness_code+1 {first of \eTeX\ codes for integers} +@y +@d eTeX_int=ptex_minor_version_code+1 {first of \eTeX\ codes for integers} +@z + +@x + begin case m of + input_line_no_code: cur_val:=line; + badness_code: cur_val:=last_badness; + ptex_version_code: cur_val:=pTeX_version; + eptex_version_code: cur_val:=epTeX_version_number; + ptex_minor_version_code: cur_val:=pTeX_minor_version; + end; {there and no other cases} +@y + if m>=eTeX_glue then @<Process an expression and |return|@>@; + else if m>=eTeX_dim then + begin case m of + @/@<Cases for fetching a dimension value@>@/ + end; {there are no other cases} + cur_val_level:=dimen_val; + end + else begin case m of + input_line_no_code: cur_val:=line; + badness_code: cur_val:=last_badness; + ptex_version_code: cur_val:=pTeX_version; + eptex_version_code: cur_val:=epTeX_version_number; + ptex_minor_version_code: cur_val:=pTeX_minor_version; + @/@<Cases for fetching an integer value@>@/ + end; {there are no other cases} +@z + +@x [27.468] +@d job_name_code=ptex_convert_codes {command code for \.{\\jobname}} +@y +@d etex_convert_base=ptex_convert_codes {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}} +@z + +@x [30.581] +@p procedure char_warning(@!f:internal_font_number;@!c:eight_bits); +var @!l:0..255; {small indices or counters} +@y +@p procedure char_warning(@!f:internal_font_number;@!c:eight_bits); +var @!l:0..255; {small indices or counters} +old_setting: integer; {saved value of |tracing_online|} +@z + +@x [32.619] +base_line:=cur_v; left_edge:=cur_h; disp:=0; +@y +base_line:=cur_v; disp:=0; revdisp:=0; +prev_p:=this_box+list_offset; +@<Initialize |hlist_out| for mixed direction typesetting@>; +left_edge:=cur_h; +@z + +@x [32.622] +@<Output node |p| for |hlist_out|...@>= +@y +@<Output node |p| for |hlist_out|...@>= +@z +@x [32.622] + p:=link(p); +@y + prev_p:=link(prev_p); {N.B.: not |prev_p:=p|, |p| might be |lig_trick|} + p:=link(p); +@z + +@x [32.623] +disp_node: begin disp:=disp_dimen(p); cur_v:=base_line+disp; end; +@y +disp_node: begin disp:=disp_dimen(p); revdisp:=disp; cur_v:=base_line+disp; end; +@z + +@x [32.624] + cur_h:=edge+width(p); cur_v:=base_line+disp; cur_dir_hv:=save_dir; +@y + cur_h:=edge; cur_v:=base_line+disp; cur_dir_hv:=save_dir; +@z + +@x [33.649] +exit: last_disp:=disp; hpack:=r; +@y +exit: last_disp:=disp; +if TeXXeT_en then @<Check for LR anomalies at the end of |hpack|@>; +hpack:=r; +@z + +@x [33.651] + disp_node:disp:=disp_dimen(p); +@y + disp_node:begin disp:=disp_dimen(p); revdisp:=disp; end; +@z + +@x [44.977] +q:=prune_page_top(q); p:=list_ptr(v); +if q=null then box(n):=null {the |eq_level| of the box stays the same} +else begin + box(n):=vpack(q,natural); set_box_dir(box(n))(box_dir(v)); + end; +@y +q:=prune_page_top(q,saving_vdiscards>0); +p:=list_ptr(v); +if q<>null then begin + q:=vpack(q,natural); set_box_dir(q)(box_dir(v)); + end; +change_box(q); +@z + +@x [47.1096] + else begin adjust_hlist(head,true); line_break(widow_penalty) +@y + else begin adjust_hlist(head,true); line_break(false) +@z + +@x [47.1110] + begin if type(box(cur_val))=dir_node then + begin delete_glue_ref(space_ptr(box(cur_val))); + delete_glue_ref(xspace_ptr(box(cur_val))); + free_node(box(cur_val),box_node_size); +@y + begin if type(p)=dir_node then + begin delete_glue_ref(space_ptr(p)); + delete_glue_ref(xspace_ptr(p)); + free_node(p,box_node_size); +@z +@x [47.1110] + link(tail):=list_ptr(p); box(cur_val):=null; +@y + link(tail):=list_ptr(p); change_box(null); +@z + +@x [48.1145] + pop_nest; w:=-max_dimen; + end + { |disp_node|-only paragraphs are ignored } +@y + @<Prepare for display after an empty paragraph@> + end + { |disp_node|-only paragraphs are ignored } +@z + +@x [48.1145] +else begin adjust_hlist(head,true); line_break(display_widow_penalty);@/ +@y +else begin adjust_hlist(head,true); line_break(true);@/ +@z + +@x [49.1247] +if box(b)<>null then + begin q:=box(b); p:=link(q); +@y +if b<>null then + begin q:=b; p:=link(q); +@z +@x [49.1247] + begin p:=link(box(b)); link(box(b)):=null; +@y + begin p:=link(b); link(b):=null; +@z +@x [49.1247] + link(q):=p; link(box(b)):=q; +@y + link(q):=p; link(b):=q; +@z + +@x [49.1291] +@d show_mode=4 { \.{\\showmode} } +@y +@d show_mode=7 { \.{\\showmode} } +@z + |