Burton Systems Software logo  
Burton Home Page
Overview of TLIB
Features of TLIB
See our great reviews!
Pricing
Latest Notes
Support, FAQ, Downloads
Helpful Links
Site Map


TLIB Version Control - release notes

For a plain text (printable) version of this page, see RELEASE.TXT.

Contents:
I. TLIB 5.54k  (19-May-2004)
II. TLIB 5.54j  (29-Apr-2004)
III. TLIB 5.54i  (4-Mar-2004)
IV. TLIB 5.54h  (6-Feb-2004)
V. TLIB 5.54g  (23-Oct-2003)
VI. TLIB 5.54f  (23-Sep-2003)
VII. TLIB 5.54e  (18-Jul-2003)
VIII.earlier versions

inconsequential
inconsequential



PHONE AND FAX NUMBERS:
----------------------

Our telephone and fax numbers have changed:
The voice telephone number is 1-919-481-0149 (formerly 233-8128).
The fax number is 1-919-481-3787 (formerly 233-0716).

Please take a moment to pencil in the corrections in your TLIB
reference manual.



BBS AND WEB SITE:
----------------

Our BBS is no longer kept up to date.  Instead, please visit
our Web site at:

  http://www.burtonsys.com/



            ------------------------------------------------
            Bug fixes and other changes to date in TLIB 5.xx
                   (in reverse-chronological order)


5.54k        19-May-2004

1) Improved: the MSCCI DLL.  It now works properly with CodeWright and
   other client applications which do not use the SccOpenProject
   entrypoint to select a working directory.

   Also, we added the "Suppress banner" checkbox on the per-client
   tabs at:  File -> Configuration Options -> Scc Provider Options
   for clients which do not provide a callback for the version
   control client to display routine status messages.
   [Adrian N.]

2) Fixed: a bug in the handling of native project files with
   spaces in the names.
   [Adrian N.]

3) Fixed: a bug in the GUI versions of TLIB, which caused an
   "hourglass" mouse pointer while displaying new user hints.

4) Improved: first-time startup behavior (when there's no TLIB.INI
   file) in the 32-bit GUI version of TLIB, when TREEDIRS Y is
   configured.  It now starts with C:\ as the initial "current
   directory," and it thus avoids that annoying "Enter the depth
   of the main work directory" question (until you actually
   change to your real work directory).

5) Improved: the 32-bit GUI in other minor ways.

6) Created: a time-limited demo version.  We'll put it on our web
   server soon; in the meantime, you can get it by asking for it.



5.54j        29-Apr-2004

1) Added: a Microsoft Source Code Control Interface (MSCCI) DLL,
   for integrating TLIB with Microsoft Visual Studio and with
   many non-Microsoft products.

   This feature is tested with Microsoft Visual Basic 6.0 and
   Microsoft Visual C++ 6.0, and lightly tested with VB.NET.
   However, many other products also use this API to interface
   to version control systems.  Please let us know how well your
   favorite tool works with it.

   To use this feature, simply select the "MS SCC Interface DLL
   for DevStudio etc" choice in the "Integration" component
   details while installing TLIB.

   Note: a tool called REGMSCC.EXE is included, to "register"
   and "unregister" TLIB's MSCCI DLL (and do configure VB 6.0
   to use it, of you have VB 6.0 installed).  TLIB's NETSETUP
   program will run "regmscc -install" automatically, so you
   probably won't need to run it manually.  However, if you
   install Microsoft Visual Basic 6.0 after installing TLIB,
   you can run REGMSCC to configure it to use TLIB's MSCCI
   DLL, so that TLIB will appear in the VB IDE's menus.
   For detailed instructions, run "RegMSCC" with no options.

2) Removed: the old Visual Basic and Visual C++ Add-Ins from
   the TLIB setup dialogs, because the MSCCI approach is better.

   However, the old Add-Ins are still available, archived in the
   MSDEVOLD.ZIP file.  For more information unzip the contents
   of MSDEVOLD.ZIP, and examine MSDEVOLD.TXT.

3) Fixed: a bug which could cause "ERR: ndL" failures when
   extracting the second-to-last trunk version of a file by
   using the "*-1" syntax for the version number specification.

4) Fixed: a bug in 32-bit TLIB's visual compare when using an
   extremely wide display.  If the comparison window was dragged
   to more then 2184 pixels wide, it caused the following error:
       ERROR: #0, frmCMP_Resize_pt1,
   This was seen by a customer who was using dual monitors.
   [Andy P.]

5) Fixed: a problem which prevented TLIB Visual Compare from
   appearing in the Windows task bar when it was invoked via
   the command-line TLIBCOMP utility.

6) Increased: the maximum size of a version number string from
   40 characters to aproximately 80 characters, in 32-bit
   versions of TLIB.

   The actual limit is imposed by the 126-characters of usable
   space on a line in the TLIBWORK.TRK file, which must be long
   enough for the version number, the source file name (and
   perhaps its subdirectory relative to the main work directory),
   and a couple of other small fields.  So if the file name is
   very long, then the version number may be limited to less
   than 80 characters.

   TLIB's version numbers are also constrained to contain no
   more than 9 dots.  This limit has not changed.  To the best
   of our knowledge, no customer has ever run up against it.
   [John B.]

Note: the 16-bit TLIB is still version 5.54h in thls release.



5.54i        4-Mar-2004

1) Fixed: a minor bug introduced in 5.54h, which caused the
   following normal message to not pop up:

      Note: snapshot file '...' contains nn source file records

2) Added: in the Win32 GUI version of TLIB, in Native Project Mode
   you can now search for "All known project types" instead of
   having to pick a project type.

   TLIB currently understands 21 different kinds of "native"
   project files.  If yours is not among them, please tell us,
   and we might be able to add support for it.

3) Improved: in the Win32 GUI version of TLIB, the "Mode" button
   now works better for switching back and forth between normal
   file-oriented mode and Native Project mode.  There were many
   subtle changes, but the general theme is that now when you
   switch from one mode to the other TLIB "respects" where you
   were in the old mode and initializes the new mode to be as
   nearly equivalent as possible.

   It is kind of hard to explain why, but the usability is much
   improved.

4) Added: an "Open Native Project" menu choice on the main
   screen.  This is most conveniently used by right-clicking on
   a native project file that is listed in the main file list.
   It will switch into TLIB's Native Project Mode, and open
   the file as a project file, displaying the list of source
   files which that project references.

5) Added: support for the "lowsrc=" field of the of the HTML
   <img> tag, when parsing HTML files in Native Project mode.
   When an <img> tag contained both a "lowsrc=..." field and
   a "src=..." field, TLIB was recognizing the first one but
   ignoring the second.  Now it finds both.

6) Improved the Win32 GUI user interface in other subtle ways.

Note: the 16-bit TLIBs are still version 5.54h in thls release.



5.54h        6-Feb-2004

1) Fixed: a bug which caused the TLIB GUI to hang or abort with a
   protection exception when taking a Snapshot (or creating a plain
   file list) with a large number of source files.

   When taking a snapshot of source files with short names and no
   subdirectory prefixes, 12,000 or more were necessary to trigger
   the bug.  But for source files with long names, and/or with
   long relative paths, a smaller number of files could trigger
   the error.

   This bug did not affect command-line versions of TLIB.
   [Paula P.]

3) Improved: performance in the 32-bit TLIB GUI.  When processing
   small numbers of source files, the improvement might not be
   noticable.  But when processing thousands of source files,
   this version of TLIB is dramatically faster.

3) Improved: the 32-bit TLIB Version Control GUI in subtle ways.

4) Fixed: When you do an Update/check-in to store a new version of
   your source file into TLIB Version Control, TLIB might need to
   then extract your source file from the newly updated TLIB
   library, to update revision history log or keyword information,
   or to create a "reference copy" in a project level reference
   directory.  If the extract fails (perhaps because the source
   file is open by a text editor and can't be modified by TLIB),
   then TLIB will give you an opportunity to correct the problem
   and retry.  However (and this was the bug), TLIB was not
   clearing the errorlevel status from the first failed attempt
   when the 2nd attempt succeeded.  The main symptom was that
   the source file wasn't deselected in the main file list window
   in the GUI versions of TLIB.  This is now fixed.

5) Fixed: the CMTEXT configuration parameter did not work correctly
   if configured to more than three characters.
   [Robert A.]



5.54g        23-Oct-2003
              (Note: the GUI is still version 5.54f)

1) Added: native project mode support for Borland C++ Builder 6.0
   project files, *.bpr.

   C++ Builder 6.0 project files are similar in in format to C++
   Builder 5.0 project files (which TLIB already supported).  The
   good news is that with version 6.0, Borland/Inprise has added
   a <FILELIST></FILELIST> section to the .bpr file, which should
   usually obviate the need to use TLIB's slow "scan for includes"
   option to find all the source files.

   This feature is only lightly tested; please let us know about any
   problems.
   [Mark E.]

2) Changed: TLIB's snapshot command to no longer return errorlevel 1
   (failure) if some, but not all, of the specified files could not
   be recorded in the snapshot.

   This is so that the 'N' or 'U' (create or update library) command
   will work after a snapshot command on the same command line, when
   some, but not all, of the specified files were successfully
   recorded in the snapshot.  This is mainly so that the "immediate
   store in library" option will work in the GUI even if there were
   errors while taking the snapshot, but it also means that command-line
   TLIB will no longer return errorlevel 1 if a snapshot is taken and
   some of the source files failed (e.g., because they were never
   stored into TLIB libraries).

3) Plus other minor improvements, mostly in diagnostic messages.


5.54f        23-Sep-2003

1) Fixed: a subtle problem with TLIB.CFG processing.

   Normally, while processing the TLIB.CFG file (and any include files
   that it references), TLIB defers determination of the current work
   directory until it is needed.  This allows you to write TLIB.CFG
   files which adjust parameters (such as WORKDIR, WORKDEPTH, and
   TREEDIRS) that affect determination of the current work directory,
   without triggering superflous warnings or errors about it being
   wrong.

   Referencing the %tlibcfg:workdir% pseudo-environment variable in
   TLIB.CFG usually requires TLIB to determine what the work directory
   is.  The exception is when the reference occurs within a false
   'iff' block, since configuration parameters within such a block
   are ignored.  However, prior to version 5.54f, TLIB was always
   calculating the work directory when the first reference to
   %tlibcfg:workdir% was seen, even if that reference was within a
   false 'iff' block.

   The following is an excerpt from a TLIB.CFG file that would not
   work correctly because of this problem, since TLIB had already
   determined the work directory by the time it encountered the
   "workdir" configuration parameter that was supposed to override it:

     iff (('%LEVEL%' eqi 'dev') or ('%LEVEL%' eqi 'tst') or ('%LEVEL%' eqi 'rel'))
        REM -- LEVEL was set via PERSONAL.CFG, so leave it alone
        REM -- This first reference to %tlibcfg:workdir% caused TLIB to go
        REM -- ahead and determine the main work directory:
        set wkdir1=%tlibcfg:workdir:-1%
        REM  %wkdir1% is name of main work directory -- should be DEV or TST or REL
        iff ('%wkdir1%' eqi 'dev') or ('%wkdir1%' eqi 'tst') or ('%wkdir1%' eqi 'rel')
           say Note: LEVEL overridden in '%pname%'.  %LEVEL% (instead of %wkdir1%)
        endif
     else
        REM This code looks for a directory named 'DEV' or 'TST' or 'REL' and if found sets WORKDIR to that directory:
        let curpath=unq nam '.'
        let dir1=unq '%curpath%' spl -1
        iff ('%dir1%' eqi 'dev') or ('%dir1%' eqi 'tst') or ('%dir1%' eqi 'rel')
           workdir .
           set LEVEL=%dir1%
        else
           let dir2=unq '%curpath%' spl -1
           iff ('%dir2%' eqi 'dev') or ('%dir2%' eqi 'tst') or ('%dir2%' eqi 'rel')
              workdir ..
              set LEVEL=%dir2%
           else
              let dir3=unq '%curpath%' spl -1
              iff ('%dir3%' eqi 'dev') or ('%dir3%' eqi 'tst') or ('%dir3%' eqi 'rel')
                 workdir ..\..
                 set LEVEL=%dir3%
           endif
        endif
     endif

   This is now fixed.
   [Bob S.]

2) Fixed: a bug in the Migrate command, which caused it to generate an
   incorrect migrate2.bat file if the current directory was not the same
   as the work directory.

3) Fixed: a problem with TLIB's visual compare, which caused it to
   improperly handle a situation in which one of the files being compared
   could not be opened because it was open/locked by another program.
   Instead of reporting a "sharing error," TLIB's visual compare would
   pause for about 80 seconds, and then report "ERROR: No such file...".

   It now correctly reports the cause of the problem, and gives the
   user an opportunity to retry (presumably after closing the other
   program).
   [[Laura G.]

4) Added: an "unlist" button to the main TLIB GUI screen, for removing
   file names from the list.  (Only in the 32-bit GUI.)

5) Improved: the preliminary PDF version of the TLIB reference manual.

6) Plus other minor improvements.


5.54e        18-Jul-2003

1) Changed: check-in/out locking behavior slightly, for better
   handling of a situation in which one programmer works alternately
   at two or more different project levels.

   When LOCKING Y is configured, and you already have a file
   checked-out/locked (checked-out for modification), if you
   extract/check-out the same file again TLIB will normally
   just display a warning message, and let you do it:

      Note: myfile.ext was already checked out to you

   That's convenient when you are working on a problem and want to
   start over with a fresh copy of the source file.

   But if you are using TLIB's named project level feature, for
   managing multiple variants of the same project, then trying to
   check out the file again but at a different project level is
   probably a mistake.  Previous versions of TLIB nevertheless
   permitted you to do so.  However, TLIB 5.54e will report an error
   in this situation:

      ERROR: myfile.ext is checked out at a different project level
   [David P.]

