------------------------------------------------------------------------------

BWSBEXP.DLL - v2.1a (23Nov96) - History log:
    1. Finally, released the 32-bit version.  This required 'fixes' to the CW
       search engine to enhance search times (was just too slow in the 32-bit
       version).  CW v5.0 fixes this.  Also, adjusted the 'Balanced Expression
       Setup' dialog box's controls as needed for readability in the 32-bit
       environment.
    2. Recompiled the 16-bit version to bring in the Setup dialog box changes.

------------------------------------------------------------------------------

BWSBEXP.DLL - v2.0d (30Jul95) - History log:
    1. Added Help file support (BWSBEXP.HLP).
    2. Removed BWSBEXP.DOC and BWSBEXP.WRI files from release since the
       BWSBEXP.HLP file contains all the API documentation now.

------------------------------------------------------------------------------

BWSBEXP.DLL - v2.0c (02Apr95) - History log:
    1. Fixed memory freeing bug that would cause a GPF.  This was noticed
       periodically when closing a project and opening another project.
  
------------------------------------------------------------------------------

BWSBEXP.DLL - v2.0b (07Feb95) - History log:

    1. New version to account for an incorrect posting of v2.0a on CompuServe.
       Basically, Premia released the 'wrong' version of BWSBEXP.DLL on
       CompuServe and was downloaded by some 55 users.  The correct version
       was posted the next day.  The version on the Premia BBS was always
       correct.  Both releases had the same release date and version, but
       different EOFs.  The correct version had an EOF of 47,456.
    2. Release BWSBEXP3.DLL which is identical to BWSBEXP.DLL except works
       with Codewright v3.0 and older (all features are the same now).
    3. Fixed potential looping situation when matching an expression whose mid
       expression was a duplicate of another expression's strings (noticed
       with '#ifdef|#else|#endif' and '#ifndef|#else|#endif' in C language).
    4. Fixed GPF encountered when matching an expression which begins at the
       beginning of the buffer (line 1, column 1).

------------------------------------------------------------------------------

