************ File DRB0:[BELL.WEB]TEX.WEB;2 8 % TeX is a trademark of the American Mathematical Society. 9 % METAFONT is a tradement of Addison-Wesley Publishing Company. 11 % Version 0 was released in September 1982 after it passed a variety of tests. ****** File DRB0:[BELL.WEB]TEX.WEB;1 8 % Version 0 was released in September 1982 after it passed a variety of tests. ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 19 % Version 2.1 corrects anomalies in discretionary breaks (January 1987). 20 % Version 2.2 corrects "(Please type...)" with null \endlinechar (April 1987). 21 % Version 2.3 avoids incomplete page in premature termination (August 1987). 22 % Version 2.4 fixes \noaligned rules in indented displays (August 1987). 23 % Version 2.5 saves cur_order when expanding tokens (September 1987). 24 % Version 2.6 adds 10sp slop when shipping leaders (November 1987). 25 % Version 2.7 improves rounding of negative-width characters (November 1987). 27 % A reward of $40.96 will be paid to the first finder of any remaining bug. 28 % (This amount will double again in 1988.) 30 % Although considerable effort has been expended to make the TeX program ****** File DRB0:[BELL.WEB]TEX.WEB;1 17 % A reward of $10.24 will be paid to the first finder of any remaining bug. 18 % (This amount will double again in 1986.) 20 % Although considerable effort has been expended to make the TeX program ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 48 \chardef\%=`\% 50 \def\(#1){} % this is used to make section names sort themselves better ****** File DRB0:[BELL.WEB]TEX.WEB;1 39 \def\(#1){} % this is used to make section names sort themselves better ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 166 @d banner=='This is TeX, Version 2.7' {printed when \TeX\ starts} 168 @ Different \PASCAL s have slightly different conventions, and the present ****** File DRB0:[BELL.WEB]TEX.WEB;1 155 @d banner=='This is TeX, Version 2.0' {printed when \TeX\ starts} 157 @ Different \PASCAL s have slightly different conventions, and the present ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 437 if max_in_open>=128 then bad:=6; 439 @ Labels are given symbolic names by the following definitions, so that ****** File DRB0:[BELL.WEB]TEX.WEB;1 427 @ Labels are given symbolic names by the following definitions, so that ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 779 The `\\{name}' parameter, which is of type `{\bf packed array 780 $[\langle\\{any}\rangle]$ of \\{char}}', stands for the name of 781 the external file that is being opened for input or output. ****** File DRB0:[BELL.WEB]TEX.WEB;1 767 The `\\{name}' parameter, which is of type `\ignorespaces|packed 768 array[@t\<\\{any}>@>] of text_char|', stands for the name of 769 the external file that is being opened for input or output. ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 873 file into available positions of the buffer array and returns the value 874 |true|, unless the file has already been entirely read, in which case it ****** File DRB0:[BELL.WEB]TEX.WEB;1 861 field into available positions of the buffer array and returns the value 862 |true|, unless the file has already been entirely read, in which case it ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 1734 when |get_token| is being used to delete a token, and/or if some fatal error 1735 occurs while \TeX\ is trying to fix a non-fatal one. But such recursion 1736 @^recursion@> 1737 is never more than two levels deep. 1739 @= ****** File DRB0:[BELL.WEB]TEX.WEB;1 1722 when |get_token| is being used to delete a token, or if some fatal error 1723 occurs while \TeX\ is trying to fix a non-fatal one. But such recursion 1724 @^recursion@> 1725 is never more than one level deep. 1727 @= ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 2524 done, i.e., if |hi_mem_min=lo_mem_max+1|, we have to quit. 2526 @p function get_avail : pointer; {single-word node allocation} ****** File DRB0:[BELL.WEB]TEX.WEB;1 2512 done, i.e., if |hi_mem_min=low_mem_max+1|, we have to quit. 2514 @p function get_avail : pointer; {single-word node allocation} ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 2674 if r=p then if rlink(p)<>p then 2675 @; ****** File DRB0:[BELL.WEB]TEX.WEB;1 2662 if r=p then if ((rlink(p)<>rover) or (llink(p)<>rover)) then 2663 @; ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 2777 entries: The first of these has |font=font_base|, and its |link| points 2778 to the second; 2779 the second identifies the font and the character dimensions. 2780 The saving feature about oriental characters is that most of them have 2781 the same box dimensions. The |character| field of the first |char_node| 2782 is a ``\\{charext}'' that distinguishes between graphic symbols whose 2783 dimensions are identical for typesetting purposes. (See the \MF\ manual.) 2784 Such an extension of \TeX\ would not be difficult; further details are 2785 left to the reader. 2787 In order to make sure that the |character| code fits in a quarterword, ****** File DRB0:[BELL.WEB]TEX.WEB;1 2765 entries: The first of these would identify the font and the character 2766 dimensions, and it would also link to the second, where the full halfword 2767 |info| field would address the desired character. Such an extension of 2768 \TeX\ would not be difficult; further details are left to the reader. 2769 The saving feature about oriental characters is that most of them have 2770 the same box dimensions. 2772 In order to make sure that the |character| code fits in a quarterword, ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 2837 The |subtype| field is set to |min_quarterword|, since that's the desired 2838 |span_count| value if this |hlist_node| is changed to an |unset_node|. ****** File DRB0:[BELL.WEB]TEX.WEB;1 2822 The |subtype| field is set to |min_quarterword|, since that' the desired 2823 |span_count| value if this |hlist_node| is changed to an |unset_node|. ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 3213 harmless to let |lig_trick| and |garbage| share the same location of |mem|. 3215 @d zero_glue==mem_bot {specification for \.{0pt plus 0pt minus 0pt}} ****** File DRB0:[BELL.WEB]TEX.WEB;1 3198 harmless to let |lig_trick|, |garbage|, and |backup_head| share the same 3199 location of |mem|. 3201 @d zero_glue==mem_bot {specification for \.{0pt plus 0pt minus 0pt}} ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 3290 {previous |mem_end|, |lo_mem_max|, and |hi_mem_min|} 3291 @t\hskip1em@>@!panicking:boolean; {do we want to check memory constantly?} ****** File DRB0:[BELL.WEB]TEX.WEB;1 3276 {previous |mem_end|, |lo_mem_max|,and |hi_mem_min|} 3277 @t\hskip1em@>@!panicking:boolean; {do we want to check memory constantly?} ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 3441 begin while p>mem_min do 3442 begin if is_char_node(p) then ****** File DRB0:[BELL.WEB]TEX.WEB;1 3427 begin while p>null do 3428 begin if is_char_node(p) then ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 3577 @p procedure show_node_list(@!p:integer); {prints a node list symbolically} 3578 label exit; ****** File DRB0:[BELL.WEB]TEX.WEB;1 3563 @p procedure show_node_list(@!p:pointer); {prints a node list symbolically} 3564 label exit; ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 3587 while p>mem_min do 3588 begin print_ln; print_current_string; {display the nesting history} ****** File DRB0:[BELL.WEB]TEX.WEB;1 3573 while p>null do 3574 begin print_ln; print_current_string; {display the nesting history} ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 3961 @d relax=0 {do nothing ( \.{\\relax} )} 3962 @d left_brace=1 {beginning of a group ( \.\{ )} ****** File DRB0:[BELL.WEB]TEX.WEB;1 3947 @d relax=0 { do nothing ( \.{\\relax} )} 3948 @d left_brace=1 {beginning of a group ( \.\{ )} ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 4091 than |max_command| so that their special nature is easily discernible. 4092 The ``expandable'' commands come first. ****** File DRB0:[BELL.WEB]TEX.WEB;1 4077 than |max_command| so that their special nature is easily discernable. 4078 The ``expandable'' commands come first. ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 4396 In the first region we have 128 equivalents for ``active characters'' that 4397 act as control sequences, followed by 128 equivalents for single-character 4398 control sequences. 4400 Then comes region~2, which corresponds to the hash table that we will ****** File DRB0:[BELL.WEB]TEX.WEB;1 4382 In the first region we have 128 equivalents for single-character control 4383 sequences, followed by 128 equivalents for ``active characters'' that 4384 act as control sequences. 4386 Then comes region~2, which corresponds to the hash table that we will ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 6404 when a subfile ends. This variable has six possible values: 6406 \yskip\hang|normal|, means that a subfile can safely end here without incident. ****** File DRB0:[BELL.WEB]TEX.WEB;1 6390 when a subfile ends. This variable has five possible values: 6392 \yskip\hang|normal|, means that a subfile can safely end here without incident. ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 7326 begin if (end_line_char<0)or(end_line_char>127) then incr(limit); 7327 if limit=start then {previous line was empty} 7328 print_nl("(Please type a command or say `\end')"); ****** File DRB0:[BELL.WEB]TEX.WEB;1 7312 begin if limit=start then {previous line was empty} 7313 print_nl("(Please type a command or say `\end')"); ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 7457 @!cvl_backup,@!radix_backup,@!co_backup:small_number; 7458 {to save |cur_val_level|, etc.} 7459 @!backup_backup:pointer; {to save |link(backup_head)|} ****** File DRB0:[BELL.WEB]TEX.WEB;1 7442 @!cvl_backup,@!radix_backup:small_number; {to save |cur_val_level| and |radix|} 7443 @!backup_backup:pointer; {to save |link(backup_head)|} ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 7462 co_backup:=cur_order; backup_backup:=link(backup_head); 7463 if cur_cmd ****** File DRB0:[BELL.WEB]TEX.WEB;1 7446 backup_backup:=link(backup_head); 7447 if cur_cmd ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 7467 cur_order:=co_backup; link(backup_head):=backup_backup; 7468 end; ****** File DRB0:[BELL.WEB]TEX.WEB;1 7451 link(backup_head):=backup_backup; 7452 end; ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 7730 top of\/ \TeX's input stack, so that |get_next| will proceed to read it 7731 next. ****** File DRB0:[BELL.WEB]TEX.WEB;1 7714 top of the \TeX's input stack, so that |get_next| will proceed to read it 7715 next. ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 9432 if\/ \.{\\or} or \.{\\else} or \.{\\fi} occurs before the current \.{\\if} 9433 condition has been evaluated, \.{\\relax} will be inserted. ****** File DRB0:[BELL.WEB]TEX.WEB;1 9416 if \.{\\or} or \.{\\else} or \.{\\fi} occurs before the current \.{\\if} 9417 condition has been evaluated, \.{\\relax} will be inserted. ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 10225 is not explicitly repeated in \.{DVI} format. 10227 \yskip\hang|header[0]| is a 32-bit check sum that \TeX\ will copy into ****** File DRB0:[BELL.WEB]TEX.WEB;1 10209 is not explicitly repeated in \.{DVI} format. Extensions of \TeX\ for 10210 oriental languages should be able to identify oriental fonts by means 10211 of this additional header information. 10212 @^oriental characters@>@^Chinese characters@>@^Japanese characters@> 10214 \yskip\hang|header[0]| is a 32-bit check sum that \TeX\ will copy into ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 10575 ``at'' size~|s|. If |s|~is negative, it's the negative of a scale factor 10576 to be applied to the design size; |s=-1000| is the normal case. ****** File DRB0:[BELL.WEB]TEX.WEB;1 10562 ``at'' size~|s|. If |s|~is negative, its the negative of a scale factor 10563 to be applied to the design size; |s=-1000| is the normal case. ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 10608 done: if file_opened then b_close(tfm_file); 10609 read_font_info:=g; 10610 end; ****** File DRB0:[BELL.WEB]TEX.WEB;1 10595 done: b_close(tfm_file); read_font_info:=g; 10596 end; ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 10787 quantity by the integer~|z|, which is known to be less than $2^{27}$. 10788 If $|z|<2^{23}$, the individual multiplications $b\cdot z$, 10789 $c\cdot z$, $d\cdot z$ cannot overflow; otherwise we will divide |z| by 2, ****** File DRB0:[BELL.WEB]TEX.WEB;1 10773 quantity by the integer~|z|, which is known to be less than $2^{27}$. Let 10774 $\alpha=16z$. If $|z|<2^{23}$, the individual multiplications $b\cdot z$, 10775 $c\cdot z$, $d\cdot z$ cannot overflow; otherwise we will divide |z| by 2, ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 10794 if $a=0$, or the same quantity minus $\alpha=2^{4+e}z^\prime$ if $a=255$. 10795 This calculation must be done exactly, in order to guarantee portability ****** File DRB0:[BELL.WEB]TEX.WEB;1 10780 if $a=0$, or the same quantity minus $\alpha$ if $a=255$. 10781 This calculation must be done exactly, in order to guarantee portability ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 10815 begin alpha:=16; 10816 while z>=@'40000000 do 10817 begin z:=z div 2; alpha:=alpha+alpha; 10818 end; 10819 beta:=256 div alpha; alpha:=alpha*z; 10820 end ****** File DRB0:[BELL.WEB]TEX.WEB;1 10801 begin alpha:=16*z; beta:=16; 10802 while z>=@'40000000 do 10803 begin z:=z div 2; beta:=beta div 2; 10804 end; 10805 end ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 10891 @.Missing font identifier@> 10892 help2("I was looking for a control sequence whose")@/ ****** File DRB0:[BELL.WEB]TEX.WEB;1 10876 @.Undefined font code@> 10877 help2("I was looking for a control sequence whose")@/ ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 11513 doing_leaders:=false; dead_cycles:=0; cur_s:=-1; 11515 @ The \.{DVI} bytes are output to a buffer instead of being written directly ****** File DRB0:[BELL.WEB]TEX.WEB;1 11498 doing_leaders:=false; dead_cycles:=0; 11500 @ The \.{DVI} bytes are output to a buffer instead of being written directly ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 11937 @!cur_s:integer; {current depth of output box nesting, initially $-1$} 11939 @ @= 11940 dvi_h:=0; dvi_v:=0; cur_h:=h_offset; dvi_f:=null_font; 11941 ensure_dvi_open; 11942 if total_pages=0 then ****** File DRB0:[BELL.WEB]TEX.WEB;1 11922 @!cur_s:integer; {current depth of output box nesting} 11924 @ @= 11925 dvi_h:=0; dvi_v:=0; cur_h:=h_offset; dvi_f:=null_font; 11926 cur_s:=-1; ensure_dvi_open; 11927 if total_pages=0 then ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 12019 if c>=qi(128) then dvi_out(set1); 12020 dvi_out(qo(c));@/ 12021 cur_h:=cur_h+char_width(f)(char_info(f)(c)); ****** File DRB0:[BELL.WEB]TEX.WEB;1 12004 if c 12375 help2("The page just created is more than 18 feet tall or")@/ ****** File DRB0:[BELL.WEB]TEX.WEB;1 12358 help2("The page just created is more than 18 feet tall or")@/ ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 12381 @.The following...deleted@> 12382 show_box(p); ****** File DRB0:[BELL.WEB]TEX.WEB;1 12364 show_box(p); ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 12396 while cur_s>-1 do 12397 begin if cur_s>0 then dvi_out(pop) 12398 else begin dvi_out(eop); incr(total_pages); 12399 end; 12400 decr(cur_s); 12401 end; 12402 if total_pages=0 then print_nl("No pages of output.") ****** File DRB0:[BELL.WEB]TEX.WEB;1 12378 if total_pages=0 then print_nl("No pages of output.") ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 12586 because it is a highly negative number. 12588 @= ****** File DRB0:[BELL.WEB]TEX.WEB;1 12562 becase it is a highly negative number. 12564 @= ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 13218 the current string would be `\.{.\^.\_/}' if |p| points to the |ord_noad| for 13219 |x| in the (ridiculous) formula 13220 `\.{\$\\sqrt\{a\^\{\\mathinner\{b\_\{c\\over x+y\}\}\}\}\$}'. 13222 @= ****** File DRB0:[BELL.WEB]TEX.WEB;1 13194 the current string would be `\.{.(.[/}' if |p| points to the |ord_noad| for 13195 |x| in the (ridiculous) formula `\.{\$\\sqrt\{a\^\{\{b\_\{c\\over x+y\} 13196 \}\}\}\$}'. 13198 @= ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 13668 their limits above and below. It takes a given box~|b| and 13669 changes it so that the new box is centered in a box of width~|w|. 13670 The centering is done by putting \.{\\hss} glue at the left and right ****** File DRB0:[BELL.WEB]TEX.WEB;1 13644 their limits above and below. It takes a given hlist box |b| and 13645 changes it so that the new box is centered in a box of width |w|. 13646 The centering is done by putting \.{\\hss} glue at the left and right ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 15406 q:=link(head); s:=head; 15407 while q<>null do ****** File DRB0:[BELL.WEB]TEX.WEB;1 15382 q:=link(head); 15383 while q<>null do ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 15413 s:=q; q:=link(q); 15414 end ****** File DRB0:[BELL.WEB]TEX.WEB;1 15389 q:=link(q); 15390 end ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 15420 if o<>0 then 15421 begin r:=link(q); link(q):=null; q:=hpack(q,natural); 15422 shift_amount(q):=o; link(q):=r; link(s):=q; 15423 end; 15424 end ****** File DRB0:[BELL.WEB]TEX.WEB;1 15396 end ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 15729 @!pass_number:halfword; {the number of passive nodes allocated on this pass} 15731 @ The active list also contains ``delta'' nodes that help the algorithm ****** File DRB0:[BELL.WEB]TEX.WEB;1 15701 @!pass_number:pointer; {the number of passive nodes allocated on this pass} 15703 @ The active list also contains ``delta'' nodes that help the algorithm ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 15924 @!v:pointer; {points to a glue specification or a node ahead of |cur_p|} 15925 @!t:integer; {node count, if |cur_p| is a discretionary node} 15926 @!f:internal_font_number; {used in character width calculation} ****** File DRB0:[BELL.WEB]TEX.WEB;1 15896 @!v:pointer; {points to a glue specification} 15897 @!t:quarterword; {replacement count, if |cur_p| is a discretionary node} 15898 @!f:internal_font_number; {used in character width calculation} ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 16048 s:=cur_p; 16049 if break_type>unhyphenated then if cur_p<>null then 16050 @; 16051 while s<>null do 16052 begin if is_char_node(s) then goto done; ****** File DRB0:[BELL.WEB]TEX.WEB;1 16020 if (break_type=unhyphenated)or(cur_p=null) then 16021 begin s:=cur_p; 16022 while s<>null do 16023 begin if is_char_node(s) then goto done; ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 16062 done: end ****** File DRB0:[BELL.WEB]TEX.WEB;1 16033 end 16034 else @; 16035 done: end ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 16077 plus $l_1$, so the length from |cur_p| to |cur_p| should be $\gamma+l_0+l_1-l$, 16078 minus the length of nodes that will be discarded after the discretionary break. 16080 The value of $l_0$ need not be computed, since |line_break| will put ****** File DRB0:[BELL.WEB]TEX.WEB;1 16050 plus $l_1$, so the length from |cur_p| to |cur_p| should be $\gamma+l_0+l_1-l$. 16052 The value of $l_0$ need not be computed, since |line_break| will put ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 16087 begin t:=replace_count(cur_p); v:=cur_p; s:=post_break(cur_p); 16088 while t>0 do 16089 begin decr(t); v:=link(v); 16090 @; 16091 end; 16092 while s<>null do 16093 begin @; 16095 s:=link(s); ****** File DRB0:[BELL.WEB]TEX.WEB;1 16059 begin t:=replace_count(cur_p); s:=cur_p; 16060 while t>0 do 16061 begin decr(t); s:=link(s); 16062 @; 16063 end; 16064 s:=post_break(cur_p); 16065 while s<>null do 16066 begin @; 16067 s:=link(s); ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 16098 if t=0 then s:=link(v); {more nodes may also be discardable after the break} 16099 end ****** File DRB0:[BELL.WEB]TEX.WEB;1 16070 end ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 16104 @= 16105 if is_char_node(v) then 16106 begin f:=font(v); 16107 break_width[1]:=break_width[1]-char_width(f)(char_info(f)(character(v))); 16108 end 16109 else case type(v) of 16110 ligature_node: begin f:=font(lig_char(v));@/ 16111 break_width[1]:=@|break_width[1]- 16112 char_width(f)(char_info(f)(character(lig_char(v)))); 16113 end; 16114 hlist_node,vlist_node,rule_node,kern_node: 16115 break_width[1]:=break_width[1]-width(v); 16116 othercases confusion("disc1") ****** File DRB0:[BELL.WEB]TEX.WEB;1 16075 @= 16076 if is_char_node(s) then 16077 begin f:=font(s); 16078 break_width[1]:=break_width[1]-char_width(f)(char_info(f)(character(s))); 16079 end 16080 else case type(s) of 16081 ligature_node: begin f:=font(lig_char(s));@/ 16082 break_width[1]:=@|break_width[1]- 16083 char_width(f)(char_info(f)(character(lig_char(s)))); 16084 end; 16085 hlist_node,vlist_node,rule_node,kern_node: 16086 break_width[1]:=break_width[1]-width(s); 16087 othercases confusion("disc1") ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 16130 hlist_node,vlist_node,rule_node:break_width[1]:=break_width[1]+width(s); 16131 kern_node: if (t=0)and(subtype(s)<>acc_kern) then t:=-1 {discardable} 16132 else break_width[1]:=break_width[1]+width(s); 16133 othercases confusion("disc2") 16134 @:this can't happen disc2}{\quad disc2@> 16135 endcases; 16136 incr(t) 16138 @ We use the fact that |type(active)<>delta_node|. ****** File DRB0:[BELL.WEB]TEX.WEB;1 16101 hlist_node,vlist_node,rule_node,kern_node: 16102 break_width[1]:=break_width[1]+width(s); 16103 othercases confusion("disc2") 16104 @:this can't happen disc2}{\quad disc2@> 16105 endcases 16107 @ We use the fact that |type(active)<>delta_node|. ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 16154 else begin q:=get_node(delta_node_size); link(q):=r; type(q):=delta_node;@/ 16155 subtype(q):=0; {the |subtype| is not used} ****** File DRB0:[BELL.WEB]TEX.WEB;1 16123 else begin q:=get_node(delta_node_size); link(q):=r; type(q):=delta_node; 16124 subtype(q):=0; {the |subtype| is not used} ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 16168 begin q:=get_node(delta_node_size); link(q):=r; type(q):=delta_node;@/ 16169 subtype(q):=0; {the |subtype| is not used} ****** File DRB0:[BELL.WEB]TEX.WEB;1 16137 begin q:=get_node(delta_node_size); link(q):=r; type(q):=delta_node; 16138 subtype(q):=0; {the |subtype| is not used} ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 16846 |disc_break:=true|@> 16847 else if (type(q)=math_node)or(type(q)=kern_node) then width(q):=0; 16848 end ****** File DRB0:[BELL.WEB]TEX.WEB;1 16815 |disc_break:=true|@>; 16816 if not is_char_node(q) then 16817 if (type(q)=math_node)or(type(q)=kern_node) then width(q):=0; 16818 end ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 17175 $\.a\,\.b\,\.-\,\.{c\!d}\,\.{e\!f}$ and $\.a\,\.{b\!c}\,\.{d\!e}\,\.f$. 17176 Thus the insertion of a hyphen might cause effects to ripple arbitrarily ****** File DRB0:[BELL.WEB]TEX.WEB;1 17145 $\.a\,\.{b\!c}\,\.{d\!e}\,\.f$ and $\.a\,\.b\,\.-\,\.{c\!d}\,\.{e\!f}$. 17146 Thus the insertion of a hyphen might cause effects to ripple arbitrarily ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 17378 using an algorithm due to Frank~M. Liang. 17379 @^Liang, Franklin Mark@> ****** File DRB0:[BELL.WEB]TEX.WEB;1 17348 using an algorithm due to Frank M. Liang. 17349 @^Liang, Franklin Mark@> ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 17901 |trie_max>z|, since |h=z-c|. It follows that location |trie_max| will 17902 never be occupied in |trie|, and we will have |trie_max>=trie_link(z)|. ****** File DRB0:[BELL.WEB]TEX.WEB;1 17871 |trie_max>z|, since |h=z+c|. It follows that location |trie_max| will 17872 never be occupied in |trie|, and we will have |trie_max>=trie_link(z)|. ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 18667 @!b,@!c:integer; {badness and cost of current page} 18668 @!pi:integer; {penalty to be added to the badness} ****** File DRB0:[BELL.WEB]TEX.WEB;1 18637 @!b,c:integer; {badness and cost of current page} 18638 @!pi:integer; {penalty to be added to the badness} ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 18959 @!prev_p:pointer; {predecessor of |p|} 18960 @!n:min_quarterword..255; {insertion box number} ****** File DRB0:[BELL.WEB]TEX.WEB;1 18929 @!prev_p:pointer; {precedessor of |p|} 18930 @!n:min_quarterword..255; {insertion box number} ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 19465 width(p):=font_info[k].sc; {that's |space(f)|} 19466 stretch(p):=font_info[k+1].sc; {and |space_stretch(f)|} 19467 shrink(p):=font_info[k+2].sc; {and |space_shrink(f)|} 19468 font_glue[f]:=p; ****** File DRB0:[BELL.WEB]TEX.WEB;1 19435 width(p):=font_info[k].sc; 19436 stretch(p):=font_info[k+1].sc; 19437 shrink(p):=font_info[k+2].sc; 19438 font_glue[f]:=p; ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 22014 count_def_code: define(p,assign_int,count_base+cur_val); ****** File DRB0:[BELL.WEB]TEX.WEB;1 21984 char_def_code: define(p,char_given,cur_val); 21985 math_char_def_code: define(p,math_given,cur_val); 21986 count_def_code: define(p,assign_int,count_base+cur_val); ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 22659 ("Pretend that you're Hercule Poirot: Examine all clues,")@/ 22660 @^Poirot, Hercule@> ****** File DRB0:[BELL.WEB]TEX.WEB;1 22631 ("Pretend that you're Hercule Poirot, examine all clues,")@/ 22632 @^Poirot, Hercule@> ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 23377 This program doesn't bother to close the input files that may still be open. 23379 @= ****** File DRB0:[BELL.WEB]TEX.WEB;1 23349 @= ************ ************ File DRB0:[BELL.WEB]TEX.WEB;2 23633 @d write_stream(#) == info(#+1) {stream number (0 to 17)} 23634 @d open_name(#) == link(#+1) {string number of file name to open} ****** File DRB0:[BELL.WEB]TEX.WEB;1 23603 @d write_stream(#) == info(#+1) {stream number (0 to 16)} 23604 @d open_name(#) == link(#+1) {string number of file name to open} ************ Number of difference sections found: 74 Number of difference records found: 162 DIFFERENCES /IGNORE=(SPACING,TRAILING_SPACES,BLANK_LINES)/WIDTH=132/MERGED=1/OUTPUT=DRB0:[BELL.WEB]TEX.DIF;1- DRB0:[BELL.WEB]TEX.WEB;2- DRB0:[BELL.WEB]TEX.WEB;1