2) Fixed: a bug in the 32-bit GUI version of TLIB, which caused
   the little TLIB logo icon to disappear next to source file
   names after a Reclassify-share ("R") command was done.

   The TLIB logo icon indicates that a source file is under version
   control (i.e., that a corresponding TLIB library file exists).
   If there is a TLIB logo icon next to a source file name, then
   you can double-click on the source file name to see a version
   history for that file.

   The workaround for this problem was to refresh the display
   after the Reclassify-share ("R") command.  The display can
   be refreshed by pressing F5, or in file-oriented mode by
   clicking the "Expand Wildcard" button.
   [Jim C.]

3) Fixed: a bug which could cause an "ERR: cnN" if you cancel
   from the TLIB question that asks, "Enter the depth of the main
   work directory..."
   [Jim C.]

4) Added: code to work around a bug in some network software which
   prevented MAKEDIRS M or MAKEDIRS Y from working correctly on
   a network path when creating a TLIB library or project level
   tracking file.  Symptom was

      ERROR: Could not create "some_file.ext" ...  Err=80, errno=17

   This problem was seen when the network file server wsa a Mars-NWE
   Netware Emulator (which emulates a Novell Netware server with a
   Linux machine).

5) Fixed: an install script bug which caused SETUP to report an
   error while copying POKETK32.EXE, if DOS Components (which are
   installed by default) were not installed.
   [Phil H.]

6) Fixed: a bug which caused the TLIB GUI front end to erroneously
   try to use project-level search modes when "PROJLEV =" was
   configured.
   [Russell V.]


5.54d         3-Jun-2003

1) Added: a PDF version of the TLIB reference manual (and
   removed the old HTML version).

   We finally got the TLIB Reference Manual converted to a modern
   word processor, and exported to a reasonable PDF file.  The
   tlib_doc.pdf file replaces the older and uglier tlib_doc.htm
   (HTML) version.

   This version of the Reference Manual is still badly out of date,
   because we've only just begun to update the content to match the
   current version of TLIB.  But the new tlib_doc.pdf electronic
   version is improved over the printed reference manual, and all
   the page number references in the index, table of contents, and
   cross references are working hyperlinks in the electronic version
   (click on a page number to go to that page).

   You'll need Adobe Acrobat Reader version 3.0 or later to read
   the tlib_doc.pdf file.  It is a free download from Adobe's web
   site, here: http://www.adobe.com/products/acrobat/alternate.html

2) Added: the ability to configure:
        if *.snp
          replace y
        endif
   or
        if *.snp
          deletesrc y
        endif
   or
        if *.snp
          replace y
          deletesrc y
        endif
   to prevent the "myfile.snp exists, overwrite?" question from
   TLIB when creating Snapshot version labels.

   If you configure "replace y" for .snp snapshot files, then the
   question is always prevented.  If you configure "deletesrc y"
   for .snp files, then when you create a snapshot and check
   "Immediate Store in Library," TLIB will delete the snapshot
   file after storing it (or even after you cancel the Update),
   so that the snapshot file is not left in your work directory.
   [Stewart K.]

3) Improved: the 32-bit GUI in minor ways.

4) Improved: 32-bit versions of TLIB, to permit the use of longer
   strings in "LET" and "IFF" expressions in the TLIB.CFG file.

   The limit was 81 characters (and still is, for 16-bit versions
   of TLIB).  But in the Win32 console mode and GUI versions of
   TLIB, strings are now only limited by the 255-character line
   length limit of TLIB.CFG.
   [Scott B.]


5.54c         25-Apr-2003

1) Fixed: a bug which prevented TLIB from correctly parsing native
   project files if the file names or paths named within them
   contained blanks.  This bug was reported for CodeWright project
   files, but affected several other types of native project files,
   too.  The symptom was that TLIB would either simply ignore the
   source files which contained blanks in their names, or else it
   would incorrectly identify them with a partial name (ignoring
   the part of the name after the space).
   [Adrian N.]

2) Fixed: a bug which affected the recording of comments for
   new versions of a file, if the file name was very long (e.g.,
   more than 40-50 characters).  The symptoms were that part of
   the entered comment could be missing, or the first word of the
   comment could be split into two half-words with a line break.
   [Hardo B.]

3) Bug fix: If a damaged tlibwork.trk file contained a quoted file
   name with no close quote, TLIB crashed with a protection exception.
   [Andy P.]

4) Partial fix: If a Unicode (Korean) comment was entered when
   storing a new version, the 32-bit GUI TLIB could fail with a
   series of error pop-ups:

     "Huh! Reducing StatusLimit again!"

   and

     "Argh!  Text box can't even hold 4900 bytes!"
     (where the number of bytes could vary)

   This has been fixed.  However, unfortunately, TLIB cannot handle
   unicode comments (nor unicode file names).  However, at least
   when you enter a unicode comment, it now displays a reasonable
   error message:
     "ERROR: TLIB does not currently support Unicode comments."
   [J. Lee]

5) Added: Native project file support for CodeWright "project space
   files" (*.psp).  A CodeWright project space file contains a list
   of CodeWright project files (*.pjt).
   [Adrian N.]

6) Added: Native project file support for Microsoft Visual Studio
   .NET project files, for the following languages:

      Visual Basic .NET  (*.vbproj)
      Visual C/C++ .NET  (*.vcproj)
      C# .NET  (*.csproj)

   Also, added native project file support for Microsoft Visual
   Studio "Solution files" (*.sln), which are similar to the
   workspace files of earlier versions of Visual Studio.

   For Visual C/C++ .NET, one option is available, to specify the
   handling of #include file references.  In the 32-bit TLIB for
   Windows GUI, the option is selected via a checkbox.  In the Win32
   command-line version of TLIB, you can add [2] to the wildcard
   specification to tell TLIB to scan for include files.  For
   example, to list the source files referenced by a VC++ .NET
   project called acme.vcproj, you could do this:

      TLIB G1LW @@acme.vcproj[2]

   Microsoft Visual Studio Solution files (*.sln) can contain
   references to any of the three kinds of Visual Studio .NET project
   files.  So TLIB lets you specify the "scan for #includes" option
   for .sln files, too.  However, it will have no effect for .sln
   files that do not contain references to .vcproj files.

   Note: Because these Microsoft language products are only usable
   on Win32 platforms, we only added support for them to the Win32
   versions of TLIB.

7) Changed: the REPLROBR W configuration setting to work regardless
   of how READONLYB is configured.  Also, added a helpful suggeston
   to the "ERROR: Browse mode extract can't be used to replace a
   writable file" message, telling the user that the problem can be
   circumvented by configuring REPLROBR Q or REPLROBR W.
   [Stewart K.]

8) Improved: a few messages, here and there, to make them more
   helpful and informative, or less verbose.


5.54b         3-Dec-2002

1) Fixed: a bug in TLIBCO32.EXE, the 32-bit version of TLIBCOMP,
   the command-line Visual Compare program.

   The problem was that it wasn't always correctly finding its own
   path, from which it determines the path of WTLIB32.EXE (to do
   the visual compare).  The symptom was that it would exit with
   the cryptic message, "rc=-1".  A workaround was to specify the
   program path on the command line.  For example:

     c:\tlib\tlibcomp myoldfile mynewfile

   Or, you could use the 16-bit version:

     tlibco16 myoldfile mynewfile

2) Added: TLIBCOPY, a tool for safely & quickly backing up and
   restoring TLIB libraries and journal files, or synchronizing
   two directories of TLIB libraries.

   Though it can be used for other things, it is especially intended
   for copying files which are only modified by appending, such as
   TLIB library and journal files.

   Tlibcopy is totally safe.  It cannot destroy any of your data,
   no matter what you do with it, because (like TLIB) it only
   appends, never replaces, existing files.  If both "source" and
   "target" file already exist, tlibcopy will copy the source file
   to the target only after first verifying that the target file
   is both shorter than the source file, and identical to the first
   part of the source file.

   Tlibcopy has options for automatic directory creation, recursive
   subdirectory traversal, and bidirectional directory synchronization.

   See DOC\TLIBCOPY.TXT for details, or run TLIBCOPY with no
   parameters.

3) Fixed: a minor bug which caused a spurious warning message to be
   displayed when TLIB was creating a directory on a network volume
   specified with a UNC name ("\\server\vol\directory").  In Win32
   versions of TLIB, the warning was:

     Note: mkdir(\\server\vol) failed with "already exists" error,
     yet FindFirst can't find it.  Could be due to a hidden directory,
     or a network ideosyncrasy.

   In 16-bit versions of TLIB, the warning message was:

     ERROR: mkdir(\\server\vol)

4) Added: diagnostic code to detect a strange but dangerous network
   problem.

   The situation was that one of our customers was using an old
   OS/2 version of TLIB, running on Windows 2000, with his work
   directory on a different Windows 2000 machine that was serving
   as a network file server.  During an Update command, TLIB read
   only the first 4 KB or 8 KB of a source file before encountering
   an end-of-file condition, with the result that only part of the
   source file was stored in its TLIB library.

   To detect this problem, TLIB now checks the size of the source
   file before reading it, and then compares that size with the
   actual amount read.  If it encounters an end-of-file condition
   before reading the entire file, it aborts the Update operation
   with this error message:

     ERROR: Incomplete file, possible disk error, only nnn of mmm bytes read

   Unfortunately, the customer cannot reproduce this problem, and
   neither can we, so the testing of this change was necessarily
   incomplete.

   Also, we have no way of knowing what combination of conditions
   contributed to the problem, e.g., whether or not it was specific
   to the OS/2 subsystem of Windows 2000.  So, to be safe, we added
   this test to all six TLIB executables.

   If you encounter this error message, please call us, and do not
   delete your source file!  We would very much like your help
   isolating the circumstances which cause this problem.
   [Sean F.]

5) Fixed: POKETRAK, to handle source file names with blanks in them.

   You can specify file names with blanks by putting quotes around
   them.  For example:

     poketrak tlibwork.trk "c:\dir with blanks\file with blanks.txt" v=3

   There are now two functionally equivalent versions of POKETRAK.
   POKETR16.EXE is a 16-bit "bound family-mode" OS/2+DOS version.
   POKETR32.EXE is a Win32 console-mode version.  SETUP will also
   copy one or the other to POKETRAK.EXE, depending on how you
   answer the questions that SETUP asks you.
   [John B.]

6) Fixed: the A=Add/alter project level command, to properly add
   quotes around source file names with blanks in them, when adding
   new source file names to a named project level.
   [John B.]


5.54a         4-Oct-2002

1) Added: Little status icons to the main file list display in the
   32-bit TLIB for Windows GUI:
   A tiny TLIB icon is shown for source files that are under
      version control (i.e., for which a corresponding TLIB library
      file exists).

   A red check-mark is superimposed for files that you have checked
      out for modification.

   A red backslash is superimposed for files that someone else
      has checked out for modification (locked), so that if you were
      to try to Extract/check-out for modification it would fail.
      (A blue backslash is similar, but you can still check-out the
      file for modification; this is only possible if "weak" or
      "branch/project-level" locking is being used instead of "full"
      locking -- see the "LOCKING" configuration parameter.)

   A black circle and slash means that the source file is missing
      from your work directory.

   These icons may be combined in various ways, too.  For example, a
   a black circle and slash superimposed over a TLIB icon means that
   the source file is missing from your work directory, but the
   corresponding TLIB library file exists (so you can extract the
   missing file from TLIB if you need it).

2) Changed: the default AATTR parameter setting.  The default used to
   be "AATTR SET".  Now it is "AATTR RESET".  With this change, TLIB
   will now clear the "Archive attribute" for your source files when
   it has successfully completed an Update or New-library command.

3) Added: display of the "Archive attribute" for source files to the
   "Attrib" column in both 16-bit and 32-bit TLIB GUIs.  This lets
   you see at a glance which source files you have modified but not
   yet stored/checked-in into TLIB.

   (There was also a very minor associated change in the API for the
   TLIB DLL engines; see TLIBDLL.H.)

   In combination with the little status icons (in the 32-bit GUI),
   this makes the display much more informative.

   Note that you can click on the "Attrib" column header (in the
   32-bit GUI) or the "Attrib" button (in the 16-bit GUI) to sort the
   list of source files by file attributes.

4) Changed: the Mailslot API, in minor ways.

5) Improved: command-line versions of TLIB, to display the version,
   file-date, and user-ID for a new version before prompting for
   comments.

6) Fixed: a bug which caused TLIB to record the current date/time
   instead of the original date/time when storing the first version
   of an RLE-compressed (usually binary) file, regardless of the
   TOUCHSOUR setting.

7) Fixed: a bug in the TLIB GUIs which made TLIB's

       Snapshot -> "plain file list"

   command fail to record source files which had not been stored
   in TLIB.  That is, it skipped source files for which the
   corresponding TLIB library files did not exist.

   It now includes them in the file list regardless of whether or
   not their TLIB library files exist.

8) Fixed: When creating a snapshot, if it failed for some files
   because of errors, previous versions of TLIB erroneously reported:

      Note: snapshot file '{myfile}.snp' contains xxx source file
      records

   where xxx was the number of files attempted, rather than the
   number actually recorded in the snapshot.  That is now fixed.
   Now if there are errors TLIB reports:

      Note: snapshot file '{myfile}.snp' contains xxx source file
      records (yyy others failed).

   where yyy is the number of files not recorded in the snapshot
   due to errors.