BWSBEXP.DLL - v2.0a (10Jan95) - History log:

    1. Major enhancement to the type of balanced expression strings supported.
       Now, balanced expressions that contain expression strings that are
       sub-strings of other expression strings are handled properly.  These are
       like VBASIC's expressions 'IF | ELSE | END IF', 'SUB | END SUB' and
       'BEGIN | END'.  All of these balanced expressions contain expression
       strings that are in some way a sub-string of another expression string or
       VBASIC language syntax.  In the case of 'SUB | END SUB', it is
       complicated by VBASIC's language syntax for 'DECLARE SUB' and 'EXIT SUB'.
       However, all balanced expressions can be supported now if properly
       configured (see the CWSAMPLE.INI supplied for a sample '.BAS' extention
       configuration).
    2. Suppport has been added for extension specific definitions of a Line
       Continuation character and a Quoted String Escaping character.  The new
       API function BWS_BExpSetExtConfig() allows the user to configure such
       characters (see the CWSAMPLE.INI file for an example).  These character
       definitions allow the balanced expression search logic to account for
       single-line expressions that span more than one line because of Line
       Continuation characters (i.e., like C's backslash ('\') character at the
       end of a line and within a quoted string).  Also, the Quoted String
       Escaping character used in a quote-type balanced expression to force a
       literal interpretation of the next character will be handled properly
       now (i.e., like C's backslash in a quoted string "...\"..."), if defined.
       If an extension supports either or both of the characters, a entry should
       be placed in the CWRIGHT.INI file under the corresponding [Extension.???]
       section that calls the BWS_BExpSetExtConfig() API function (not
       supported through the 'Balanced Expression Setup' dialog screen).
       BWS_BExpSetExtConfig API function in documented in the MS-Word
       BWSBEXP.DOC file provided.
    3. Balanced expression strings with embedded whitespace characters are
       handled properly now.  Meaning any number of whitespace characters (one
       to n) will still cause a valid match when a search is executed.
    4. Internal balanced expression search logic is somewhat faster due to
       optimizations in the string manipulation logic needed to build the
       dynamic search strings used in searching.
    5. 'Matching all ...' status line update messages are executed less often
       to improve matching speed and reduce the continuous, 'jerky' status line
       updating.
    6. Fixed bug in Break key support that could cause searches executed after
       a prior balanced expression search was terminated with the Break key to
       fail (i.e., report 'No balanced expressions found.').  This would happen
       on the next forward only searches.  As soon as a backward search was
       executed, all searches would function properly again.

------------------------------------------------------------------------------

BWSBEXP.DLL - v1.1a (22Sep94) - History log:

    1. Updated 'Balanced Expression Setup' dialog to work with Codewright
       v3.1.  This was needed to account for Premia's renaming some of their
       internal edit controls that the dialog makes use of.

------------------------------------------------------------------------------

BWSBEXP.DLL - v1.0f (20Aug94) - History log:

    1. Fixed 'Balanced Expression Setup' dialog funnies when in 600 x 480
       resolution (some fields were laid out too close causing truncation or
       ugly overlays).
    2. Fixed bug causing buffers with no extension to be unuseable with the
       Balanced Expression fucntions.  Now, buffers with no extension default
       correctly the '.*' Balances Expression definitions.

------------------------------------------------------------------------------

BWSBEXP.DLL - v1.0e (14Apr94) - History log:

    1. Moved to MSVC++ 1.5 compiler (from Borland C++ 3.1). This uncovered
       a few glitches with null pointers used improperly.  This also fixes
       a bug where, periodically, expressions would not be located even
       though they did exist in the buffer.
    2. Enhanced search speed in some cases where multiple expressions with
       the duplicate end expressions were involved (e.g. #ifdef/#endif and
       #ifndef/#endif expressions for example).

------------------------------------------------------------------------------

BWSBEXP.DLL - v1.0d (20Dec93) - History log:

    1. Updated the Balanced Expression Setup dialog box to include source
       and destinstion extension combo boxes and made the dialog box a
       stand-alone dialog no longer accessed from the Extension-specific Setup
       dialog box, but accessed by calling the new function BWS_DlgBExpSetup.
       The Balanced Expression Setup dialog box also now contains a button
       to access the Extension-specific Setup dialog box directly.
    2. With the changes to Balanced Expression Setup dialog box, made the
       BWSBEXP.DLL a stand-alone DLL no longer needing the CWDIALOG.DLL.
    3. Fixed bug causing ignore logic to sometimes treat multi-line
       incorrectly and compute the remainder of the buffer as a comment.
    4. Fixed bug in locator logic which caused searches for nearest
       expression while in the middle of an expression to take too long in
       large buffers (simply changed FORWARD then BACKWARD search to do a
       BACKWARD then FORWARD search instead).
    5. Included with this version is the first revision of the BWSBEXP.DOC
       file which documents the available API functions supported by the
       BWSBEXP.DLL.

------------------------------------------------------------------------------

BWSBEXP.DLL - v1.0c History log:

    1. Changed MatchAll's "All ... expressions matched." message to
       include the number of expressions matched, too (i.e. "All (nnn)
        ... expressions matched.")
    2. Fixed bug that could possibly cause ignore logic to fail and
       sometimes loop in a very extreme case.
    3. Fixed bug that could possibly cause a 'Freeing memory twice'
       error.

------------------------------------------------------------------------------

BWSBEXP.DLL - v1.0b History log:

    1. Fixed bug that slowed down find/match operations when Ignore
       Comments is enabled and multi-line comments are configured for
       the current extension (mulit-line meaning comments that can
       span more than one line like C's /* ... */ comments)
    2. Improved expression matching logic where multi-line comments
       are involved (try matching all brackets in CW's Brace.C source...
       only 10 to 15 seconds now...good for that particular source)
    3. Fixed Alias support so that the destination extension's
       [Extension.???] section (in CWRIGHT.INI file) is loaded if the source
       extension is used prior to loading a file with the destination's
       extension (previously no bal-exp entries were loaded/found until a
       file with the destination's extension was loaded)

------------------------------------------------------------------------------

BWSBEXP.DLL - v1.0a History log:

    1. Added BWS_BExpVersion() routine that returns a static string
       pointer to BWSBEXP's version id string
    2. Improved BWS_BExpMatchAll() routine's speed somewhat (note,
       ignoring multi-line comments (i.e. /* ... */) slows down
       matching/locating the most!)
    3. Fixed search selection only support to work correctly with
       selections (i.e. stay within selection...particularly with
       column-type selections)
    4. Fixed SysWaitBegin() and SysWaitEnd() sychronization bug...
       this is wait was leaving the hour-glass displayed sometimes
    5. Fixed my disable/enable undo routine to handle selections
       correctly (this is what was screwing-up undos involving
       selections and leaving erroneous selection coloring on the
       screen)

------------------------------------------------------------------------------
