
/*
 * vxrxC21c.zip -- Patches to upgrade VX-REXX Client/Server Edition from 
 *                 version 2.1B to 2.1C
 *
 * How to patch VX-REXX version 2.1B to version 2.1C:
 *
 *   0) Backup your existing VX-REXX directory.
 *   1) Copy the ZIP file to the directory where VX-REXX is installed
 *      and make it your current directory.
 *   2) Unzip the patch file, making sure that your UNZIP program creates
 *      directories stored in the ZIP file.
 *      For example, if you are using UNZIP from InfoZip, use
 *          unzip -o vxrxC21c
 *      If you are using PKUNZIP from PKWARE, use 
 *          pkunzip -d -o vxrxC21c
 *   3) Your VX-REXX directory will contain a number of new files.
 *   4) Run the PATCH.CMD file to patch the .EXE, .DLL, and .INF files.
 *      Your PROJECTS directory will not be changed.
 *
 *   VX-REXX 2.1C is now installed and ready-to-go. See the revised online
 *   "Read Me First" or the rest of this file for the list of changes.
 */
 
/******************************************************************************

New in version 2.1C
===================

====Base Product====

====Design Environment: General

  o Closing VX-REXX

    Closing VX-REXX from the task list when using OS/2 Warp now works.
    Previously, this would result in a syntax error.

  o Console

    Now either ENTER key (the one on the main keyboard or the one on the
    numeric keypad) can be used in the Console to terminate a line.
    Previously, only the ENTER key on the main keyboard would work.

  o Container object

    Previously, when a Container object in design mode was set to detail view,
    and then was dragged, unpredictable results would occur. This now works
    correctly.

  o Deleting event sections

    Previously, deleting an event section sometimes resulted in the event
    remaining set for the object. Deleting event sections now works correctly.

  o Direct editing

    Previously, some characters where not displayed properly when direct
    editing DescriptiveText and MultiLineEntryField objects. Characters are now
    displayed in direct edit mode as they appear on the object.

  o Drag and Drop macros

    Corrected the drag and drop macro for setting the SpiltBarLeft property.
    Previously, the dialog presented the value as a checkbox. The dialog now
    contains an entry field instead.

    The incorrect reference to the Cancel property for Timer objects with
    respect to drag and drop code generation has been removed; Timer objects
    do not have a Cancel property.

  o Enabled property

    Previously, in design mode when the window's Enabled property was
    turned off and the window lost its focus to a modal window (such as the
    Menu Editor) it would not be properly re-enabled. The window is now
    enabled properly in this case.

  o Resource Editor

    Removed the Help menu from the Resource Editor. This is no longer
    required.

  o Saving

    Corrected a problem where, occasionally, Save As Text would write out
    the wrong number of lines for binary information.

====Runtime Environment: Objects

  o All objects

    Previously, unpredictable behavior would occur when objects were
    subclassed by parts of the system other than VX-REXX (such as Pen for
    OS/2). Subclassing now works in this case.

    Changed the Height property to remove the one pixel height limit. The
    problem was that the actual height of an object could get out of sync
    with the value reported by the Height property if it was set to zero.

    Previously, you could not get the Caption property of an object using its
    window handle (HWND); this would result in a REXX syntax error. Now this
    works as stated in the Programmer's Guide.

    Disabled objects now appear in the correct color. Previously, the disabled
    color was not exactly correct.

  o Container object

    Previously, when dragging more than 47 records from a Container object
    the records would either be inadvertently deselected or would leave pixel
    trails on the screen as they were dragged. This no longer occurs.

    Fixed the problem that caused OS/2 Warp to crash if you changed the
    Container object's ShowCaption property from 1 to 0.

    Previously, if you were to drag and drop a container record that had the
    Filename attribute set onto a printer or the Shredder, unpredictable
    behavior would occur. This now works correctly.

    Dragging and dropping a font onto a Container object in details view will
    now immediately affect the entire container and update the Container's
    Font property as well. Previously, this was not always the case.

  o DDEClient object

    Corrected an ambiguity with the DDEClient Request method: previously it
    would return a null string if an error occurred (which is also a possible
    valid return value). Now all of the DDEClient methods set the VRError()
    value to one of OK, BUSY, or ERROR to describe what happened.

  o MultiLineEntryField object

    Corrected the unpredictable behavior that occurred when the font size of
    a MultiLineEntryField object's parent window (the edit window or a
    GroupBox, for instance) was changed.

  o NoteBook object

    The status text in the NoteBook object is now repainted properly.
    Previously, when using OS/2 Warp it would not appear correctly when the
    StatusText property was set.

    Previously, the Notebook object tab lengths would grow to fit the longest
    caption, but would not shrink when the longest caption was made smaller.
    They now shrink as expected.

  o ValueSet object

    Corrected a problem in the ValueSet object that was preventing items
    other than the first from being removed.

====Runtime Environment: Functions

  o VRParseFileName and VRParseFilePath functions

    The functions VRParseFileName and VRParseFilePath now accept long
    filename extensions; previously the limit was 3 characters.

====Sample programs

  o CUA 91 Skeleton sample

    Corrected a syntax error in the CUA 91 Skeleton sample program which
    occurred when direct editing a field title when in details view.

====Database Objects====

====Design Environment: Chart Editor

  o Chart text

    Previously, opening the options dialog for chart text and changing the
    Frame option would cause serious and persistent problems with the Chart
    object at run time.  This has been fixed.

====Design Environment: Query Editor

  o Previously, the Query Editor would sometimes emit calls to the Query and
    Connection Init routines instead of their Fini routines in the Fini section.
    This has been fixed.

  o The Query Editor now ignores colons which are part of a timestamp when
    setting host variables. Previously, colons in a time specification were
    misinterpreted as host variables.

  o Previously, the Query Editor could emit calls to disconnect before closing
    the queries.  It will now always generate code to close the queries first.

  o The Query and Connection Init routines now supply the name of the
    corresponding Query or Connection object in the error message window
    when an error occurs.

====Runtime Environment: Chart Object

  o DataLabelFont option

    Setting the DataLabelFont option now works for pie charts. Previously, the
    font did not change correctly.

  o Printing

    Chart printing has been improved to support a wider range of devices,
    specifically HP printers.

  o ResetData method

    The ResetData method now works correctly when returning to the design
    environment under OS/2 Warp.

  o SetOption

    Doing a SetOption at run time for any manual scale value field now works
    for negative values.

  o Version property

    The Version property of the Chart object has been updated: 2.10 means
    the 2.1 released chart object. Patch level C has version 2.13.

====Runtime Environment: Connection Object

  o Connecting with ODBC

    Previously, having two ODBC Connection objects would cause unpredictable
    behavior when one connection was accessed after the other had been
    closed. This now works correctly.

  o Prompt property

    Previously, when connecting to DB2 with the Prompt property set to
    Always the userid and password would not necessarily appear in the
    connect dialog.  This has been changed so that having Prompt set to
    Always will show userid and password prompts.

====Runtime Environment: Query Object

  o Accessing Connection objects

    Query objects can access Connection objects on parent windows. This
    means that, for example, different query objects can exist on notebook
    pages and use a Connection object which is on the same window as the
    Notebook.

  o Host variables in the SQL statement

    Previously, the Query object incorrectly treated the colons (':') in an SQL
    statement time specification as markers for host variables. This would
    result in a 'Cannot convert xxxx to a date time' error when attempting to
    include a time in a SQL statement. It now ignores any colons which are
    part of a time stamp.

    Previously, problems would occur with host variables whose values were
    greater than 256 bytes. Now host variable values are limited only by the
    database system being used.

  o Long column values with DB2

    When using DB2, 4000 byte columns are now included by the Query object
    in the search criteria when looking for a particular row, ie, during Update,
    Delete, and Search operations. Previously they were not included and all
    rows which were identical except for their 4000 byte columns were treated
    identically.

  o Trailing blank characters

    Trailing blanks are now stripped by the Query object from string column
    values returned from Watcom SQL and ODBC databases.

====Runtime Environment: Bound Objects

  o Accessing Query objects

    Bound objects can access Query objects on parent windows. This means
    that, for example, all bound objects in a notebook can use the same Query
    object located on the same window as the Notebook. Also, objects can be
    located on secondary windows which are bound to a Query on the main
    window. In this case however, the secondary window must be created
    before the query is opened and similarly must be destroyed before query is
    closed. This is required since the Query object searches dynamically for
    bound objects when the query is opened, and hence will not find them if
    they are not created at that time.

  o Container object

    Previously, when the last database record in a Container object was
    deleted (using the DBDelete method) it would not be removed from the
    Container itself (although it was deleted from the database). Now the last
    database record is removed from the Container when deleted.

  o List type bound objects

    Variables bound to a Query object are now updated when a record is
    selected in any list type object (including a Container) which has the
    MoveDBCursor property enabled.

    List type bound objects now seek to the start of the database table after
    the query is opened and the object has been filled. Previously, the query
    would be positioned at the end of the table after the list type object was
    filled.

====Sample Programs

  o Print Chart sample

    The Print Chart sample program has been improved to remove several
    problems.

******************************************************************************/