9) Fixed: In GUI versions of TLIB, the "immediate store in library"
   checkbox-option for the Snapshot command now works even if you
   have disabled the "C" (configure) command via the "commands"
   configuration parameter, and even when creating & storing the
   first version of a snapshot.

   Previously, if you disabled the "C" command by removing it from
   the list of commands in the "commands" configuration parameter
   in TLIB.CFG, then checking the "immediate store in library"
   checkbox would not work for the first version of the snapshot
   unless you also configured at least:

      updatenew y

   or (better):

      if *.snp
        updatenew y
        forceu y
      endif

   This problem occurred because the GUI front-end uses
   "c updatenew_y" and "c forceu_y" to temporarily adjust those
   two configuration parameters while storing the new version of
   a snapshot file into its TLIB library.

   To avoid this problem, the TLIB DLL engine now permits these
   two particular configuration changes even when the "C" command
   is disabled.
   [Tuyen N. & Frode N.]

10) Fixed: in command-line versions of TLIB, if you specified the
   "S" (specify version number) suffix with the "S" (snapshot)
   command, but you did not put the version specification on the
   command line, TLIB would properly prompt for the version
   specification (e.g., "*" for latest trunk versions), but it
   only used the entered version specification for the first
   source file.  For all the other source files it complained,
   "ERROR: No such version."

   Now it correctly uses the entered version specification for
   all of the source files.

11) Changed: the default setting/behavior of the SlickEpsi
   configuration parameter for TLIB32C, only.

   This makes console input a bit nicer, and avoids peculiar
   behavior seen when, while doing an Update, the user entered
   a comment line that was the maximum allowed length.  (TLIB32C
   saw a non-existant empty 2nd input line, and aborted the update.)

   That behavior was due to an old (but never fixed) Microsoft
   Windows bug in the Win32 Console I/O console functions
   ("Q137195").  The new default (like "SlickEpsi Y") causes
   TLIB32C to use reads from "standard input" instead of console
   input when requesting input from the user.

   If you prefer the old behavior, you can configure SLICKEPSI N.

12) Fixed: an obscure bug that could cause the TLIB DLL engine
   to abort with a protection exception if the DLL engine was
   sent a command requiring a file name, but no file name, so
   that the DLL engine had to ask the GUI front end to prompt
   the user for the file name.

   Since TLIB's GUIs do not do this, no users reported this bug.
   However, the bug could conceivably be encountered by users of
   TLIB's APIs.

13) Added: a new entrypoint to the low-level API to TLIB's DLL
   engines.  GET_TLIB_ANSWER_KIND_DETAIL() is similar to
   GET_TLIB_ANSWER_KIND(), but gives more detailed information
   about the purpose of a single-line or multi-line user query.
   See TLIBDLL.H for details.

14) Added: "Inspect" button to comment-entry screen, when creating
   a new library (storing the first version of a source file).

15) Improved: The handling of "interactive" commands given to
   TLIB's GUIs via "Run manual command" or via TLIB's APIs,
   instead of via the usual menus and buttons.

   For example, in earlier versions of TLIB, if you entered "N"
   via "Run manual command," TLIB would handle it as a create
   New-library command, and properly prompt you for the source
   file name.  But the comment-entry window would be the one that
   should be used for Update commands; e.g, the "History" button
   was enabled instead disabled.  Now the TLIB GUI correctly
   displays the proper New-library comment entry window, with
   the History button disabled, and with an "Inspect" button
   instead of a "Visual Compare" button.

16) Changed: the appearance of the vertical "drag-bar" in Visual
   Compare, to make it more obvious that it can be dragged side
   to side to resize the two panes.
   [Jesse D.]

17) Fixed: When the current TLIB configuration file was in a
   directory that had blanks in the path, the "Edit TLIB.CFG"
   button in WinTLIB didn't work, because TLIB failed to put
   quote marks around the path when passing it to your editor
   (or Notepad).
   [Jesse D.]

18) Fixed: A misleading error message.

   TLIB library files always begin with a ".V".  When TLIB opens
   a library file and finds no ".V" at the beginning, it now
   says "ERROR: Not a TLIB library file..." instead of saying
   "ERROR: Could not open library file...", which was misleading.
   [Jesse D.]

19) Fixed: a bug which caused incorrect captions above the visual
   compare panes if you clicked on the "Visual Compare" button
   (or "Delta" in the 16-bit GUI) in the comment-entry window
   while storing a new snapshot with the "Immediate Store in
   Library" option checked.


5.53L/m       27-Jun-2002/7-Aug-2002
              (Note: the 16-bit GUI is still version 5.53k/g1)

1) Fixed: a bug which caused a missing field #7 (source file
   path\name) in the journal file.

   This caused the journal file records to have only 12 fields
   instead of 13, and caused the 6 subsequent fields to be in the
   wrong positions: lock file path, version number, source file
   "key" (name), current and "other" project level names, and
   Update comments.

   This bug was introduced in version 5.53a (actually in version
   5.52h/beta).

   The workaround for this bug is to examine the number of fields
   in each journal file entry, and if there are only 12 fields
   insert a copy of the source file "key" (name) as a substitute
   for the missing source path\filename field.

   We have created a tool to make this repair to your journal
   files; look for JOURFIX.ZIP in the "downloads" section of our
   web site.

2) Fixed: a bug which caused the version number to be omitted from
   the journal file for A and AP commands.
   [Jeff Y.]

3) Fixed: a bug which caused the "Inspect" button to not work
   in the 32-bit GUI version of TLIB.  (This bug was introduced in
   version 5.53k.)

4) Fixed: It was truncating the configured PATH at the first
   embedded blank if you took a snapshot with "immediate store
   in library" checked.
   [Ken L.]

5) Added: another API, similar to the WM_SETTEXT Windows Messaging
   and DDE-based APIs, but utilizing Windows Mailslots for
   interprocess communication.  This API is the "glue" connecting
   our (still incomplete) Microsoft SCC API DLL to TLIB.  Mailslots
   are similar to named pipes, but, unlike named pipes, they are
   supported under Win-95/98/Me as well as under Win-NT/2K/XP.


5.53k         8-May-2002

1) Fixed: a bug in the TLIB Visual Compare which could cause a region
   of differences to be omitted from the display.

   In the 32-bit version, it could happen if a single region of
   differences exceeded 10,000 characters but was less then 200 lines.
   In the 16-bit version, it could happen if the region of differences
   was more than 5000 characters but less than 100 lines.

   The symptom was that at first glance the two versions of the file
   appeared to have no differences in that region, but if you looked
   closely you would notice that a large block of line numbers were
   skipped without a "divider" (elide-indicator) line.
   [Krys B.]

2) Improved: The 32-bit TLIB Visual Compare display of differences
   between certain files, especially when large ranges of lines are
   all changed but only in minor ways.

3) Fixed: A bug which could cause 16-bit protected mode versions of
   TLIB to GPF when doing a Native Project Mode "open" of a web site
   which had an "href=" reference to a file name with no extension.

4) Added: code to TLIB work around a Novell 4.83 client bug which causes
   "ERR: putrec write failed" errors.  The bug causes a write to fail
   if it is to a locked region when both lock and write use the same
   file handle.  This code works around the problem by unlocking the
   region and retrying the write, but it still displays the error
   message one time, followed by a message saying, "Novell 4.83 client
   bug detected; workaround successful."

   This bug is detected by TESTLOCK as a failure of Test #8:
   Test #8  FAILED!  (Adjacent region locks, and lock/write conflicts)

   The bug was observed under Windows 2000 with the latest Novell
   4.83 client.  It did not happen with an earlier (4.90?) client
   circa Sept. 2001, a/k/a 4p90p20000717.

5) Added: to command-line versions of TLIB, an informative message
   that says "Aborted!" when you abort a multi-page version history
   listing by pressing Enter instead of Spacebar.
   [Rich H.]

6) Added: a 32-bit version of TLIBCOMP.EXE, the command-line visual
   compare utility.  The 16-bit version is now named TLIBCO16.EXE,
   the 32-bit version is named TLIBCO32.EXE, and SETUP will also copy
   one or the other to TLIBCOMP.EXE, depending on how you answer
   the questions that SETUP asks you.

   The two versions are very similar, but the 32-bit version avoids
   long file name restrictions.  You can run either of them without
   any parameters for a "help" screen.


5.53j         28-Feb-2002

1) Improved:  TLIB's handling of non-relative URLs when traversing a web
   site to find all its files, when you "open" your index.html file (or
   another HTML file) in TLIB as a "native project file."

   If you have a copy of your web site on a local hard disk or network
   drive, with "drive letter" access, TLIB can use the initial/main web
   site file as a "native project file," so that you can just "open" it
   in native project mode.  TLIB can read it and find all the references
   to other web pages, read those web pages, etc., to find all the files
   in your web site.

   This is very handy.  It lets you simply open an index.html file in
   TLIB, and immediately see the complete list of files that make up
   your web site.

   Note that this works only with links to other pages on your own web
   site.  TLIB doesn't actually fetch pages across the Internet with
   the HTTP protocol.  (If it did, then you couldn't do version control
   on sites with server-side includes, CGI scripts, etc.)

   The process of following the links is quite simple if the links
   are "relative" to the initial page.  For example, a link like
   <a href="xyz/anotherpage.html"> is obviously in the "xyz" subdirectory
   of the page containing the link.  (It is a little more complicated
   than that if you are using server-side includes, but you get the idea.)

   However, a link like <a href="http://www.xyz.com/abc.html"> is
   harder to handle.  First, TLIB must to decide whether it is on
   your web site or not, and if it is part of your web site then TLIB
   must find the file on your hard disk.  The problem is that the link
   gives a web address, and TLIB needs a way to translate the web
   address into a local disk location.

   Links like <a href="/def.html"> present a similar problem.  In this
   case, we know that the file def.html is on our web site, but where
   is it on the local hard disk or network drive?

   To solve these problems, HTML provides the <BASE href=...> tag, which
   can be placed in the <head></head> section of an HTML file.  This tag
   specifies the web address for a file, which tells TLIB two important
   things: the domain for your web site, and the way that web locations
   correspond to local hard disk locations.  A <BASE href=...> tag
   tells TLIB all it needs to know to properly translate the non-relative
   links on your web site into local hard disk locations, so that it
   can find all your web site files.

   Note that you need not add <base href=...> tags in all of your
   HTML files.  If you have one in just your initial page, TLIB can use
   that information when traversing the links and finding all the rest
   of the files that comprise your web site.

   To handle links like <a href="http://www.xyz.com/abc.html"> requires
   a <BASE href=...> tag.  Without a <BASE href=...> tag, TLIB must
   assume that all such links point to other web sites.

   However, TLIB can often handle links like <a href="/def.html"> even
   without a base tag.  To do so, TLIB makes a reasonable guess about
   the location of your initial web page file: that its web location
   is in the top/root directory.  So TLIB looks in that directory for
   the def.html file, too.

   2) Fixed:  File redirection in the Win32 GUI version of TLIB.

   This obscure feature lets you "redirect output" in the GUI versions
   of TLIB, to create a status log file.  Simply use the "Run"
   manual command window and enter something like ">c:\tliblog.txt"
   and your status log messages will be written to c:\tliblog.txt.
   You can enter ">" (with no file name> to close the log file.

   This is useful if you need to record more status log lines than
   TLIB preserves in memory and displays in the "View Log" window.

   3) Fixed: a bug which could cause a "ERR: m_ov" error when debug
   prints were enabled via the "-d" command-line option, and an HTML
   file with extremely long lines was being parsed.


5.53i         26-Dec-2001 & 16-Jan-2002 & 7-Feb-2002
              (Note: the GUI is still version 5.53h)

1) Fixed:  TLIB's built-in tables of file extensions which it uses
   to implement two options that are available when "opening" an
   HTML file (e.g., index.html) as the "project file" for a web site:

   [1] "include binary files (image, sound, etc.)", and
   [8] "skip links to non-displayable files"

   The problem which this solves was seen when both of these options
   were selected together (i.e., [9] or [11] was specified).  In this
   case, TLIB was ignoring href= links to non-text displayable files
   (and audio files) such as .jpeg, .gif, .pdf, .mid & .mp3, because
   it incorrectly considered them to be "non-displayable."  Now TLIB
   correctly finds these file names.

   To implement these two options, TLIB looks up file extensions in
   three built-in case-insensitive lists of file extensions:

     binary displayable:  .gif .jpg .jpeg .mpg .mpeg .bmp .dib .png
     .ico .pcx .wmf .tif .tiff .pict .pdf .mid .wav .mp3 .ra .ram .swf
     .doc .xls .xlw .wri

     nonbinary displayable:  .html .htm .shtml .txt .rtf .ini

     binary nondisplayable:  .exe .com .pif .ace .arc .arj .bh .bz2
     .cab .gz .ish .jar .lha .lzh .pak .pwc .rar .sit .tar .taz .tgz
     .z .zip .zoo

   Note that these lists are ONLY used for implementing these 2 options
   while parsing HTML files to "open" them as "native project files."

   The lists are not used to determine the storage format (text vs.
   binary) which TLIB chooses when creating TLIB library files.  That
   is based on the "FILETYPE" configuration parameter and, when
   FILETYPE AUTO is configured, on an examination of the actual file
   contents.  (See CONFIG.TXT and look for "FILETYPE")

   By the way, if you think these lists of file extensions need
   adjusting, please tell us.

2) Changed: a dire-sounding "Warning" message which really didn't
   indicate a problem into a milder "Note" message.
   [Stacey G.]

3) Fixed: The 7-Feb-2002 re-release corrects an error in the
   installation program (SETUP.EXE), which caused the command-line
   executable, TLIB.EXE, to be a copy of the DOS-only version,
   TLIBDOS.EXE, rather than the requested Win32 console mode
   version, TLIB32C.EXE.  There was no change to TLIB itself.

   The workaround for this problem was simple: just go to the
   TLIB installation directory and copy TLIB32C.EXE to TLIB.EXE.


