diff options
author | Karl Berry <karl@freefriends.org> | 2021-02-26 23:56:54 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2021-02-26 23:56:54 +0000 |
commit | be31a3bcf74e6d21aa329076b6b6993eb3c2061d (patch) | |
tree | 2f0be6260a4262dc5dea9025ab492379d4016c0d /Master/texmf-dist/doc/generic/knuth/errata/mf84.bug | |
parent | 957025c65317ad12e816b1681e1e852ed7b1e572 (diff) |
knuth runtime file updates from the 2021 tuneup
git-svn-id: svn://tug.org/texlive/trunk@57963 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/generic/knuth/errata/mf84.bug')
-rw-r--r-- | Master/texmf-dist/doc/generic/knuth/errata/mf84.bug | 109 |
1 files changed, 108 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/generic/knuth/errata/mf84.bug b/Master/texmf-dist/doc/generic/knuth/errata/mf84.bug index 0ce8ccbd748..c6349b896da 100644 --- a/Master/texmf-dist/doc/generic/knuth/errata/mf84.bug +++ b/Master/texmf-dist/doc/generic/knuth/errata/mf84.bug @@ -2321,10 +2321,117 @@ done1: if (link(p)<>null) then free_node(link(p),knot_node_size); link(p):=s; beta:=-y_coord(h); @z +573. Don't restrict the length of the banner line, leave it system-dependent code +(Udo Wermuth, 02 April 2017) +@x module 61 +incorrect, but the discrepancy is not serious since we assume that the banner +and base identifier together will occupy at most |max_print_line| +character positions. +@y +incorrect, but the discrepancy is not serious since we assume that this +part of the program is system dependent. +@^system dependencies@> +@z + +574. Defeat interactions during batch mode (Xiaosa Zhang, 27 June 2020) +@x module 78 +@ @<Get user's advice...@>= +loop@+begin continue: clear_for_error_prompt; prompt_input("? "); +@y +@ @<Get user's advice...@>= +loop@+begin continue: if interaction<>error_stop_mode then return; + clear_for_error_prompt; prompt_input("? "); +@z + +575. Don't exit to editor if no input file is at the bottom line +(Xiaosa Zhang, 03 July 2020) +@x module 79 +"E": if file_ptr>0 then +@y +"E": if file_ptr>0 then if input_stack[file_ptr].name_field>=256 then +@z +@x module 80 +if file_ptr>0 then print("E to edit your file,"); +@y +if file_ptr>0 then if input_stack[file_ptr].name_field>=256 then + print("E to edit your file,"); +@z + +576. Keep date and time in system variables, use them in opening banner +(Udo Wermuth, 11 December 2020) +@x module 194 +Since standard \PASCAL\ cannot provide such information, something special +is needed. The program here simply specifies July 4, 1776, at noon; but +users probably want a better approximation to the truth. + +Note that the values are |scaled| integers. Hence \MF\ can no longer +be used after the year 32767. + +@p procedure fix_date_and_time; +begin internal[time]:=12*60*unity; {minutes since midnight} +internal[day]:=4*unity; {fourth day of the month} +internal[month]:=7*unity; {seventh month of the year} +internal[year]:=1776*unity; {Anno Domini} +end; +@y +Since standard \PASCAL\ cannot provide such information, something special +is needed. The program here simply assumes that suitable values appear in +the global variables \\{sys\_time}, \\{sys\_day}, \\{sys\_month}, and +\\{sys\_year} (which are initialized to noon on 4 July 1776, +in case the implementor is careless). + +Note that the values are |scaled| integers. Hence \MF\ can no longer +be used after the year 32767. + +@p procedure fix_date_and_time; +begin sys_time:=12*60; +sys_day:=4; sys_month:=7; sys_year:=1776; {self-evident truths} +internal[time]:=sys_time*unity; {minutes since midnight} +internal[day]:=sys_day*unity; {day of the month} +internal[month]:=sys_month*unity; {month of the year} +internal[year]:=sys_year*unity; {Anno Domini} +end; +@z +@x module 196 +@ Of course we had better declare another global variable, if the previous +routines are going to work. + +@<Glob...@>= +@!old_setting:0..max_selector; +@y +@ Of course we had better declare a few more global variables, if the previous +routines are going to work. + +@<Glob...@>= +@!old_setting:0..max_selector; +@!sys_time,@!sys_day,@!sys_month,@!sys_year:integer; + {date and time supplied by external system} +@z +@x module 790 +print_int(round_unscaled(internal[day])); print_char(" "); +months:='JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC'; +m:=round_unscaled(internal[month]); +for k:=3*m-2 to 3*m do wlog(months[k]); +print_char(" "); print_int(round_unscaled(internal[year])); print_char(" "); +m:=round_unscaled(internal[time]); +print_dd(m div 60); print_char(":"); print_dd(m mod 60); +@y +print_int(sys_day); print_char(" "); +months:='JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC'; +for k:=3*sys_month-2 to 3*sys_month do wlog(months[k]); +print_char(" "); print_int(sys_year); print_char(" "); +print_dd(sys_time div 60); print_char(":"); print_dd(sys_time mod 60); +@z +@x module 1211 +fix_date_and_time; init_randoms((internal[time] div unity)+internal[day]);@/ +@y +fix_date_and_time; init_randoms(sys_time+sys_day*unity);@/ +@z + ------------- 999. The absolutely final change (to be made after my death) @x module 2 -@d banner=='This is METAFONT, Version 2.7182818' {printed when \MF\ starts} +@d banner=='This is METAFONT, Version 2.71828182' {printed when \MF\ starts} @y @d banner=='This is METAFONT, Version $e$' {printed when \MF\ starts} @z |