diff --context=2 --recursive web2c-5.851d/Makefile.in web2c-5.851d-tgd/Makefile.in *** web2c-5.851d/Makefile.in Tue Feb 23 00:34:25 1993 --- web2c-5.851d-tgd/Makefile.in Sat Nov 27 01:54:30 1993 *************** *** 10,14 **** # match the system directories in the paths. # ! prefix = /usr/local exec_prefix = $(prefix) bindir = $(exec_prefix)/bin --- 10,14 ---- # match the system directories in the paths. # ! prefix = /usr/TeX exec_prefix = $(prefix) bindir = $(exec_prefix)/bin *************** *** 17,21 **** texdatadir = $(datadir)/tex texpooldir = $(texdatadir) ! texinputdir = $(texdatadir)/macros texfontdir = $(texdatadir)/fonts formatdir = $(texdatadir)/formats --- 17,21 ---- texdatadir = $(datadir)/tex texpooldir = $(texdatadir) ! texinputdir = $(texdatadir)/inputs texfontdir = $(texdatadir)/fonts formatdir = $(texdatadir)/formats *************** *** 27,36 **** typesources = $(prefix)/src/TeX+MF/typefaces ! cmsources = $(typesources)/cm # Search paths. # ! # The default is to search subdirectories of /usr/local/lib/tex/fonts ! # for fonts, and of /usr/local/lib/tex/macros for TeX source files. # (The trailing // means to search the given directory and all # subdirectories, recursively.) --- 27,36 ---- typesources = $(prefix)/src/TeX+MF/typefaces ! cmsources = $(mfinputdir) # Search paths. # ! # The default is to search subdirectories of /usr/TeX/lib/tex/fonts ! # for fonts, and of /usr/TeX/lib/tex/inputs for TeX source files. # (The trailing // means to search the given directory and all # subdirectories, recursively.) *************** *** 54,62 **** default_bstinputs = .:$(texinputdir)/bib default_mfbases = $(basedir) ! default_mfinputs = .:$(mfinputdir):$(typesources)// default_mfpool = $(mfpooldir) default_texfonts = .:$(texfontdir)// default_texformats = $(formatdir) ! default_texinputs = .:$(texinputdir)// default_texpool = $(texpooldir) default_vffonts = $(default_texfonts) --- 54,62 ---- default_bstinputs = .:$(texinputdir)/bib default_mfbases = $(basedir) ! default_mfinputs = .:$(mfinputdir)//:$(typesources)// default_mfpool = $(mfpooldir) default_texfonts = .:$(texfontdir)// default_texformats = $(formatdir) ! default_texinputs = .:$(texinputdir)//:$(texdatadir)/macros// default_texpool = $(texpooldir) default_vffonts = $(default_texfonts) *************** *** 93,101 **** # Compiling. CC = @CC@ ! CFLAGS = -g # Command to link an executable. CCLD = $(CC) ! LDFLAGS = $(XLDFLAGS) LIBS = @LIBS@ $(extralibs) --- 93,101 ---- # Compiling. CC = @CC@ ! CFLAGS = -O2 -ffast-math # Command to link an executable. CCLD = $(CC) ! LDFLAGS = -s $(XLDFLAGS) LIBS = @LIBS@ $(extralibs) diff --context=2 --recursive web2c-5.851d/lib/c-auto.h.in web2c-5.851d-tgd/lib/c-auto.h.in *** web2c-5.851d/lib/c-auto.h.in Sun Feb 21 15:12:11 1993 --- web2c-5.851d-tgd/lib/c-auto.h.in Sat Nov 27 01:54:30 1993 *************** *** 72,76 **** file. The environment variables TEXEDIT and MFEDIT override this. */ #ifndef EDITOR ! #define EDITOR "vi +%d %s" #endif --- 72,76 ---- file. The environment variables TEXEDIT and MFEDIT override this. */ #ifndef EDITOR ! #define EDITOR "TeXeditor +%d %s" #endif diff --context=2 --recursive web2c-5.851d/lib/openinout.c web2c-5.851d-tgd/lib/openinout.c *** web2c-5.851d/lib/openinout.c Sun Feb 21 15:48:14 1993 --- web2c-5.851d-tgd/lib/openinout.c Sat Nov 27 01:54:30 1993 *************** *** 134,138 **** We don't use fork/exec ourselves, since we'd have to call sh anyway to interpret the script. */ ! strcpy (cmd, "sh -c "); strcat (cmd, program); --- 134,138 ---- We don't use fork/exec ourselves, since we'd have to call sh anyway to interpret the script. */ ! strcpy (cmd, "sh -c \""); strcat (cmd, program); *************** *** 147,151 **** /* Don't show any output. */ ! strcat (cmd, ">/dev/null 2>&1"); /* Run the command, and return whether or not it succeeded. */ --- 147,151 ---- /* Don't show any output. */ ! strcat (cmd, "\">/dev/null 2>&1"); /* Run the command, and return whether or not it succeeded. */ diff --context=2 --recursive web2c-5.851d/mf/mf.ch web2c-5.851d-tgd/mf/mf.ch *** web2c-5.851d/mf/mf.ch Sun Feb 21 12:47:36 1993 --- web2c-5.851d-tgd/mf/mf.ch Sat Nov 27 01:54:31 1993 *************** *** 920,923 **** --- 920,934 ---- @z + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % [\approx 679] my preferred prompt - tgd + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + @x + print_ln; first:=start; + prompt_input("*"); {input on-line into |buffer|} + @y + first:=start; {changed for interactive convenience} + prompt_input(" "); {input on-line into |buffer|} + @z + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % [38.765] Area and extension rules. diff --context=2 --recursive web2c-5.851d/mf/mf.web web2c-5.851d-tgd/mf/mf.web *** web2c-5.851d/mf/mf.web Sun Mar 29 23:06:18 1992 --- web2c-5.851d-tgd/mf/mf.web Sat Nov 27 02:30:53 1993 *************** *** 21,25 **** % Version 2.0 fixed bug in addto; released with TeX version 3.0 (March 1990). % Version 2.7 made consistent with TeX version 3.1 (September 1990). ! % Version 2.71 fixed bug in draw, allowed unprintable filenames (not yet released). % A few "harmless" optimizations have been made without changing versions. --- 21,25 ---- % Version 2.0 fixed bug in addto; released with TeX version 3.0 (March 1990). % Version 2.7 made consistent with TeX version 3.1 (September 1990). ! % Version 2.71 fixed bug in draw, allowed unprintable filenames (March 1992). % A few "harmless" optimizations have been made without changing versions. *************** *** 10007,10011 **** $w_2=(6,1)$, and $w_3=(1,2)$. A curve that travels in the first octant will be offset by $w_1$ or $w_2$, unless its slope drops to zero ! enroute to the eighth octant; in the latter case we should switch to $w_0$ as we cross the octant boundary. Our list for the first octant will contain the three offsets $w_0$, $w_1$,~$w_2$. By convention we will --- 10007,10011 ---- $w_2=(6,1)$, and $w_3=(1,2)$. A curve that travels in the first octant will be offset by $w_1$ or $w_2$, unless its slope drops to zero ! en route to the eighth octant; in the latter case we should switch to $w_0$ as we cross the octant boundary. Our list for the first octant will contain the three offsets $w_0$, $w_1$,~$w_2$. By convention we will diff --context=2 --recursive web2c-5.851d/tex/tex.ch web2c-5.851d-tgd/tex/tex.ch *** web2c-5.851d/tex/tex.ch Sun Feb 21 12:47:36 1993 --- web2c-5.851d-tgd/tex/tex.ch Sat Nov 27 02:07:50 1993 *************** *** 43,49 **** %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @x ! @d banner=='This is TeX, Version 3.141' {printed when \TeX\ starts} @y ! @d banner=='This is TeX, Version 3.141' {more is printed later} @z --- 43,49 ---- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @x ! @d banner=='This is TeX, Version 3.1415' {printed when \TeX\ starts} @y ! @d banner=='This is TeX, Version 3.1415' {more is printed later} @z diff --context=2 --recursive web2c-5.851d/tex/tex.web web2c-5.851d-tgd/tex/tex.web *** web2c-5.851d/tex/tex.web Sun Mar 29 21:45:13 1992 --- web2c-5.851d-tgd/tex/tex.web Sat Nov 27 01:59:21 1993 *************** *** 41,45 **** % Version 3.1 fixed nullfont, disabled \write{\the\prevgraf} (September 1990). % Version 3.14 fixed unprintable font names and corrected typos (March 1991). ! % Version 3.141 more of same; reconstituted ligatures better (September 1991). % A reward of $327.68 will be paid to the first finder of any remaining bug, --- 41,46 ---- % Version 3.1 fixed nullfont, disabled \write{\the\prevgraf} (September 1990). % Version 3.14 fixed unprintable font names and corrected typos (March 1991). ! % Version 3.141 more of same; reconstituted ligatures better (March 1992). ! % Version 3.1415 preserved nonexplicit kerns, tidied up (February 1993). % A reward of $327.68 will be paid to the first finder of any remaining bug, *************** *** 183,187 **** November 1984]. ! @d banner=='This is TeX, Version 3.141' {printed when \TeX\ starts} @ Different \PASCAL s have slightly different conventions, and the present --- 184,188 ---- November 1984]. ! @d banner=='This is TeX, Version 3.1415' {printed when \TeX\ starts} @ Different \PASCAL s have slightly different conventions, and the present *************** *** 4287,4291 **** user's output routine. ! Seventh and eighth quantities, |lhmin| and |rhmin|, affect hyphenation. The semantic nest is an array called |nest| that holds the |mode|, |head|, --- 4288,4292 ---- user's output routine. ! In horizontal mode, the |prev_graf| field is used for initial language data. The semantic nest is an array called |nest| that holds the |mode|, |head|, *************** *** 4302,4307 **** @!head_field,@!tail_field: pointer; @!pg_field,@!ml_field: integer;@+ ! @!aux_field: memory_word;@+ ! @!lhm_field,@!rhm_field: quarterword; end; --- 4303,4307 ---- @!head_field,@!tail_field: pointer; @!pg_field,@!ml_field: integer;@+ ! @!aux_field: memory_word; end; *************** *** 4316,4321 **** @d incompleat_noad==aux.int {the name of |aux| in math mode} @d mode_line==cur_list.ml_field {source file line number at beginning of list} - @d lhmin==cur_list.lhm_field {\.{\\lefthyphenmin} at start of paragraph} - @d rhmin==cur_list.rhm_field {\.{\\righthyphenmin} at start of paragraph} @= --- 4316,4319 ---- *************** *** 4343,4347 **** mode:=vmode; head:=contrib_head; tail:=contrib_head; prev_depth:=ignore_depth; mode_line:=0; - lhmin:=0; rhmin:=0; prev_graf:=0; shown_mode:=0; @; --- 4341,4344 ---- *************** *** 4385,4391 **** print_nl("### "); print_mode(m); print(" entered at line "); print_int(abs(nest[p].ml_field)); ! if m=hmode then@+if(nest[p].lhm_field<>2)or(nest[p].rhm_field<>3)then ! begin print(" (hyphenmin "); print_int(nest[p].lhm_field); print_char(","); ! print_int(nest[p].rhm_field); print_char(")"); end; if nest[p].ml_field<0 then print(" (\output routine)"); --- 4382,4390 ---- print_nl("### "); print_mode(m); print(" entered at line "); print_int(abs(nest[p].ml_field)); ! if m=hmode then if nest[p].pg_field <> @'40600000 then ! begin print(" (language"); print_int(nest[p].pg_field mod @'200000); ! print(":hyphenmin"); print_int(nest[p].pg_field div @'20000000); ! print_char(","); print_int((nest[p].pg_field div @'200000) mod @'100); ! print_char(")"); end; if nest[p].ml_field<0 then print(" (\output routine)"); *************** *** 12456,12461 **** end ! @ The `\\{synch}' operations here are intended to decrease the number ! of bytes needed to specify horizontal and vertical motion in the \.{DVI} output. @= --- 12455,12460 ---- end ! @ The `\\{synch}' operations here are intended to decrease the number of ! bytes needed to specify horizontal and vertical motion in the \.{DVI} output. @= *************** *** 12465,12469 **** if type(leader_box)=vlist_node then vlist_out@+else hlist_out; doing_leaders:=outer_doing_leaders; ! dvi_v:=save_v; dvi_h:=save_h; cur_v:=save_v; cur_h:=save_h+leader_wd+lx; end --- 12464,12468 ---- if type(leader_box)=vlist_node then vlist_out@+else hlist_out; doing_leaders:=outer_doing_leaders; ! dvi_v:=save_v; dvi_h:=save_h; cur_v:=base_line; cur_h:=save_h+leader_wd+lx; end *************** *** 12609,12613 **** if type(leader_box)=vlist_node then vlist_out@+else hlist_out; doing_leaders:=outer_doing_leaders; ! dvi_v:=save_v; dvi_h:=save_h; cur_h:=save_h; cur_v:=save_v-height(leader_box)+leader_ht+lx; end --- 12608,12612 ---- if type(leader_box)=vlist_node then vlist_out@+else hlist_out; doing_leaders:=outer_doing_leaders; ! dvi_v:=save_v; dvi_h:=save_h; cur_h:=left_edge; cur_v:=save_v-height(leader_box)+leader_ht+lx; end *************** *** 16006,16010 **** This code assumes that a |glue_node| and a |penalty_node| occupy the ! same number of words in |mem|. @^data structure assumptions@> --- 16005,16009 ---- This code assumes that a |glue_node| and a |penalty_node| occupy the ! same number of |mem|~words. @^data structure assumptions@> *************** *** 16017,16020 **** --- 16016,16022 ---- end; link(tail):=new_param_glue(par_fill_skip_code); + init_cur_lang:=prev_graf mod @'200000; + init_l_hyf:=prev_graf div @'20000000; + init_r_hyf:=(prev_graf div @'200000) mod @'100; pop_nest; *************** *** 16440,16445 **** nodes, subtracting their widths as well. ! Kern nodes for accents are treated specially: They do not ! disappear at a line break. @d set_break_width_to_background(#)==break_width[#]:=background[#] --- 16442,16446 ---- nodes, subtracting their widths as well. ! Kern nodes do not disappear at a line break unless they are |explicit|. @d set_break_width_to_background(#)==break_width[#]:=background[#] *************** *** 16455,16459 **** glue_node:@; penalty_node: do_nothing; ! math_node,kern_node: if subtype(s)=acc_kern then goto done else break_width[1]:=break_width[1]-width(s); othercases goto done --- 16456,16461 ---- glue_node:@; penalty_node: do_nothing; ! math_node: break_width[1]:=break_width[1]-width(s); ! kern_node: if subtype(s)<>explicit then goto done else break_width[1]:=break_width[1]-width(s); othercases goto done *************** *** 16476,16481 **** line from |cur_p| to |q| will be computed as $\gamma+\beta(q)-\alpha(|cur_p|)$, where $\beta(q)=\beta(|cur_p|)-l_0+l$. The actual length will be the background ! plus $l_1$, so the length from |cur_p| to |cur_p| should be $\gamma+l_0+l_1-l$, ! minus the length of nodes that will be discarded after the discretionary break. The value of $l_0$ need not be computed, since |line_break| will put --- 16478,16485 ---- line from |cur_p| to |q| will be computed as $\gamma+\beta(q)-\alpha(|cur_p|)$, where $\beta(q)=\beta(|cur_p|)-l_0+l$. The actual length will be the background ! plus $l_1$, so the length from |cur_p| to |cur_p| should be $\gamma+l_0+l_1-l$. ! If the post-break text of the discretionary is empty, a break may also ! discard~|q|; in that unusual case we subtract the length of~|q| and any ! other nodes that will be discarded after the discretionary break. The value of $l_0$ need not be computed, since |line_break| will put *************** *** 16492,16501 **** end; while s<>null do ! begin @; s:=link(s); end; break_width[1]:=break_width[1]+disc_width; ! if t=0 then s:=link(v); {more nodes may also be discardable after the break} end --- 16496,16505 ---- end; while s<>null do ! begin @; s:=link(s); end; break_width[1]:=break_width[1]+disc_width; ! if post_break(cur_p)=null then s:=link(v); ! {nodes may be discardable after the break} end *************** *** 16529,16539 **** char_width(f)(char_info(f)(character(lig_char(s)))); end; ! hlist_node,vlist_node,rule_node:break_width[1]:=break_width[1]+width(s); ! kern_node: if (t=0)and(subtype(s)<>acc_kern) then t:=-1 {discardable} ! else break_width[1]:=break_width[1]+width(s); othercases confusion("disc2") @:this can't happen disc2}{\quad disc2@> ! endcases; ! incr(t) @ We use the fact that |type(active)<>delta_node|. --- 16533,16541 ---- char_width(f)(char_info(f)(character(lig_char(s)))); end; ! hlist_node,vlist_node,rule_node,kern_node: ! break_width[1]:=break_width[1]+width(s); othercases confusion("disc2") @:this can't happen disc2}{\quad disc2@> ! endcases @ We use the fact that |type(active)<>delta_node|. *************** *** 16898,16902 **** meaning of |prev_p| is this: If |type(cur_p)=glue_node| then |cur_p| is a legal breakpoint if and only if |auto_breaking| is true and |prev_p| does not ! point to a glue node, penalty node, kern node, or math node. The following declarations provide for a few other local variables that are --- 16900,16904 ---- meaning of |prev_p| is this: If |type(cur_p)=glue_node| then |cur_p| is a legal breakpoint if and only if |auto_breaking| is true and |prev_p| does not ! point to a glue node, penalty node, explicit kern node, or math node. The following declarations provide for a few other local variables that are *************** *** 16988,16993 **** @d act_width==active_width[1] {length from first active node to current node} ! @d kern_break==begin@t@>@;@/ ! if not is_char_node(link(cur_p)) and auto_breaking then if type(link(cur_p))=glue_node then try_break(0,unhyphenated); act_width:=act_width+width(cur_p); --- 16990,16994 ---- @d act_width==active_width[1] {length from first active node to current node} ! @d kern_break==begin if not is_char_node(link(cur_p)) and auto_breaking then if type(link(cur_p))=glue_node then try_break(0,unhyphenated); act_width:=act_width+width(cur_p); *************** *** 17006,17010 **** @; end; ! kern_node: kern_break; ligature_node: begin f:=font(lig_char(cur_p)); act_width:=act_width+char_width(f)(char_info(f)(character(lig_char(cur_p)))); --- 17007,17012 ---- @; end; ! kern_node: if subtype(cur_p)=explicit then kern_break ! else act_width:=act_width+width(cur_p); ligature_node: begin f:=font(lig_char(cur_p)); act_width:=act_width+char_width(f)(char_info(f)(character(lig_char(cur_p)))); *************** *** 17042,17046 **** if auto_breaking then begin if is_char_node(prev_p) then try_break(0,unhyphenated) ! else if precedes_break(prev_p) then try_break(0,unhyphenated); end; check_shrinkage(glue_ptr(cur_p)); q:=glue_ptr(cur_p); --- 17044,17050 ---- if auto_breaking then begin if is_char_node(prev_p) then try_break(0,unhyphenated) ! else if precedes_break(prev_p) then try_break(0,unhyphenated) ! else if (type(prev_p)=kern_node)and(subtype(prev_p)<>explicit) then ! try_break(0,unhyphenated); end; check_shrinkage(glue_ptr(cur_p)); q:=glue_ptr(cur_p); *************** *** 17237,17241 **** if is_char_node(q) then goto done1; if non_discardable(q) then goto done1; ! if subtype(q)=acc_kern then if type(q)=kern_node then goto done1; r:=q; {now |type(q)=glue_node|, |kern_node|, |math_node| or |penalty_node|} end; --- 17241,17245 ---- if is_char_node(q) then goto done1; if non_discardable(q) then goto done1; ! if type(q)=kern_node then if subtype(q)<>explicit then goto done1; r:=q; {now |type(q)=glue_node|, |kern_node|, |math_node| or |penalty_node|} end; *************** *** 17439,17443 **** @= begin @!init if trie_not_ready then init_trie;@+tini@;@/ ! l_hyf:=lhmin; r_hyf:=rhmin; cur_lang:=0; end --- 17443,17447 ---- @= begin @!init if trie_not_ready then init_trie;@+tini@;@/ ! cur_lang:=init_cur_lang; l_hyf:=init_l_hyf; r_hyf:=init_r_hyf; end *************** *** 17454,17459 **** @!hu:array[0..63] of 0..256; {like |hc|, before conversion to lowercase} @!hyf_char:integer; {hyphen character of the relevant font} ! @!cur_lang:ASCII_code; {current hyphenation table of interest} ! @!l_hyf,@!r_hyf:integer; {limits on fragment sizes} @!hyf_bchar:halfword; {boundary character after $c_n$} --- 17458,17463 ---- @!hu:array[0..63] of 0..256; {like |hc|, before conversion to lowercase} @!hyf_char:integer; {hyphen character of the relevant font} ! @!cur_lang,@!init_cur_lang:ASCII_code; {current hyphenation table of interest} ! @!l_hyf,@!r_hyf,@!init_l_hyf,@!init_r_hyf:integer; {limits on fragment sizes} @!hyf_bchar:halfword; {boundary character after $c_n$} *************** *** 17532,17536 **** @ ! else if (type(s)=kern_node)and(subtype(s)=normal) then hb:=s else goto done3; s:=link(s); --- 17536,17543 ---- @ ! else if (type(s)=kern_node)and(subtype(s)=normal) then ! begin hb:=s; ! hyf_bchar:=font_bchar[hf]; ! end else goto done3; s:=link(s); *************** *** 18188,18193 **** @p procedure new_hyph_exceptions; {enters new exceptions} label reswitch, exit, found, not_found; ! var n:small_number; {length of current word} ! @!j:small_number; {an index into |hc|} @!h:hyph_pointer; {an index into |hyph_word| and |hyph_list|} @!k:str_number; {an index into |str_start|} --- 18195,18200 ---- @p procedure new_hyph_exceptions; {enters new exceptions} label reswitch, exit, found, not_found; ! var n:0..64; {length of current word; not always a |small_number|} ! @!j:0..64; {an index into |hc|} @!h:hyph_pointer; {an index into |hyph_word| and |hyph_list|} @!k:str_number; {an index into |str_start|} *************** *** 18650,18654 **** procedure new_patterns; {initializes the hyphenation pattern data} label done, done1; ! var k,@!l:small_number; {indices into |hc| and |hyf|} @!digit_sensed:boolean; {should the next digit be treated as a letter?} @!v:quarterword; {trie op code} --- 18657,18662 ---- procedure new_patterns; {initializes the hyphenation pattern data} label done, done1; ! var k,@!l:0..64; {indices into |hc| and |hyf|; ! not always in |small_number| range} @!digit_sensed:boolean; {should the next digit be treated as a letter?} @!v:quarterword; {trie op code} *************** *** 21034,21039 **** if (mode=vmode)or(head<>tail) then tail_append(new_param_glue(par_skip_code)); ! lhmin:=norm_min(left_hyphen_min); rhmin:=norm_min(right_hyphen_min); ! push_nest; mode:=hmode; space_factor:=1000; clang:=0;@/ if indented then begin tail:=new_null_box; link(head):=tail; width(tail):=par_indent;@+ --- 21042,21048 ---- if (mode=vmode)or(head<>tail) then tail_append(new_param_glue(par_skip_code)); ! push_nest; mode:=hmode; space_factor:=1000; set_cur_lang; clang:=cur_lang; ! prev_graf:=(norm_min(left_hyphen_min)*@'100+norm_min(right_hyphen_min)) ! *@'200000+cur_lang; if indented then begin tail:=new_null_box; link(head):=tail; width(tail):=par_indent;@+ *************** *** 22431,22435 **** @:this can't happen display}{\quad display@> unsave; prev_graf:=prev_graf+3; ! push_nest; mode:=hmode; space_factor:=1000; clang:=0; @; if nest_ptr=1 then build_page; --- 22440,22446 ---- @:this can't happen display}{\quad display@> unsave; prev_graf:=prev_graf+3; ! push_nest; mode:=hmode; space_factor:=1000; set_cur_lang; clang:=cur_lang; ! prev_graf:=(norm_min(left_hyphen_min)*@'100+norm_min(right_hyphen_min)) ! *@'200000+cur_lang; @; if nest_ptr=1 then build_page; diff --context=2 --recursive web2c-5.851d/web/tangle.ch web2c-5.851d-tgd/web/tangle.ch *** web2c-5.851d/web/tangle.ch Sun Feb 21 12:47:36 1993 --- web2c-5.851d-tgd/web/tangle.ch Sat Nov 27 02:33:05 1993 *************** *** 59,65 **** %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @x ! @d banner=='This is TANGLE, Version 4.3' @y ! @d banner=='This is TANGLE, Version 4.3' {more is printed later} @z --- 59,65 ---- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @x ! @d banner=='This is TANGLE, Version 4.4' @y ! @d banner=='This is TANGLE, Version 4.4' {more is printed later} @z diff --context=2 --recursive web2c-5.851d/web/tangle.web web2c-5.851d-tgd/web/tangle.web *** web2c-5.851d/web/tangle.web Sun Mar 29 21:24:37 1992 --- web2c-5.851d-tgd/web/tangle.web Sat Nov 27 02:30:08 1993 *************** *** 3,7 **** % Version 1 was released in September, 1982, with version 0 of TeX. % Slight changes were made in October, 1982, for version 0.6 of TeX. ! % Version 1.2 added @@= and @@\ and introduced {:nnn} comments (December, 1982). % Version 1.4 added "history" (February, 1983). % Version 1.5 conformed to TeX version 0.96 and fixed @@\ (March, 1983). --- 3,7 ---- % Version 1 was released in September, 1982, with version 0 of TeX. % Slight changes were made in October, 1982, for version 0.6 of TeX. ! % Version 1.2 introduced {:nnn} comments, added @@= and @@\ (December, 1982). % Version 1.4 added "history" (February, 1983). % Version 1.5 conformed to TeX version 0.96 and fixed @@\ (March, 1983). *************** *** 18,21 **** --- 18,22 ---- % Version 4.2 fixes stat report if phase one dies (March, 1991). % Version 4.3 fixes @@ bug in verbatim, catches extra } (September, 1991). + % Version 4.4 activates debug_help on errors as advertised (February, 1993). % Here is TeX material that gets inserted after \input webmac *************** *** 36,40 **** \centerline{\titlefont The {\ttitlefont TANGLE} processor} \vskip 15pt ! \centerline{(Version 4.3)} \vfill} \pageno=\contentspagenumber \advance\pageno by 1 --- 37,41 ---- \centerline{\titlefont The {\ttitlefont TANGLE} processor} \vskip 15pt ! \centerline{(Version 4.4)} \vfill} \pageno=\contentspagenumber \advance\pageno by 1 *************** *** 65,69 **** is modified. ! @d banner=='This is TANGLE, Version 4.3' @ The program begins with a fairly normal header, made up of pieces that --- 66,70 ---- is modified. ! @d banner=='This is TANGLE, Version 4.4' @ The program begins with a fairly normal header, made up of pieces that *************** *** 641,645 **** else @; update_terminal; mark_error; ! @!debug debug_help;@+gubed end; --- 642,646 ---- else @; update_terminal; mark_error; ! @!debug debug_skipped:=debug_cycle; debug_help;@+gubed end; diff --context=2 --recursive web2c-5.851d/web/tangleboot.c web2c-5.851d-tgd/web/tangleboot.c *** web2c-5.851d/web/tangleboot.c Sun Feb 21 14:33:15 1993 --- web2c-5.851d-tgd/web/tangleboot.c Sat Nov 27 02:35:03 1993 *************** *** 3074,3078 **** buffer [ 0 ] = 32 ; inputhasended = false ; ! Fputs( stdout , "This is TANGLE, Version 4.3" ) ; fprintf( stdout , "%s\n", versionstring ) ; phaseone = true ; --- 3074,3078 ---- buffer [ 0 ] = 32 ; inputhasended = false ; ! Fputs( stdout , "This is TANGLE, Version 4.4" ) ; fprintf( stdout , "%s\n", versionstring ) ; phaseone = true ; diff --context=2 --recursive web2c-5.851d/web/tangleboot.p web2c-5.851d-tgd/web/tangleboot.p *** web2c-5.851d/web/tangleboot.p Sun Feb 21 14:33:12 1993 --- web2c-5.851d-tgd/web/tangleboot.p Sat Nov 27 02:34:59 1993 *************** *** 56,63 **** begin writeln(stdout,'. (l.',line:1,')'); for j:=1 to outptr do write(stdout,xchr[outbuf[j-1]]); ! write(stdout,'... ');end{:33};flush(stdout);history:=2;{debughelp;}end; ! {:31}{190:}procedure scanargs;var dotpos,slashpos,i,a:integer;c:char; ! fname:array[1..PATHMAX]of char;foundweb,foundchange:boolean; ! begin foundweb:=false;foundchange:=false; for a:=1 to argc-1 do begin argv(a,fname); if fname[1]<>'-'then begin if not foundweb then{191:}begin dotpos:=-1; --- 56,63 ---- begin writeln(stdout,'. (l.',line:1,')'); for j:=1 to outptr do write(stdout,xchr[outbuf[j-1]]); ! write(stdout,'... ');end{:33};flush(stdout);history:=2; ! {debugskipped:=debugcycle;debughelp;}end;{:31}{190:}procedure scanargs; ! var dotpos,slashpos,i,a:integer;c:char;fname:array[1..PATHMAX]of char; ! foundweb,foundchange:boolean;begin foundweb:=false;foundchange:=false; for a:=1 to argc-1 do begin argv(a,fname); if fname[1]<>'-'then begin if not foundweb then{191:}begin dotpos:=-1; *************** *** 775,779 **** primethechangebuffer;changing:=not changing;templine:=otherline; otherline:=line;line:=templine;limit:=0;loc:=1;buffer[0]:=32; ! inputhasended:=false;{:134};write(stdout,'This is TANGLE, Version 4.3'); writeln(stdout,versionstring);{183:}phaseone:=true;modulecount:=0; repeat nextcontrol:=skipahead;until nextcontrol=136; --- 775,779 ---- primethechangebuffer;changing:=not changing;templine:=otherline; otherline:=line;line:=templine;limit:=0;loc:=1;buffer[0]:=32; ! inputhasended:=false;{:134};write(stdout,'This is TANGLE, Version 4.4'); writeln(stdout,versionstring);{183:}phaseone:=true;modulecount:=0; repeat nextcontrol:=skipahead;until nextcontrol=136;