5.53h         14-Nov-2001

1) Fixed: a bug which could cause the TLIB GUI to hang with a flickering
   hourglass mouse cursor (busy indicator) while displaing the initial
   "splash screen," if you ran it after a fresh install without first
   creating a TLIB.CFG file with the TLIB Configuration Wizard.
   [Joe L.]

2) Improved: the usability of the standalone visual compare, in several
   subtle but significant ways.  For example, when you close the visual
   compare screen, it now returns to the file and version selection
   screen, rather than exiting completely, in case you want to do
   another comparison.

3) Fixed: a bug in the "native project mode" feature of the GUI
   versions of TLIB, which caused the name of the project file being
   opened to be translated to all upper-case.  This was generally
   inconsequential, except when the project was a Web site and the
   "project file" being opened was index.html.

4) Added: instructions in TLIB\DOC\READ_ME.TOO for how to run TLIB
   under Linux using the WINE Windows Emulator.


5.53g      [never released]


5.53f         23-Oct-2001

1) Added: support for parsing .shtml files (HTML w/ Server Side
   Includes), to discover the #include directives and recursively
   discover what files comprise the web site.

   (This feature, of course, only works in the versions of TLIB
   which support long file names.)

   2) Added: the "Diagnose" button when opening a web site in
   native project mode, from GUI versions of TLIB.  Clicking the
   Diagnose button lets you see exactly how TLIB processed your
   web site, including the file and line number where each file name
   was found.

   Command-line versions of TLIB can access this feature via the
   "-d256" command-line option, e.g., like this:

      tlib32c -d256 g1lw @@c:\webdir\index.html[3] >tmp.tmp

   The diagnostic lines in the output begin with the word "Found".

   The "[3]" options encode three options in a bit-sensitive integer.
   In GUI versions of TLIB, these options are selected by checkboxes.
   In command-line versions of TLIB, you can select the three options
   by adding 1, 2, and/or 8 together to make an integer from 0 to 11:

       1 = include binary files (image, sound, etc.)
       2 = recursively scan for file names
       8 = skip links to non-displayable files

   In the example above, we used "[3]" for the options.  3 = 1+2,
   so [3] selects the first two options but not the third.

3) Fixed: a bug, introduced in TLIB 5.53e, which caused improper
   handling of checkable options in the Open Named Project File
   dialogue of GUI versions of TLIB for Windows.  The most obvious
   symptom was project file specs with the options set to "[10]"
   or "[11]".

4) Fixed: a bug that caused duplicate entries in the MRU (Most
   Recently Used) drop-down list in the Open Named Project File
   dialogue.

5) Fixed: a bug in the handling of Microsoft Visual Developer
   Studio .mak files, which caused TLIB to fail to find the
   "external dependencies" (header files).

6) Improved: compiler-native project file support for Microsoft
   Visual Developer Studio, so that TLIB can now find .def files
   which are used in link or lib steps.

7) Fixed: a bug which caused the 32-bit GUI version of TLIB, when
   creating a snapshot or file list with the Snapshot command in
   native project mode for a .html or .shtml file, to miscalculate
   the default snapshot or list file name.


5.53e         9-Oct-2001

1) Added: support for parsing HTML files in Native project mode.

   This lets you "open" your index.html or index.htm file in TLIB
   as if it were a named project files.  TLIB will read and parse
   the HTML files, recursively scanning for src= and href=, to
   find all the files that comprise your web site.

   This simplifies keeping your web site under TLIB Version Control,
   especially if there are a lot of extraneous files in the same
   directory, so that simple wild-card specifications would find
   too many unrelated files.

   Several options can be used to adjust which files are included
   in the list:

     __ include binary files (image, sound, etc.)
     __ recursively scan for file names
     __ skip links to non-displayable files

   TLIB 5.53e finds files indicated by all the standard src= and
   href= HTML tag fields, and also attempts to find files referenced
   in javascript, though that isn't always possible.

   [10/23/01 - Note: The ability to handle .shtml files with server-side
   include directives was added in TLIB 5.53f.]

2) Converted: The 32-bit versions of TLIB are now built with version 6
   Microsoft compilers (VC++ and Visual Basic), instead of version 5.
   This should not result in any functional change.

3) Improved: some diagnostic messages.

4) Changed: The behavior of the ".mak optimization" feature of TLIB's
   compiler-native project file support for Microsoft Visual Developer
   Studio project files.

   This features enables TLIB to read the generated .MAK file instead
   of the corresponding .DSP (Developer Studio Project) file, to
   obtain the dependency information, which avoids the need to read
   all your source files and scan for #include directives.

   In TLIB 5.53c and earlier, TLIB would only read the .MAK file
   in lieu of the .DSP file if the two files had near-identical
   dates.  However, if you do an explicit "Export Makefile" command
   in Visual Developer Studio, then the resulting .MAK file will
   have the current date/time, but the corresponding .DSP file may
   have a much older date/time.  So, TLIB 5.53e now reads the .MAK
   file in lieu of the .DSP file if the .MAK file is newer than the
   .DSP file.

5) Fixed: a subtle heap-management bug in 16-bit command-line
   versions of TLIB.  Oddly enough, no symptoms of this bug were
   ever observed.


5.53d      [never released]


5.53c         29-Jun-2001

1) Fixed: a netsetup bug, which caused part II of the installation
   process to fail, when installing under Windows 2000 with a user ID
   in the "power user" group.  Symptom was that netsetup forced a
   premature re-boot at the 23% complete point.

   The workaround was to install as "Administrator."
   [Pier Y.]


5.53b         29-May-2001

1) Fixed: a bug in the 32-bit GUI version of TLIB which could cause
   a hang (infinite loop) or "Run-time error '35600'" under some
   circumstances while doing an Extract with "S - Specify Version #"
   checked.

   This bug was introduced in TLIB 5.53a.

2) Fixed: a bug in both the 16-bit and 32-bit GUI versions of TLIB,
   which occurred if you entered an all-blank comment while doing
   an Update or New library command.

   Entering such a comment erroneously enabled the "OK" button
   just like entering a non-blank comment does.  But clicking OK
   would cause the file to be skipped, like clicking the "Skip"
   button, except that the only indication that the file had been
   skipped was in the status log (click "View Log").  Also, the
   status column erroneously showed "0" (success) instead of "1".
   [Chad C.]

3) Changed: the installation program so that the default name of the
   Start Menu folder for TLIB is now "TLIB Version Control" instead
   of "TLIB for Windows," unless you already have a "TLIB for Windows"
   start menu folder.  We also moved some less-frequently used
   shortcuts into subfolders: "16-bit" and "Add-Ins."


5.53a         2-May-2001

1) Fixed: a bug introduced in both the 16-bit and 32-bit versions
   of the GUI TLIB in 5.52i/beta.

   The main symptom was an error which occurred after switching
   directories from one in which a named project level was used to
   one in which it was not.  When an "expand wildcard" was attempted,
   an error occurred:

      ERROR: The A and T search modes cannot be used because PROJLEV
      is not set to a named level.

   Workaround was to exit TLIB and restart it.

2) Fixed: an obscure bug in the 16-bit TLIB DLL engine API: calling
   GET_TLIB_CONFIG_VAL() or GET_TLIB_CONFIG_VAL_P() to look up the
   value of a numeric configuration parameter returned garbage.

   Workaround was to use a "G2parametername" command to look up
   numeric configuration parameters.

3) Improved: both 32-bit and 16-bit GUIs, to "grey-out" (disable) the
   R-share command when TLIB is not configured to selectively share
   files (i.e., when NUMLIBDIR=1).

4) Fixed: a problem with running a beta 5.52i or 5.52j 16-bit GUI
   version of TLIB under Win-OS/2, which could cause the following
   error message to pop up:

      Error, GetObjectAPI returned rc=30 (should be 50)

   (This bug was not present in any non-beta version.)

5) Added: support for scanning Borland Delphi projects for {$I...}
   include file references.

   In the GUI versions of TLIB, you can just check the "scan for
   includes" checkbox when openning the .DPR project file, in
   compiler-native project mode.

   In command-line versions of TLIB, you should add [2] to the
   wildcard specification to tell TLIB to scan for include files.
   For example, to list the source files referenced by Dephi
   project called acme.dpr, you could do this:

      TLIB G1LW @@acme.dpr[2]

   Also, the [1] option now adds the .CFG and .DOF files to the list,
   instead of just the .OPT and .RES files.  Note that the [option]
   number is bit-sensitive, so [3] is the combination of [1] and [2].
   Thus, the following TLIB command will list the acme.dpr source
   files, plus acme.opt, acme.res, acme.cfg, and acme.dof:

      TLIB G1LW @@acme.dpr[3]

6) Added: extended wild-card syntax to let you tell TLIB to recursively
   scan individual C, C++, and Pascal source files for include
   directives.

   To use this feature, instead of specifying the source file name to
   TLIB, simply pretend that it is a compiler-native project file:
   prefix the file name with "@@" and add the "[2]" option to the end.

   For example, instead of specifying MYFILE.C, you can specify
   @@MYFILE.C[2] to make TLIB scan for include files (header files).
   Thus, the following command will list myfile.c plus the non-system
   include files that it references:

      TLIB G1LW @@myfile.c[2]

   Contrast that command with this one, which lists only one file,
   myfile.c:

      TLIB G1LW myfile.c

   Currently, this feature is supported for C, C++, and Pascal, only.
   For C/C++ files, it displays include files referenced in "quotes",
   but not include files reference in <angle-brackets>, since those are
   normally standard compiler or system header files.

   For Pascal files, only the Borland include directive syntax is
   supported:  {$I filename}, {$INCLUDE filename}, etc..

   Note: the C, C++, or Pascal source file must already be present
   in your work directory for TLIB to be able to scan it for include
   directives.

7) Improved: the TLIB GUIs in subtle ways.  For example, command menu
   choices are more verbose/descriptive.

8) Released: TLIB 5.53a, including TLMERGE, which is a 32-bit version
   of our DIFF3 merge tool.

9) Discontinued: TLIB for DOS as a separate product, because nobody
   was buying it.

   TLIB for DOS is still included as part the TLIB Combo Edition,
   but to install it you'll need to be able to run Windows.  If you
   need to put the MS-DOS version of TLIB onto a DOS-only computer,
   you'll have to first install it on a computer that has some
   version of Windows running (by running Setup and then the TLIB
   Configuration Wizard).  Then you can copy the TLIB for DOS
   executables (TLIBDOS.EXE, TLIBX.EXE, etc.) and TLIB.CFG from the
   Windows computer onto the DOS computer.


5.52j/beta    22-Apr-2001

1) Fixed: a bug in the beta version of TLMERGE.EXE, which caused
   it to identify extraneous "collision" areas.  The fixed version
   displays the version number 5.52b.  [Joev D.]

2) Fixed: a bug which caused TLIB to insert an incorrect revision
   history comment block in an extracted file if it was extracted
   by specifying a version number of "*-1" and if the last version
   in the TLIB library had multiple lines of comments stored with it.
   [Joev D.]

3) Added: a vertical divider bar to the Visual Compare screen, which
   you can drag left or right to resize the two panes, in the Win32
   GUI version of TLIB, only.

4) Fixed: a bug which prevented the right mouse button menu from
   popping up (for copying to clipboard) on the Visual Compare
   screen of TLIB.  (Note: this feature is only available in the
   Win32 GUI version of TLIB.)

5) Added: an "Inspect" button to the version history list, in the
   the 32-bit GUI version of TLIB, only.

   The Inspect button allows you to take a quick peek at a selected
   version of a source file, without extracting / checking it out.

6) Fixed: A bug in the Configuration Wizard which was included with
   the previous beta TLIB, in which the generated TLIB.CFG file
   lacked a CR/LF after the NUMHELP line.  The fixed Configuration
   Wizard identifies itself as version 5.52j.
   [Ashim J.]

7) Improved: several subtle user interface issues.


5.52i/beta    18-Apr-2001

1) Added: a beta-test version of TLMERGE.EXE, which is a 32-bit
   version of our venerable DIFF3 merge utility.

   TLMERGE has several advantages over DIFF3, including the ability
   to handle long file names, and the ability to use more memory so
   that it can process large files with fewer passes.  Using TLMERGE
   instead of DIFF3 also permits passing longer command lines (as
   is sometimes required when TLIB's M/migrate command generates
   TLMERGE or DIFF3 commands in a migrate2.bat), and it avoids a
   strange hang which one of our customers encountered when running
   DIFF3 under Windows 2000.
   [Joev D.]

2) Added: enhancements to the version history list which is displayed
   in the Win32 GUI version of TLIB when you double-click on the
   name of a source file, and in certain other contexts.  There are
   now extract and compare command buttons, and an option to let
   you select and copy to clipboard.

3) Added: enhancements to the Run Manual Command dialogue, including
   a handy "Command help" button, in both 16-bit and 32-bit GUI
   versions of TLIB.

4) Fixed: a minor bug which caused the "current version" flag lines
   to be shown twice in an LX command's version history display if
   there was only one version in the TLIB library.

5) Fixed: a bug which crashed the 32-bit GUI version of TLIB if you
   tried to execute a 0-length command in the Run Manual Command
   window.

6) Changed: to using a newer version of Wise InstallBuilder (v8.13)
   for making our installation package.  (This change should not
   affect anyone.)


5.52h/beta    30-Mar-2001

1) Improved: Right mouse button behavior in the main window of
   both 16-bit and 32-bit GUIs.

   If no files are already selected, and you press the right mouse
   button over the main file list on the main TLIB window, it
   now selects the source file that is under the mouse cursor
   and then pops up the menu.  Earlier versions required you
   to first press the left mouse button to select the file, then
   press the right mouse button to pop up the menu.

   (This was actually added in TLIB 5.52g/beta, 1/19/2001.)
   [Dan H.]

