diff options
Diffstat (limited to 'Build/source/texk/web2c/etexdir')
-rw-r--r-- | Build/source/texk/web2c/etexdir/ChangeLog | 6 | ||||
-rw-r--r-- | Build/source/texk/web2c/etexdir/etex.ch | 670 |
2 files changed, 348 insertions, 328 deletions
diff --git a/Build/source/texk/web2c/etexdir/ChangeLog b/Build/source/texk/web2c/etexdir/ChangeLog index ea79734b801..4e0e6219396 100644 --- a/Build/source/texk/web2c/etexdir/ChangeLog +++ b/Build/source/texk/web2c/etexdir/ChangeLog @@ -1,3 +1,9 @@ +2010-04-28 Peter Breitenlohner <peb@mppmu.mpg.de> + + * etex.ch: Checked and adjusted tex.web line numbers. + Fixed the error message for improper use of \protected, + reported by Heiko Oberdiek <heiko.oberdiek@googlemail.com>. + 2010-04-22 Peter Breitenlohner <peb@mppmu.mpg.de> * am/etex.am (etex_ch_srcs): Use tex-binpool.ch as for TeX. diff --git a/Build/source/texk/web2c/etexdir/etex.ch b/Build/source/texk/web2c/etexdir/etex.ch index 13455fa14b7..6ea1513379d 100644 --- a/Build/source/texk/web2c/etexdir/etex.ch +++ b/Build/source/texk/web2c/etexdir/etex.ch @@ -42,7 +42,7 @@ % TeX is a trademark of the American Mathematical Society. % e-TeX and NTS are trademarks of the NTS group. -% All line numbers refer to tex.web 3.141592 as of December 21, 2002. +% All line numbers refer to tex.web 3.1415926 as of March 23, 2008. @x limbo l.1 - this is e-TeX % This program is copyright (C) 1982 by D. E. Knuth; all rights are reserved. @@ -78,7 +78,7 @@ % and sole responsibility of Professor Knuth. @z %--------------------------------------- -@x limbo l.50 - e-TeX history +@x limbo l.51 - e-TeX history % Although considerable effort has been expended to make the TeX program % correct and reliable, no warranty is implied; the author disclaims any % obligation or liability for damages, including but not limited to @@ -119,6 +119,9 @@ % Version 2.3 development was started in Feb 2008; released in Mon Year. % fixed a bug in hyph_code handling (\savinghyphcodes) % reported by Vladimir Volovich <vvv@@vsu.ru>, Feb 2008. +% fixed the error message for improper use of \protected, +% reported by Heiko Oberdiek +% <heiko.oberdiek@@googlemail.com>, Apr 2010. % Although considerable effort has been expended to make the e-TeX program % correct and reliable, no warranty is implied; the author disclaims any @@ -128,7 +131,7 @@ % been a ``labor of love'' and the author hopes that users enjoy it. @z %--------------------------------------- -@x limbo l.62 - e-TeX logo, TeXXeT +@x limbo l.63 - e-TeX logo, TeXXeT \let\mc=\ninerm % medium caps for names like SAIL @y \let\mc=\ninerm % medium caps for names like SAIL @@ -158,14 +161,14 @@ \fi @z %--------------------------------------- -@x limbo l.65 - bug fix (print only changed modules) +@x limbo l.66 - bug fix (print only changed modules) \def\pct!{{\char`\%}} % percent sign in ordinary text @y \def\pct!{{\char`\%}} % percent sign in ordinary text \def\grp{\.{\char'173...\char'175}} @z %--------------------------------------- -@x limbo l.81 - e-TeX basic +@x limbo l.82 - e-TeX basic \def\title{\TeX82} @y \def\title{\eTeX} @@ -176,21 +179,21 @@ \let\maybe=\iffalse % print only changed modules @z %--------------------------------------- -@x [1] m.1 l.92 - this is e-TeX +@x [1] m.1 l.93 - this is e-TeX This is \TeX, a document compiler intended to produce typesetting of high @y This is \eTeX, a program derived from and extending the capabilities of \TeX, a document compiler intended to produce typesetting of high @z %--------------------------------------- -@x [1] m.2 l.180 - e-TeX basic +@x [1] m.2 l.182 - e-TeX basic If this program is changed, the resulting system should not be called @y This program contains code for various features extending \TeX, therefore this program is called `\eTeX' and not @z %--------------------------------------- -@x [1] m.2 l.186 - e-TeX basic +@x [1] m.2 l.188 - e-TeX basic November 1984]. @y November 1984]. @@ -200,7 +203,7 @@ helping to determine whether a particular implementation deserves to be known as `\eTeX'. @z %--------------------------------------- -@x [1] m.2 l.188 - e-TeX basic +@x [1] m.2 l.190 - e-TeX basic @d banner=='This is TeX, Version 3.1415926' {printed when \TeX\ starts} @y @d eTeX_version=2 { \.{\\eTeXversion} } @@ -221,14 +224,14 @@ known as `\eTeX'. @d eTeX_states=1 {number of \eTeX\ state variables in |eqtb|} @z %--------------------------------------- -@x [1] m.3 l.207 - e-TeX basic +@x [1] m.3 l.209 - e-TeX basic scalar types; there are no `\&{var}' parameters, except in the case of files; @y scalar types; there are no `\&{var}' parameters, except in the case of files --- \eTeX, however, does use `\&{var}' parameters for the |reverse| function; @z %--------------------------------------- -@x [1] m.15 l.499 - e-TeX basic +@x [1] m.15 l.504 - e-TeX basic @d not_found=45 {go here when you've found nothing} @y @d not_found=45 {go here when you've found nothing} @@ -238,7 +241,7 @@ scalar types; there are no `\&{var}' parameters, except in the case of files @d not_found4=49 {like |not_found|, when there's more than four} @z %--------------------------------------- -@x [10] m.141 l.2971 - e-TeX marks +@x [10] m.141 l.2980 - e-TeX marks This field occupies a full word instead of a halfword, because there's nothing to put in the other halfword; it is easier in \PASCAL\ to use the full word than to risk leaving garbage in the unused half. @@ -246,21 +249,21 @@ use the full word than to risk leaving garbage in the unused half. In addition there is a |mark_class| field that contains the mark class. @z %--------------------------------------- -@x [10] m.141 l.2977 - e-TeX marks +@x [10] m.141 l.2986 - e-TeX marks @d mark_ptr(#)==mem[#+1].int {head of the token list for a mark} @y @d mark_ptr(#)==link(#+1) {head of the token list for a mark} @d mark_class(#)==info(#+1) {the mark class} @z %--------------------------------------- -@x [10] m.142 l.2986 - e-TeX marks +@x [10] m.142 l.2995 - e-TeX marks @d adjust_ptr==mark_ptr {vertical list to be moved out of horizontal list} @y @d adjust_ptr(#)==mem[#+1].int {vertical list to be moved out of horizontal list} @z %--------------------------------------- -@x [10] m.147 l.3075 - e-TeX TeXXeT +@x [10] m.147 l.3084 - e-TeX TeXXeT the amount of surrounding space inserted by \.{\\mathsurround}. @y the amount of surrounding space inserted by \.{\\mathsurround}. @@ -271,7 +274,7 @@ discarded at a line break or one of the text direction primitives ( \.{\\beginL}, \.{\\endL}, \.{\\beginR}, and \.{\\endR} ). @z %--------------------------------------- -@x [10] m.147 l.3079 - e-TeX TeXXeT +@x [10] m.147 l.3088 - e-TeX TeXXeT @d after=1 {|subtype| for math node that winds up a formula} @y @d after=1 {|subtype| for math node that winds up a formula} @@ -291,14 +294,14 @@ discarded at a line break or one of the text direction primitives ( @d begin_LR_type(#)==(#-after+before) @z %--------------------------------------- -@x [12] m.175 l.3552 - e-TeX TeXXeT +@x [12] m.175 l.3561 - e-TeX TeXXeT math_node: print_char("$"); @y math_node: if subtype(p)>=L_code then print("[]") else print_char("$"); @z %--------------------------------------- -@x [12] m.184 l.3719 - e-TeX TeXXeT +@x [12] m.184 l.3728 - e-TeX TeXXeT begin print(", shifted "); print_scaled(shift_amount(p)); end; @y @@ -307,7 +310,7 @@ math_node: if subtype(p)>=L_code then print("[]") if eTeX_ex then @<Display if this box is never to be reversed@>; @z %--------------------------------------- -@x [12] m.192 l.3817 - e-TeX TeXXeT +@x [12] m.192 l.3826 - e-TeX TeXXeT begin print_esc("math"); @y if subtype(p)>after then @@ -320,7 +323,7 @@ if subtype(p)>after then begin print_esc("math"); @z %--------------------------------------- -@x [12] m.196 l.3850 - e-TeX marks +@x [12] m.196 l.3859 - e-TeX marks begin print_esc("mark"); print_mark(mark_ptr(p)); @y begin print_esc("mark"); @@ -330,70 +333,70 @@ if mark_class(p)<>0 then print_mark(mark_ptr(p)); @z %--------------------------------------- -@x [15] m.208 l.4087 - e-TeX saved_items +@x [15] m.208 l.4096 - e-TeX saved_items @d un_vbox=24 {unglue a box ( \.{\\unvbox}, \.{\\unvcopy} )} @y @d un_vbox=24 {unglue a box ( \.{\\unvbox}, \.{\\unvcopy} )} {( or \.{\\pagediscards}, \.{\\splitdiscards} )} @z %--------------------------------------- -@x [15] m.208 l.4097 - e-TeX TeXXeT +@x [15] m.208 l.4106 - e-TeX TeXXeT @d valign=33 {vertical table alignment ( \.{\\valign} )} @y @d valign=33 {vertical table alignment ( \.{\\valign} )} {or text direction directives ( \.{\\beginL}, etc.~)} @z %--------------------------------------- -@x [15] m.208 l.4113 - e-TeX middle +@x [15] m.208 l.4122 - e-TeX middle @d left_right=49 {variable delimiter ( \.{\\left}, \.{\\right} )} @y @d left_right=49 {variable delimiter ( \.{\\left}, \.{\\right} )} {( or \.{\\middle} )} @z %--------------------------------------- -@x [15] m.209 l.4157 - e-TeX basic +@x [15] m.209 l.4166 - e-TeX basic \.{\\insertpenalties} )} @y \.{\\insertpenalties} )} {( or \.{\\interactionmode} )} @z %--------------------------------------- -@x [15] m.209 l.4159 - e-TeX penalties +@x [15] m.209 l.4168 - e-TeX penalties @d set_shape=84 {specify fancy paragraph shape ( \.{\\parshape} )} @y @d set_shape=84 {specify fancy paragraph shape ( \.{\\parshape} )} {(or \.{\\interlinepenalties}, etc.~)} @z %--------------------------------------- -@x [15] m.209 l.4169 - e-TeX protected +@x [15] m.209 l.4178 - e-TeX protected @d prefix=93 {qualify a definition ( \.{\\global}, \.{\\long}, \.{\\outer} )} @y @d prefix=93 {qualify a definition ( \.{\\global}, \.{\\long}, \.{\\outer} )} {( or \.{\\protected} )} @z %--------------------------------------- -@x [15] m.209 l.4172 - e-TeX read_line +@x [15] m.209 l.4181 - e-TeX read_line @d read_to_cs=96 {read into a control sequence ( \.{\\read} )} @y @d read_to_cs=96 {read into a control sequence ( \.{\\read} )} {( or \.{\\readline} )} @z %--------------------------------------- -@x [15] m.210 l.4187 - e-TeX scan_tokens +@x [15] m.210 l.4196 - e-TeX scan_tokens @d input=max_command+4 {input a source file ( \.{\\input}, \.{\\endinput} )} @y @d input=max_command+4 {input a source file ( \.{\\input}, \.{\\endinput} )} {( or \.{\\scantokens} )} @z %--------------------------------------- -@x [15] m.210 l.4192 - e-TeX unexpanded +@x [15] m.210 l.4201 - e-TeX unexpanded @d the=max_command+9 {expand an internal quantity ( \.{\\the} )} @y @d the=max_command+9 {expand an internal quantity ( \.{\\the} )} {( or \.{\\unexpanded}, \.{\\detokenize} )} @z %--------------------------------------- -@x [16] m.212 l.4295 - e-TeX basic +@x [16] m.212 l.4304 - e-TeX basic user's output routine. @y user's output routine. @@ -406,14 +409,14 @@ display. In math mode it is known as |delim_ptr| and points to the most recent |left_noad| or |middle_noad| of a |math_left_group|. @z %--------------------------------------- -@x [16] m.212 l.4310 - e-TeX basic +@x [16] m.212 l.4319 - e-TeX basic @!head_field,@!tail_field: pointer; @y @!head_field,@!tail_field: pointer; @!eTeX_aux_field: pointer; @z %--------------------------------------- -@x [16] m.213 l.4317 - e-TeX basic +@x [16] m.213 l.4326 - e-TeX basic @d tail==cur_list.tail_field {final node on current list} @y @d tail==cur_list.tail_field {final node on current list} @@ -423,21 +426,21 @@ recent |left_noad| or |middle_noad| of a |math_left_group|. @d delim_ptr==eTeX_aux {most recent left or right noad of a math left group} @z %--------------------------------------- -@x [16] m.215 l.4348 - e-TeX basic +@x [16] m.215 l.4357 - e-TeX basic mode:=vmode; head:=contrib_head; tail:=contrib_head; @y mode:=vmode; head:=contrib_head; tail:=contrib_head; eTeX_aux:=null; @z %--------------------------------------- -@x [16] m.216 l.4364 push_nest - e-TeX basic +@x [16] m.216 l.4373 push_nest - e-TeX basic incr(nest_ptr); head:=get_avail; tail:=head; prev_graf:=0; mode_line:=line; @y incr(nest_ptr); head:=get_avail; tail:=head; prev_graf:=0; mode_line:=line; eTeX_aux:=null; @z %--------------------------------------- -@x [17] m.230 l.4727 - e-TeX basic, every_eof +@x [17] m.230 l.4736 - e-TeX basic, every_eof @d toks_base=local_base+10 {table of 256 token list registers} @y @d tex_toks=local_base+10 {end of \TeX's token list parameters} @@ -449,7 +452,7 @@ eTeX_aux:=null; @d toks_base=etex_toks {table of 256 token list registers} @z %--------------------------------------- -@x [17] m.230 l.4728 - e-TeX basic, penalties +@x [17] m.230 l.4737 - e-TeX basic, penalties @d box_base=toks_base+256 {table of 256 box registers} @y @# @@ -463,14 +466,14 @@ eTeX_aux:=null; @d box_base=etex_pens {table of 256 box registers} @z %--------------------------------------- -@x [17] m.231 l.4793 - e-TeX basic +@x [17] m.231 l.4802 - e-TeX basic othercases print_esc("errhelp") @y @/@<Cases of |assign_toks| for |print_cmd_chr|@>@/ othercases print_esc("errhelp") @z %--------------------------------------- -@x [17] m.232 l.4811 - e-TeX penalties +@x [17] m.232 l.4820 - e-TeX penalties eq_level(par_shape_loc):=level_one;@/ @y eq_level(par_shape_loc):=level_one;@/ @@ -478,7 +481,7 @@ for k:=etex_pen_base to etex_pens-1 do eqtb[k]:=eqtb[par_shape_loc]; @z %--------------------------------------- -@x [17] m.233 l.4839 - e-TeX penalties +@x [17] m.233 l.4848 - e-TeX penalties if n=par_shape_loc then begin print_esc("parshape"); print_char("="); if par_shape_ptr=null then print_char("0") @@ -493,7 +496,7 @@ if (n=par_shape_loc) or ((n>=etex_pen_base) and (n<etex_pens)) then end @z %--------------------------------------- -@x [17] m.236 l.4960 - e-TeX basic +@x [17] m.236 l.4969 - e-TeX basic @d int_pars=55 {total number of integer parameters} @y @d tex_int_pars=55 {total number of \TeX's integer parameters} @@ -514,7 +517,7 @@ if (n=par_shape_loc) or ((n>=etex_pen_base) and (n<etex_pens)) then @d int_pars=etex_int_pars {total number of integer parameters} @z %--------------------------------------- -@x [17] m.236 l.5022 - e-TeX basic +@x [17] m.236 l.5031 - e-TeX basic @d error_context_lines==int_par(error_context_lines_code) @y @d error_context_lines==int_par(error_context_lines_code) @@ -530,20 +533,20 @@ if (n=par_shape_loc) or ((n>=etex_pen_base) and (n<etex_pens)) then @d saving_hyph_codes==int_par(saving_hyph_codes_code) @z %--------------------------------------- -@x [17] m.237 l.5087 print_param - e-TeX basic +@x [17] m.237 l.5096 print_param - e-TeX basic othercases print("[unknown integer parameter!]") @y @/@<Cases for |print_param|@>@/ othercases print("[unknown integer parameter!]") @z %--------------------------------------- -@x [18] m.264 l.5618 primitive - e-TeX basic +@x [18] m.264 l.5627 primitive - e-TeX basic @!j:small_number; {index into |buffer|} @y @!j:0..buf_size; {index into |buffer|} @z %--------------------------------------- -@x [18] m.264 l.5622 primitive - e-TeX basic +@x [18] m.264 l.5631 primitive - e-TeX basic {we will move |s| into the (empty) |buffer|} for j:=0 to l-1 do buffer[j]:=so(str_pool[k+j]); cur_val:=id_lookup(0,l); {|no_new_control_sequence| is |false|} @@ -556,26 +559,26 @@ othercases print("[unknown integer parameter!]") cur_val:=id_lookup(first,l); {|no_new_control_sequence| is |false|} @z %--------------------------------------- -@x [18] m.265 l.5697 - e-TeX penalties +@x [18] m.265 l.5706 - e-TeX penalties primitive("parshape",set_shape,0);@/ @y primitive("parshape",set_shape,par_shape_loc);@/ @z %--------------------------------------- -@x [18] m.265 l.5714 - e-TeX sparse arrays +@x [18] m.265 l.5723 - e-TeX sparse arrays primitive("toks",toks_register,0);@/ @y primitive("toks",toks_register,mem_bot);@/ @z %--------------------------------------- -@x [18] m.266 l.5747 - e-TeX cond +@x [18] m.266 l.5756 - e-TeX cond expand_after: print_esc("expandafter"); @y expand_after: if chr_code=0 then print_esc("expandafter") @<Cases of |expandafter| for |print_cmd_chr|@>; @z %--------------------------------------- -@x [18] m.266 l.5753 - e-TeX marks +@x [18] m.266 l.5762 - e-TeX marks mark: print_esc("mark"); @y mark: begin print_esc("mark"); @@ -583,14 +586,14 @@ mark: begin print_esc("mark"); end; @z %--------------------------------------- -@x [18] m.266 l.5764 - e-TeX read_line +@x [18] m.266 l.5773 - e-TeX read_line read_to_cs: print_esc("read"); @y read_to_cs: if chr_code=0 then print_esc("read") @<Cases of |read| for |print_cmd_chr|@>; @z %--------------------------------------- -@x [18] m.266 l.5768 - e-TeX penalties +@x [18] m.266 l.5777 - e-TeX penalties set_shape: print_esc("parshape"); @y set_shape: case chr_code of @@ -599,33 +602,33 @@ set_shape: case chr_code of end; {there are no other cases} @z %--------------------------------------- -@x [18] m.266 l.5769 - e-TeX unexpanded +@x [18] m.266 l.5778 - e-TeX unexpanded the: print_esc("the"); @y the: if chr_code=0 then print_esc("the") @<Cases of |the| for |print_cmd_chr|@>; @z %--------------------------------------- -@x [18] m.266 l.5770 - e-TeX sparse arrays +@x [18] m.266 l.5779 - e-TeX sparse arrays toks_register: print_esc("toks"); @y toks_register: @<Cases of |toks_register| for |print_cmd_chr|@>; @z %--------------------------------------- -@x [18] m.266 l.5772 - e-TeX TeXXeT +@x [18] m.266 l.5781 - e-TeX TeXXeT valign: print_esc("valign"); @y valign: if chr_code=0 then print_esc("valign")@/ @<Cases of |valign| for |print_cmd_chr|@>; @z %--------------------------------------- -@x [19] m.268 l.5806 - e-TeX sparse arrays +@x [19] m.268 l.5815 - e-TeX sparse arrays interpreted in one of four ways: @y interpreted in one of five ways: @z %--------------------------------------- -@x [19] m.268 l.5826 - e-TeX tracing +@x [19] m.268 l.5835 - e-TeX tracing the entries for that group. @y the entries for that group. @@ -638,7 +641,7 @@ group. Furthermore |save_index(p)| and |save_level(p)| should replace the values of |sa_chain| and |sa_level| respectively. @z %--------------------------------------- -@x [19] m.268 l.5836 - e-TeX basic +@x [19] m.268 l.5845 - e-TeX basic @d level_boundary=3 {|save_type| corresponding to beginning of group} @y @d level_boundary=3 {|save_type| corresponding to beginning of group} @@ -647,19 +650,19 @@ the values of |sa_chain| and |sa_level| respectively. @p@t\4@>@<Declare \eTeX\ procedures for tracing and input@> @z %--------------------------------------- -@x [19] m.273 l.5894 - e-TeX tracing +@x [19] m.273 l.5903 - e-TeX tracing @ The following macro is used to test if there is room for up to six more @y @ The following macro is used to test if there is room for up to seven more @z %--------------------------------------- -@x [19] m.273 l.5900 check_full_save_stack - e-TeX tracing +@x [19] m.273 l.5909 check_full_save_stack - e-TeX tracing if max_save_stack>save_size-6 then overflow("save size",save_size); @y if max_save_stack>save_size-7 then overflow("save size",save_size); @z %--------------------------------------- -@x [19] m.274 l.5922 new_save_level - e-TeX tracing +@x [19] m.274 l.5931 new_save_level - e-TeX tracing begin check_full_save_stack; @y begin check_full_save_stack; @@ -668,7 +671,7 @@ if eTeX_ex then end; @z %--------------------------------------- -@x [19] m.274 l.5929 new_save_level - e-TeX tracing +@x [19] m.274 l.5938 new_save_level - e-TeX tracing cur_boundary:=save_ptr; incr(cur_level); incr(save_ptr); cur_group:=c; @y cur_boundary:=save_ptr; cur_group:=c; @@ -676,14 +679,14 @@ cur_boundary:=save_ptr; cur_group:=c; incr(cur_level); incr(save_ptr); @z %--------------------------------------- -@x [19] m.275 l.5947 eq_destroy - e-TeX sparse arrays +@x [19] m.275 l.5956 eq_destroy - e-TeX sparse arrays othercases do_nothing @y @/@<Cases for |eq_destroy|@>@/ othercases do_nothing @z %--------------------------------------- -@x [19] m.277 l.5969 - e-TeX tracing +@x [19] m.277 l.5978 - e-TeX tracing the call, since |eq_save| makes the necessary test. @y the call, since |eq_save| makes the necessary test. @@ -692,7 +695,7 @@ the call, since |eq_save| makes the necessary test. tats @z %--------------------------------------- -@x [19] m.277 l.5973 eq_define - e-TeX tracing +@x [19] m.277 l.5982 eq_define - e-TeX tracing begin if eq_level(p)=cur_level then eq_destroy(eqtb[p]) @y label exit; @@ -704,14 +707,14 @@ assign_trace(p,"changing")@;@/ if eq_level(p)=cur_level then eq_destroy(eqtb[p]) @z %--------------------------------------- -@x [19] m.277 l.5976 eq_define - e-TeX tracing +@x [19] m.277 l.5985 eq_define - e-TeX tracing end; @y assign_trace(p,"into")@;@/ exit:end; @z %--------------------------------------- -@x [19] m.278 l.5983 eq_word_define - e-TeX tracing +@x [19] m.278 l.5992 eq_word_define - e-TeX tracing begin if xeq_level[p]<>cur_level then @y label exit; @@ -723,14 +726,14 @@ assign_trace(p,"changing")@;@/ if xeq_level[p]<>cur_level then @z %--------------------------------------- -@x [19] m.278 l.5987 eq_word_define - e-TeX tracing +@x [19] m.278 l.5996 eq_word_define - e-TeX tracing end; @y assign_trace(p,"into")@;@/ exit:end; @z %--------------------------------------- -@x [19] m.279 l.5996 geq_define - e-TeX tracing +@x [19] m.279 l.6005 geq_define - e-TeX tracing begin eq_destroy(eqtb[p]); eq_level(p):=level_one; eq_type(p):=t; equiv(p):=e; @y @@ -741,7 +744,7 @@ end; assign_trace(p,"into")@;@/ @z %--------------------------------------- -@x [19] m.279 l.6001 geq_word_define - e-TeX tracing +@x [19] m.279 l.6010 geq_word_define - e-TeX tracing begin eqtb[p].int:=w; xeq_level[p]:=level_one; @y begin assign_trace(p,"globally changing")@;@/ @@ -750,13 +753,13 @@ end; assign_trace(p,"into")@;@/ @z %--------------------------------------- -@x [19] m.281 l.6018 - e-TeX tracing +@x [19] m.281 l.6027 - e-TeX tracing @p@t\4@>@<Declare the procedure called |restore_trace|@>@;@/ @y @p @z %--------------------------------------- -@x [19] m.281 l.6025 unsave - e-TeX optimized \aftergroup +@x [19] m.281 l.6034 unsave - e-TeX optimized \aftergroup begin if cur_level>level_one then @y @!a:boolean; {have we already processed an \.{\\aftergroup} ?} @@ -764,7 +767,7 @@ begin a:=false; if cur_level>level_one then @z %--------------------------------------- -@x [19] m.282 l.6039 - e-TeX sparse arrays +@x [19] m.282 l.6048 - e-TeX sparse arrays else begin if save_type(save_ptr)=restore_old_value then @y else if save_type(save_ptr)=restore_sa then @@ -773,7 +776,7 @@ if cur_level>level_one then else begin if save_type(save_ptr)=restore_old_value then @z %--------------------------------------- -@x [19] m.282 l.6047 - e-TeX tracing +@x [19] m.282 l.6056 - e-TeX tracing done: cur_group:=save_level(save_ptr); cur_boundary:=save_index(save_ptr) @y done: @!stat if tracing_groups>0 then group_trace(true);@+tats@;@/ @@ -783,39 +786,39 @@ cur_group:=save_level(save_ptr); cur_boundary:=save_index(save_ptr); if eTeX_ex then decr(save_ptr) @z %--------------------------------------- -@x [19] m.284 l.6073 - e-TeX tracing +@x [19] m.284 l.6082 - e-TeX tracing @ @<Declare the procedure called |restore_trace|@>= @y @ @<Declare \eTeX\ procedures for tr...@>= @z %--------------------------------------- -@x [20] m.289 l.6161 - e-TeX protected +@x [20] m.289 l.6170 - e-TeX protected @d end_match_token=@'7000 {$2^8\cdot|end_match|$} @y @d end_match_token=@'7000 {$2^8\cdot|end_match|$} @d protected_token=@'7001 {$2^8\cdot|end_match|+1$} @z %--------------------------------------- -@x [20] m.294 l.6286 - e-TeX protected +@x [20] m.294 l.6295 - e-TeX protected end_match: print("->"); @y end_match: if c=0 then print("->"); @z %--------------------------------------- -@x [20] m.296 l.6307 print_meaning - e-TeX marks +@x [20] m.296 l.6316 print_meaning - e-TeX marks else if cur_cmd=top_bot_mark then @y else if (cur_cmd=top_bot_mark)and(cur_chr<marks_code) then @z %--------------------------------------- -@x [21] m.298 l.6381 print_cmd_chr - e-TeX protected +@x [21] m.298 l.6390 print_cmd_chr - e-TeX protected procedure print_cmd_chr(@!cmd:quarterword;@!chr_code:halfword); @y procedure print_cmd_chr(@!cmd:quarterword;@!chr_code:halfword); var n:integer; {temp variable} @z %--------------------------------------- -@x [21] m.299 l.6400 show_cur_cmd_chr - e-TeX tracing +@x [21] m.299 l.6409 show_cur_cmd_chr - e-TeX tracing @p procedure show_cur_cmd_chr; @y @p procedure show_cur_cmd_chr; @@ -824,7 +827,7 @@ var n:integer; {level of \.{\\if...\\fi} nesting} @!p:pointer; @z %--------------------------------------- -@x [21] m.299 l.6405 show_cur_cmd_chr - e-TeX tracing +@x [21] m.299 l.6414 show_cur_cmd_chr - e-TeX tracing print_cmd_chr(cur_cmd,cur_chr); print_char("}"); @y print_cmd_chr(cur_cmd,cur_chr); @@ -846,7 +849,7 @@ if tracing_ifs>0 then print_char("}"); @z %--------------------------------------- -@x [22] m.303 l.6481 show_context - e-TeX scan_tokens +@x [22] m.303 l.6490 show_context - e-TeX scan_tokens the terminal, under control of the procedure |read_toks|.) @y the terminal, under control of the procedure |read_toks|.) @@ -854,7 +857,7 @@ Finally |18<=name<=19| indicates that we are reading a pseudo file created by the \.{\\scantokens} command. @z %--------------------------------------- -@x [22] m.307 l.6678 - e-TeX basic, every_eof +@x [22] m.307 l.6687 - e-TeX basic, every_eof only if |token_type>=macro|. @^reference counts@> @y @@ -865,7 +868,7 @@ Since \eTeX's additional token list parameters precede |toks_base|, the corresponding token types must precede |write_text|. @z %--------------------------------------- -@x [22] m.307 l.6699 - e-TeX basic +@x [22] m.307 l.6708 - e-TeX basic @d write_text=15 {|token_type| code for \.{\\write}} @y @# @@ -876,13 +879,13 @@ corresponding token types must precede |write_text|. @d write_text=toks_base-eTeX_text_offset {|token_type| code for \.{\\write}} @z %--------------------------------------- -@x [22] m.311 l.6755 show_context - e-TeX scan_tokens +@x [22] m.311 l.6764 show_context - e-TeX scan_tokens if (name>17) or (base_ptr=0) then bottom_line:=true; @y if (name>19) or (base_ptr=0) then bottom_line:=true; @z %--------------------------------------- -@x [22] m.313 l.6800 - e-TeX scan_tokens +@x [22] m.313 l.6809 - e-TeX scan_tokens else begin print_nl("l."); print_int(line); @y else if index<>in_open then {input from a pseudo file} @@ -891,14 +894,14 @@ else if index<>in_open then {input from a pseudo file} else begin print_nl("l."); print_int(line); @z %--------------------------------------- -@x [22] m.314 l.6822 - e-TeX basic +@x [22] m.314 l.6831 - e-TeX basic write_text: print_nl("<write> "); @y every_eof_text: print_nl("<everyeof> "); write_text: print_nl("<write> "); @z %--------------------------------------- -@x [23] m.326 l.7015 - e-TeX optimized \aftergroup +@x [23] m.326 l.7024 - e-TeX optimized \aftergroup begin t:=cur_tok; cur_tok:=p; back_input; cur_tok:=t; @y begin t:=cur_tok; cur_tok:=p; @@ -913,7 +916,7 @@ else begin back_input; a:=eTeX_ex; cur_tok:=t; @z %--------------------------------------- -@x [23] m.328 l.7043 begin_file_reading - e-TeX every_eof, tracing_nesting +@x [23] m.328 l.7052 begin_file_reading - e-TeX every_eof, tracing_nesting incr(in_open); push_input; index:=in_open; @y incr(in_open); push_input; index:=in_open; @@ -921,21 +924,21 @@ eof_seen[index]:=false; grp_stack[index]:=cur_boundary; if_stack[index]:=cond_ptr; @z %--------------------------------------- -@x [23] m.329 l.7053 end_file_reading - e-TeX scan_tokens +@x [23] m.329 l.7062 end_file_reading - e-TeX scan_tokens if name>17 then a_close(cur_file); {forget it} @y if (name=18)or(name=19) then pseudo_close else if name>17 then a_close(cur_file); {forget it} @z %--------------------------------------- -@x [23] m.331 l.7072 - e-TeX tracing_nesting +@x [23] m.331 l.7081 - e-TeX tracing_nesting in_open:=0; open_parens:=0; max_buf_stack:=0; @y in_open:=0; open_parens:=0; max_buf_stack:=0; grp_stack[0]:=0; if_stack[0]:=null; @z %--------------------------------------- -@x [24] m.362 l.7544 - e-TeX scan_tokens, every_eof +@x [24] m.362 l.7553 - e-TeX scan_tokens, every_eof if not force_eof then @y if not force_eof then @@ -951,7 +954,7 @@ if not force_eof then else @z %--------------------------------------- -@x [24] m.362 l.7547 - e-TeX every_eof +@x [24] m.362 l.7556 - e-TeX every_eof else force_eof:=true; @y else if (every_eof<>null)and not eof_seen[index] then @@ -961,7 +964,7 @@ if not force_eof then else force_eof:=true; @z %--------------------------------------- -@x [24] m.362 l.7550 - e-TeX scan_tokens +@x [24] m.362 l.7559 - e-TeX scan_tokens begin print_char(")"); decr(open_parens); update_terminal; {show user that file has been read} @y @@ -975,35 +978,35 @@ if not force_eof then end; @z %--------------------------------------- -@x [25] m.366 l.7636 - e-TeX basic +@x [25] m.366 l.7643 - e-TeX basic @t\4@>@<Declare the procedure called |insert_relax|@>@;@/ @y @t\4@>@<Declare the procedure called |insert_relax|@>@;@/ @t\4@>@<Declare \eTeX\ procedures for expanding@>@;@/ @z %--------------------------------------- -@x [25] m.366 l.7643 expand - e-TeX cond +@x [25] m.366 l.7650 expand - e-TeX cond procedure expand; @y procedure expand; label reswitch; @z %--------------------------------------- -@x [25] m.366 l.7654 expand - e-TeX cond +@x [25] m.366 l.7661 expand - e-TeX cond if cur_cmd<call then @<Expand a nonmacro@> @y reswitch: if cur_cmd<call then @<Expand a nonmacro@> @z %--------------------------------------- -@x [25] m.367 l.7665 - e-TeX cond +@x [25] m.367 l.7672 - e-TeX cond expand_after:@<Expand the token after the next token@>; @y expand_after:if cur_chr=0 then @<Expand the token after the next token@> else @<Negate a boolean conditional and |goto reswitch|@>; @z %--------------------------------------- -@x [25] m.377 l.7785 - e-TeX scan_tokens +@x [25] m.377 l.7792 - e-TeX scan_tokens input: if chr_code=0 then print_esc("input")@+else print_esc("endinput"); @y input: if chr_code=0 then print_esc("input") @@ -1011,14 +1014,14 @@ input: if chr_code=0 then print_esc("input") else print_esc("endinput"); @z %--------------------------------------- -@x [25] m.378 l.7788 - e-TeX scan_tokens +@x [25] m.378 l.7795 - e-TeX scan_tokens if cur_chr>0 then force_eof:=true @y if cur_chr=1 then force_eof:=true @/@<Cases for |input|@>@/ @z %--------------------------------------- -@x [25] m.382 l.7844 - e-TeX marks +@x [25] m.382 l.7851 - e-TeX marks @d top_mark_code=0 {the mark in effect at the previous page break} @y @d marks_code==5 {add this for \.{\\topmarks} etc.} @@ -1026,13 +1029,13 @@ if cur_chr=1 then force_eof:=true @d top_mark_code=0 {the mark in effect at the previous page break} @z %--------------------------------------- -@x [25] m.385 l.7876 - e-TeX marks +@x [25] m.385 l.7883 - e-TeX marks top_bot_mark: case chr_code of @y top_bot_mark: begin case (chr_code mod marks_code) of @z %--------------------------------------- -@x [25] m.385 l.7882 - e-TeX marks +@x [25] m.385 l.7889 - e-TeX marks endcases; @y endcases; @@ -1040,7 +1043,7 @@ top_bot_mark: begin case (chr_code mod marks_code) of end; @z %--------------------------------------- -@x [25] m.386 l.7888 - e-TeX marks +@x [25] m.386 l.7895 - e-TeX marks begin if cur_mark[cur_chr]<>null then begin_token_list(cur_mark[cur_chr],mark_text); @y @@ -1051,28 +1054,28 @@ else @<Compute the mark pointer for mark type |t| and class |cur_val|@>; if cur_ptr<>null then begin_token_list(cur_ptr,mark_text); @z %--------------------------------------- -@x [25] m.389 l.7951 macro_call - e-TeX protected +@x [25] m.389 l.7958 macro_call - e-TeX protected if info(r)<>end_match_token then @y if info(r)=protected_token then r:=link(r); if info(r)<>end_match_token then @z %--------------------------------------- -@x [26] m.409 l.8262 - e-TeX basic +@x [26] m.409 l.8270 - e-TeX basic @t\4\4@>@<Declare procedures that scan font-related stuff@> @y @t\4\4@>@<Declare \eTeX\ procedures for scanning@>@; @t\4\4@>@<Declare procedures that scan font-related stuff@> @z %--------------------------------------- -@x [26] m.411 l.8306 - e-TeX sparse arrays +@x [26] m.411 l.8314 - e-TeX sparse arrays |glue_val|, or |mu_val|. @y |glue_val|, or |mu_val| more than |mem_bot| (dynamic variable-size nodes cannot have these values) @z %--------------------------------------- -@x [26] m.411 l.8309 - e-TeX sparse arrays +@x [26] m.411 l.8317 - e-TeX sparse arrays primitive("count",register,int_val); @!@:count_}{\.{\\count} primitive@> primitive("dimen",register,dimen_val); @@ -1090,7 +1093,7 @@ primitive("skip",register,mem_bot+glue_val); primitive("muskip",register,mem_bot+mu_val); @z %--------------------------------------- -@x [26] m.412 l.8319 - e-TeX sparse arrays +@x [26] m.412 l.8327 - e-TeX sparse arrays register: if chr_code=int_val then print_esc("count") else if chr_code=dimen_val then print_esc("dimen") else if chr_code=glue_val then print_esc("skip") @@ -1099,7 +1102,7 @@ register: if chr_code=int_val then print_esc("count") register: @<Cases of |register| for |print_cmd_chr|@>; @z %--------------------------------------- -@x [26] m.413 l.8335 scan_something_internal - e-TeX basic +@x [26] m.413 l.8343 scan_something_internal - e-TeX basic var m:halfword; {|chr_code| part of the operand token} @y label exit; @@ -1108,13 +1111,13 @@ var m:halfword; {|chr_code| part of the operand token} @!i:four_quarters; {character info} @z %--------------------------------------- -@x [26] m.413 l.8361 scan_something_internal - e-TeX basic +@x [26] m.413 l.8369 scan_something_internal - e-TeX basic end; @y exit:end; @z %--------------------------------------- -@x [26] m.415 l.8382 - e-TeX sparse arrays +@x [26] m.415 l.8390 - e-TeX sparse arrays begin scan_eight_bit_int; m:=toks_base+cur_val; end; scanned_result(equiv(m))(tok_val); @@ -1132,7 +1135,7 @@ exit:end; cur_val_level:=tok_val; @z %--------------------------------------- -@x [26] m.416 l.8397 - e-TeX basic +@x [26] m.416 l.8405 - e-TeX basic |glue_val|, |input_line_no_code|, or |badness_code|. @y |glue_val|, |input_line_no_code|, or |badness_code|. @@ -1140,7 +1143,7 @@ exit:end; the codes for its extensions: |eTeX_version_code|, \dots\ . @z %--------------------------------------- -@x [26] m.416 l.8399 - e-TeX basic +@x [26] m.416 l.8407 - e-TeX basic @d input_line_no_code=glue_val+1 {code for \.{\\inputlineno}} @d badness_code=glue_val+2 {code for \.{\\badness}} @y @@ -1155,21 +1158,21 @@ the codes for its extensions: |eTeX_version_code|, \dots\ . @d eTeX_expr=eTeX_mu+1 {first of \eTeX\ codes for expressions} @z %--------------------------------------- -@x [26] m.417 l.8432 - e-TeX interaction_mode +@x [26] m.417 l.8440 - e-TeX interaction_mode @+else print_esc("insertpenalties"); @y @/@<Cases of |set_page_int| for |print_cmd_chr|@>@/ @+else print_esc("insertpenalties"); @z %--------------------------------------- -@x [26] m.417 l.8441 - e-TeX basic +@x [26] m.417 l.8449 - e-TeX basic othercases print_esc("badness") @y @/@<Cases of |last_item| for |print_cmd_chr|@>@/ othercases print_esc("badness") @z %--------------------------------------- -@x [26] m.419 l.8464 - e-TeX interaction_mode +@x [26] m.419 l.8469 - e-TeX interaction_mode begin if m=0 then cur_val:=dead_cycles@+else cur_val:=insert_penalties; @y begin if m=0 then cur_val:=dead_cycles @@ -1177,7 +1180,7 @@ begin if m=0 then cur_val:=dead_cycles else cur_val:=insert_penalties; @z %--------------------------------------- -@x [26] m.420 l.8469 - e-TeX sparse arrays +@x [26] m.420 l.8474 - e-TeX sparse arrays begin scan_eight_bit_int; if box(cur_val)=null then cur_val:=0 @+else cur_val:=mem[box(cur_val)+m].sc; @y @@ -1185,27 +1188,27 @@ begin scan_register_num; fetch_box(q); if q=null then cur_val:=0 @+else cur_val:=mem[q+m].sc; @z %--------------------------------------- -@x [26] m.423 l.8494 - e-TeX penalties +@x [26] m.423 l.8499 - e-TeX penalties begin if par_shape_ptr=null then cur_val:=0 @y begin if m>par_shape_loc then @<Fetch a penalties array element@> else if par_shape_ptr=null then cur_val:=0 @z %--------------------------------------- -@x [26] m.424 l.8500 - e-TeX TeXXeT +@x [26] m.424 l.8505 - e-TeX TeXXeT implemented. The reference count for \.{\\lastskip} will be updated later. @y implemented. The reference count for \.{\\lastskip} will be updated later. A final \.{\\endM} node is temporarily removed. @z %--------------------------------------- -@x [26] m.424 l.8506 - e-TeX basic +@x [26] m.424 l.8511 - e-TeX basic if cur_chr>glue_val then @y if m>=input_line_no_code then @z %--------------------------------------- -@x [26] m.424 l.8507 - e-TeX basic +@x [26] m.424 l.8512 - e-TeX basic begin if cur_chr=input_line_no_code then cur_val:=line else cur_val:=last_badness; {|cur_chr=badness_code|} @y @@ -1223,7 +1226,7 @@ if m>=input_line_no_code then end; {there are no other cases} @z %--------------------------------------- -@x [26] m.424 l.8512 - e-TeX last_node_type +@x [26] m.424 l.8517 - e-TeX last_node_type cur_val_level:=cur_chr; @y if cur_chr=last_node_type_code then @@ -1233,7 +1236,7 @@ if m>=input_line_no_code then else cur_val_level:=cur_chr; @z %--------------------------------------- -@x [26] m.424 l.8514 - e-TeX TeXXeT +@x [26] m.424 l.8519 - e-TeX TeXXeT case cur_chr of @y begin if (type(tail)=math_node)and(subtype(tail)=end_M_code) then @@ -1241,7 +1244,7 @@ if m>=input_line_no_code then case cur_chr of @z %--------------------------------------- -@x [26] m.424 l.8520 - e-TeX last_node_type +@x [26] m.424 l.8525 - e-TeX last_node_type end; @y end; @@ -1251,7 +1254,7 @@ if m>=input_line_no_code then else cur_val:=unset_node+2; @z %--------------------------------------- -@x [26] m.424 l.8521 - e-TeX TeXXeT +@x [26] m.424 l.8526 - e-TeX TeXXeT end {there are no other cases} @y end; {there are no other cases} @@ -1259,14 +1262,14 @@ if m>=input_line_no_code then end @z %--------------------------------------- -@x [26] m.424 l.8526 - e-TeX last_node_type +@x [26] m.424 l.8531 - e-TeX last_node_type glue_val: if last_glue<>max_halfword then cur_val:=last_glue; @y glue_val: if last_glue<>max_halfword then cur_val:=last_glue; last_node_type_code: cur_val:=last_node_type; @z %--------------------------------------- -@x [26] m.427 l.8542 - e-TeX sparse arrays +@x [26] m.427 l.8547 - e-TeX sparse arrays begin scan_eight_bit_int; case m of @y @@ -1288,13 +1291,13 @@ else begin scan_register_num; cur_val_level:=m-mem_bot; case cur_val_level of @z %--------------------------------------- -@x [26] m.427 l.8549 - e-TeX sparse arrays +@x [26] m.427 l.8554 - e-TeX sparse arrays cur_val_level:=m; @y end; @z %--------------------------------------- -@x [26] m.461 l.9077 - e-TeX expr +@x [26] m.461 l.9082 - e-TeX expr exit:end; @y exit:end; @@ -1302,21 +1305,21 @@ exit:end; @<Declare procedures needed for expressions@>@; @z %--------------------------------------- -@x [27] m.464 l.9136 - e-TeX basic +@x [27] m.464 l.9141 - e-TeX basic @p function str_toks(@!b:pool_pointer):pointer; @y @p @t\4@>@<Declare \eTeX\ procedures for token lists@>@;@/ function str_toks(@!b:pool_pointer):pointer; @z %--------------------------------------- -@x [27] m.465 l.9161 the_toks - e-TeX unexpanded +@x [27] m.465 l.9166 the_toks - e-TeX unexpanded @p function the_toks:pointer; @y @p function the_toks:pointer; label exit; @z %--------------------------------------- -@x [27] m.465 l.9165 the_toks - e-TeX unexpanded +@x [27] m.465 l.9170 the_toks - e-TeX unexpanded begin get_x_token; scan_something_internal(tok_val,false); @y @!c:small_number; {value of |cur_chr|} @@ -1324,13 +1327,13 @@ begin @<Handle \.{\\unexpanded} or \.{\\detokenize} and |return|@>;@/ get_x_token; scan_something_internal(tok_val,false); @z %--------------------------------------- -@x [27] m.465 l.9179 the_toks - e-TeX unexpanded +@x [27] m.465 l.9184 the_toks - e-TeX unexpanded end; @y exit:end; @z %--------------------------------------- -@x [27] m.468 l.9202 - e-TeX basic +@x [27] m.468 l.9207 - e-TeX basic @d number_code=0 {command code for \.{\\number}} @y \eTeX\ adds \.{\\eTeXrevision} such that |job_name_code| remains last. @@ -1338,7 +1341,7 @@ exit:end; @d number_code=0 {command code for \.{\\number}} @z %--------------------------------------- -@x [27] m.468 l.9207 - e-TeX basic +@x [27] m.468 l.9212 - e-TeX basic @d job_name_code=5 {command code for \.{\\jobname}} @y @d etex_convert_base=5 {base for \eTeX's command codes} @@ -1347,28 +1350,28 @@ exit:end; @d job_name_code=etex_convert_codes {command code for \.{\\jobname}} @z %--------------------------------------- -@x [27] m.469 l.9230 - e-TeX basic +@x [27] m.469 l.9235 - e-TeX basic othercases print_esc("jobname") @y eTeX_revision_code: print_esc("eTeXrevision"); othercases print_esc("jobname") @z %--------------------------------------- -@x [27] m.471 l.9255 - e-TeX basic +@x [27] m.471 l.9260 - e-TeX basic job_name_code: if job_name=0 then open_log_file; @y eTeX_revision_code: do_nothing; job_name_code: if job_name=0 then open_log_file; @z %--------------------------------------- -@x [27] m.472 l.9271 - e-TeX basic +@x [27] m.472 l.9276 - e-TeX basic job_name_code: print(job_name); @y eTeX_revision_code: print(eTeX_revision); job_name_code: print(job_name); @z %--------------------------------------- -@x [27] m.478 l.9381 - e-TeX protected +@x [27] m.478 l.9386 - e-TeX protected if cur_cmd<=max_command then goto done2; @y if cur_cmd>=call then @@ -1378,20 +1381,20 @@ job_name_code: print(job_name); if cur_cmd<=max_command then goto done2; @z %--------------------------------------- -@x [27] m.482 l.9429 read_toks - e-TeX read_line +@x [27] m.482 l.9434 read_toks - e-TeX read_line @p procedure read_toks(@!n:integer;@!r:pointer); @y @p procedure read_toks(@!n:integer;@!r:pointer;@!j:halfword); @z %--------------------------------------- -@x [27] m.483 l.9455 - e-TeX read_line +@x [27] m.483 l.9460 - e-TeX read_line loop@+ begin get_token; @y @<Handle \.{\\readline} and |goto done|@>;@/ loop@+ begin get_token; @z %--------------------------------------- -@x [28] m.487 l.9507 - e-TeX cond +@x [28] m.487 l.9512 - e-TeX cond @d if_char_code=0 { `\.{\\if}' } @y @d unless_code=32 {amount added for `\.{\\unless}' prefix} @@ -1399,14 +1402,14 @@ loop@+ begin get_token; @d if_char_code=0 { `\.{\\if}' } @z %--------------------------------------- -@x [28] m.488 l.9562 - e-TeX cond +@x [28] m.488 l.9567 - e-TeX cond if_test: case chr_code of @y if_test: begin if chr_code>=unless_code then print_esc("unless"); case chr_code mod unless_code of @z %--------------------------------------- -@x [28] m.488 l.9579 - e-TeX cond +@x [28] m.488 l.9584 - e-TeX cond othercases print_esc("if") endcases; @y @@ -1416,14 +1419,14 @@ case chr_code mod unless_code of end; @z %--------------------------------------- -@x [28] m.494 l.9653 pass_text - e-TeX tracing +@x [28] m.494 l.9658 pass_text - e-TeX tracing done: scanner_status:=save_scanner_status; @y done: scanner_status:=save_scanner_status; if tracing_ifs>0 then show_cur_cmd_chr; @z %--------------------------------------- -@x [28] m.496 l.9669 - e-TeX tracing_nesting +@x [28] m.496 l.9674 - e-TeX tracing_nesting begin p:=cond_ptr; if_line:=if_line_field(p); @y begin if if_stack[in_open]=cond_ptr then if_warning; @@ -1431,7 +1434,7 @@ begin if if_stack[in_open]=cond_ptr then if_warning; p:=cond_ptr; if_line:=if_line_field(p); @z %--------------------------------------- -@x [28] m.498 l.9706 conditional - e-TeX cond +@x [28] m.498 l.9711 conditional - e-TeX cond begin @<Push the condition stack@>;@+save_cond_ptr:=cond_ptr;this_if:=cur_chr;@/ @<Either process \.{\\ifcase} or set |b| to the value of a boolean condition@>; @y @@ -1443,34 +1446,34 @@ is_unless:=(cur_chr>=unless_code); this_if:=cur_chr mod unless_code;@/ if is_unless then b:=not b; @z %--------------------------------------- -@x [28] m.501 l.9749 - e-TeX cond +@x [28] m.501 l.9754 - e-TeX cond if_false_code: b:=false; @y if_false_code: b:=false; @/@<Cases for |conditional|@>@/ @z %--------------------------------------- -@x [28] m.505 l.9788 - e-TeX sparse arrays +@x [28] m.505 l.9793 - e-TeX sparse arrays begin scan_eight_bit_int; p:=box(cur_val); @y begin scan_register_num; fetch_box(p); @z %--------------------------------------- -@x [28] m.510 l.9878 - e-TeX cond +@x [28] m.510 l.9883 - e-TeX cond if cur_chr>if_limit then @y begin if tracing_ifs>0 then if tracing_commands<=1 then show_cur_cmd_chr; if cur_chr>if_limit then @z %--------------------------------------- -@x [28] m.510 l.9889 - e-TeX cond +@x [28] m.510 l.9894 - e-TeX cond end @y end; end @z %--------------------------------------- -@x [29] m.536 l.10343 - e-TeX basic +@x [29] m.536 l.10348 - e-TeX basic print_two(time div 60); print_char(":"); print_two(time mod 60); @y print_two(time div 60); print_char(":"); print_two(time mod 60); @@ -1479,7 +1482,7 @@ if eTeX_ex then end; @z %--------------------------------------- -@x [30] m.581 l.11276 char_warning - e-TeX tracing +@x [30] m.581 l.11282 char_warning - e-TeX tracing begin if tracing_lost_chars>0 then @y var old_setting: integer; {saved value of |tracing_online|} @@ -1488,7 +1491,7 @@ begin if tracing_lost_chars>0 then if eTeX_ex and(tracing_lost_chars>1) then tracing_online:=1; @z %--------------------------------------- -@x [30] m.581 l.11283 char_warning - e-TeX tracing +@x [30] m.581 l.11289 char_warning - e-TeX tracing end; @y tracing_online:=old_setting; @@ -1496,7 +1499,7 @@ end; end; @z %--------------------------------------- -@x [32] m.616 l.12251 - e-TeX TeXXeT +@x [32] m.616 l.12257 - e-TeX TeXXeT this is essentially the depth of |push| commands in the \.{DVI} output. @y this is essentially the depth of |push| commands in the \.{DVI} output. @@ -1519,7 +1522,7 @@ changes; the subtype of an an |hlist_node| inside R-text is changed to @!@^data structure assumptions@> @z %--------------------------------------- -@x [32] m.616 l.12253 - e-TeX TeXXeT +@x [32] m.616 l.12259 - e-TeX TeXXeT @d synch_h==if cur_h<>dvi_h then @y @d reversed=min_quarterword+1 {subtype for an |hlist_node| whose hlist @@ -1532,14 +1535,14 @@ changes; the subtype of an an |hlist_node| inside R-text is changed to @d synch_h==if cur_h<>dvi_h then @z %--------------------------------------- -@x [32] m.619 l.12321 hlist_out - e-TeX TeXXeT +@x [32] m.619 l.12327 hlist_out - e-TeX TeXXeT @!edge:scaled; {left edge of sub-box, or right edge of leader space} @y @!edge:scaled; {right edge of sub-box or leader space} @!prev_p:pointer; {one step behind |p|} @z %--------------------------------------- -@x [32] m.619 l.12331 hlist_out - e-TeX TeXXeT +@x [32] m.619 l.12337 hlist_out - e-TeX TeXXeT save_loc:=dvi_offset+dvi_ptr; base_line:=cur_v; left_edge:=cur_h; @y save_loc:=dvi_offset+dvi_ptr; base_line:=cur_v; @@ -1548,54 +1551,54 @@ prev_p:=this_box+list_offset; left_edge:=cur_h; @z %--------------------------------------- -@x [32] m.619 l.12334 hlist_out - e-TeX TeXXeT +@x [32] m.619 l.12340 hlist_out - e-TeX TeXXeT prune_movements(save_loc); @y @<Finish |hlist_out| for mixed direction typesetting@>; prune_movements(save_loc); @z %--------------------------------------- -@x [32] m.620 l.12353 - e-TeX TeXXeT +@x [32] m.620 l.12359 - e-TeX TeXXeT 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] m.622 l.12378 - e-TeX TeXXeT +@x [32] m.622 l.12384 - e-TeX TeXXeT kern_node,math_node:cur_h:=cur_h+width(p); @y kern_node:cur_h:=cur_h+width(p); math_node: @<Handle a math node in |hlist_out|@>; @z %--------------------------------------- -@x [32] m.622 l.12380 - e-TeX TeXXeT +@x [32] m.622 l.12386 - e-TeX TeXXeT othercases do_nothing @y @/@<Cases of |hlist_out| that arise in mixed direction text only@>@; othercases do_nothing @z %--------------------------------------- -@x [32] m.622 l.12385 - e-TeX TeXXeT +@x [32] m.622 l.12391 - e-TeX TeXXeT next_p:p:=link(p); @y next_p:prev_p:=p; p:=link(p); @z %--------------------------------------- -@x [32] m.623 l.12392 - e-TeX TeXXeT +@x [32] m.623 l.12398 - e-TeX TeXXeT temp_ptr:=p; edge:=cur_h; @y temp_ptr:=p; edge:=cur_h+width(p); if cur_dir=right_to_left then cur_h:=edge; @z %--------------------------------------- -@x [32] m.623 l.12395 - e-TeX TeXXeT +@x [32] m.623 l.12401 - e-TeX TeXXeT cur_h:=edge+width(p); cur_v:=base_line; @y cur_h:=edge; cur_v:=base_line; @z %--------------------------------------- -@x [32] m.625 l.12413 - e-TeX TeXXeT +@x [32] m.625 l.12419 - e-TeX TeXXeT glue_temp:=-billion @<Move right or output leaders@>= @@ -1606,7 +1609,7 @@ begin g:=glue_ptr(p); rule_wd:=width(g)-cur_g; @d round_glue==g:=glue_ptr(p); rule_wd:=width(g)-cur_g; @z %--------------------------------------- -@x [32] m.625 l.12432 - e-TeX TeXXeT +@x [32] m.625 l.12438 - e-TeX TeXXeT rule_wd:=rule_wd+cur_g; @y rule_wd:=rule_wd+cur_g @@ -1616,14 +1619,14 @@ begin round_glue; if eTeX_ex then @<Handle a glue node for mixed direction typesetting@>; @z %--------------------------------------- -@x [32] m.626 l.12448 - e-TeX TeXXeT +@x [32] m.626 l.12454 - e-TeX TeXXeT edge:=cur_h+rule_wd; lx:=0; @y if cur_dir=right_to_left then cur_h:=cur_h-10; edge:=cur_h+rule_wd; lx:=0; @z %--------------------------------------- -@x [32] m.626 l.12454 - e-TeX TeXXeT +@x [32] m.626 l.12460 - e-TeX TeXXeT cur_h:=edge-10; goto next_p; @y if cur_dir=right_to_left then cur_h:=edge @@ -1631,21 +1634,21 @@ if eTeX_ex then @<Handle a glue node for mixed direction typesetting@>; goto next_p; @z %--------------------------------------- -@x [32] m.628 l.12493 - e-TeX TeXXeT +@x [32] m.628 l.12499 - e-TeX TeXXeT synch_h; save_h:=dvi_h; temp_ptr:=leader_box; @y synch_h; save_h:=dvi_h; temp_ptr:=leader_box; if cur_dir=right_to_left then cur_h:=cur_h+leader_wd; @z %--------------------------------------- -@x [32] m.632 l.12567 - e-TeX TeXXeT +@x [32] m.632 l.12573 - e-TeX TeXXeT cur_h:=left_edge+shift_amount(p); {shift the box right} @y if cur_dir=right_to_left then cur_h:=left_edge-shift_amount(p) else cur_h:=left_edge+shift_amount(p); {shift the box right} @z %--------------------------------------- -@x [32] m.633 l.12579 - e-TeX TeXXeT +@x [32] m.633 l.12585 - e-TeX TeXXeT begin synch_h; synch_v; dvi_out(put_rule); dvi_four(rule_ht); dvi_four(rule_wd); @y @@ -1655,7 +1658,7 @@ if cur_dir=right_to_left then cur_h:=cur_h+leader_wd; cur_h:=left_edge; @z %--------------------------------------- -@x [32] m.637 l.12645 - e-TeX TeXXeT +@x [32] m.637 l.12651 - e-TeX TeXXeT begin cur_h:=left_edge+shift_amount(leader_box); synch_h; save_h:=dvi_h;@/ @y begin if cur_dir=right_to_left then @@ -1664,28 +1667,28 @@ begin if cur_dir=right_to_left then synch_h; save_h:=dvi_h;@/ @z %--------------------------------------- -@x [32] m.638 l.12682 ship_out - e-TeX TeXXeT +@x [32] m.638 l.12688 ship_out - e-TeX TeXXeT @<Ship box |p| out@>; @y @<Ship box |p| out@>; if eTeX_ex then @<Check for LR anomalies at the end of |ship_out|@>; @z %--------------------------------------- -@x [33] m.649 l.12902 hpack - e-TeX TeXXeT +@x [33] m.649 l.12909 hpack - e-TeX TeXXeT h:=0; @<Clear dimensions to zero@>; @y h:=0; @<Clear dimensions to zero@>; if TeXXeT_en then @<Initialize the LR stack@>; @z %--------------------------------------- -@x [33] m.649 l.12912 hpack - e-TeX TeXXeT +@x [33] m.649 l.12919 hpack - e-TeX TeXXeT exit: hpack:=r; @y exit: if TeXXeT_en then @<Check for LR anomalies at the end of |hpack|@>; hpack:=r; @z %--------------------------------------- -@x [33] m.651 l.12936 - e-TeX TeXXeT +@x [33] m.651 l.12943 - e-TeX TeXXeT kern_node,math_node: x:=x+width(p); @y kern_node: x:=x+width(p); @@ -1694,21 +1697,21 @@ hpack:=r; end; @z %--------------------------------------- -@x [34] m.687 l.13507 - e-TeX middle +@x [34] m.687 l.13514 - e-TeX middle \TeX's \.{\\left} and \.{\\right}. The |nucleus| of such noads is @y \TeX's \.{\\left} and \.{\\right} as well as \eTeX's \.{\\middle}. The |nucleus| of such noads is @z %--------------------------------------- -@x [34] m.687 l.13524 - e-TeX middle +@x [34] m.687 l.13531 - e-TeX middle @d delimiter==nucleus {|delimiter| field in left and right noads} @y @d delimiter==nucleus {|delimiter| field in left and right noads} @d middle_noad==1 {|subtype| of right noad representing \.{\\middle}} @z %--------------------------------------- -@x [34] m.696 l.13697 - e-TeX middle +@x [34] m.696 l.13704 - e-TeX middle right_noad: begin print_esc("right"); print_delimiter(delimiter(p)); end; end; @@ -1730,7 +1733,7 @@ if type(p)<left_noad then end; @z %--------------------------------------- -@x [36] m.727 l.14295 - e-TeX middle +@x [36] m.727 l.14302 - e-TeX middle done_with_noad: r:=q; r_type:=type(r); @y done_with_noad: r:=q; r_type:=type(r); @@ -1739,21 +1742,21 @@ if r_type=right_noad then end; @z %--------------------------------------- -@x [36] m.760 l.14956 - e-TeX middle +@x [36] m.760 l.14963 - e-TeX middle r_type:=t; @y if type(q)=right_noad then t:=open_noad; r_type:=t; @z %--------------------------------------- -@x [36] m.762 l.14997 make_left_right - e-TeX middle +@x [36] m.762 l.15004 make_left_right - e-TeX middle begin if style<script_style then cur_size:=text_size else cur_size:=16*((style-text_style) div 2); @y begin cur_style:=style; @<Set up the values...@>; @z %--------------------------------------- -@x [37] m.785 l.15488 align_peek - e-TeX protected +@x [37] m.785 l.15495 align_peek - e-TeX protected begin restart: align_state:=1000000; @<Get the next non-blank non-call token@>; @y begin restart: align_state:=1000000; @@ -1761,7 +1764,7 @@ repeat get_x_or_protected; until cur_cmd<>spacer; @z %--------------------------------------- -@x [37] m.791 l.15599 fin_col - e-TeX protected +@x [37] m.791 l.15606 fin_col - e-TeX protected align_state:=1000000; @<Get the next non-blank non-call token@>; @y align_state:=1000000; @@ -1769,21 +1772,21 @@ repeat get_x_or_protected; until cur_cmd<>spacer; @z %--------------------------------------- -@x [37] m.807 l.15861 - e-TeX TeXXeT +@x [37] m.807 l.15868 - e-TeX TeXXeT begin type(q):=hlist_node; width(q):=width(p); @y begin type(q):=hlist_node; width(q):=width(p); if nest[nest_ptr-1].mode_field=mmode then subtype(q):=dlist; {for |ship_out|} @z %--------------------------------------- -@x [37] m.808 l.15879 - e-TeX TeXXeT +@x [37] m.808 l.15886 - e-TeX TeXXeT n:=span_count(r); t:=width(s); w:=t; u:=hold_head; @y n:=span_count(r); t:=width(s); w:=t; u:=hold_head; subtype(r):=min_quarterword; {for |ship_out|} @z %--------------------------------------- -@x [38] m.814 l.16002 - e-TeX penalties +@x [38] m.814 l.16009 - e-TeX penalties There is one explicit parameter: |final_widow_penalty| is the amount of additional penalty to be inserted before the final line of the paragraph. @y @@ -1793,13 +1796,13 @@ penalty inserted before the final line is |display_widow_penalty| instead of |widow_penalty|. @z %--------------------------------------- -@x [38] m.815 l.16029 line_break - e-TeX penalties +@x [38] m.815 l.16036 line_break - e-TeX penalties procedure line_break(@!final_widow_penalty:integer); @y procedure line_break(@!d:boolean); @z %--------------------------------------- -@x [38] m.815 l.16039 - e-TeX basic +@x [38] m.815 l.16046 - e-TeX basic end; @y end; @@ -1807,33 +1810,33 @@ end; @t\4@>@<Declare \eTeX\ procedures for use by |main_control|@> @z %--------------------------------------- -@x [38] m.816 l.16059 - e-TeX last_line_fit +@x [38] m.816 l.16066 - e-TeX last_line_fit link(tail):=new_param_glue(par_fill_skip_code); @y link(tail):=new_param_glue(par_fill_skip_code); last_line_fill:=link(tail); @z %--------------------------------------- -@x [38] m.819 l.16124 - e-TeX last_line_fit +@x [38] m.819 l.16131 - e-TeX last_line_fit @d active_node_size=3 {number of words in active nodes} @y @d active_node_size_normal=3 {number of words in normal active nodes} @z %--------------------------------------- -@x [38] m.827 l.16287 - e-TeX last_line_fit +@x [38] m.827 l.16294 - e-TeX last_line_fit background[6]:=shrink(q)+shrink(r); @y background[6]:=shrink(q)+shrink(r); @<Check for special treatment of last line of paragraph@>; @z %--------------------------------------- -@x [38] m.829 l.16338 try_break - e-TeX last_line_fit +@x [38] m.829 l.16345 try_break - e-TeX last_line_fit label exit,done,done1,continue,deactivate; @y label exit,done,done1,continue,deactivate,found,not_found; @z %--------------------------------------- -@x [38] m.845 l.16630 - e-TeX last_line_fit +@x [38] m.845 l.16637 - e-TeX last_line_fit total_demerits(q):=minimal_demerits[fit_class]; @y total_demerits(q):=minimal_demerits[fit_class]; @@ -1841,14 +1844,14 @@ if do_last_line_fit then @<Store \(a)additional data in the new active node@>; @z %--------------------------------------- -@x [38] m.846 l.16643 - e-TeX last_line_fit +@x [38] m.846 l.16650 - e-TeX last_line_fit print(" t="); print_int(total_demerits(q)); @y print(" t="); print_int(total_demerits(q)); if do_last_line_fit then @<Print additional data in the new active node@>; @z %--------------------------------------- -@x [38] m.851 l.16742 - e-TeX last_line_fit +@x [38] m.851 l.16749 - e-TeX last_line_fit if (b>inf_bad)or(pi=eject_penalty) then @y if do_last_line_fit then @<Adjust \(t)the additional data for last line@>; @@ -1856,7 +1859,7 @@ found: if (b>inf_bad)or(pi=eject_penalty) then @z %--------------------------------------- -@x [38] m.852 l.16766 - e-TeX last_line_fit +@x [38] m.852 l.16773 - e-TeX last_line_fit begin b:=0; fit_class:=decent_fit; {infinite stretch} @y begin if do_last_line_fit then @@ -1867,7 +1870,7 @@ if (b>inf_bad)or(pi=eject_penalty) then b:=0; fit_class:=decent_fit; {infinite stretch} @z %--------------------------------------- -@x [38] m.855 l.16823 - e-TeX last_line_fit +@x [38] m.855 l.16830 - e-TeX last_line_fit best_place[fit_class]:=break_node(r); best_pl_line[fit_class]:=l; @y best_place[fit_class]:=break_node(r); best_pl_line[fit_class]:=l; @@ -1875,14 +1878,14 @@ if (b>inf_bad)or(pi=eject_penalty) then @<Store \(a)additional data for this feasible break@>; @z %--------------------------------------- -@x [39] m.863 l.16996 - e-TeX last_line_fit +@x [39] m.863 l.17003 - e-TeX last_line_fit end;@+tats@/ @y end;@+tats@/ if do_last_line_fit then @<Adjust \(t)the final line of the paragraph@>; @z %--------------------------------------- -@x [39] m.864 l.17007 - e-TeX last_line_fit +@x [39] m.864 l.17014 - e-TeX last_line_fit line_number(q):=prev_graf+1; total_demerits(q):=0; link(active):=q; @y line_number(q):=prev_graf+1; total_demerits(q):=0; link(active):=q; @@ -1890,26 +1893,26 @@ if do_last_line_fit then @<Initialize additional fields of the first active node@>; @z %--------------------------------------- -@x [39] m.866 l.17057 - e-TeX TeXXeT +@x [39] m.866 l.17064 - e-TeX TeXXeT math_node: begin auto_breaking:=(subtype(cur_p)=after); kern_break; @y math_node: begin if subtype(cur_p)<L_code then auto_breaking:=end_LR(cur_p); kern_break; @z %--------------------------------------- -@x [39] m.876 l.17219 - e-TeX penalties +@x [39] m.876 l.17226 - e-TeX penalties post_line_break(final_widow_penalty) @y post_line_break(d) @z %--------------------------------------- -@x [39] m.877 l.17233 post_line_break - e-TeX penalties +@x [39] m.877 l.17240 post_line_break - e-TeX penalties procedure post_line_break(@!final_widow_penalty:integer); @y procedure post_line_break(@!d:boolean); @z %--------------------------------------- -@x [39] m.877 l.17243 post_line_break - e-TeX TeXXeT +@x [39] m.877 l.17250 post_line_break - e-TeX TeXXeT begin @<Reverse the links of the relevant passive nodes, setting |cur_p| to the @y @!LR_ptr:pointer; {stack of LR codes} @@ -1917,14 +1920,14 @@ begin LR_ptr:=LR_save; @<Reverse the links of the relevant passive nodes, setting |cur_p| to the @z %--------------------------------------- -@x [39] m.877 l.17256 post_line_break - e-TeX TeXXeT +@x [39] m.877 l.17263 post_line_break - e-TeX TeXXeT prev_graf:=best_line-1; @y prev_graf:=best_line-1; LR_save:=LR_ptr; @z %--------------------------------------- -@x [39] m.879 l.17286 - e-TeX TeXXeT +@x [39] m.879 l.17293 - e-TeX TeXXeT r:=q; {now |type(q)=glue_node|, |kern_node|, |math_node| or |penalty_node|} @y r:=q; {now |type(q)=glue_node|, |kern_node|, |math_node| or |penalty_node|} @@ -1932,7 +1935,7 @@ LR_save:=LR_ptr; @<Adjust \(t)the LR stack for the |post_line_break| routine@>; @z %--------------------------------------- -@x [39] m.880 l.17303 - e-TeX TeXXeT +@x [39] m.880 l.17310 - e-TeX TeXXeT @<Modify the end of the line to reflect the nature of the break and to include \.{\\rightskip}; also set the proper value of |disc_break|@>; @y @@ -1944,7 +1947,7 @@ if TeXXeT_en then if TeXXeT_en then @<Insert LR nodes at the end of the current line@>; @z %--------------------------------------- -@x [39] m.881 l.17326 - e-TeX TeXXeT +@x [39] m.881 l.17333 - e-TeX TeXXeT else if (type(q)=math_node)or(type(q)=kern_node) then width(q):=0; @y else if type(q)=kern_node then width(q):=0 @@ -1954,7 +1957,7 @@ if TeXXeT_en then @<Insert LR nodes at the end of the current line@>; end; @z %--------------------------------------- -@x [39] m.890 l.17420 - e-TeX penalties +@x [39] m.890 l.17427 - e-TeX penalties begin pen:=inter_line_penalty; if cur_line=prev_graf+1 then pen:=pen+club_penalty; if cur_line+2=best_line then pen:=pen+final_widow_penalty; @@ -1985,14 +1988,14 @@ if TeXXeT_en then @<Insert LR nodes at the end of the current line@>; else pen:=pen+widow_penalty; @z %--------------------------------------- -@x [40] m.891 l.17487 - e-TeX hyph_codes +@x [40] m.891 l.17494 - e-TeX hyph_codes cur_lang:=init_cur_lang; l_hyf:=init_l_hyf; r_hyf:=init_r_hyf; @y cur_lang:=init_cur_lang; l_hyf:=init_l_hyf; r_hyf:=init_r_hyf; set_hyph_index; @z %--------------------------------------- -@x [40] m.896 l.17556 - e-TeX hyph_codes +@x [40] m.896 l.17563 - e-TeX hyph_codes if lc_code(c)<>0 then if (lc_code(c)=c)or(uc_hyph>0) then goto done2 @y @@ -2001,7 +2004,7 @@ set_hyph_index; if (hc[0]=c)or(uc_hyph>0) then goto done2 @z %--------------------------------------- -@x [40] m.897 l.17573 - e-TeX hyph_codes +@x [40] m.897 l.17580 - e-TeX hyph_codes if lc_code(c)=0 then goto done3; if hn=63 then goto done3; hb:=s; incr(hn); hu[hn]:=c; hc[hn]:=lc_code(c); hyf_bchar:=non_char; @@ -2012,7 +2015,7 @@ set_hyph_index; hb:=s; incr(hn); hu[hn]:=c; hc[hn]:=hc[0]; hyf_bchar:=non_char; @z %--------------------------------------- -@x [40] m.898 l.17599 - e-TeX hyph_codes +@x [40] m.898 l.17606 - e-TeX hyph_codes if lc_code(c)=0 then goto done3; if j=63 then goto done3; incr(j); hu[j]:=c; hc[j]:=lc_code(c);@/ @@ -2023,13 +2026,13 @@ set_hyph_index; incr(j); hu[j]:=c; hc[j]:=hc[0];@/ @z %--------------------------------------- -@x [42] m.934 l.18238 new_hyph_exceptions - e-TeX hyph_codes +@x [42] m.934 l.18245 new_hyph_exceptions - e-TeX hyph_codes label reswitch, exit, found, not_found; @y label reswitch, exit, found, not_found, not_found1; @z %--------------------------------------- -@x [42] m.934 l.18248 new_hyph_exceptions - e-TeX hyph_codes +@x [42] m.934 l.18255 new_hyph_exceptions - e-TeX hyph_codes set_cur_lang; @y set_cur_lang; @@ -2041,40 +2044,40 @@ set_hyph_index; not_found1: @z %--------------------------------------- -@x [42] m.937 l.18280 - e-TeX hyph_codes +@x [42] m.937 l.18287 - e-TeX hyph_codes else begin if lc_code(cur_chr)=0 then @y else begin set_lc_code(cur_chr); if hc[0]=0 then @z %--------------------------------------- -@x [42] m.937 l.18288 - e-TeX hyph_codes +@x [42] m.937 l.18295 - e-TeX hyph_codes begin incr(n); hc[n]:=lc_code(cur_chr); @y begin incr(n); hc[n]:=hc[0]; @z %--------------------------------------- -@x [43] m.952 l.18576 - e-TeX hyph_codes +@x [43] m.952 l.18583 - e-TeX hyph_codes trie_root:=compress_trie(trie_root); {identify equivalent subtries} @y hyph_root:=compress_trie(hyph_root); trie_root:=compress_trie(trie_root); {identify equivalent subtries} @z %--------------------------------------- -@x [43] m.958 l.18664 - e-TeX hyph_codes +@x [43] m.958 l.18671 - e-TeX hyph_codes if trie_root=0 then {no patterns were given} @y if trie_max=0 then {no patterns were given} @z %--------------------------------------- -@x [43] m.958 l.18668 - e-TeX hyph_codes +@x [43] m.958 l.18675 - e-TeX hyph_codes else begin trie_fix(trie_root); {this fixes the non-holes in |trie|} @y else begin if hyph_root>0 then trie_fix(hyph_root); if trie_root>0 then trie_fix(trie_root); {this fixes the non-holes in |trie|} @z %--------------------------------------- -@x [43] m.960 l.18711 new_patterns - e-TeX hyph_codes +@x [43] m.960 l.18718 new_patterns - e-TeX hyph_codes brace@>; @y brace@>; @@ -2082,14 +2085,14 @@ else begin if hyph_root>0 then trie_fix(hyph_root); @<Store hyphenation codes for current language@>; @z %--------------------------------------- -@x [43] m.966 l.18818 init_trie - e-TeX hyph_codes +@x [43] m.966 l.18825 init_trie - e-TeX hyph_codes @<Move the data into |trie|@>; @y if hyph_root<>0 then @<Pack all stored |hyph_codes|@>; @<Move the data into |trie|@>; @z %--------------------------------------- -@x [44] m.968 l.18834 - e-TeX saved_items +@x [44] m.968 l.18841 - e-TeX saved_items whenever this is possible without backspacing. @y whenever this is possible without backspacing. @@ -2098,7 +2101,7 @@ When the second argument |s| is |false| the deleted nodes are destroyed, otherwise they are collected in a list starting at |split_disc|. @z %--------------------------------------- -@x [44] m.968 l.18841 prune_page_top - e-TeX saved_items +@x [44] m.968 l.18848 prune_page_top - e-TeX saved_items @p function prune_page_top(@!p:pointer):pointer; {adjust top after page break} var prev_p:pointer; {lags one step behind |p|} @!q:pointer; {temporary variable for list manipulation} @@ -2109,7 +2112,7 @@ var prev_p:pointer; {lags one step behind |p|} @!q,@!r:pointer; {temporary variables for list manipulation} @z %--------------------------------------- -@x [44] m.968 l.18852 prune_page_top - e-TeX saved_items +@x [44] m.968 l.18859 prune_page_top - e-TeX saved_items link(prev_p):=p; flush_node_list(q); @y link(prev_p):=p; @@ -2120,20 +2123,20 @@ var prev_p:pointer; {lags one step behind |p|} else flush_node_list(q); @z %--------------------------------------- -@x [44] m.977 l.19019 vsplit - e-TeX marks, sparse arrays +@x [44] m.977 l.19026 vsplit - e-TeX marks, sparse arrays @p function vsplit(@!n:eight_bits; @!h:scaled):pointer; @y @p @t\4@>@<Declare the function called |do_marks|@>@; function vsplit(@!n:halfword; @!h:scaled):pointer; @z %--------------------------------------- -@x [44] m.977 l.19025 vsplit - e-TeX sparse arrays +@x [44] m.977 l.19032 vsplit - e-TeX sparse arrays begin v:=box(n); @y begin cur_val:=n; fetch_box(v); @z %--------------------------------------- -@x [44] m.977 l.19026 vsplit - e-TeX marks, saved_items +@x [44] m.977 l.19033 vsplit - e-TeX marks, saved_items if split_first_mark<>null then @y flush_node_list(split_disc); split_disc:=null; @@ -2142,14 +2145,14 @@ if sa_mark<>null then if split_first_mark<>null then @z %--------------------------------------- -@x [44] m.977 l.19034 vsplit - e-TeX saved_items +@x [44] m.977 l.19041 vsplit - e-TeX saved_items q:=prune_page_top(q); p:=list_ptr(v); free_node(v,box_node_size); @y q:=prune_page_top(q,saving_vdiscards>0); p:=list_ptr(v); free_node(v,box_node_size); @z %--------------------------------------- -@x [44] m.977 l.19035 vsplit - e-TeX sparse arrays +@x [44] m.977 l.19042 vsplit - e-TeX sparse arrays if q=null then box(n):=null {the |eq_level| of the box stays the same} else box(n):=vpack(q,natural); @y @@ -2157,42 +2160,42 @@ if q<>null then q:=vpack(q,natural); change_box(q); {the |eq_level| of the box stays the same} @z %--------------------------------------- -@x [44] m.979 l.19060 - e-TeX marks +@x [44] m.979 l.19067 - e-TeX marks if split_first_mark=null then @y if mark_class(p)<>0 then @<Update the current marks for |vsplit|@> else if split_first_mark=null then @z %--------------------------------------- -@x [45] m.982 l.19194 - e-TeX last_node_type +@x [45] m.982 l.19201 - e-TeX last_node_type The variables |last_penalty| and |last_kern| are similar. And @y The variables |last_penalty|, |last_kern|, and |last_node_type| are similar. And @z %--------------------------------------- -@x [45] m.982 l.19207 - e-TeX last_node_type +@x [45] m.982 l.19214 - e-TeX last_node_type @!last_kern:scaled; {used to implement \.{\\lastkern}} @y @!last_kern:scaled; {used to implement \.{\\lastkern}} @!last_node_type:integer; {used to implement \.{\\lastnodetype}} @z %--------------------------------------- -@x [45] m.991 l.19344 - e-TeX last_node_type +@x [45] m.991 l.19353 - e-TeX last_node_type last_glue:=max_halfword; last_penalty:=0; last_kern:=0; @y last_glue:=max_halfword; last_penalty:=0; last_kern:=0; last_node_type:=-1; @z %--------------------------------------- -@x [45] m.996 l.19411 - e-TeX last_node_type +@x [45] m.996 l.19420 - e-TeX last_node_type last_penalty:=0; last_kern:=0; @y last_penalty:=0; last_kern:=0; last_node_type:=type(p)+1; @z %--------------------------------------- -@x [45] m.999 l.19448 - e-TeX saved_items +@x [45] m.999 l.19454 - e-TeX saved_items link(contrib_head):=link(p); link(p):=null; flush_node_list(p) @y link(contrib_head):=link(p); link(p):=null; @@ -2203,7 +2206,7 @@ if saving_vdiscards>0 then else flush_node_list(p) @z %--------------------------------------- -@x [45] m.1012 l.19688 fire_up - e-TeX marks +@x [45] m.1012 l.19697 fire_up - e-TeX marks if bot_mark<>null then @y if sa_mark<>null then @@ -2211,7 +2214,7 @@ if sa_mark<>null then if bot_mark<>null then @z %--------------------------------------- -@x [45] m.1012 l.19696 fire_up - e-TeX marks +@x [45] m.1012 l.19705 fire_up - e-TeX marks if (top_mark<>null)and(first_mark=null) then @y if sa_mark<>null then @@ -2219,7 +2222,7 @@ if sa_mark<>null then if (top_mark<>null)and(first_mark=null) then @z %--------------------------------------- -@x [45] m.1014 l.19733 - e-TeX marks +@x [45] m.1014 l.19742 - e-TeX marks else if type(p)=mark_node then @<Update the values of @y else if type(p)=mark_node then @@ -2227,27 +2230,27 @@ if (top_mark<>null)and(first_mark=null) then else @<Update the values of @z %--------------------------------------- -@x [45] m.1021 l.19845 - e-TeX saved_items +@x [45] m.1021 l.19854 - e-TeX saved_items ins_ptr(p):=prune_page_top(broken_ptr(r)); @y ins_ptr(p):=prune_page_top(broken_ptr(r),false); @z %--------------------------------------- -@x [45] m.1023 l.19881 - e-TeX saved_items +@x [45] m.1023 l.19890 - e-TeX saved_items ship_out(box(255)); box(255):=null; @y flush_node_list(page_disc); page_disc:=null; ship_out(box(255)); box(255):=null; @z %--------------------------------------- -@x [45] m.1026 l.19923 - e-TeX saved_items +@x [45] m.1026 l.19932 - e-TeX saved_items pop_nest; build_page; @y flush_node_list(page_disc); page_disc:=null; pop_nest; build_page; @z %--------------------------------------- -@x [47] m.1070 l.20727 normal_paragraph - e-TeX penalties +@x [47] m.1070 l.20735 normal_paragraph - e-TeX penalties if par_shape_ptr<>null then eq_define(par_shape_loc,shape_ref,null); @y if par_shape_ptr<>null then eq_define(par_shape_loc,shape_ref,null); @@ -2255,7 +2258,7 @@ if inter_line_penalties_ptr<>null then eq_define(inter_line_penalties_loc,shape_ref,null); @z %--------------------------------------- -@x [47] m.1071 l.20748 - e-TeX sparse arrays +@x [47] m.1071 l.20756 - e-TeX sparse arrays |box_flag+255| represent `\.{\\setbox0}' through `\.{\\setbox255}'; codes |box_flag+256| through |box_flag+511| represent `\.{\\global\\setbox0}' through `\.{\\global\\setbox255}'; @@ -2269,7 +2272,7 @@ code |ship_out_flag| represents `\.{\\shipout}'; and codes |leader_flag| through |leader_flag+2| represent `\.{\\leaders}', `\.{\\cleaders}', @z %--------------------------------------- -@x [47] m.1071 l.20762 - e-TeX sparse arrays +@x [47] m.1071 l.20770 - e-TeX sparse arrays @d ship_out_flag==box_flag+512 {context code for `\.{\\shipout}'} @d leader_flag==box_flag+513 {context code for `\.{\\leaders}'} @y @@ -2278,14 +2281,14 @@ through |leader_flag+2| represent `\.{\\leaders}', `\.{\\cleaders}', @d leader_flag==@'10000200001 {context code for `\.{\\leaders}'} @z %--------------------------------------- -@x [47] m.1075 l.20845 box_end - e-TeX sparse arrays +@x [47] m.1075 l.20853 box_end - e-TeX sparse arrays var p:pointer; {|ord_noad| for new box in math mode} @y var p:pointer; {|ord_noad| for new box in math mode} @!a:small_number; {global prefix} @z %--------------------------------------- -@x [47] m.1077 l.20883 - e-TeX sparse arrays +@x [47] m.1077 l.20891 - e-TeX sparse arrays if box_context<box_flag+256 then eq_define(box_base-box_flag+box_context,box_ref,cur_box) else geq_define(box_base-box_flag-256+box_context,box_ref,cur_box) @@ -2300,7 +2303,7 @@ else sa_def_box; end @z %--------------------------------------- -@x [47] m.1079 l.20915 begin_box - e-TeX sparse arrays +@x [47] m.1079 l.20922 begin_box - e-TeX sparse arrays @!n:eight_bits; {a box number} begin case cur_chr of box_code: begin scan_eight_bit_int; cur_box:=box(cur_val); @@ -2316,14 +2319,14 @@ box_code: begin scan_register_num; fetch_box(cur_box); copy_code: begin scan_register_num; fetch_box(q); cur_box:=copy_node_list(q); @z %--------------------------------------- -@x [47] m.1080 l.20931 - e-TeX TeXXeT +@x [47] m.1080 l.20938 - e-TeX TeXXeT since |head| is a one-word node. @y since |head| is a one-word node. A final \.{\\endM} node is temporarily removed. @z %--------------------------------------- -@x [47] m.1080 l.20944 - e-TeX TeXXeT +@x [47] m.1080 l.20951 - e-TeX TeXXeT if (type(tail)=hlist_node)or(type(tail)=vlist_node) then @<Remove the last box, unless it's part of a discretionary@>; @y @@ -2335,13 +2338,13 @@ A final \.{\\endM} node is temporarily removed. end; @z %--------------------------------------- -@x [47] m.1082 l.20965 - e-TeX sparse arrays +@x [47] m.1082 l.20972 - e-TeX sparse arrays begin scan_eight_bit_int; n:=cur_val; @y begin scan_register_num; n:=cur_val; @z %--------------------------------------- -@x [47] m.1096 l.21149 - e-TeX penalties, TeXXeT +@x [47] m.1096 l.21156 - e-TeX penalties, TeXXeT else line_break(widow_penalty); @y else line_break(false); @@ -2350,7 +2353,7 @@ begin scan_register_num; n:=cur_val; end; @z %--------------------------------------- -@x [47] m.1101 l.21205 make_mark - e-TeX marks +@x [47] m.1101 l.21212 make_mark - e-TeX marks begin p:=scan_toks(false,true); p:=get_node(small_node_size); @y @!c:halfword; {the mark class} @@ -2361,14 +2364,14 @@ p:=scan_toks(false,true); p:=get_node(small_node_size); mark_class(p):=c; @z %--------------------------------------- -@x [47] m.1105 l.21233 - e-TeX TeXXeT +@x [47] m.1105 l.21240 - e-TeX TeXXeT will be deleted, if present. @y will be deleted, if present. A final \.{\\endM} node is temporarily removed. @z %--------------------------------------- -@x [47] m.1105 l.21243 delete_last - e-TeX TeXXeT +@x [47] m.1105 l.21250 delete_last - e-TeX TeXXeT else begin if not is_char_node(tail) then if type(tail)=cur_chr then @y else begin if not is_char_node(tail) then @@ -2377,7 +2380,7 @@ else begin if not is_char_node(tail) then if type(tail)=cur_chr then @z %--------------------------------------- -@x [47] m.1105 l.21254 delete_last - e-TeX TeXXeT +@x [47] m.1105 l.21261 delete_last - e-TeX TeXXeT end; @y if LR_temp<>null then insert_end_M; @@ -2385,47 +2388,47 @@ else begin if not is_char_node(tail) then end; @z %--------------------------------------- -@x [47] m.1108 l.21292 - e-TeX saved_items +@x [47] m.1108 l.21299 - e-TeX saved_items un_vbox: if chr_code=copy_code then print_esc("unvcopy") @y un_vbox: if chr_code=copy_code then print_esc("unvcopy") @<Cases of |un_vbox| for |print_cmd_chr|@>@/ @z %--------------------------------------- -@x [47] m.1110 l.21302 unpackage - e-TeX saved_items +@x [47] m.1110 l.21309 unpackage - e-TeX saved_items label exit; @y label done, exit; @z %--------------------------------------- -@x [47] m.1110 l.21305 unpackage - e-TeX saved_items, sparse arrays +@x [47] m.1110 l.21312 unpackage - e-TeX saved_items, sparse arrays begin c:=cur_chr; scan_eight_bit_int; p:=box(cur_val); @y begin if cur_chr>copy_code then @<Handle saved items and |goto done|@>; c:=cur_chr; scan_register_num; fetch_box(p); @z %--------------------------------------- -@x [47] m.1110 l.21317 unpackage - e-TeX sparse arrays +@x [47] m.1110 l.21324 unpackage - e-TeX sparse arrays else begin link(tail):=list_ptr(p); box(cur_val):=null; @y else begin link(tail):=list_ptr(p); change_box(null); @z %--------------------------------------- -@x [47] m.1110 l.21320 unpackage - e-TeX saved_items +@x [47] m.1110 l.21327 unpackage - e-TeX saved_items while link(tail)<>null do tail:=link(tail); @y done: while link(tail)<>null do tail:=link(tail); @z %--------------------------------------- -@x [47] m.1130 l.21592 - e-TeX TeXXeT +@x [47] m.1130 l.21599 - e-TeX TeXXeT vmode+halign,hmode+valign:init_align; @y vmode+halign:init_align; hmode+valign:@<Cases of |main_control| for |hmode+valign|@>@; init_align; @z %--------------------------------------- -@x [48] m.1138 l.21671 init_math - e-TeX TeXXeT +@x [48] m.1138 l.21678 init_math - e-TeX TeXXeT procedure init_math; label reswitch,found,not_found,done; var w:scaled; {new or partial |pre_display_size|} @@ -2438,7 +2441,7 @@ var w:scaled; {new or partial |pre_display_size|} @!x:integer; {new |pre_display_direction|} @z %--------------------------------------- -@x [48] m.1145 l.21729 - e-TeX TeXXeT, penalties +@x [48] m.1145 l.21736 - e-TeX TeXXeT, penalties begin if head=tail then {`\.{\\noindent\$\$}' or `\.{\$\${ }\$\$}'} begin pop_nest; w:=-max_dimen; end @@ -2450,7 +2453,7 @@ if head=tail then {`\.{\\noindent\$\$}' or `\.{\$\${ }\$\$}'} else begin line_break(true);@/ @z %--------------------------------------- -@x [48] m.1145 l.21742 - e-TeX TeXXeT +@x [48] m.1145 l.21749 - e-TeX TeXXeT eq_word_define(dimen_base+pre_display_size_code,w); @y eq_word_define(dimen_base+pre_display_size_code,w); @@ -2458,28 +2461,28 @@ LR_box:=j; if eTeX_ex then eq_word_define(int_base+pre_display_direction_code,x); @z %--------------------------------------- -@x [48] m.1146 l.21750 - e-TeX TeXXeT +@x [48] m.1146 l.21757 - e-TeX TeXXeT v:=shift_amount(just_box)+2*quad(cur_font); w:=-max_dimen; p:=list_ptr(just_box); @y @<Prepare for display after a non-empty paragraph@>; @z %--------------------------------------- -@x [48] m.1146 l.21765 - e-TeX TeXXeT +@x [48] m.1146 l.21772 - e-TeX TeXXeT done: @y done: @<Finish the natural width computation@> @z %--------------------------------------- -@x [48] m.1147 l.21776 - e-TeX TeXXeT +@x [48] m.1147 l.21783 - e-TeX TeXXeT kern_node,math_node: d:=width(p); @y kern_node: d:=width(p); @t\4@>@<Cases of `Let |d| be the natural width' that need special treatment@>@; @z %--------------------------------------- -@x [48] m.1185 l.22285 - e-TeX middle +@x [48] m.1185 l.22292 - e-TeX middle if type(q)<>left_noad then confusion("right"); @:this can't happen right}{\quad right@> info(numerator(incompleat_noad)):=link(q); @@ -2491,14 +2494,14 @@ kern_node: d:=width(p); link(delim_ptr):=incompleat_noad; link(incompleat_noad):=p; @z %--------------------------------------- -@x [48] m.1189 l.22300 - e-TeX middle +@x [48] m.1189 l.22337 - e-TeX middle else print_esc("right"); @y @/@<Cases of |left_right| for |print_cmd_chr|@>@/ else print_esc("right"); @z %--------------------------------------- -@x [48] m.1191 l.22339 math_left_right - e-TeX middle +@x [48] m.1191 l.22346 math_left_right - e-TeX middle begin t:=cur_chr; if (t=right_noad)and(cur_group<>math_left_group) then @y @@ -2507,7 +2510,7 @@ begin t:=cur_chr; if (t<>left_noad)and(cur_group<>math_left_group) then @z %--------------------------------------- -@x [48] m.1191 l.22344 math_left_right - e-TeX middle +@x [48] m.1191 l.22351 math_left_right - e-TeX middle if t=left_noad then begin push_math(math_left_group); link(head):=p; tail:=p; end @@ -2526,13 +2529,13 @@ if (t<>left_noad)and(cur_group<>math_left_group) then else begin @z %--------------------------------------- -@x [48] m.1191 l.22350 math_left_right - e-TeX middle +@x [48] m.1191 l.22357 math_left_right - e-TeX middle info(nucleus(tail)):=p; @y info(nucleus(tail)):=q; @z %--------------------------------------- -@x [48] m.1192 l.22358 - e-TeX middle +@x [48] m.1192 l.22365 - e-TeX middle print_err("Extra "); print_esc("right"); @.Extra \\right.@> help1("I'm ignoring a \right that had no matching \left."); @@ -2549,82 +2552,82 @@ if (t<>left_noad)and(cur_group<>math_left_group) then end; @z %--------------------------------------- -@x [48] m.1194 l.22373 after_math - e-TeX TeXXeT +@x [48] m.1194 l.22380 after_math - e-TeX TeXXeT procedure after_math; @y @t\4@>@<Declare subprocedures for |after_math|@>@; procedure after_math; @z %--------------------------------------- -@x [48] m.1194 l.22380 after_math - e-TeX TeXXeT +@x [48] m.1194 l.22387 after_math - e-TeX TeXXeT begin danger:=false; @y begin danger:=false; @<Retrieve the prototype box@>; @z %--------------------------------------- -@x [48] m.1194 l.22387 after_math - e-TeX TeXXeT +@x [48] m.1194 l.22394 after_math - e-TeX TeXXeT mlist_to_hlist; a:=hpack(link(temp_head),natural); @y mlist_to_hlist; a:=hpack(link(temp_head),natural); subtype(a):=dlist; @z %--------------------------------------- -@x [48] m.1194 l.22390 after_math - e-TeX TeXXeT +@x [48] m.1194 l.22397 after_math - e-TeX TeXXeT danger:=false; @y danger:=false; @<Retrieve the prototype box@>; @z %--------------------------------------- -@x [48] m.1199 l.22477 - e-TeX TeXXeT +@x [48] m.1199 l.22484 - e-TeX TeXXeT w:=width(b); z:=display_width; s:=display_indent; @y w:=width(b); z:=display_width; s:=display_indent; if pre_display_direction<0 then s:=-s-z; @z %--------------------------------------- -@x [48] m.1199 l.22492 - e-TeX TeXXeT +@x [48] m.1199 l.22499 - e-TeX TeXXeT resume_after_display @y @<Flush the prototype box@>; resume_after_display @z %--------------------------------------- -@x [48] m.1202 l.22534 - e-TeX TeXXeT +@x [48] m.1202 l.22541 - e-TeX TeXXeT d:=half(z-w); @y subtype(b):=dlist; d:=half(z-w); @z %--------------------------------------- -@x [48] m.1203 l.22555 - e-TeX TeXXeT +@x [48] m.1203 l.22562 - e-TeX TeXXeT begin shift_amount(a):=s; append_to_vlist(a); @y begin app_display(j,a,0); @z %--------------------------------------- -@x [48] m.1204 l.22570 - e-TeX TeXXeT +@x [48] m.1204 l.22572 - e-TeX TeXXeT shift_amount(b):=s+d; append_to_vlist(b) @y app_display(j,b,d) @z %--------------------------------------- -@x [48] m.1205 l.22575 - e-TeX TeXXeT +@x [48] m.1205 l.22582 - e-TeX TeXXeT shift_amount(a):=s+z-width(a); append_to_vlist(a); @y app_display(j,a,z-width(a)); @z %--------------------------------------- -@x [48] m.1206 l.22594 - e-TeX TeXXeT +@x [48] m.1206 l.22601 - e-TeX TeXXeT pop_nest; @y flush_node_list(LR_box); pop_nest; @z %--------------------------------------- -@x [49] m.1208 l.22619 - e-TeX protected +@x [49] m.1208 l.22626 - e-TeX protected control sequence can be defined to be `\.{\\long}' or `\.{\\outer}', and it might or might not be expanded. The prefixes `\.{\\global}', `\.{\\long}', @y @@ -2633,31 +2636,42 @@ or `\.{\\outer}', and it might or might not be expanded. The prefixes `\.{\\global}', `\.{\\long}', `\.{\\protected}', @z %--------------------------------------- -@x [49] m.1209 l.22645 - e-TeX protected +@x [49] m.1209 l.22652 - e-TeX protected else print_esc("global"); @y @/@<Cases of |prefix| for |print_cmd_chr|@>@/ else print_esc("global"); @z %--------------------------------------- -@x [49] m.1211 l.22707 prefixed_command - e-TeX tracing +@x [49] m.1211 l.22714 prefixed_command - e-TeX tracing @<Discard erroneous prefixes and |return|@>; @y @<Discard erroneous prefixes and |return|@>; if tracing_commands>2 then if eTeX_ex then show_cur_cmd_chr; @z %--------------------------------------- -@x [49] m.1213 l.22728 - e-TeX protected +@x [49] m.1213 l.22735 - e-TeX protected if (cur_cmd<>def)and(a mod 4<>0) then + begin print_err("You can't use `"); print_esc("long"); print("' or `"); + print_esc("outer"); print("' with `"); @y if a>=8 then begin j:=protected_token; a:=a-8; end else j:=0; if (cur_cmd<>def)and((a mod 4<>0)or(j<>0)) then + begin print_err("You can't use `"); print_esc("long"); print("', `"); + print_esc("outer"); print("', or `"); + print_esc("protected"); print("' with `"); +@z +%--------------------------------------- +@x [49] m.1213 l.22740 - e-TeX protected + help1("I'll pretend you didn't say \long or \outer here."); +@y + help1("I'll pretend you didn't say \long, \outer, or \protected here."); @z %--------------------------------------- -@x [49] m.1218 l.22791 - e-TeX protected +@x [49] m.1218 l.22798 - e-TeX protected q:=scan_toks(true,e); define(p,call+(a mod 4),def_ref); @y q:=scan_toks(true,e); @@ -2668,7 +2682,7 @@ if (cur_cmd<>def)and((a mod 4<>0)or(j<>0)) then define(p,call+(a mod 4),def_ref); @z %--------------------------------------- -@x [49] m.1221 l.22819 - e-TeX sparse arrays +@x [49] m.1221 l.22826 - e-TeX sparse arrays if cur_cmd>=call then add_token_ref(cur_chr); @y if cur_cmd>=call then add_token_ref(cur_chr) @@ -2677,7 +2691,7 @@ if (cur_cmd<>def)and((a mod 4<>0)or(j<>0)) then add_sa_ref(cur_chr); @z %--------------------------------------- -@x [49] m.1224 l.22882 - e-TeX sparse arrays +@x [49] m.1224 l.22889 - e-TeX sparse arrays othercases begin scan_eight_bit_int; @y othercases begin scan_register_num; @@ -2691,19 +2705,19 @@ if (cur_cmd<>def)and((a mod 4<>0)or(j<>0)) then else @z %--------------------------------------- -@x [49] m.1225 l.22895 - e-TeX read_line +@x [49] m.1225 l.22902 - e-TeX read_line read_to_cs: begin scan_int; n:=cur_val; @y read_to_cs: begin j:=cur_chr; scan_int; n:=cur_val; @z %--------------------------------------- -@x [49] m.1225 l.22903 - e-TeX read_line +@x [49] m.1225 l.22911 - e-TeX read_line p:=cur_cs; read_toks(n,p); define(p,call,cur_val); @y p:=cur_cs; read_toks(n,p,j); define(p,call,cur_val); @z %--------------------------------------- -@x [49] m.1226 l.22912 - e-TeX sparse arrays +@x [49] m.1226 l.22920 - e-TeX sparse arrays if cur_cmd=toks_register then begin scan_eight_bit_int; p:=toks_base+cur_val; end @@ -2723,7 +2737,7 @@ read_to_cs: begin j:=cur_chr; scan_int; n:=cur_val; p:=cur_chr; {|p=every_par_loc| or |output_routine_loc| or \dots} @z %--------------------------------------- -@x [49] m.1226 l.22922 - e-TeX sparse arrays +@x [49] m.1226 l.22930 - e-TeX sparse arrays begin define(p,undefined_cs,null); free_avail(def_ref); end else begin if p=output_routine_loc then {enclose in curlies} @@ -2733,13 +2747,13 @@ read_to_cs: begin j:=cur_chr; scan_int; n:=cur_val; else begin if (p=output_routine_loc)and not e then {enclose in curlies} @z %--------------------------------------- -@x [49] m.1226 l.22930 - e-TeX sparse arrays +@x [49] m.1226 l.22938 - e-TeX sparse arrays define(p,call,def_ref); @y sa_define(p,def_ref)(p,call,def_ref); @z %--------------------------------------- -@x [49] m.1227 l.22935 - e-TeX sparse arrays +@x [49] m.1227 l.22943 - e-TeX sparse arrays begin if cur_cmd=toks_register then begin scan_eight_bit_int; cur_cmd:=assign_toks; cur_chr:=toks_base+cur_val; end; @@ -2771,7 +2785,7 @@ if (cur_cmd=toks_register)or(cur_cmd=assign_toks) then end @z %--------------------------------------- -@x [49] m.1236 l.23051 do_register_command - e-TeX sparse arrays +@x [49] m.1236 l.23059 do_register_command - e-TeX sparse arrays begin q:=cur_cmd; @y @!e:boolean; {does |l| refer to a sparse array element?} @@ -2780,7 +2794,7 @@ begin q:=cur_cmd; e:=false; {just in case, will be set |true| for sparse array elements} @z %--------------------------------------- -@x [49] m.1236 l.23066 do_register_command - e-TeX sparse arrays +@x [49] m.1236 l.23076 do_register_command - e-TeX sparse arrays if p<glue_val then word_define(l,cur_val) else begin trap_zero_glue; define(l,glue_ref,cur_val); @y @@ -2788,7 +2802,7 @@ if p<glue_val then sa_word_define(l,cur_val) else begin trap_zero_glue; sa_define(l,cur_val)(l,glue_ref,cur_val); @z %--------------------------------------- -@x [49] m.1237 l.23088 - e-TeX sparse arrays +@x [49] m.1237 l.23098 - e-TeX sparse arrays p:=cur_chr; scan_eight_bit_int; @y if (cur_chr<mem_bot)or(cur_chr>lo_mem_stat_max) then @@ -2801,7 +2815,7 @@ else begin p:=cur_chr-mem_bot; scan_register_num; else @z %--------------------------------------- -@x [49] m.1237 l.23095 - e-TeX sparse arrays +@x [49] m.1237 l.23105 - e-TeX sparse arrays end; found: @y @@ -2811,19 +2825,19 @@ found: if p<glue_val then@+if e then w:=sa_int(l)@+else w:=eqtb[l].int else if e then s:=sa_ptr(l)@+else s:=equiv(l) @z %--------------------------------------- -@x [49] m.1238 l.23101 - e-TeX sparse arrays +@x [49] m.1238 l.23111 - e-TeX sparse arrays if q=advance then cur_val:=cur_val+eqtb[l].int; @y if q=advance then cur_val:=cur_val+w; @z %--------------------------------------- -@x [49] m.1239 l.23108 - e-TeX sparse arrays +@x [49] m.1239 l.23118 - e-TeX sparse arrays begin q:=new_spec(cur_val); r:=equiv(l); @y begin q:=new_spec(cur_val); r:=s; @z %--------------------------------------- -@x [49] m.1240 l.23128 - e-TeX sparse arrays +@x [49] m.1240 l.23138 - e-TeX sparse arrays if p=int_val then cur_val:=mult_integers(eqtb[l].int,cur_val) else cur_val:=nx_plus_y(eqtb[l].int,cur_val,0) else cur_val:=x_over_n(eqtb[l].int,cur_val) @@ -2835,7 +2849,7 @@ else begin s:=equiv(l); r:=new_spec(s); else begin r:=new_spec(s); @z %--------------------------------------- -@x [49] m.1241 l.23150 - e-TeX sparse arrays +@x [49] m.1241 l.23160 - e-TeX sparse arrays set_box: begin scan_eight_bit_int; if global then n:=256+cur_val@+else n:=cur_val; scan_optional_equals; @@ -2847,7 +2861,7 @@ set_box: begin scan_register_num; if set_box_allowed then scan_box(n) @z %--------------------------------------- -@x [49] m.1246 l.23221 alter_integer - e-TeX interaction_mode +@x [49] m.1246 l.23231 alter_integer - e-TeX interaction_mode var c:0..1; {0 for \.{\\deadcycles}, 1 for \.{\\insertpenalties}} begin c:=cur_chr; scan_optional_equals; scan_int; if c=0 then dead_cycles:=cur_val @@ -2859,7 +2873,7 @@ if c=0 then dead_cycles:=cur_val @/@<Cases for |alter_integer|@>@/ @z %--------------------------------------- -@x [49] m.1247 l.23230 alter_box_dimen - e-TeX sparse arrays +@x [49] m.1247 l.23240 alter_box_dimen - e-TeX sparse arrays @!b:eight_bits; {box number} begin c:=cur_chr; scan_eight_bit_int; b:=cur_val; scan_optional_equals; scan_normal_dimen; @@ -2871,7 +2885,7 @@ scan_normal_dimen; if b<>null then mem[b+c].sc:=cur_val; @z %--------------------------------------- -@x [49] m.1248 l.23239 - e-TeX penalties +@x [49] m.1248 l.23249 - e-TeX penalties set_shape: begin scan_optional_equals; scan_int; n:=cur_val; if n<=0 then p:=null @y @@ -2887,20 +2901,20 @@ set_shape: begin q:=cur_chr; scan_optional_equals; scan_int; n:=cur_val; end @z %--------------------------------------- -@x [49] m.1248 l.23249 - e-TeX penalties +@x [49] m.1248 l.23259 - e-TeX penalties define(par_shape_loc,shape_ref,p); @y define(q,shape_ref,p); @z %--------------------------------------- -@x [49] m.1292 l.23623 - e-TeX show_groups +@x [49] m.1292 l.23633 - e-TeX show_groups show_lists:print_esc("showlists"); @y show_lists:print_esc("showlists"); @<Cases of |xray| for |print_cmd_chr|@>@;@/ @z %--------------------------------------- -@x [49] m.1293 l.23630 show_whatever - e-TeX show_ifs +@x [49] m.1293 l.23640 show_whatever - e-TeX show_ifs var p:pointer; {tail of a token list to show} @y var p:pointer; {tail of a token list to show} @@ -2910,14 +2924,14 @@ var p:pointer; {tail of a token list to show} @!n:integer; {level of \.{\\if...\\fi} nesting} @z %--------------------------------------- -@x [49] m.1293 l.23636 show_whatever - e-TeX show_groups +@x [49] m.1293 l.23646 show_whatever - e-TeX show_groups othercases @<Show the current value of some parameter or register, @y @<Cases for |show_whatever|@>@;@/ othercases @<Show the current value of some parameter or register, @z %--------------------------------------- -@x [49] m.1295 l.23671 - e-TeX protected +@x [49] m.1295 l.23681 - e-TeX protected call: print("macro"); long_call: print_esc("long macro"); outer_call: print_esc("outer macro"); @@ -2932,7 +2946,7 @@ call,long_call,outer_call,long_outer_call: begin n:=cmd-call; print("macro"); @z %--------------------------------------- -@x [49] m.1296 l.23679 - e-TeX sparse arrays +@x [49] m.1296 l.23689 - e-TeX sparse arrays begin scan_eight_bit_int; begin_diagnostic; print_nl("> \box"); print_int(cur_val); print_char("="); if box(cur_val)=null then print("void") @@ -2943,28 +2957,28 @@ print_nl("> \box"); print_int(cur_val); print_char("="); if p=null then print("void")@+else show_box(p); @z %--------------------------------------- -@x [50] m.1307 l.23821 - e-TeX basic +@x [50] m.1307 l.23831 - e-TeX basic dump_int(@$);@/ @y dump_int(@$);@/ @<Dump the \eTeX\ state@>@/ @z %--------------------------------------- -@x [50] m.1308 l.23836 - e-TeX basic +@x [50] m.1308 l.23846 - e-TeX basic if x<>@$ then goto bad_fmt; {check that strings are the same} @y if x<>@$ then goto bad_fmt; {check that strings are the same} @/@<Undump the \eTeX\ state@>@/ @z %--------------------------------------- -@x [50] m.1311 l.23890 - e-TeX sparse arrays +@x [50] m.1311 l.23900 - e-TeX sparse arrays dump_int(lo_mem_max); dump_int(rover); @y dump_int(lo_mem_max); dump_int(rover); if eTeX_ex then for k:=int_val to tok_val do dump_int(sa_root[k]); @z %--------------------------------------- -@x [50] m.1312 l.23913 - e-TeX sparse arrays +@x [50] m.1312 l.23923 - e-TeX sparse arrays undump(lo_mem_stat_max+1)(lo_mem_max)(rover); @y undump(lo_mem_stat_max+1)(lo_mem_max)(rover); @@ -2972,28 +2986,28 @@ if eTeX_ex then for k:=int_val to tok_val do undump(null)(lo_mem_max)(sa_root[k]); @z %--------------------------------------- -@x [50] m.1324 l.24107 - e-TeX hyph_codes +@x [50] m.1324 l.24117 - e-TeX hyph_codes dump_int(trie_max); @y dump_int(trie_max); dump_int(hyph_start); @z %--------------------------------------- -@x [50] m.1325 l.24135 - e-TeX hyph_codes +@x [50] m.1325 l.24145 - e-TeX hyph_codes undump_size(0)(trie_size)('trie size')(j); @+init trie_max:=j;@+tini @y undump_size(0)(trie_size)('trie size')(j); @+init trie_max:=j;@+tini undump(0)(j)(hyph_start); @z %--------------------------------------- -@x [51] m.1335 l.24355 final_cleanup - tracing +@x [51] m.1335 l.24365 final_cleanup - tracing print_int(cur_level-level_one); print_char(")"); @y print_int(cur_level-level_one); print_char(")"); if eTeX_ex then show_save_groups; @z %--------------------------------------- -@x [51] m.1335 l.24378 final_cleanup - e-TeX marks, saved_items +@x [51] m.1335 l.24388 final_cleanup - e-TeX marks, saved_items if cur_mark[c]<>null then delete_token_ref(cur_mark[c]); @y if cur_mark[c]<>null then delete_token_ref(cur_mark[c]); @@ -3002,28 +3016,28 @@ undump(0)(j)(hyph_start); for c:=last_box_code to vsplit_code do flush_node_list(disc_ptr[c]); @z %--------------------------------------- -@x [51] m.1336 l.24387 init_prim - e-TeX basic +@x [51] m.1336 l.24398 init_prim - e-TeX basic begin no_new_control_sequence:=false; @y begin no_new_control_sequence:=false; first:=0; @z %--------------------------------------- -@x [51] m.1337 l.24402 - e-TeX basic +@x [51] m.1337 l.24413 - e-TeX basic if (format_ident=0)or(buffer[loc]="&") then @y @<Enable \eTeX, if requested@>@;@/ if (format_ident=0)or(buffer[loc]="&") then @z %--------------------------------------- -@x [51] m.1337 l.24410 - e-TeX basic +@x [51] m.1337 l.24421 - e-TeX basic end; @y end; if eTeX_ex then wterm_ln('entering extended mode'); @z %--------------------------------------- -@x [53] m.1362 l.24751 adv_past - e-TeX hyph_codes +@x [53] m.1362 l.24762 adv_past - e-TeX hyph_codes begin cur_lang:=what_lang(#); l_hyf:=what_lhm(#); r_hyf:=what_rhm(#);@+end @y begin cur_lang:=what_lang(#); l_hyf:=what_lhm(#); r_hyf:=what_rhm(#); @@ -3031,7 +3045,7 @@ if eTeX_ex then wterm_ln('entering extended mode'); end @z %--------------------------------------- -@x [54] m.1379 l.24945 - e-TeX additions +@x [54] m.1379 l.24956 - e-TeX additions @* \[54] System-dependent changes. @y @* \[53a] The extended features of \eTeX. |