summaryrefslogtreecommitdiff
path: root/info/digests/tex-implementors/texmfwebplain.update
diff options
context:
space:
mode:
Diffstat (limited to 'info/digests/tex-implementors/texmfwebplain.update')
-rw-r--r--info/digests/tex-implementors/texmfwebplain.update316
1 files changed, 316 insertions, 0 deletions
diff --git a/info/digests/tex-implementors/texmfwebplain.update b/info/digests/tex-implementors/texmfwebplain.update
new file mode 100644
index 0000000000..7b78c70807
--- /dev/null
+++ b/info/digests/tex-implementors/texmfwebplain.update
@@ -0,0 +1,316 @@
+Below are upates to TeX.WEB, MF.WEB, and PLAIN.TeX.
+
+Differences between TeX.WEB for 2.92 and for 2.9
+
+**** FILE TX:<TEX82.NEW>TEX-2-92.WEB.1, 1-28 (1880)
+% Version 2.91 fixes \outer\def\a0{}\a\a bug (April 1988).
+% Version 2.92 fixes \patterns, also file names with complex macros (May 1988).
+
+% A reward of $81.92 will be paid to the first finder of any remaining bug.
+% (This amount will double again in 1989.)
+
+% Although considerable effort has been expended to make the TeX program
+**** FILE TX:<TEX82.NEW>TEX-2-9.WEB.1, 1-29 (1882)
+
+% A reward of $40.96 will be paid to the first finder of any remaining bug.
+% (This amount will double again in 1988.)
+
+% Although considerable effort has been expended to make the TeX program
+***************
+
+**** FILE TX:<TEX82.NEW>TEX-2-92.WEB.1, 2-93 (9207)
+@d banner=='This is TeX, Version 2.92' {printed when \TeX\ starts}
+
+@ Different \PASCAL s have slightly different conventions, and the present
+**** FILE TX:<TEX82.NEW>TEX-2-9.WEB.1, 2-93 (9066)
+@d banner=='This is TeX, Version 2.9' {printed when \TeX\ starts}
+
+@ Different \PASCAL s have slightly different conventions, and the present
+***************
+
+**** FILE TX:<TEX82.NEW>TEX-2-92.WEB.1, 19-61 (240552)
+@!d:integer; {number of characters already in current string}
+@!p:pointer; {index in |hash| array}
+**** FILE TX:<TEX82.NEW>TEX-2-9.WEB.1, 19-61 (240410)
+@!p:pointer; {index in |hash| array}
+***************
+
+**** FILE TX:<TEX82.NEW>TEX-2-92.WEB.1, 19-88 (241492)
+str_room(l); d:=cur_length;
+while pool_ptr>str_start[str_ptr] do
+ begin decr(pool_ptr); str_pool[pool_ptr+l]:=str_pool[pool_ptr];
+ end; {move current string up to make room for another}
+for k:=j to j+l-1 do append_char(buffer[k]);
+text(p):=make_string; pool_ptr:=pool_ptr+d;
+@!stat incr(cs_count);@+tats@;@/
+**** FILE TX:<TEX82.NEW>TEX-2-9.WEB.1, 19-87 (241287)
+str_room(l);
+for k:=j to j+l-1 do append_char(buffer[k]);
+text(p):=make_string;
+@!stat incr(cs_count);@+tats@;@/
+***************
+
+**** FILE TX:<TEX82.NEW>TEX-2-92.WEB.1, 20-77 (255280)
+@!group_code=0..max_group_code; {|save_level| for a level boundary}
+
+@ The global variable |cur_group| keeps track of what sort of group we are
+**** FILE TX:<TEX82.NEW>TEX-2-9.WEB.1, 20-77 (254875)
+@!group_code=0..max_group_code; {|save_index| for a level boundary}
+
+@ The global variable |cur_group| keeps track of what sort of group we are
+***************
+
+**** FILE TX:<TEX82.NEW>TEX-2-92.WEB.1, 25-31 (308968)
+@!par_token:halfword; {token representing `\.{\\par}'}
+
+@ @<Put each...@>=
+**** FILE TX:<TEX82.NEW>TEX-2-9.WEB.1, 25-31 (308563)
+@!par_token:halfword; {token representing '\.{\\par}'}
+
+@ @<Put each...@>=
+***************
+
+**** FILE TX:<TEX82.NEW>TEX-2-92.WEB.1, 25-372 (322487)
+@ The present point in the program is reached only when the |expand|
+routine has inserted a special marker into the input. In this special
+**** FILE TX:<TEX82.NEW>TEX-2-9.WEB.1, 25-372 (322082)
+@ The present point in the program is reached only when the |no_expand|
+routine has inserted a special marker into the input. In this special
+***************
+
+**** FILE TX:<TEX82.NEW>TEX-2-92.WEB.1, 26-375 (343630)
+repeat link(temp_head):=null;
+if (info(r)>match_token+127)or(info(r)<match_token) then s:=null
+else begin match_chr:=info(r)-match_token; s:=link(r); r:=s;
+ p:=temp_head; m:=0;
+ end;
+**** FILE TX:<TEX82.NEW>TEX-2-9.WEB.1, 26-375 (343228)
+repeat if (info(r)>match_token+127)or(info(r)<match_token) then s:=null
+else begin match_chr:=info(r)-match_token; s:=link(r); r:=s;
+ p:=temp_head; link(p):=null; m:=0;
+ end;
+***************
+
+**** FILE TX:<TEX82.NEW>TEX-2-92.WEB.1, 27-675 (378115)
+ are |x| sp per unit; |goto attach_sign| if the units are internal@>;
+@<Scan an optional space@>;
+**** FILE TX:<TEX82.NEW>TEX-2-9.WEB.1, 27-675 (377704)
+ are |x| units per sp; |goto attach_sign| if the units are internal@>;
+@<Scan an optional space@>;
+***************
+
+**** FILE TX:<TEX82.NEW>TEX-2-92.WEB.1, 28-13 (388583)
+@p function str_toks(@!b:pool_pointer):pointer;
+ {changes the string |str_pool[b..pool_ptr]| to a token list}
+var p:pointer; {tail of the token list}
+**** FILE TX:<TEX82.NEW>TEX-2-9.WEB.1, 28-13 (388173)
+@p function str_toks:pointer; {changes the current string to a token list}
+var p:pointer; {tail of the token list}
+***************
+
+**** FILE TX:<TEX82.NEW>TEX-2-92.WEB.1, 28-20 (388915)
+p:=temp_head; link(p):=null; k:=b;
+while k<pool_ptr do
+**** FILE TX:<TEX82.NEW>TEX-2-9.WEB.1, 28-19 (388468)
+p:=temp_head; link(p):=null; k:=str_start[str_ptr];
+while k<pool_ptr do
+***************
+
+**** FILE TX:<TEX82.NEW>TEX-2-92.WEB.1, 28-28 (389103)
+pool_ptr:=b; str_toks:=p;
+end;
+**** FILE TX:<TEX82.NEW>TEX-2-9.WEB.1, 28-27 (388673)
+pool_ptr:=str_start[str_ptr]; str_toks:=p;
+end;
+***************
+
+**** FILE TX:<TEX82.NEW>TEX-2-92.WEB.1, 28-40 (389611)
+@!b:pool_pointer; {base of temporary string}
+begin get_x_token; scan_something_internal(tok_val,false);
+if cur_val_level>=ident_val then @<Copy the token list@>
+else begin old_setting:=selector; selector:=new_string; b:=pool_ptr;
+ case cur_val_level of
+**** FILE TX:<TEX82.NEW>TEX-2-9.WEB.1, 28-39 (389198)
+begin get_x_token; scan_something_internal(tok_val,false);
+if cur_val_level>=ident_val then @<Copy the token list@>
+else begin old_setting:=selector; selector:=new_string;
+ case cur_val_level of
+***************
+
+**** FILE TX:<TEX82.NEW>TEX-2-92.WEB.1, 28-53 (390161)
+ selector:=old_setting; the_toks:=str_toks(b);
+ end;
+**** FILE TX:<TEX82.NEW>TEX-2-9.WEB.1, 28-51 (389689)
+ selector:=old_setting; the_toks:=str_toks;
+ end;
+***************
+
+**** FILE TX:<TEX82.NEW>TEX-2-92.WEB.1, 28-117 (392508)
+@!b:pool_pointer; {base of temporary string}
+begin c:=cur_chr; @<Scan the argument for command |c|@>;
+old_setting:=selector; selector:=new_string; b:=pool_ptr;
+@<Print the result of command |c|@>;
+selector:=old_setting; link(garbage):=str_toks(b); ins_list(link(temp_head));
+end;
+**** FILE TX:<TEX82.NEW>TEX-2-9.WEB.1, 28-115 (392033)
+begin c:=cur_chr; @<Scan the argument for command |c|@>;
+old_setting:=selector; selector:=new_string;
+@<Print the result of command |c|@>;
+selector:=old_setting; link(garbage):=str_toks; ins_list(link(temp_head));
+end;
+***************
+
+**** FILE TX:<TEX82.NEW>TEX-2-92.WEB.1, 30-262 (427879)
+begin if (pool_ptr+name_length>pool_size)or(str_ptr=max_strings)or
+ (cur_length>0) then
+ make_name_string:="?"
+**** FILE TX:<TEX82.NEW>TEX-2-9.WEB.1, 30-262 (427342)
+begin if (pool_ptr+name_length>pool_size)or(str_ptr=max_strings) then
+ make_name_string:="?"
+***************
+
+**** FILE TX:<TEX82.NEW>TEX-2-92.WEB.1, 35-281 (573403)
+`\.\_' or `\.\~' or `\./' or `\.\\' if |p| is descended from the |subscr|
+or |supscr| or |denominator| or |numerator| fields of noads. For example,
+**** FILE TX:<TEX82.NEW>TEX-2-9.WEB.1, 35-281 (572846)
+`\.[' or `\.(' or `\./' or `\.\\' if |p| is descended from the |subscr|
+or |supscr| or |denominator| or |numerator| fields of noads. For example,
+***************
+
+**** FILE TX:<TEX82.NEW>TEX-2-92.WEB.1, 43-68 (756339)
+to the impossible value 128, in order to guarantee that |hc[hn+3]| will
+never be fetched.
+**** FILE TX:<TEX82.NEW>TEX-2-9.WEB.1, 43-68 (755780)
+to the impossible value 256, in order to guarantee that |hc[hn+3]| will
+never be fetched.
+***************
+
+**** FILE TX:<TEX82.NEW>TEX-2-92.WEB.1, 43-75 (756649)
+hc[0]:=127; hc[hn+1]:=127; hc[hn+2]:=128; {insert delimiters}
+for j:=0 to hn-2 do
+**** FILE TX:<TEX82.NEW>TEX-2-9.WEB.1, 43-75 (756090)
+hc[0]:=127; hc[hn+1]:=127; hc[hn+2]:=256; {insert delimiters}
+for j:=0 to hn-2 do
+***************
+
+**** FILE TX:<TEX82.NEW>TEX-2-92.WEB.1, 43-196 (761319)
+until coming to a right brace; then |return|@>;
+exit:end;
+**** FILE TX:<TEX82.NEW>TEX-2-9.WEB.1, 43-196 (760760)
+until coming to a right brace; then skip an optional space and |return|@>;
+exit:end;
+***************
+
+**** FILE TX:<TEX82.NEW>TEX-2-92.WEB.1, 44-201 (773038)
+trie_link(trie_size):=0; trie_back(0):=trie_size; {wrap around}
+for p:=1 to 128 do
+**** FILE TX:<TEX82.NEW>TEX-2-9.WEB.1, 44-201 (772506)
+for p:=1 to 128 do
+***************
+
+**** FILE TX:<TEX82.NEW>TEX-2-92.WEB.1, 44-233 (774482)
+begin c:=trie_c[p];
+if c<trie_min then trie_min:=c;
+if trie_min=0 then z:=trie_link(trie_size)
+else z:=trie_link(trie_min-1); {get the first conceivably good hole}
+loop@+ begin if z<c then goto not_found;
+**** FILE TX:<TEX82.NEW>TEX-2-9.WEB.1, 44-232 (773885)
+begin c:=trie_c[p]; {we have |c>0|}
+if c<trie_min then trie_min:=c;
+z:=trie_link(trie_min-1); {get the first conceivably good hole}
+loop@+ begin if z<c then goto not_found;
+***************
+
+**** FILE TX:<TEX82.NEW>TEX-2-92.WEB.1, 44-345 (779179)
+ brace@>;
+trie_root:=compress_trie(trie_root); {compress the trie}
+**** FILE TX:<TEX82.NEW>TEX-2-9.WEB.1, 44-343 (778549)
+ brace; then skip an optional space@>;
+trie_root:=compress_trie(trie_root); {compress the trie}
+***************
+
+**** FILE TX:<TEX82.NEW>TEX-2-92.WEB.1, 44-443 (782387)
+r:=trie_size; {finally, we will zero out the holes}
+h.rh:=0; h.b0:=min_quarterword; h.b1:=0; {|trie_link:=0|,
+**** FILE TX:<TEX82.NEW>TEX-2-9.WEB.1, 44-441 (781786)
+r:=0; {finally, we will zero out the holes}
+h.rh:=0; h.b0:=min_quarterword; h.b1:=0; {|trie_link:=0|,
+***************
+
+
+########################################################################
+
+Differences between new and previous Plain.TeX
+
+**** FILE PS:<TEX.INPUTS>PLAIN.TEX.2, 6-244 (33253)
+\def\arrowvert{\delimiter"33C000 } % arrow without arrowheads
+\def\Arrowvert{\delimiter"33D000 } % double arrow without arrowheads
+\def\bracevert{\delimiter"33E000 } % the vertical bar that extends braces
+**** FILE PS:<TEX.INPUTS>PLAIN.TEX.1, 1-951 (33258)
+\def\arrowvert{\delimiter"33C } % arrow without arrowheads
+\def\Arrowvert{\delimiter"33D } % double arrow without arrowheads
+\def\bracevert{\delimiter"33E } % the vertical bar that extends braces
+***************
+
+**** FILE PS:<TEX.INPUTS>PLAIN.TEX.2, 8-22 (44482)
+\def\fmtname{plain}\def\fmtversion{2.92} % identifies the current format
+**** FILE PS:<TEX.INPUTS>PLAIN.TEX.1, 1-1220 (44480)
+\def\fmtname{plain}\def\fmtversion{2.3} % identifies the current format
+***************
+
+########################################################################
+
+Differences between MF.WEB for 1.4 and for 1.3
+
+**** FILE PS:<1SCRATCH>MF.WEB.1, 1-15 (870)
+% Version 1.4 corrected scan_declared_variable timing (May 1988).
+% A few "harmless" optimizations have been made since then.
+
+% A reward of $20.48 will be paid to the first finder of any remaining bug.
+% (This amount will double again in 1989.)
+
+% Although considerable effort has been expended to make the METAFONT program
+**** FILE PS:<TEX.MF>MF.WEB.1, 1-15 (870)
+% A few "harmless" optimizations have been made since then.
+
+% A reward of $10.24 will be paid to the first finder of any remaining bug.
+% (This amount will double again in 1988.)
+
+% Although considerable effort has been expended to make the METAFONT program
+***************
+
+**** FILE PS:<1SCRATCH>MF.WEB.1, 2-81 (7574)
+@d banner=='This is METAFONT, Version 1.4' {printed when \MF\ starts}
+
+@ Different \PASCAL s have slightly different conventions, and the present
+**** FILE PS:<TEX.MF>MF.WEB.1, 1-146 (7508)
+@d banner=='This is METAFONT, Version 1.3' {printed when \MF\ starts}
+
+@ Different \PASCAL s have slightly different conventions, and the present
+***************
+
+**** FILE PS:<1SCRATCH>MF.WEB.1, 43-1162 (768090)
+ if txx mod unity=0 then if tyy mod unity=0 then
+ @<Scale the edges, shift them, and |return|@>;
+**** FILE PS:<TEX.MF>MF.WEB.1, 1-18695 (768065)
+ if txy mod unity=0 then if tyy mod unity=0 then
+ @<Scale the edges, shift them, and |return|@>;
+***************
+
+**** FILE PS:<1SCRATCH>MF.WEB.1, 44-399 (798211)
+h:=get_avail; info(h):=x; t:=h;@/
+**** FILE PS:<TEX.MF>MF.WEB.1, 1-19495 (798187)
+if equiv(x)=null then new_root(x);
+h:=get_avail; info(h):=x; t:=h;@/
+***************
+
+**** FILE PS:<1SCRATCH>MF.WEB.1, 44-407 (798526)
+done: if eq_type(x)<>tag_token then clear_symbol(x,false);
+if equiv(x)=null then new_root(x);
+scan_declared_variable:=h;
+end;
+**** FILE PS:<TEX.MF>MF.WEB.1, 1-19504 (798538)
+done:scan_declared_variable:=h;
+end;
+***************
+