2) Improved: TLIB's support for sharing files between projects.

   You can now more easily use a single work directory with a mixture
   of source files, some private and some sharable.  TLIB can now
   be configured to ask you, wen you create a new TLIB library,
   whether the source file is non-shared or sharable, to determine
   where the TLIB library file should be stored.

   A pair of new TLIB configuration parameters is provided for this
   purpose:

       NUMLIBDIR <number,1-5>
       LIBDIRQ <number,1-5>,<quoted-string>

   The default is "NUMLIBDIR 1" and no LIBDIRQ parameters (meaning
   that users will not be asked where TLIB library files should be
   created.

   Our assumption is that you will configure TLIB's PATH parameter
   with two different directories: one for private files, the other
   for sharable files.  (The PATH configuration parameter tells TLIB
   where to put its library files.)

   Most of your source files will probably be PRIVATE to particular
   program/projects.  The TLIB libraries for these files will be kept
   in separate directories (or directory trees), hidden from all other
   projects/programs.  To keep them separate, TLIB normally uses the
   name of your work directory as a part of the path to the TLIB
   library files (though it is also possible to configure TLIB to use
   other approaches).

   Source files which need to be SHARED with another project/program
   will have their TLIB libraries stored in a shared, common
   directory (or directory tree), visible to your other projects/
   programs.

   The new Configuration Wizard included with TLIB 5.52h/beta can
   configure the PATH, NUMLIBDIR, and LIBDIRQ parameters for you, for
   a mixture of shared and private files.  The PATH parameter will be
   similar to one of these:

       path "\\Server\vol\TLIB\LIBS\%wdir%;\\Server\vol\TLIB\SHAREDLIBS\"

       path "\\Server\vol\TLIB\LIBS\%wdir%*\;\\Server\vol\TLIB\SHAREDLIBS\*\"

   (In this example, we configured TLIB to keep sharable library
   files in or under the \TLIB\SHAREDLIBS\ directory on the server.
   Note: keep the line under 254 characters long!)

   If there's an asterisk in the path (as in the 2nd example above),
   then you are using tree-structured work directories.  If so, then
   you will probably want TLIB to keep track of subdirectories for the
   shared files, too, so the Configuration Wizard includes an asterisk
   in the path for the shared library files, as in the second example
   above.  However, this is optional, and you can delete the second
   asterisk, like this:

       path "\\Server\vol\TLIB\LIBS\%wdir%*\;\\Server\vol\TLIB\SHAREDLIBS\"

   If you do so, then your shared source files need not reside in
   subdirectories with matching names, to be visible to other projects.
   E.g., you could have a shared IOSTUFF.H file in the main work
   directory for one program/project, but put it in a subdirectory
   of the main work directory for another program/project.

   (However, this works best if you are using a named project level,
   because the named project level can keep track of where the source
   file belongs.)

   The NUMLIBDIR and LIBDIRQ parameters are used to describe the paths
   in the the PATH configuration parameter.  For example:

       numlibdir 2
       libdirq 1,"Regular location for TLIB libraries (\\Server\vol\TLIB\LIBS\%wdir%*\)"
       libdirq 2,"Location of libraries for sharable files (\\Server\vol\TLIB\SHAREDLIBS\)"

   (Note: feel free to change the messages, if you wish.)

   These parameters define the choices that will be displayed to users
   when creating new TLIB libraries (i.e., when adding new source
   files to your program/project), or reclassifying them with the "R"
   command.

   If you are working on a program/project which needs to share a
   sharable source file that was first created for a different
   program/project, there are two scenarios:

     1) You are not using TLIB's named project levels.

     In this case, you can simply extract (check out or browse) the
     source file like any other.

     2) You are using TLIB's named project levels.

     In this case, you can add the file to your project's named
     project level.  In command line versions of TLIB, use the "AL"
     command.  In GUI versions of TLIB, check the "Library" search
     mode, then Expand wildcards, the select the file, and then click
     the "Add/alt" command ("Add/Alter project level").

   Note: you will only be able to share files which have libraries
   in the SHAREDLIBS directory.  If you have a file that was first
   stored under TLIB as non-shared, but now you wish to share it
   with another program/project, you'll need to move the TLIB library
   file from its original location to the location used for the
   libraries for sharable files.  That's what the new "R" (reclassify)
   command does; see below.
   [Ram M.]

3) Added: the "R" (Reclassify-shared) command, to reclassify source
   files as "sharable" with other projects, by moving their TLIB
   libraries into a shared directory/folder.

   Use this command when you have a source file that was "private"
   for a particular project, but you now need to share it with
   one or more nother projects.  The "R" command makes the TLIB
   library available to the other projects.  Then you will need to
   change to the new project (i.e., change your current directory
   to the other project's work directory), and (if you wish) extract
   the source file.

   If you are using TLIB's named project levels, you'll also need
   to add the file to the current project level for the other
   project.  Use the "L" (libraries) search mode to find it, and
   then use the "A" (Add/alter project level) command to add the
   newly shared file to the project level.

   For the "R" command to work, the NUMLIBDIR, LIBDIRQ, and PATH
   parameters must be appropriately configured; see v5.52g, below,
   or use the new TLIB Configuration Wizard to configure them.

   In this beta release, the "R" command is available in the
   command-line versions of TLIB, only.  It is not available in
   the GUI versions of TLIB (except via "Run Manual Command").  It
   will be added to the two GUI versions of TLIB before release.

4) Improved: The TLIB Configuration Wizard.

   We added support for the new "R" (Reclassify-shared) command to
   the TLIB Configuration Wizard.  The Configuration Wizard will
   now give you the option of choosing BOTH shared and private
   locations for your source files, instead of just one of the
   other.  The will cause the Configuration Wizard to generate
   a TLIB.CFG file that properly configures the NUMLIBDIR, LIBDIRQ,
   and PATH parameters to support sharing some, but not all, of
   your files between projects.

   Also, the Configuration Wizard now does a better (more complete)
   job of configuring named project levels.

   Also, we changed the release numbers we use for the Configuration
   Wizard, to be more consistent with TLIB's release numbers.  This
   version of the Configuration Wizard now identifies itself as
   version 5.52.

5) Fixed: a bug which caused TLIB to incorrectly deduce source
   file directories from the locations at which the corresponding
   library files were found, in a particular set of circumstances.

   In GUI TLIBs, the symptom was that the directories shown in the
   "Path" column on the main screen were incorrect.  Also, if you
   tried to do a TLIB operation (for example, if you double-clicked
   on a file name to get a version history listing in the GUI),
   then TLIB displayed an error similar to this one:

      ERROR: No such library file: "C:\tlibs\abc\..\xyz\myfile.c_$".

   The problem occurred when two (or more) semicolon-separated
   library/lock file directories were specified by the PATH
   configuration parameter in TLIB.CFG, and TREEDIRS_Y was also
   configured, and "\*\" was configured as part of the second
   library files path (that is, after the semicolon), and
   "Include SubDirs" was checked in the TLIB GUI (or the "I" search
   mode suffix was used in a command-line version of TLIB), and the
   library or lock file was found in a subdirectory.
   [Ram M.]

6) Added: support for right-clicking on a file or directory name
   in any of TLIB's most-recently-used (MRU) dropdown lists, to
   remove that file name or directory name from the MRU.
   (This is in only in the 32-bit TLIB GUI.)
   [Ram M.]

7) Added: "Open with..." to the Command and right-mouse menus in
   the 32-bit TLIB GUI.

   Also, ordered these menus a bit more logically, in both 16-bit
   and 32-bit TLIB GUIs.

8) Fixed: a minor anomoly in TLIB32C.EXE, the Win32 console mode
   version of TLIB, which caused an extra blank line to be displayed
   after it prompted for input.  It no longer does.

   However, TLIB2.EXE also does this when run under Windows
   NT/2000.  We did not change it, because, due to operating system
   differences, TLIB2.EXE only displays the extra blank line when
   run under Windows NT/2K, not under OS/2.)  [Joev D.]

9) Fixed: A bug which could cause a protection exception if you
   entered a command with no file name in the TLIB GUI's "Run
   Manual Command" window.

10) Fixed: A bug in the Win32 GUI and console mode (command-line) versions
   of TLIB which could cause TLIB to fail to reopen a project-level
   tracking file or journal file due to concurrent access by other
   TLIB users.  A typical symptom was error messages like these:

     ERROR: Cannot open "T:\TLIB\PRJS\DEV\TLIBWORK.TRK", error = 5,13,5.
      Err=5, errno=13 (access denied)
     ERROR: Couldn't reopen T:\TLIB\PRJS\DEV\TLIBWORK.TRK

   Or these:

     ERROR: Could not open journal file: "T:\TLIB\LIBS\JOURNAL.DAT"
     Err=80, errno=17
     err #5, attrib=33 ro=1
     Retry? y
     Y
     ERROR: Could not create journal file: "retry?"
     Err=123, errno=22
     Retry? n
     N

   The circumstances under which this problem could be seen were
   that two or more users were trying to process massive numbers of
   files at the same time, using a Win32 version of TLIB.  (The
   problem with accessing the journal file was equally likely with
   both the GUI and Console mode versions of TLIB; the problem
   with accessing the project level tracking file was much more
   likely to be seen in the GUI version.)

   This bug affected only 32-bit versions of TLIB.
   [Ram M. and Joev D.]

11) Fixed: A bug which caused command-line TLIBs to fail to recover
   after prompting the user to "Retry?" file access, if the user
   answered "Y".

   One way to reproduce the problem was to open the TLIB journal
   file "exclusively" with another program, then do a TLIB operation
   that would be recorded in the journal file.  TLIB would display
   "awaiting access..." for a couple of minutes, then "gave up!"
   and display a "Retry?" prompt.  If you answered "y" (yes), then
   TLIB should have resumed awaiting access.  Instead, however,
   it displayed strange errors and quit.  For example:

     ERROR: file length check failed: retry? (ff=-1,op=450903,1).
     Try configuring DATAPATH Y

   (The "Try configuring DATAPATH Y" message could be displayed even
   if DATAPATH Y was already configured.)

   This bug has now been fixed.  [Joev D.]

12) Documented: The IFC/ENDIF configuration conditional block, which
   allows you to condition TLIB's configuration parameters on what
   command is being performed.

   This feature has existed in TLIB for quite a while, but until now
   we hadn't figured out a good use for it.  Now we have.  See
   CONFIG.TXT or CONFIG.WRI.

13) Increased: the maximum command line length from 130 characters to
   274 characters in 32-bit versions of TLIB.


5.52f        13-Feb-2001  (32-bit GUI 5.52f/g2 & 16-bit GUI 5.52e/g1)

1) Fixed: Under some operating systems (e.g., NT 4.0), the 32-bit
   TLIB visual compare was malfunctioning rather badly: displaying the
   wrong font, text not lined up with line numbers, extra vertical
   scroll bars, etc..  This bug was introduced in 5.52a/beta.
   It has now been fixed.
   [Julian W.]

2) Fixed: Under some operating systems, the 32-bit GUI visual
   compare wasn't displaying whitespace differences correctly (with
   the "shaded box" character), with the Terminal font default (which
   is normally the best font for visual compares.  We think we have
   this fixed now, but if you you find that whitespace differences are
   not properly highlighted using the Terminal font on your system,
   please tell us.

3) Changed: the release numbers we use for the GUI TLIBs, to be
   more nearly consistent with the product version number.

4) Improved: The 32-bit GUI TLIB now memorizes the main listbox
   column widths and the window sizes for the main and visual
   compare windows, saving/restoring them to/from TLIB.INI.
   [Julian W.]

5) Improved: got rid of that annoying blinking scroll bar on the
   visual compare screen.  Also improved the tab and arrow key behavior.
   Also, we now usually call it "Visual Compare" instead of "Delta."

6) Improved: the way that the main window "stretches" when the
   window is resized in the 32-bit GUI TLIB, to accomodate longer
   file names & paths.

7) Added: ability to customize the colors used by the Visual Compare
   (see the Compare Options screen).  This is especially useful
   for folks who are partially colorblind.
   [Julian W.]

8) Fixed: a minor problem selecting version numbers from the
   version list in the GUI versions of TLIB, if the current WORKDIR
   or PROJLEV versions were flagged in the list.  (But was introduced
   in 5.52b/beta.)

9) Added: jour2snp.pl, a small Perl program to create TLIB snapshot
   version label files "after the fact" by examining the TLIB journal
   file.  With this tool, you can create a snapshot version label
   for any desired date and time, for either the latest trunk
   versions or any named project level.  This can be a real help
   if you need to retrieve an old version of a program, but didn't
   remember to make a version label for that old version.
   (Download it from our Web site if you need it.)


5.52d/beta    5-Feb-2001  (Win32 TLIB 1.109s & 16-bit WinTLIB 1.105y)

1) Fixed: "ERR: fl0t"
   [Jonny W.]

3) Improved: Migrate command, to reduce the chance of this error:

      ERROR: one or more lines in MIGRATE2.BAT are longer than 127 characters,
      so it won't run correctly!  Try to shorten your CMTFLAG configuration
      parameter, and/or shorten or eliminate your CMTSUFFIX configuration
      parameter.  Then re-do the migrate.

3) Alphabetized the list of compiler-native project file formats (in the
   "open" dialogue in TLIB for Windows).


5.52c/beta     2-Feb-2001

1) Incorporated 5.52b enhancements into the 16-bit TLIBX.EXE, and
   made some efficiency improvements.


5.52b/beta     1-Feb-2001 (Win32 TLIB 1.109r & 16-bit WinTLIB 1.105x)

