Changes since release 2.0
-------------------------

Release 2.1:

1.  Added a line to cmf.ch to increase max_in_open from 6 to 15.
2.  Touched tangle.c etc. so that make wouldn't think it needed to be remade.
3.  Fixed a bug in dvityext.c which declared cp as char ** instead of char *.
4.  Changed the makefile and instructions slightly to make it clearer
    how to compile tangle without having a running tangle available.
5.  Made the default for Metafont be no windowing support or libraries,
    for maximum portability.

Release 2.2 [originally 2.2.1]:

1.  Added a case to fixwrites for the character string "','", to fix
    a problem in converting BibTeX. [EKrell]
2.  Fixed problem in fixwrites with \" embedded in strings. [EKrell]
3.  Changed path initialization logic in TeX: if an environment
    variable is present, use it.  Otherwise, if an envar was set
    when TeX was undumped, use that value.  Otherwise, use the
    default value specified in "site.h".  Metafont already worked
    that way, so it didn't change. [bug discovered by EKrell]
4.  Added experimental program fmtdump.

Release 2.3 [originally 2.2.2]:

1.  Fixed a bug in web2c.yacc which could index an array using
    negative subscripts. [Leonard Zubkoff]
2.  Fixed an unsigned arithmetic problem in tangle.  Contemplated
    rewriting web2c to handle expressions correctly in all cases.
3.  Added yet another patch to fixwrites (again, for bibtex, and
    discovered by EKrell).  Again contemplated rewriting web2c.
    Maybe next month...

Release 2.4 [originally 2.2.3]:

1.  Fixed a bug in fixwrites which caused it to introduce newlines
    after '{' characters in quoted strings.

Release 2.5:

1.  Changed release numbering scheme :-) to major number + generation
    number (e.g., 2.5).
2.  Added Pierre's SITEDIR changes to the make files.
3.  Added beta release of BibTeX in C.

Release 2.6:

1.  Installed the fixed tangle.c in the distribution area (with the toint()
    fix).
2.  Added Apollo to the list of successful ports in the README file.
3.  Added to the main Makefile so that CFLAGS could be set there and
    inherited by the subordinate Makefiles.
4.  Added patches to web2c.{lex,yacc} to support Pascal pointers [ekrell],
    in preparation for MFware programs.

Release 2.7:

1.  Added SITEDIR stuff to top-level Makefile.
2.  Added fix for another casting bug which (mostly) affected only C
    compilers with 16-bit int's.

Release 2.8:

1.  calledit() was invoking the editor without closing the files first.
    On some operating systems, this could be problematic, so I
    added a loop to close all the inputfile[]'s first.  Changes for both
    TeX and MF.
2.  Tftopl needed to use the testeof() routine instead of simply feof
    to test for end of file.  I changed the eof() macro in texware/web2c.h
    to use (and define) test_eof().  Since test_eof() calls feof() first,
    it should be backwards compatible.
3.  Improved make file for ctex and cmf.  It creates more .o files, but
    less recompiling and relinking is now done.
4.  Replaced input_ln in Metafont with the hand-coded C version from TeX.
    This fixed a bug which could cause MF sometimes to require two newlines
    instead of one.  Presumably, this also speeded MF up slightly.
5.  Added veryclean entry to top-level Makefile.

Release 2.9:

1.  Fixed a major bug in my new makefile for initex/virtex.

Release 2.10:

1.  Fixed a minor bug in the makefile for inimf.  Also, changed the
    CFLAGS and LDFLAGS to make a production version instead of a
    debugging version.
2.  Changed TeX's buf_size to 2000 instead of 500, at the suggestion of
    a site where users have exceeded the 500 value (!).
3.  Changed TeX to look for the LAST "." in a file name instead of the
    first for purposes of generating the \jobname (and thus, the
    dvi and log file names).  For example, "my.file.tex" would produce
    "my.file.dvi" instead of "my.dvi".

Release 2.11:

1.  Add $(WLIBS) to virmf: line in MF makefile.

Release 2.12:

