RELEASE.TXT -- TLIB Release Notes (formerly RELEASE.DOC) ----------- NEW 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.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 tag, when parsing HTML files in Native Project mode. When an 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 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: o A tiny TLIB icon is shown for source files that are under version control (i.e., for which a corresponding TLIB library file exists). o A red check-mark is superimposed for files that you have checked out for modification. o 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.) o 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 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 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 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 tag, which can be placed in the 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 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 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 requires a tag. Without a tag, TLIB must assume that all such links point to other web sites. However, TLIB can often handle links like 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 , 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 LIBDIRQ , 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 "" 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 support2@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 the rename to succeed. [Craig M.] 5.50L 30-Jun-98 (TLIB for Windows 1.105f) 1) Improved: The Configuration Wizard, in how it configures the ID and LOKEXT parameters for some networks. This is version 1.3b of the Configuration Wizard. [Gary S.] 2) Added: A "new user hint" about the use of the "Owned" wild-card search mode. [Gary S.] 3) Increased: the maximum length of the EXTENSION configuration parameter, from 500 characters to 750 characters. You must use "continuation" lines to configure a long EXTENSION list. A continuation line is indicated by ending the preceeding (incomplete) line with a backslash character (\). By using continuation lines, you can now configure a list of source file extensions that is up to 750 characters long. Note #1: each line must still be less than 254 characters in length. Note #2: you still must ensure that each source file extension maps to a unique library file extension. These three examples are equivalent: extension c,h,asm,bat,pas,,cmd,me,__m,__l,frm,bas,ico,doc,txt,frx extension c,h,asm,bat,pas,,cmd,me,__m,__l,frm,bas,ico,\ doc,txt,frx extension c,h,asm,bat,pas,,cmd,me,__m,__l,frm,bas,ico\ ,doc,txt,frx [Cal V.] 5.50k 11-Jun-98 (TLIB for Windows 1.105e) 1) Fixed: in TLIB for Windows, the default snapshot name sometimes had an incorrect file extension when using compiler-native project mode and taking a snapshot. 2) Fixed: in compiler-native project mode for Visual Basic (.VBP project files), .CTL/.CTX files were not being listed. [Thomas D. and Mike H.] 3) Improved: message text in a few places, for clarity. 5.50j 11-May-98 1) Fixed: a bug which could cause TLIB's wild-card specs to sometimes find files that they didn't really match. For example, if there existed a TLIB library file called INDEX.H$ML, corresponding to a source file called INDEX.HTML, then it would be found by a wild-card spec of "I*.HTM". The problem was due to the Win-95 and NT short file names, which causes INDEX.HTML to also have the name INDEX~1.HTM or similar. The same thing could be seen with the DIR command, at a MS-DOS box command prompt: "dir *.htm" would find INDEX.HTML. At the same time, we fixed a closely-related bug in TLIB's support for multiple and embedded asterisks in wild-card specs under operating systems (such as DOS) which do not handle them properly. E.g., "ABC*DEF.C" should match only files that end in DEF.C. This was working in TLIB 5.02, but broken in TLIB 5.03; now it works again. [Blair W.] 5.50i 1-May-98 1) Fixed: a bug in the compiler-native project support for MS VC++ / Developer Studio compiler-native project file support (*.DSP), which could cause TLIB to find a garbled directory name for one or more files. 2) The Win32 console mode version of TLIB is now in beta test. Let us know if you'd like to be a beta-tester. 5.50h.1 13-Apr-98 1) Fixed: an apparent wildcard-expansion logic error in the Win95 Long Filename support. We never saw a symptom for this one. Only TLIBX.EXE and TLIBDLL.DLL were affected, the other TLIB executables are still at version 5.50h. 5.50h 25-Mar-98 (TLIB for Windows 1.105d) 1) Fixed: a bug which could cause TLIB for Windows to fail with an "Out of Stack Space" error while listing versions. (Only WTLIB16.EXE was affected by this fix.) [John D.] 5.50h 20-Mar-98 1) Added: support for continuation lines for the EXTENSION configuration parameter. As with the COMMANDS parameter, a continuation line is indicated by ending the preceeding (incomplete) line with a backslash character (\). By using continuation lines, you can now configure a list of source file extensions that is up to 500 characters long. Note #1: each line must still be less than 254 characters in length. Note #2: you still must ensure that each source file extension maps to a unique library file extension. These three examples are equivalent: extension c,h,asm,bat,pas,,cmd,me,__m,__l,frm,bas,ico,doc,txt,frx extension c,h,asm,bat,pas,,cmd,me,__m,__l,frm,bas,ico,\ doc,txt,frx extension c,h,asm,bat,pas,,cmd,me,__m,__l,frm,bas,ico\ ,doc,txt,frx [James H. (and several others)] 2) Fixed: several bugs in the TLIB Add-In for Visual Basic 5.0, mostly related to the use of project groups. IMPORTANT NOTE: To install the fixed Add-In module requires several manual steps, to ensure that the Win-95 or NT registry is correctly updated: [If this is the first time you've installed the VB 5.0 Add-In, then skip steps a-c.] a) Manually delete the old TLIBVB5.EXE from the TLIB installation directory (possibly C:\TLIB\). b) Start VB 5.0. When it starts, it will complain that: 'TLIB Version Control for Visual Basic 5.0' could not be loaded. Remove it from the list of available Add-Ins? Click "Yes". c) Shut down VB 5.0. d) Copy the new TLIBVB5.EXE into the TLIB installation directory. e) Run the new TLIBVB5.EXE (from the TLIB installation directory), as if it were a stand-alone program. You might see the message: "TLIB add-in installed..." Click OK. Note that no message will appear if TLIB/VB was already listed in the 'vbaddin.ini' file. f) Start VB 5.0 again. g) Click Add-Ins. Click Add-In Manager. Click on "TLIB Version Control for Visual Basic 5.0", to make the check mark appear. Click OK. You should see the TLIB/VB progress window appear and begin to check your project. (If you do not have locking enabled, this will happen so fast you will only briefly see this window.) TLIB for VB 5.0 is installed! TLIB/VB will automatically start whenever you run VB as long as it is enabled (checked) in the add-ins menu. [Tom M.] 5.50g 28-Jan-98 (TLIB for Windows 1.105c) 1) Fixed: a misleading message. 2) Fixed: a bug which caused a bogus Warning message. The problem occurred when extracting a source file that had no extension (e.g., "makefile") using the "L" (libraries) or "C" (checked- out and locked) or "O" (owned) wild-card search mode. The problem was due to inconsistent handling of the optional trailing "." in the file name; additionally, the message showed an extra backslash in the path, to further confuse you. The bogus warning looked something like this: Warning: TREEDIRS N configured but makefile. isn't in workdir, and C:\MYWORK\\makefile also exists; the entry for makefile in C:\MYWORK\TLIBWORK.TRK will be misleading. This problem has been corrected. [Kevin H.] 3) Added: In WinTLIB, the ability to suppress multiple pop-ups of "Note:" and "Warning:" and "ERROR:" messages which were generated via the "say" configuration parameter. You can make TLIB display a message when it reads its configuration file by adding a "say" (or "warn") statement to the configuration file. In command-line versions of TLIB, the message will be displayed on the console. In TLIB for Windows, the message will be written to the "view status log" (which you can examine via the "View Log" button or "Run Manual Command"), just like one of TLIB's own messages. If the message begins with "Note: " or "Warning: " or "ERROR: " then it will also be popped-up in a message box, just like one of TLIB's built-in warning messages. However, since TLIB for Windows rereads the TLIB configuration files under various conditions (e.g., whenever you set the current directory), the message box may pop up repeatedly. This would not have been much of a problem, except that, prior to this version of TLIB, the "Ignore For all commands" button would not suppress repetitions of popped-up user-configured messages. This has been changed. You can now click "Ignore For all commands" to prevent a user-configured message from being popped-up again, just as you can for TLIB's built-in warning messages. (Note, however, that the message will still be recorded in the "view status log.") There is one minor unavoidable difference between how this feature is implemented for TLIB's built-in messages, and how it is implemented for user-configured messages that are displayed via the "say" or "warn" configuration parameter. With TLIB's built-in messages, if the message is "parameterized," that is, if it contains a file name or similar "parameter," and the file name changes from one instance of the message to another, that difference is considered to be insignificant, and the second pop-up of the message will still be suppressed. However, this can't be done for user-configured messages. [Urs W.] 5.50f 12-Jan-98 (TLIB for Windows 1.105b) 1) Fixed: a bug which caused a bogus error message when a file was checked out for modification at two project levels (either to you and to another person, or both to you) with LOCKING B configured, and you did an Update to check in the file. This problem was present at least as far back as version 5.02d. [Joe K.] 2) Improved: the TLIB Configuration Wizard user interface in several details, and fixed a bug that could cause an "Illegal function call" error if you added a blank wild-card spec to the list of tracked files on question 9. The configuration wizard is now version 1.2b. [Keith R.] 3) Fixed: a minor bug in TLIB for Windows which caused it to upper-case manually-entered commands ("Run Manual Command"). 4) Added: a menu command in TLIB for Win