1) Fixed: a subtle bug in the 5.51i Migrate command improvements (the
   bug was related to automatic base version determination when
   migrating from a version that was, itself, the result of a migrate).

2) Added: ability to show the current WORKDIR and PROJLEV version
   numbers in a version history listing, by adding an "X" suffix to
   the "L" (list versions) command.

   In the GUI versions of TLIB, this is the default for listing
   version histories (e.g. when you double-click on a file name).
   In command-line TLIBs, this feature can be utilized via the new LX
   (List eXtended) command.  The output looks something like this:

     TLIB LX f\foo.c (library=\\server\sys\tlibs\foo.c$)
      1 FOO.C 25-Jan-2001,16:18:32,`DAVE' Created foo.c, module for
          interfacing to bar.c
      2 FOO.C 27-Jan-2001,11:24:26,`DAVE' Fixed buffer overflow bug.
       -- (Current WORKDIR version is 2) --
       -- (Current PROJLEV version is 2 in level DEV) --
   [Joe G.]

3) Added: compiler-native project support for Visual SlickEdit
   project files (*.VPJ) and workspace files (*.VPW).
   [John B., Harry N.]


5.52a/beta    19-Dec-00   (Win32 TLIB 1.109q & 16-bit WinTLIB 1.105w)

1) Fixed: a stray "debug print" Message Box that was accidentally left
   in the the Win32 GUI version of TLIB:

      "dbg: key=myfile.ext was in already in list at lpos=nn" or
      "dbg: key=myfile.ext was not already in list; adding..."

2) Fixed: a subtle bug which could cause TLIB for Windows to
   temporarily "forget" which files were recorded in a tracking file.
   This could result in duplicate tracking file entries, and a warning
   message from TLIB:

      Warning: duplicate tracking file entry for myfile.ext in tlibwork.trk

   Another manifestation of this bug was that the "EBF" search
   mode option might find one or more extra "out of date" files
   which actually were not out of date.

   The problem occurred when TREEDIRS Y and FNAMECASE A were both
   configured, and when source files which resided in the same
   subdirectory were specified with different directory name "case"
   (upper-case, lower-case, or mixed-case).  If this resulted in
   a tracking file with adjacent source file records for source
   files residing in the same subdirectory, but with differing
   subdirectory name case, then the problem could occur.

   A workaround was to configure "FNAMECASE U" or "FNAMECASE L"
   (forcing all file and directory names to all-upper or all-lower
   case).

3) Added: support for EOF-tolerant text files.

   EOF-tolerant text format is just like regular "FILETYPE TEXT"
   except that it treats "EOF characters" (Ctrl-Zs) as regular text,
   rather than as end-of-file indicators.

   To use this new format instead of the regular (Ctrl-Z-sensitive)
   TEXT format, configure:

      FILETYPE EOFTOL  (or just "FILETYPE E")

   Or you can configure:

      EOFTOLER Y  ("EOFtoler" is short for "EOF-tolerant")
      FILETYPE AUTO  (or just "FILETYPE A") and

   ...which has the advantage of also automatically using BINARY
   format when creating TLIB libraries for most non-text files.

   By default, FILETYPE AUTO will choose between FILETYPE TEXT,
   FILETYPE BINARY, and FILETYPE RUNLEN.  But if you prefer for
   your text files to be stored in the new EOF-Tolerant format
   instead of the old "TEXT" (Ctrl-Z as End-File) format, then you
   may add the new "EOFTOLER Y" configuration parameter.

   IMPORTANT NOTE:  The format of a TLIB library file is PERMANENTLY
   determined when you store the FIRST version of your source file.
   So the FILETYPE setting has no effect except when you first create
   your TLIB libraries.

   WARNING:  "FILETYPE E" libraries, if they contain ctrl-Z characters,
   may NOT be readable by some third-party vendor tools, such as
   Opus Make.
   [John L.]

4) Added: support for CRC-checked, run-length-compressed binary files.

   Run-length-compression greatly improves TLIB's performance, both
   speed and library file size, when storing some kinds of binary
   files, especially "sparse" database files.

   This format also adds a CRC check-word, stored with each version
   of the source file, and verified during extracts.

   To use this new format, configure:

      FILETYPE RUNLEN  (or just "FILETYPE R")

   Or, better yet, configure:

      FILETYPE AUTO  (or just "FILETYPE A")

   ...which has the advantage of only using the run-length-compressed
   format when your initial source file is discovered to be both
   non-ASCII and run-length-compressible.  TLIB analyzes the first
   version of your source file, to pick the format.  If it is a binary
   file, and if run-length-compression can shrink the file size, then
   TLIB will automatically create a run-length-compressed library.

   By default, when creating a new library, if FILETYPE AUTO is
   configured and the file is found to be binary (non-text), then TLIB
   will choose RUNLEN format instead of plain BINARY format if the file
   is even slightly compressible.  If you wish to change that rule,
   you can configure the new THRESHOLD parameter:

      THRESHOLD 1    (default: use RUNLEN if file is at all compressible)
      THRESHOLD nn   (use RUNLEN if file is at least nn% compressible)
      THRESHOLD 100  (never use RUNLEN format, use uncompressed BINARY)
      THRESHOLD 0    (always use RUNLEN, even if it makes files bigger)

   IMPORTANT NOTE:  The format of a TLIB library file is PERMANENTLY
   determined when you store the FIRST version of your source file.
   So the FILETYPE setting has no effect except when you first create
   your TLIB libraries.

   Note that run-length-compressed is a binary storage format, so the
   TLIB features which only work with text files, such as keywords and
   revision history logging, are unavailable for files stored using
   FILETYPE RUNLEN, just as they are unavailable for FILETYPE BINARY.

   IMPORTANT NOTE: Run-length-compression requires TLIB to create a
   temporary file to briefly store the compressed version of your source
   file, during Updates and Extracts.  TLIB looks for a TMP or TEMP
   environment variable to specify the location in which temporary files
   should be created; if neither is found, TLIB uses the current
   directory, or (rarely) the root of the C: drive.

   Note: Although run-length-compression does not usually reduce file
   size as much as more sophisticated compression techniques, it has
   a very important property, which is essential for use with delta-
   based storage systems like TLIB.  That property is that run-length-
   compression preserves "locality of differences."  In other words,
   if two uncompressed files contain only minor, localized differences,
   then the compressed versions will, likewise, contain only minor,
   localized differences.  Thus TLIB's delta-based storage is still able
   to efficiently store just the changes from one version to the next.
   [Nick R.]

5) Fixed: the Visual Compare ("Delta") feature in the 32-bit GUI
   version of TLIB was not "showing" whitespace changes in the default
   "Terminal" font.  Now it does.
   [John L.]

6) Fixed: Unfortunately, under the DOS/Windows family of operating
   systems, it is not possible to have a "current directory" (folder)
   without a drive letter.  GUI versions of TLIB depends upon being
   able to set the operating system's "current directory" to the
   "Current Dir" that you specify on the main TLIB screen.  Thus,
   you should not set your Current Dir to a UNC network path, of
   the form \\servername\volume\folder\

   Earlier versions of TLIB for Windows were not checking for
   this problem.  They permitted selecting such a directory as the
   Current Dir, and they didn't warn the user that it wouldn't
   work right.  This has been corrected.
   [John L.]

7) Fixed??  The Win32 GUI version of TLIB's Visual Compare (Delta)
   could start up with empty screen panels, instead of showing the
   side-by-side differences.  If you closed the compare windown
   and tried again, it would work correctly on the second try.
   This behavior was rare and very hard to reproduce.  But we think
   that we might have fixed it.

   Please tell us if you encounter this malfunction (or any other!)
   with TLIB for Windows version 1.109q or later.
   [John L.]

8) Fixed:  A bug which caused the "Edit TLIB.CFG" menu choice in GUI
   versions of TLIB to do nothing the first time it was tried, if no
   other TLIB operation had been done yet.  (It always worked the
   second time.)


5.51i         21-Nov-00   (Win32 TLIB 1.109p & 16-bit WinTLIB 1.105v)

1) Fixed: positioning of the EBF checkbox in GUI versions of TLIB (which
   we broke in TLIB 5.51h).  The problem occurred when the button bar
   was enabled or disabled in the Configuration Options window; the
   workaround was to exit and restart TLIB for Windows after changing
   the button bar option.  [Chris E.]

2) Improved: in compiler-native project mode, we now automatically
   refresh/update the list of displayed files when you check or un-check
   the EBF checkbox (so that you don't need to press F5 to refresh).

3) Fixed: you can now "extract contents of snapshot file" without
   having to first select a source file in the main file list.

4) Improved: added and improved some "help-bar" messages.  (Those
   are the explanatory messages that display at the bottom of the
   main TLIB for Windows window when you move your mouse over
   buttons and other controls.)  [Mary D.]

5) Improved: some subtle usability issues with Extract, Snapshot, and
   Migrate commands in TLIB for Windows.  [Mary D. and others]

6) Fixed: a bug in the handling of file lists and snapshots containing
   file names or subdirectory names with blanks in them.  [Mary D.]

7) Improved: TLIB for Windows now displays an informative note after
   creating a snapshot.

8) Fixed: In Win32 versions of TLIB (both GUI and command-line),
   mixed-case and lower-case Environment variable names (which are
   possible with recent versions of Windows) were not being found
   when referenced with the %EnvName% syntax in a TLIB configuration
   file.  This has now been fixed: TLIB's environment variable lookup
   is now case-insensitive.

   Another manifestation of this problem was that TLIB would ignore
   the TLIBCFG environment variable, if it was not specified as all
   upper-case.

   The workaround was to always use upper-case when specifying
   environment variables.

   Note: if you have defined a Windows environment variable as
   lower-case or mixed-case, then to change it to upper-case you
   must first delete it (by defining it to nothing).  Then you can
   redefine it.  E.g.,

     set tlibcfg=
     set TLIBCFG=!c:\mydir\special.cfg

   Just doing the second "set" command won't change it to upper-case.
   [Elspeth J., Frode N.]

9) Improved: Error message popped-up in GUI versions of TLIB when it
   can't write a source file to update keyword and/or revision history
   information, due to a file access error such as "sharing violation."


5.51h         27-Oct-00   (Win32 TLIB 1.109n & 16-bit WinTLIB 1.105u)

1) Improved: The operation of the "Add" button in TLIB for Windows,
   for adding file names to the list of viewed source files.

   In 16-bit versions of TLIB for Windows, and in earlier 32-bit
   versions, you can have the same source file name listed two
   or more times, by clicking the "Add" button to add file names
   to the list.

   The 32-bit TLIB for Windows version 1.109m adds logic to eliminate
   the duplicate names.

2) Added: Compiler-native project file support for Microsoft
   Developer Studio 5.0 and 6.0 "Workspace Files" (*.WSP), which
   are basically just groupings of Microsoft Developer Studio
   Projects (*.DSP).

3) Added: a little utility called JourJoin.exe (or JJoin32.exe,
   for the Win-32 version).  Unpack it from JOURJOIN.ZIP.

   JourJoin adjusts the format of a TLIB journal file, to make it
   easier to import into some database systems, for making custom
   reports and that sort of thing.  JourJoin combines the comment
   lines in the TLIB Journal File, appending the additional comment
   lines to the comment field in the main record for U (Update)
   and N (New library) commands.

   Run JourJoin.exe (or JJoin32.exe) with no parameters for help.

   JOURJOIN.ZIP is now included with TLIB Combo Edition, but it is
   also available on our Web site, for download by customers who
   own earlier versions of TLIB Version Control.
   [Joe G.]

4) Fixed: TLIB's handling of "file list" files with MacIntosh-style
   (carriage-return-only) line endings.
   [Frank B.]

5) Fixed: When reading Microsoft Developer Studio Project Files (*.DSP)
   in compiler-native project mode, TLIB can display a suggestion:

      Note: For better performance, in Developer Studio select
      Tools -> Options -> Build -> Export makefile when saving project file

   This suggestion is correct advice only if "scan source for
   includes" is checked in the Open Project File ("...") dialogue.
   However, TLIB was displaying the suggestion even if "scan source
   for includes" was not checked.

6) Enabled: the EBF checkbox in compiler-native project mode.

   This is the box you can check to make TLIB display only out-of-date
   source files.  In previous versions of TLIB, it was visible only
   in file-oriented mode.  There really was no good reason for hiding
   it in compiler-native project mode, so we've unhidden it.

7) Added: compiler-native project mode support for Borland C++
   Builder project file (*.BPR).

8) Changed: the TLIB Windows Help to not stay "on top" all the time.
   [Stewart K.]

9) Changed: the real-mode DOS version of TLIB, tlibdos.exe, to work
   on 8088-based HP 200LX palmtops.
   [Chris L.]


5.51g         27-Aug-00

1) Improved: TLIB's logic for deducing source file names from library
   file names.  Now, if you configure LIBEXE ??????$ and LOKEXT ??????^
   then TLIB can correctly deduce all source file names that have
   extensions of 5 characters or less, except those with "_" in the
   extension, without use of the EXTENSION configuration parameter.

   Note: TLIB does not support source file names with blanks in the
   extension.  Also, a file name with an extension that is 8 characters
   or more in length will be handled by TLIB as if the "." was part of
   the base file name and there is no extension.  Please let us know
   if you need better support for such files.

2) Improved: Configuration Wizard, enabling it to configure TLIB
   using the new LIBEXT ??????$ feature (above), and also to configure
   needed quote marks around the PATH parameter when there might be
   blanks in the work directory path, and also to correct and improve
   some of the prose.

   This is version 1.4 of the Configuration Wizard, TLIBCWIZ.EXE.


5.51f         26-Jul-00

1) Fixed: a bug that could cause this error.
     ERR: snbld() buffer overflow
   [Joev D.]


5.51e          2-Mar-00