1.  Fixed LDFLAGS in bibtex/Makefile to be -s instead of -O. [Leonard Zubkoff]
2.  You no longer have to uncomment-out the regfix line in the convert
    script for TeX.  Instead, you set another flag (REGFIX) in the
    site.h file. [Leonard Zubkoff]
3.  Fixed declaration of sprintf() for SysV in splitup.c; made splitup depend
    on ../site.h in the Makefile. [dean@cs.wisc.edu]
4.  Fixed similar declaration problem in web2cdir/web2c.h. [dean@cs.wisc.edu]
5.  Changed references to "cc" to "$(CC)" in all Makefiles. [dean@cs.wisc.edu]
6.  Removed a unnecessary "#undef SYSV" in texware/tanext.c. [dean@cs.wisc.edu]
7.  Changed all csh scripts to use sh instead. [dean@cs.wisc.edu]
8.  Change remaining references in the makefiles to "rm" to $(RM), adding
    a definition where necessary.
9.  Added dvitype to the defaults for the texware Makefile, since it's
    needed for the trip test.

Release 2.13:

1.  Removed declarations of strcpy(), etc., and replaced them with
    #include <strings.h> (string.h on BSD systems).
2.  Changed around the way that SITEDIR works, adding -I$(SITEDIR) to
    the makefiles.  All programs now simply include "site.h", and rely
    on the -I<directory> to determine which site.h is included.
3.  Fixed a bug in bibtex.ch which caused problems when including
    some auxilliary files. [Tom Rokicki]

Release 2.14:

1.  Changed the SITEDIR handling for the MFlib/ subdirectory slightly,
    so that SITEDIR itself is used consistently in all the Makefiles.
    Now, the MFlib/Makefile refers to ../${SITEDIR}.
2.  Fixed OPT (was OPTIM) make variable in cmf/MFlib/Makefile.
    [Leonard Zubkoff]

Release 2.15:

1.  Added some comments in README about clearterminal() and wakeupterminal(),
    for those porting TeX to other environments.
2.  Fix the <string.h> vs. <strings.h> mixup I introduced in 2.13.

Release 2.16:

1.  Change clearterminal() to use TIOCFLUSH ioctl for BSD environments
    in ctex/extra.c. [Joe Ramey]
2.  Fixed a couple of declarations which were "char" but should have
    been "schar" in texware/weavext.c. [Dennis Page]
3.  Removed spurrious #define BSD and #undef SYSV's from cmf/mfext.c.
    [Dennis Page]