1) Fixed:  When a compiler project file was in a network directory
   containing spaces, TLIB wouldn't open the compiler-native project
   file.  The error message displayed was:
     ERROR: Could not read compiler-native project file {filename}
   [Bryan S.]


5.51d         11-Jan-00

1) Added: solution for a Y2K interaction problem with Opus Make.
   Opus Make has the capability of reading TLIB library files and
   checking the date/time-stamps of particular versions.  However,
   it was interpreting embedded dates with a "00" year as 1900
   instead of 2000.

   So, we changed TLIB to store its file dates in dd-mmm-yyyy format
   in TLIB libraries when the year is 2000 or later.

   To avoid overflowing keyword string variables, the %d and %f
   keywords still store the year as two digits, by default.  However,
   starting with TLIB 5.51d, you can force TLIB to store the year
   as four digits for years 2000 or later, by specifying a sufficiently
   large "field width."  For the %d keyword, you must specify a field
   width of 11 or greater to make TLIB store the year with 4 digits
   (since "dd-mmm-yyyy" is 11 characters long).  For the %f keyword,
   you must specify a field width of 20 or greater to make TLIB
   store the year with 4 digits (since "dd-mmm-yyyy,hh:mm:ss" is
   20 characters long).  For example:

   Assume that TLIB is configured for:
      keyflag 3,"-=>keyflag<=--"

   Consider a source file with a date of January 1, 2000, and a TLIB
   version number of 22, and this embedded keyword:
      /*-=>keyflag<=-- "version %v, date %d, long date %11d" */
      char verdate[] = "";

   Then after TLIB expands the keywords, it will look like this:
      /*-=>keyflag<=-- "version %v, date %d, long date %11d" */
      char verdate[] = "version 22, date 01-Jan-00, long date 01-Jan-2000";
   [Aleksandar S.]


5.51c         8-Dec-99    (Win32 TLIB 1.109k)

1) Fixed: a bug which caused TLIB to always convert the WORKDIR to
   upper-case, regardless of the FNAMECASE configuration parameter.
   This caused a problem for a customer who was using a case-sensitive
   network file system under NT.  The problem was that (because of
   the MAKEDIRS parameter) TLIB created the work directory with an
   all upper-case directory name.
   [Gary S.]

2) Fixed: a bug which caused the 32-bit visual compare to occasionally
   show lines missing the final character.  The cause was a bug in
   CMPR32D.DLL's tab/blank-conversions when "ENTABU Y" was configured.
   The fix is in CMPR32D.DLL version 5.51.2.0.

3) Improved: a couple of error and warning messages.

4) Added: support for the SUPPRESS 16 configuration parameter, to
   suppress display of the warning message, "TREEDIRS_N configured
   but xxx isn't in workdir... the entry for xxx in tlibwork.trk
   will be misleading."  This was needed for a particular customer
   with an unusual development environment in which source files were
   "staged" from the work directory to another location before being
   stored in TLIB.
   [Mark M.]

5) Fixed: a subtle bug with the use of the CP command in command-line
   versions of TLIB to override the TLIB library file, when "FIND1FILE Y"
   was configured.  If the forced TLIB library file's extension was not
   consistent with the configured LIBEXT parameter, then TLIB would not
   process the file.


5.51b         23-Aug-99

1) Fixed: a bug in the parsing of TLIB.CFG.

   TLIB was mishandling an if{wildcards}/endif block nested within an
   iff{expression}/endif or iff{expression}/else/endif block.  The
   symptom was an error message on the outer "endif".
   [Leslie S.]

5.51a         11-Aug-99   (Win32 TLIB 1.109j)

1) Improved: the error diagnostic message when the GUI Win32 version of
   TLIB failed due to out-of-date versions of Microsoft DLLs or OCXs
   being installed in the Windows system directories.  The symptom
   was error number 50003, "unexpected error."  The new, improved
   error message now recommends running NETSETUP.EXE to solve the
   problem.

   Since TLIB's NETSETUP install program installs up-to-date versions
   of the needed Microsoft DLLs and OCXs, this problem usually only
   occurs when an attempt is made to run WTLIB32.EXE without first
   running TLIB's SETUP.EXE or NETSETUP.EXE, or else when another
   program has been installed with defective installation procedure
   that fails to preserve already-existing newer versions of Microsoft
   DLLs or OCXs.
   [Jeff Y., Tuyen N.]

2) Added: support for configuring FILETYPE AUTOMATIC (or FILETYPE AUTO,
   or just FILETYPE A).

   When FILETYPE AUTO is configured, and you store the first version
   of a source file using the N (New Library) command, or using U
   (Update) when UPDATENEW Y is configured, TLIB will examine the
   file to determine whether or not it is a plain ASCII text file.
   If so, then FILETYPE AUTO is equivalent to FILETYPE TEXT.  If not,
   then FILETYPE AUTO is equivalent to FILETYPE BINARY.

   This determination is quite reliable.  However, if you are storing
   an unusual binary file type under TLIB which contains mostly ASCII
   text, or a special text file for which you do not want TLIB to
   adjust your end-of-line delimiters (CR vs. LF vs. CR+LF), then
   you should configure FILETYPE BINARY for that file.  For example,
   if you had .DBF database files containing only text fields, you
   could configure:

      IF *.DBF
        FILETYPE BINARY
      ENDIF

   FILETYPE AUTO is now the default.
   [Roger C.]

3) Changed: the "FILETYPE" question in the TLIB Configuration Wizard,
   to use the new FILETYPE AUTO setting instead of FILETYPE TEXT.

4) Added: a beta-test TLIB Add-In module for MS Visual Basic 6.0,
   called TLIBVB6.EXE.

5) Released: the 32-bit versions of TLIB (command-line and GUI).


5.50z.3       3-Aug-99

1) Fixed: Another problem with looking up Novell NetWare user IDs in
   the beta Win32 GUI version of TLIB.  Symptom was a Stack Fault error
   if "ID *NOVELL*" was configured.
   [Tuyen N.]

2) Fixed: TLIB was truncating journal file entries to 255 characters.
   With long file names, it was possible to exceed this limit.  TLIB now
   permits journal lines longer than 255 characters in versions of TLIB
   that support long file names.  We allow up to 349 characters in 16-bit
   protected-mode versions (TLIBX, TLIB2 and TLIBDLL.DLL), and up to 1023
   characters in 32-bit versions (TLIB32C and TLIB32D.DLL).  [David A.]


5.50z.2       27-Jul-99

1) Fixed: The beta Win32 versions of TLIB 5.50z were failing to load
   with a "File not found" error if you did not have Novell Netware.
   (The problems was that we had accidentally built them in such a way
   that they were "implicitly linked" to the Novell DLLs.)

   By the way, Matt Pietrek's wonderful little 9216-byte DEPENDS.EXE
   utility is indispensable for diagnosing this kind of problem.
   Just type "depends /p {exe_or_dll_name}" and it will display a
   full list of the implicitly linked DLLs upon which {exe_or_dll_name}
   depends, where they were found on your system, and which ones were
   NOT found.  Get it at http://www.microsoft.com/MSJ/code/depends.htm
   [Peng L. and Eddy V.]


5.50z         24-Jul-99

1) Fixed: a bug which caused directory names to be converted to all
   upper-case under some circumstances, even when "FNAMECASE AUTO"
   was configured and the file system supported mixed-case file
   names.

2) Added: support for quoted paths and file names in some configuration
   parameters.  In particular, the PATH parameter now permits a quoted
   path containing blanks, in versions of TLIB which support long file
   names.  You may use either apostrophes (') or double-quote marks (")
   to quote paths or file names which may contain blanks.

   Note that the "PATH" keyword cannot be quoted, just the text to
   the right of it.  Also, note that environment variable and pseudo-
   environment variable references are still expanded, even when
   quoted.

   For example, if %wdir% is the name of your work directory, with a
   slash at the end, but the work directory name might contain blanks,
   then you can configure:
       PATH 'z:\libs\%wdir%*\'
   [Paul M.]

3) Added: support Novell Login Name lookup in 32-bit versions of TLIB.
   You can now configure "ID *NOVELL*" to make TLIB use your Novell
   Login ID for the TLIB user ID.  (This feature is lightly tested;
   please tell us if it does not work with your combination of server
   and Win-9x or Win-NT client software.)


5.50y         22-Jun-99   (TLIB for Windows 1.105s & Beta Win32 TLIB 1.109h)

1) Fixed: a bug which could cause the following error:
       ERROR: DO_CMPR_P(1,...,'SMOOTH NOTEXT INMEM') = 1
   when you click the Delta button on the "Enter Comment" screen.

   The problem was caused by a bug in CMPR32D.DLL that was triggered
   when "ENTABU Y" is configured.

   The previous version of CMPR32D.DLL showed as "<no version>" on
   the TLIB for Windows "About" screen.  The fixed version shows
   version number 5.51.0.1.

2) Added: native project file support for MultiEdit for Windows .PRJ
   files.  (Note: this is the same file extension used by Symantec
   Visual Cafe for its project files, but TLIB can tell the difference
   and handle them both.)


5.50x         11-Jun-99

1) Fixed: a bug which caused "tracking cache failure" warnings in
   the beta Win32 versions of TLIB.  The error was innocuous, but
   annoying.

   This bug only affected Win32 versions of TLIB.  It was most likely to
   be seen in the Win32 GUI version, but you could also make it happen
   in the Win32 console-mode version, by removing a source file from a
   named project level and then adding it back, all on one command line,
   like this:
      tlib32c adn myfile.c an myfile.c
   [Craig M.]

2) Fixed: a bug with extracting 0-length files; the previous, non-zero-length
   version would be extracted, instead of the correct (0-length) version.
   [Mike K.]

3) Fixed: a bug in the long file name support in TLIBX.EXE and the 16-bit
   TLIB for Windows, which caused "Warning: couldn't reopen myfile.exten
   to adjust its date/time" or similar.  This bug did not affect 32-bit
   versions of TLIB.
   [Tom W.]

4) Improved: NETSETUP.EXE (which also serves as part II of the SETUP
   program) to not install shortcuts/icons for missing components.  This
   is primarily so that TLIB administrators can install TLIB to a network
   directory and then prune out unneeded components (such as uninteresting
   documentation files), so that users who set up TLIB on their systems
   with NETSETUP will not have a lot of useless extra shortcuts installed.
   [Urs W.]

5) Improved: some error and warning messages.


5.50w         25-Feb-99   (TLIB for Windows 1.105r & Beta Win32 TLIB 1.109g)

1) Fixed: problems with handling long filenames with blanks in them.
   [everyone and his brother]


5.50v         17-Feb-99   (TLIB for Windows 1.105q & Beta Win32 TLIB 1.109f)

1) Added: support for the new REFNEWLN configuration parameter, which
   can be used to control the end-of-line delimiters used when writing
   "reference copies" of source files.  (Reference copies are created by
   TLIB in a project level reference directory when the "r=Y" option is
   configured for a LEVEL.)   These four settings are possible:

      REFNEWLN
      REFNEWLN CRLF
      REFNEWLN CR
      REFNEWLN LF

   The first setting (i.e., "REFNEWLN" with nothing following it) is the
   default.  It means that the REFNEWLN setting is the same as the NEWLINE
   setting (which defaults to CRLF).

   If you configure "REFNEWLN CRLF" then reference copies of source files
   will always have carriage-return+linefeed end-of-line delimiters.  If
   you configure "REFNEWLN CR" then reference copies of source files will
   have only carriage-returns as end-of-line delimiters; this is mostly
   used for Apple Macintosh text files.  If you configure "REFNEWLN LF"
   then reference copies of source files will have only linefeed ("newline")
   characters as end-of-line delimiters; this is mostly used for Unix text
   files.

   See also: NEWLINE.
   [Paul V.]

2) Fixed: a bug in the beta 32-bit versions of TLIB, which occurred when
   updating (checking-in) source files of more than 32,767 lines.  There
   was an error in the stored delta format which caused it to be readable
   only with 32-bit versions of TLIB.  The 16-bit versions would display
   "ERROR: bad .C command" when trying to process the library file.
   [Paul V.]

3) Fixed: support for colorized error/warning/note messages in TLIB32C.EXE,
   the beta Win32 console mode version of TLIB.
   [Joev D.]

4) Added: an error message that is displayed when the Migrate command
   creates a MIGRATE2.BAT file with lines that are too long to run.
   [Craig M.]

5) Fixed: a bug which prevented the user from entering his TLIB serial
   number if TLIB for Windows was started the first time via the
   "TLIB Visual Compare" shortcut.
   [Tuomas S.]

6) Changed: the way that we distribute the conversion utilities (the
   tools for automating conversion from other version control systems
   to TLIB, and also for reformatting/rebuilding TLIB libraries).

   We now double-compress them, using TLIB and PKZIP, into one very
   compact archive, CONVERT.ZIP.  This saves several hundred KB of
   space on the distribution diskettes, but it also means that before
   you can use any of the conversion utilities you must first unpack
   them.  See CONVERT.TXT for details.

7) Added: a SourceSafe-to-TLIB conversion utility for customers who are
   switching from Microsoft or OneTree/Icarus SourceSafe to TLIB.

8) Improved: several of the other conversion utilities, especially the
   PVCS-to-TLIB converter.  We now have tools to automate conversion
   from:  PVCS, SourceSafe, RCS (both MKS and GNU/Unix variants),
   MS Delta, and Sourcer's Apprentice.


5.50u         28-Jan-99   (TLIB for Windows is unchanged)

1) Fixed: a bug which caused various errors (mostly GPFs) when using TLIB
   comment files of more than 245 characters in length.  The problem was
   only observed in 32-bit TLIBs, but it could have also affected other
   versions.
   [Paul V.]


5.50t         19-Jan-99   (TLIB for Windows 1.105p & Beta Win32 TLIB 1.109e)

1) Fixed: a bug which caused spurious automatic branching under some
   circumstances when using named project levels.  The bug caused "c=N"
   fields to be stored in the project level tracking file, and when a
   subsequent Update command was done on those files, TLIB would try to
   create a new branch, even though there was no need to do so.  (The
   workaround was to use the "S" suffix in command line TLIB, or the
   "S - Specify version" checkbox in GUI TLIB, to override TLIB's choice
   of version numbers.)
   [Bill M. and Jeff Y.]

2) Added: an informative message telling when the "b=1" option on the LEVEL
   configuration parameter is the cause for a new branch (i.e., a ".1"
   version) being created.

3) Improved: TLIBCOMP, the Win95/98/NT command-line visual compare tool.
   It will now preferentially run the Win32 version of TLIB to do the
   compare, if WTLIB32.EXE is found.  (Otherwise, it'll revert to using
   the 16-bit version, WTLIB16.EXE.)

4) Changed: where WinTLIB (both 16-bit and 32-bit) looks for (or creates)
   the TLIB.INI "preferences" file in the absence of a TLIBINI environment
   variable.

   Prior to this version, if you didn't set TLIBINI, then the TLIB.INI
   file would reside in the TLIB installation directory.  That caused
   problems when two or more users of TLIB ran a multi-user TLIB from
   a network installation directory.

   So we've changed the default TLIB.INI location to be the root of
   the C: drive, to ensure that each TLIB user has his own TLIB.INI file.
   In other words, the default behavior is now as if you set the TLIBINI
   environment variable like this:

      set TLIBINI=C:\

   To ease the transition, if there is no TLIBINI environment variable
   and this version finds a TLIB.INI file in the installation directory
   but not in the root of the C: drive, then the old TLIB.INI will be
   copied from the installation directory into the root of the C: drive.

5) Fixed: the DDE API in WTLIB32.EXE (the beta Win32 version of WinTLIB).
   Both DDE and Windows-Messaging APIs now work.

6) Updated: the DDE and Windows-Messaging API sample/test applications,
   ADVDDE32.* and APIWMS*.*, respectively, and for use with WTLIB32.EXE
   (the Win32 GUI TLIB).  APIWMSG now works with either WTLIB32.EXE or
   WTLIB16.EXE, for exercising the Windows-Messaging API.  To exercise the
   DDE API, use ADVDDE32 with WTLIB32.EXE or use ADVDDE with WTLIB16.EXE.
   See ADVDDE32.* and APIWM*.* in the \TLIB\API\ subdirectory.

7) Updated: the TLIB Add-Ins for Microsoft Visual Basic 5.0 and Visual
   Developer Studio 5.0 (VC++, VJ++, etc.).  They now use WTLIB32.EXE
   instead of WTLIB16.EXE to implement the version control functionality.
   Also, TLIBVS97.INI is now obsolete; the current TLIB Add-In for
   MS Visual Developer Studio 5.0 uses TLIB.INI, instead.

8) Improved:  the command-line versions of TLIB so that they now check
   the TLIB.INI file for a user ID override.  If you choose "always"
   override in the WinTLIB "Change User ID" dialog (Under the File
   menu), then command-line versions of TLIB will also use that user
   ID.  Previously, only the GUI versions of TLIB read TLIB.INI.

   (Exception: disabling the CW command by removing it from the
   configured the COMMANDS parameter also disables user ID overrides
   via TLIB.INI, in both command-line and GUI versions of TLIB.)

   This change ensures that the GUI and command-line versions of TLIB
   are consistent in what they determine to be current TLIB user ID.
   This also makes the GUI TLIB's "change User ID" dialog a very
   convenient way to set the user ID for all versions of TLIB.

   Also, the way that the user ID override works was subtly changed
   even in the GUI versions of TLIB, so that you can reference and
   test the user ID as %tlibcfg:id% in your TLIB.CFG file.

9) Converted: the TLIB Add-Ins for Microsoft Visual Basic 5.0 and
   for Microsoft Developer Studio 5.0 (VC++, VJ++, etc.) to use the
   beta 32-bit WinTLIB (WTLIB32.EXE) instead of the 16-bit WinTLIB
   (WTLIB16.EXE).

   The two Add-In modules are TLIBVS97.DLL and TLIBVB5.EXE, respectively.

10) Redesigned: the install programs, SETUP and NETSETUP.  SETUP now
   just copies files into the TLIB installation directory, and then
   invokes NETSETUP to create shortcuts/icons, update system files,
   etc..  However, you can also use NETSETUP by itself to install
   TLIB on another workstation, or under another operating system on
   the same workstation, etc., without having to do a full re-install.

   Also, under 95/98 and NT, NETSETUP now groups documentation shortcuts
   into a sub-folder.  Also, SETUP & NETSETUP now customarily install
   both 16-bit and 32-bit versions of TLIB.

11) Fixed: the message displayed when EBF (extract/browse-mode/freshen)
   results in all files being excluded because none are out-of-date, and
   named project levels are not in use.  The message is now merely a
   note, not an error.

12) Added: support for extracting multiple files to a temporary directory,
   instead of just extracting a single temporary file.

   In WinTLIB (both 16-bit and 32-bit GUI versions), use the "As Temporary
   File(s)" checkbox on the Extract options screen.  In command-line
   versions of TLIB, use the "-t" and "-n" options, and with the -n option
   specify a directory ending in a backslash rather than a filename.
   For example:
      tlib32c -t -nc:\tempdir\ e *.c
   Be sure that you do not omit the trailing backslash.
   [Joe G. and Gordan E.]


5.50s         17-Dec-98   (TLIB for Windows 1.105m)  (Beta Win32 TLIB 1.109d)

1) Fixed: a bug in WinTLIB (both 16-bit and beta 32-bit versions) which
   caused the first "Yes All" answer to a Yes/Yes-all/No question to act
   as "Yes" instead of "Yes All".

2) Fixed: a bug in the beta Win32 GUI version of TLIB that prevented
   cancelling a compare or extract under some circumstances.
   [Al B.]

3) Added: compiler-native project support for Premia Codewright Editor
   project files (*.PJT).
   [Joe G.]

4) Added: "..." (browse to select version number) button to the Extract
   options window.  This improvement is in both the 16-bit and beta 32-bit
   versions of WinTLIB.

5) Fixed: some display anomolies in the beta Win32 visual compare.
   [Mark P., Al B., and others]

6) Added: support for copying to the clipboard from the Win32 visual
   compare.  The display speed is also a bit snappier.

7) Fixed: several incorrect menu shortcuts in WinTLIB (both 16-bit and
   beta 32-bit versions).


              04-Dec-98                              (Beta Win32 TLIB 1.109c)

1) Fixed: a bug in the beta Win32 GUI TLIB v1.109b, which caused
   double-clicking on a file to not display the version history unless
   the file was in the work directory.
   [Mark P.]


5.50r         27-Nov-98   (TLIB for Windows 1.105k)

1) Fixed: a bug that prevented the "EBF" ("show only out-of-date files")
   checkbox from working unless you had configured TLIB to use named
   project levels.
   [Paul C.]

2) Added the "base" TLIB version number (e.g., "5.50r") to the WinTLIB
   About/splash screen.  Also, improved some error diagnostics.

3) Fixed: removing "ER" from the COMMANDS configuration parameter didn't
   disable the ER (check-out/reserve) command.
   [Urs W.]

4) Enhanced: Removing "ER" from the COMMANDS configuration parameter now
   disables the "'R' - Reserve Lock [don't extract]" checkbox in WinTLIB.
   [Urs W.]

5) Updated: the Blinker DOS Extender used by TLIBX.EXE is now at version
   4.10.  (This is probably of no consequence.)

**** Both command-line and GUI Win32 versions of TLIB are now in beta
   test.  The current Win32 TLIB is mostly just a 32-bit version of the
   same old TLIB 5.50 that you are used to (though with longer file name
   support under NT), but we have great plans for enhancements in TLIB 6.0.
     If you own TLIB Combo Edition 5.04 or later, and if you can accept
   gigantic (several megabyte) emailed file attachments, then you can be
   a beta tester of the Win32 TLIBs.  Email us at support@burtonsys.com.


5.50q         15-Oct-98   (TLIB for Windows 1.105j)

1) Fixed: a bug which showed up when using the 'I' (include subdirs)
   option in combination with the 'L' or 'C' or 'O' search mode, when the
   subdirectories went more than one deep, and when the current directory
   was beneath the work directory.  The bug resulted in incorrect
   deduction of the source file path from the library or lock file path
   (it appeared to 'move up' a level).  Also, when the subdirectories went
   more than one deep, and the current directory was the work directory,
   but the wildcard spec had a partial path on it and the 'I' (Include
   SubDirs) suffix was specified, the same thing happened.
   [Dan F.]

2) Fixed: some problems in the WinTLIB GUI which occurred when the COMMANDS
   configuration parameter was configured to disable some of TLIB's
   commands.
   [Tuyen N.]

3) Fixed: a bug in the WinTLIB GUI which could cause:
     "ERROR: #423, extract/click, Property or control not found"
   The problem occurred when an attempt is made to extract without selecting
   any files but with 'S' ("specify version") checked and a version
   specification entered.

4) Added: better diagnostic error messages when MAKEDIRS_M (or MAKEDIRS_Y)
   is configured but TLIB cannot create a needed subdirectory.
   [David A.]

5) Changed: WinTLIB to make the "Include SubDirs" checkbox "sticky" when
   TREEDIRS_Y is configured.
   [Dan F.]


5.50p         29-Sep-98   (TLIB for Windows 1.105i)

1) Added: support for three new keywords: %m, %i, and %b.  These keywords
   expand into three parts of the version number:
      %m  Major (trunk) version number
      %i  mInor version number (or 0)
      %b  Branch version specification (or 0)
   [Joe G.]

2) Changed: TLIB for Windows to automatically un-check the other wild-card
   search modes when a user checks "Owned" or "Checked Out", since that is
   usually what you will want to do.  You can still use the Owned or Checked
   Out search mode in combination with one or more other search modes, but
   you will have to first check Owned or Checked Out, and then check the
   other mode(s).
   [Andy G.]

3) Fixed: a bug in TLIB for Windows which could cause you to have to click
   "Ignore All" twice instead of just once, to make it ignore all occurances
   of an error or warning pop-up message.

4) Fixed: a bug in TLIB for Windows which could cause a sequence of errors
   including the message, "dbg: 2nd tcl, tcmd='g2cfgfile', prev='g2workdir',
   cfgfile=''", and then "Form already displayed can't show modally."
   [Jeff Y.]

5) Added: support for an alternate method of Novell user ID lookup.  You
   may configure "ID *NOVELL2*" to use the alternative method.  It should
   produce the same result as the older "ID *NOVELL*" user ID lookup, but
   we have reports of that method failing on some systems.

   If you want to use your Novell login ID as your TLIB user ID, but the
   configuring "ID *NOVELL*" produces incorrect or inconsistent results,
   then try configuring "ID *NOVELL2*".

   We would be interested in reports from users of circumstances under
   which one of these methods works but the other does not.
   [Tuyen N.]

6) Fixed: a bug which caused spurious error messages if a multi-line
   configuration parameter (e.g., COMMANDS) was configured within an IFF/
   ENDIF block.
   [Tuyen N.]

7) Changed: WinTLIB to grey-out the button and menu item for changing
   your user ID if the "CW" command is not configured in the COMMANDS
   configuration parameter, and a few related changes.  (This is for
   installations in which it is necessary to prevent users from
   impersonating one another.)
   [Tuyen N.]


5.50m         17-Jul-98   (TLIB for Windows 1.105g)

1) Fixed:  A bug which caused TLIB to display the error message:
      ERROR: Illegal command: "ASFL" ("AFLS")
   or similar.

   In TLIB for Windows, this error occurred when using Add/Alt (Add/Alter
   Project Level), and checking both the "S" and "F" options.  In command
   line versions of TLIB, the error occurred when using the AFS command.

   Fixing this bug required changes to both the TLIB engine and the
   Configuration Wizard, since the Configuration Wizard was generating a
   COMMANDS configuration parameter in TLIB.CFG which lacked the needed AFS
   command.  Configuration Wizard version 1.3c now fixes this, but you'll
   still need to change older TLIB.CFG files by adding "AFS/T," to the
   list of enabled commands if you need to use the "F" and "S" options in
   combination.
   [Ed J.]

2) Fixed: a bug in WinTLIB, in the handling of the special "PROJLEV ="
   configuration setting.  Using this setting caused WinTLIB to default to
   using the A search mode, which is inappropriate, since there is no
   named project level when "PROJLEV =" is configured.
   [Bill H.]

3) Fixed: a subtle problem in TLIB's handling of %!name% and %!!name%
   references within IFF/ENDIF blocks.  The following no longer results
   in an error:
     IFF 0
        REM -- this should NOT cause an error
        SET x=%!!never_defined%
     ENDIF
   However, you can still do tricky things like this:
     SET xxx=endif
     IFF 0
             SAY Note: this should not display
     %xxx%
     SAY Note: this SHOULD display!
   [Bill H.]

4) Improved: handling of an obscure error condition.

   If the UD (discard changes) command thinks that your old source file has
   been edited, it renames it to *.TM0 before extracting an unmodified copy,
   and it displays a message telling you what has been done.  This is
   intended to prevent accidental loss of your work.  If the .TM0 file
   already exists, then TLIB renames your old source file to *.TM1, instead.
   It can also try *.TM2 through *.TM9.  But if all ten *.TM? files already
   exist, then the rename attempt fails.

   Starting with this version of TLIB, if all ten *.TM? files already
   exist, then TLIB offers to delete the oldest of them, to permit