4.  Fixed some more declarations of sprintf() for SYSV compilation
    (declaration as int * instead of char * if SYSV is #define'd).
    I don't know if there are still problems on (some?) SysV.3 machines
    which declare sprintf() in <stdio.h>.  [Dennis Page]
5.  Added a conditional for the execution of ranlib when building
    mflib.a: check to see if /bin/ranlib exists before trying to
    execute it.  [Dennis Page]
6.  Updated texdir/ctex.ch for tex.web version 2.93.  Also, changed
    |make_name_string| so it didn't call |str_room|, per Knuth's
    directions.
7.  Upgraded to mf.web version 1.5.
8.  Retested the entire distribution in both AT&T and Berkeley environments.
9.  Changed the type of zinputln() in cmf/mfext.c to be nothing (i.e., int),
    since it isn't typed in the other modules. [lint]
10. Changed the definition of bwritebyte in cmf/mf.h to cast the first
    argument of the putc() to (char). [lint]
11. Added a (void) cast to the one call to putc() in cmf/mfdisplay.c. [lint]
12. [not a fix] Two known minor bugs in bibtex remain, but it should be fixed
    soon.  One bug is that when given the name of a non-existent file,
    bibtex may go into an infinite loop.  The other only applies if
    the type schar is not char.

Release 2.17:

1.  It is now recommended for most 32-bit systems that a 32-bit version
    of TeX be built, and that preloaded versions of TeX not be made.
    See the README file for details.
2.  To this end, ctex/extra.c has been modified so that virtex will
    attempt to load "&<program_name>" automatically.  So, for example,
    make a link from virtex to "latex", and from lplain.fmt to latex.fmt,
    and users can just run the command "latex" and virtex will automatically
    load latex.fmt.  [Ken Yap]
3.  Patch files to build a big (32-bit offsets) TeX and also XeT-TeX are now
    included in the distribution.  See the file README.PATCHES for
    details.  [Pierre MacKay]

Release 2.18:

1.  Fixed a bug in bibtex which caused it to core dump on a Sun-4.
    Also changed a couple of other things to make lint happy, and
    added support in the bibtex change file to generate #ifdef/#endif
    for TRACE.
2.  Upgraded to second release of tex.web version 2.93 (2.93a?).  DEK made
    some memory management changes which affect the trip.log file, so upgraded
    good_trip.log as well.

Release 2.19:

1.  Included Knuth's trip.typ file.  Also, ran a big TeX with 64-bit
    (double) glueratio, and included the output from dvitype as
    "good_dvitype_64.out", and trip.log as good_trip.log.
2.  The good_trip.log file is now produced by a big TeX, so I changed
    the trip/README file slightly to reflect this.
3.  Added Makefile.parallel to the ctex/ and cmf/ directories for
    parallel make's on Sequents; updated README accordingly.
4.  Changed "suntools"->"suntool" and "sunwindows"->"sunwindow" in
    the top-level Makefile.
5.  Updated to the second release of MF version 1.5 (yes, there are two!).
    Generated new good_trap.log, added knuth.trap.log for completeness.
6.  Made garganuan TeX use "tex.pool" instead of "TEX.POOL".
7.  Added changes from Ken Yap to allow the substitution of flex for lex
    in building web2c.  He also verifies that "bison -y" can be safely
    substituted for yacc.  Removed some lint from web2c.
8.  Made "make veryclean" clean MFlib. [rusty@violet.Berkeley.EDU]
9.  Made all the makefiles run "./convert", not "convert", in case
    you don't have . in your path. [rusty@violet.Berkeley.EDU]
10. Discovered that extra.c was out of date.  Now distributing the
    current version with the automatic loading of .fmt files feature.

Release 2.20:

1.  Changed the names of the reference output files from the trip test
    to account for the differences between regular and gargantuan TeX's,
    and updated the ctex/trip/README file accordingly.
2.  Fixed the infinite looping bug in BibTeX when it prompts for the .aux
    filename.
3.  Typed zabs() to be integer in mfext.c and mf.h. [I forgot who]
4.  Added slitex to Makefile and ctex/Makefile. [David Eckelkamp]
5.  Changed ctex/extra.c: added an #ifdef to handle rindex vs. strrchr
    under System V Unix. [Brant Cheikes]

Release 2.21:

1.  Fixed fixwrites.c to handle \" within strings. [Joe Pallas]
2.  Added a BIBINPUTS environment variable and default search path
    for BibTeX to use when looking for .bib files.  The .aux files (as
    before) are searched for in ".", and .bst files using the TEXINPUTS
    envariable or default path. [suggested by kgk@cs.brown.edu]
3.  Installed updated tex-xet patch file.  [Pierre MacKay]
4.  Added tex.script.  [Pierre MacKay]
5.  Added vertical bars around X_make_name_string in ctex.ch. [Pierre MacKay]
6.  Obtained the latest version of tex.web 2.93 from Score (dated 7/18/88).
7.  Fixed previous fix to BibTeX: it no longer asks unnecessarily (and without
    a prompt, I might add :-) for the user to type a Return before it starts
    up. [David Kotz]
8.  Fixed a related bug in the same code: EOF no longer causes BibTeX to
    loop infinitely when given in response to the aux filename prompt.
    [reported by Ken Yap]
9.  Added "install-links" entry to the top-level Makefile.  It links virtex
    to be tex, latex, and slitex, and makes similar links to the related
    format files. [Ken Yap]
10. Removed incorrect and unnecessary declaration of last_type in
    web2cdir/web2c.h. [Reiner Petersen]
11. Changed SYSV declaration of sprintf() in ctex/extra.c from
    "extern int *" to "extern int". [Reiner Petersen]
12. Fixed a bug in a loop in web2c.c which indexed past the end of the
    hash_list[] array. [Piet van Oostrum]
13. Added exit(0) calls at the end of main() in dvityext.c, tanext.c, and
    plext.c. [Reiner Petersen]
14. Added a new directory, 386-ix, containing fixes for the Interactive
    386/ix Unix system.  In particular, this directory contains
    a workaround for a bug in that system's C compiler.

Release 2.22:

1.  Removed the reference in ctex/trip/README to "TEX.POOL", since it's now
    "tex.pool" in all cases. [David Benjamin]
2.  "make clean" now removes "web2cdir/y.tab.h". [Ken Yap]
3.  Added bibtex, mf, and tex man pages, all three thanks to Ken Yap.
    These are in a new subdirectory called "man" at the top-level.
4.  Added "clean" entry to bibtex/Makefile
5.  Add CC= to all the make files, so you can more easily select gcc
    or another C compiler.
6.  Restructured MF slightly so that it has a "memory.h" include file
    as TeX does.  Now included is a patch file for cmf.ch to make a gargantuan
    Metafont.
7.  Added ctex/tex.script, a sample from UW.  See its comments for details.
8.  Fixed another reference to yytext to support flex in "web2cdir/web2c.c".
9.  Removed fmtdump from the distribution, since it's not as portable
    as I'd hoped, and I don't think anyone's using it.
10. Web2c can now generate ANSI-C function prototypes, if it's given a -a
    flag when invoked.  This involved rewriting and greatly cleaning up
    quite a bit of the function and procedure header parsing---it needed
    it anyway.
11. In addition, web2c itself has been adopted to ANSI-C by Steve Tinney.
    If you're using such a compiler, #define ANSI in "site.h".  If you're
    compiling web2c under MS-DOS (for Microsoft C, possibly others),
    #define MS_DOS.
12. The top-level Makefile no longer has a single macro BINDIR indicating
    the directory in which TeX and MF should be installed.  Instead, there
    are two macros, TEXBINDIR and MFBINDIR, with the obvious meanings.
13. Pierre supplied a new version of BIGTEX.PATCH.
14. Fixed a bug in dvitype (discovered by several different people)
    which only shows up at output level 3.  The function move_to_byte
    was incorrectly changed by the change file, losing the statement
    "cur_loc:=n;".
15. Much more of web2c now contains void declarations for procedures.
    Procedures that it translates from Pascal to C are also declared
    void.  If your C compiler doesn't have the void type, then you'll
    need to #define it in site.h, or add -Dvoid=int to CFLAGS.
16. Piet van Oostrum suggested a modification to memory.h which would
    reduce TeX's memory usage on the HCX-9, while (presumably) not
    negatively affecting other systems.  The change was to move
    all members of the fourquarters structure inside the union u, and
    to add definitions of b2 and b3 similar to those for b0 and b1.
    I made a similar change to cmf/memory.h for consistency.
17. Steve Tinney reported a casting bug in tangle which only shows up
    on machines with 16-bit ints.  The fix was to add another change
    to texware/tangle.ch.  He found a similar bug in texware/tftopl.ch,
    which was also fixed.  Porting to DOS sure stresses TeX and friends!
18. The files cmf/MFlib/dateandtime.c and texware/tanext.c both #include
    <time.h>, which on 4.2BSD systems is called <sys/time.h> instead.
    I added the appropriate #ifdef's.  [Reported by Irwin Meisels]

Release 2.23:
1.  Incorporated Pierre's change files for most MFware programs: gftype,
    gftopk, pktogf, pktype.
2.  Changed the reference to "ansi" in web2cdir/web2c.yacc from "extern int"
    to "extern boolean".  [John Romine]

Release 2.24:	[All changes are from Steve Tinney]
1.  web2cdir/web2c.h: put #ifdef ANSI around declaration of sprintf().
2.  web2cdir/web2c.h and web2c.c: For MS_DOS, make declaration of sym_table
    "huge".
3.  Added "static" to forward declarations in web2cdir/web2c.yacc, and added
    a declaration for yylex().  Changed generation of main_body() header
    to declare it void if producing ANSI C.  Changed "lb" to long in
    the function compute_array_bounds().  Since lower_bound and upper_bound
    (and now lb) are long, I changed a few %d's to %ld's in printf() calls.
4.  web2cdir/web2c.lex: Added some ANSI declarations to the header.
5.  web2cdir/splitup.c: A couple of ANSI-related fixes (type main() as void
    and don't declare sprintf()).
6.  TeXware: Added some ANSI and MS_DOS patches for dvityext.c, plext.c,
    tanext.c, weavext.c, and web2c.h.

Release 2.25:	[all these problems were reported by Steve---Thanks Steve!]
1.  In R2.24, mfware/mfwarext.c was missing for some reason.  I included it.
2.  Removed -Za from web2cdir/makefile.msc.
3.  Moved ANSI prototypes in web2cdir/web2c.lex so that they came after
    the #include's, so that ANSI had a chance of being defined.
4.  The ANSI prototypes for texware/web2c.h were in the wrong place!
    That's what I get for trusting patch too much.
5.  Somehow, texware/web2c.defines got left out of the previous distribution.
    I re-added it.

Release 2.26
1.  Fixed an ANSI problem in web2cdir/fixwrites.c [Dorab Patel]
2.  Made main_body() always be of type (void).  This change occurred in
    web2cdir/web2c.yacc, and affected the programs in texware and mfware.
    I also added a declaration for main_body() to mfware/web2c.h.
3.  MFware programs don't work with ANSI defined, yet, but the TeXware
    programs all should now.
4.  I fixed a problem in web2cdir/regfix.c which caused problems with
    the C code for TeX when using ANSI mode. [Reported by Dorab Patel]
5.  texware/web2c.defines was omitted from the previous distribution;
    I included it.
6.  Added symbol "VAX4_2" to site.h for those running 4.[23]BSD on a VAX.
7.  Updated to the latest copies of tex.web, mf.web, and pktogf.web from
    Score.
8.  Fixed three more misdeclarations of Sys V's sprintf() in cmf/mfext.c,
    cmf/MFlib/calledit.c, and cmf/MFlib/mf_X10win.c. [Garrett Lau]
9.  Made the call to bzero() in cmf/MFlib/mf_tek.c conditional on BSD.
    Otherwise, memset() is used instead. [Garrett Lau]

Release 2.27
1.  Updated to TeX version 2.95, MF version 1.7, and tangle version 1.9,
    using diffs from Pierre.  These changes included a new BIGTEX.PATCH and
    cxet.patch files.
2.  Changed "../site.h" to "site.h" in web2cdir/fixwrites.c

Release 2.28
1.  Fixed a mistake in texware/dvityext.c for non-ANSI compilers:
    packrealnameoffile wasn't being declared correctly before its
    first use.

Release 2.29
1.  Fixed a bug in dvitype which caused it to compute pixels incorrectly
    in certain cases (rule_pixel routine).  Fix was to texware/dvitype.ch.

Release 2.30
1.  Changed ctex/extra.c so that if the terminal gets EOF, and you're
    running on a BSD system with "sticky" EOF in stdio, then it does
    a clearerr() call to unstick it before trying to read from the
    terminal again.  Otherwise, TeX goes into an infinite loop if it
    gets ^D from the terminal.

Release 2.31
1.  Added "trapmf" to the list of things removed by "make veryclean"
    [Rusty@Berkeley].

Release 2.32:
1.  BIGMF.PATCH removed the reference to memory.h from cmf.ch.  I
    removed the lines which removed the reference.  [William Partain]

Release 2.33:
1.  Eliminated MAXINPATHCHARS and MAXOTHPATHCHARS from MF.  Instead,
    just use MAXPATHLENGTH for both.  Moved the definition of MAXPATHLENGTH
    from ctex/extra.c to ./site.h.  [Suggested by William Partain]
2.  The introduction of "void" before main_body() broke BibTeX: it would
    simply go into an infinite loop.  I patched bibtex/sed.script to fix this.
    [Problem discovered by Jeff Thomas]
3.  Upgraded to TeX version 2.96.

Release 2.34:
1.  Avoided redefinition of MAXPATHLENGTH in ctex/extra.c: I don't know
    how I missed that before!
2.  Changed buf_size from 2000 to 3000 in the BIGTEX.PATCH file, to
    accomodate one of our users.
3.  Changes {mfware,texware}/web2c.h and bibtex/bibtex.h to have the
    reset() and rewrite() macros close the file, if it's already open,
    before doing an open on it.
4.  Also, changed texware/weavext.c to fix the openf() routine.  It wasn't
    checking for trailing spaces in filenames.  [Discovered by
    William E. Anderson]
5.  Increased the pool_size for bibtex from 65530 to 120000 to accomodate
    one of our users (bibtex/bibtex.ch).  Many sites may not need such
    a large pool_size.

Release 2.35:
1.  Upgraded to TeX version 2.98.

Release 2.36:
1.  Previous releases didn't contain the 386-ix directory, even though
    it was mentioned in the README file, because I forgot to add it
    to the script I use to create the .tar.Z files.  I corrected this.
2.  I modified slightly the ctex.ch file to make it a little more likely
    to tangle with a new version of tex.web.

Release 2.37:			4/21/89
1.  Updated mfware/Makefile to search for tangle in ../texware rather
    than assuming it is in the user's search path [Donald Richardson].
2.  Changed char_index to be either index() or strchr() in
    texware/{plext,dvityext}.c.  I don't know why it was defined
    the way it was before (somebody else wrote that code).
3.  Updated mfdir/cmf.ch to remove a sometimes-problematical line
    so that tangle has something more concrete to search for
    [Pierre MacKay].
4.  Added exit(0) call to the end of main() in mfware/mfwarext.c
    [Paul Eggert].
5.  Changed a couple of close() calls in macros to the correct fclose()
    calls instead.
6.  Changed bibtex/bibext.c to type main_body() as extern void instead of
    defaulting to extern int.

Release 2.38:
1.  Make clean removed mfdir/fix.c but not mfdir/fix.o
    [Reported by Rusty Wright].
2.  Upgraded to weave.web version 3.1.
3.  Made the same change for MF as for TeX: don't go into an infinite
    loop if we get EOF from the terminal on BSD 4.[23] systems.

Release 2.39:
1.  Undid the change to bibtex/bibtex.h which had reset() and rewrite()
    close their FILE * argument if it was non-NULL.  This change
    caused feof() not to return TRUE in some cases, resulting in
    infinite loops.

Release 2.40:
1.  Moved the definition of MAXPATHLENGTH below the #include of texd.h,
    so that it wouldn't be defined twice in site.h.
2.  Upgraded to tex.web version 2.991.

Release 2.41:
1.  Changed #ifdef to #ifndef BSD for including <string.h>.
    I thought I'd double-checked all these, so I'm surprised
    that this has gone this long undetected (SunOS has both
    files, so it's hard for me to catch) [Paul J. Besl].
2.  Changed cmf/MFlib/mf_X11win.c so that the background is
    white and the foreground is black [Karl Berry].

Release 2.42:
1.  Changed cmf/MFlib/mf_windows.c so that MF works in an Emacs window
    under X 11 [Karl Berry].
2.  Replaced mf_X11win.c with a new one from Karl Berry.  This one
    allows Metafont*geometry in .Xdefaults, fixes a bug which caused
    the first event to be thrown away, and it uses thin lines, which
    speeds up display significantly.

Release 2.43:
1.  Included a fix to mf_X11win.c, changing the last argument in XSetProperties
    to &sizehints instead of sizehints.

Release 2.44:
1.  Updated cmf/trap/good_trap.{typ,log}.  These had gotten behind.
2.  Fixed a bug in texware/dvitype.ch, which prevented cur_loc from
    being updated when zfseek() is called.  [Nelson Beebe]
