
RELEASE NOTES FOR XVT/PM BINARY RELEASE 3.01   July 13, 1993
============================================================

This readme and the "XVT Portability Toolkit Manual" define the scope of
functionality for this release and supersedes previous documentation relating
to the XVT API.

This file contains the following sections:

    1.  XVT/PM NOTES
    2.  PRODUCT RELEASE CONTENTS
    3.  USAGE
      3.1.  Compiler command-line flags
      3.2.  Installing New Makefile Templates in XVT-Design
      3.3.  Shipping the XVT DLL
    4.  FIXED BUGS SINCE XVT/PM 3.0
      4.1.   XVT/PM-Specific Bugs Fixed
      4.2.   XVT Text Edit Bugs Fixed
      4.3.   XVT Shared Components Bugs Fixed
      4.4.   XVT CURL Bugs Fixed
    5.  KNOWN BUGS
      5.1.   XVT/PM-Specific Known Bugs
      5.2.   XVT Text Edit Known Bugs
      5.3.   XVT Shared Components Known Bugs
      5.4.   XVT CURL Known Bugs
    6.  GETTING TECHNICAL HELP


1. XVT/PM NOTES
---------------
This release corrects critical known bugs and makes significant structural
changes to the libraries in the XVT/PM toolkit.

This release supports the XVT libraries on OS/2 PM 2.0 using the following
compilers and linkers:
 
        IBM C Set/2  (1.0)              IBM LINK386 Linker
(New)   IBM C Set++  (2.0)              IBM LINK386 Linker
(New)   Borland C/C++ for OS/2 (1.0)    Borland TLINK (Turbo) Linker

Make sure that you have complete and up-to-date versions of the compiler, 
linker, OS/2 PM toolkit and OS/2 2.0 (including the OS/2 October '92 
ServicePak).

Several important structural changes have been made to the XVT/PM product
libraries since the 3.0 Release (refer to the Platform-Specific Book for
more information):

  A) The C run-time library for IBM C Set/2 and C Set++ compilers and 
     linkers use the "_Optlink" (Default) calling convention, whereas the PM
     API functions and XVT/PM API functions use the "_System" calling 
     convention.  The XVT/PM API header files now explicitly include the
     "_System" calling convention, defined by the macro XVT_CALLCONV1 (in 
     the header files xvt_cc.h and xvtproto.h) making linking simpler when
     other calling conventions are required by applications.

     With the addition of the Borland compiler, XVT_CALLCONV1 is also used
     to define the Borland calling convention "_stdcall."

  B) In support of additional compilers for OS/2 as well as providing
     better version control, the naming convention of the XVT/PM library,
     makefiles, and module definition files have been changed in support of
     the IBM compilers and linkers:

       LMXVTP.LIB becomes XVTPI310.LIB (Import Library)
       LMXVTP.DLL becomes XVTPI310.DLL (Dynamic Link Library)
       DLLAPP.DEF becomes APPIBMC.DEF  (Application Module Definition)
       MAKEFILE   becomes MAKEIBMC     (Makefile names)

     In addition, the following file names are added for Borland support.

       XVTPB310.LIB  (Import Library)
       XVTPB310.DLL  (Dynamic Link Library)
       APPBORC.DEF   (Application Module Definition)
       MAKEBORC      (Makefile names)

     For the library files the conventions used are:
 
       XVTP{I,B}{VER}
       I - IBM C Set/2 and C Set++ Compilers and LINK386 linker
       B - Borland C/C++ Compiler and TLINK linker
       VER - XVT/PM version as in 310 for XVT/PM 3.01.00


     IMPORTANT NOTE:
       The version-labeled library names used in this release (XVTPI310.LIB
       and XVTPB310.LIB) have been copied to their standard filenames
       (LMXVTP.LIB and LMXVTPB.LIB) for compatibility with XVT-Design and
       existing application makefiles.

       If the new naming convention causes problems in maintaining your
       makefiles, you may use the standard library filenames. However, OS/2
       does not allow Dynamic Link Library (DLL) names to be changed.
 
  C) To make it possible to replace help functions (xvt_help), error function
     (xvt_interr), memory functions (xvt_*free, xvt_*alloc) and text edit
     functions, certain object files have been moved outside of the Dynamic Link
     Library (DLL) and into the Import Library.

     Source code is provided for the following:

       help function - VHELP.C
       error function - VINTERR.C
       memory functions - VMALLOC.C
 
     Source code for the text edit functions may be purchased separately.

     Refer to the Platform Specific Book for XVT/PM for more information on
     replacing these functions.  The object modules in the static libraries
     XVTPI310.LIB and XVTPB310.LIB are known as

       help function - VHELP
       error function - VINTERR
       memory functions - VMALLOC
       text edit functions - VTC, VTE, VTM, VTV, VTX

     The application definition modules APPIBMC.DEF and APPBORC.DEF have
     been modified to reflect the above changes and should be used instead
     of the old DLLAPP.DEF or DLLAPP2.DEF files.

  D) The makefiles provided with XVT/PM have been modified to reflect
     all of these structural changes and are now known as either MAKEIBMC or
     MAKEBORC.  They also contain enhancements reflecting version control
     of the libraries. 

     Note:  These makefiles contain an XVT/PM version variable (XVTVERSION)
       used in the concatenation of the library names.  This variable must
       either be set in the makefiles or be set as an O2/2 environment variable.

  E) If the new IBM C Set++ Compiler is used, modifications must be made to
     MAKEIBMC makefiles in order to compile and link XVT/PM applications:

       From the compiler command line, remove the -Ss+ compiler flag (allows
       use of "//" comments) and add the -Fd+ compiler flag (store internal
       workfiles on disk).  (optional)

       From the linker command line, remove the OS/2 dde4mbm library
       (multi-threaded, migration extensions).  (required)

  F) In correcting a set of problems associated with "drawing collisions" with
     group boxes and list edits or list buttons, changes were made in the 
     drawing order for group boxes.  Group boxes should be located in the 
     display layering before (lower than) any controls which they group.  This
     includes group boxes in any native PM resources, any URL resources, and any
     WIN_DEF structures.  This is demonstrated in the DLG example supplied
     with this release. In particular, any list edits or listbuttons which
     obscure group boxes (including when dropped) should occur after (higher
     than) any group boxes.

  G) Default ICON files no longer use the extension .ICP, rather they now
     use the OS/2 convention .ICO.

  I) Support for the following attributes has been added:

       ATTR_MALLOC_ERROR - allows specification of a memory allocation error
                           function (implemented to allow compatibility with
                           other XVT-supported platforms)
       ATTR_WIN_PM_TWIN_STARTUP_RCT - allows specification of initial task 
                                      window dimensions
       ATTR_WIN_PM_CLASS_ICON - allows specification of document window 
                                minimization icons
       ATTR_PM_QUEUE_SIZE - allows specification of native PM message queue size


2. PRODUCT RELEASE CONTENTS
---------------------------
After installing the XVT/PM release as directed, your XVT directories
should contain the following updated files:

readme - this file

doc directory
    errcodes.txt - error code listing for XVT/PM 3.01.00 libraries

bin directory
    cchelp.exe - XVT help compiler
    curl.exe - version 3.00 of the CURL resource compiler
    errscan.exe - xvtpi310 version of error code extraction utility

cchelp directory
    makeibmc - cchelp makefile for IBM C Set/2 and C Set++ compilers
               and LINK386 linker
    makeborc - cchelp makefile for Borland C/C++ compiler and TLINK linker
    cchelp.c - Source for cchelp XVT help compiler

curlsrc directory
    makeibmc - curl makefile for IBM C Set/2 and C Set++ compilers
               and LINK386 linker
    makeborc - curl makefile for Borland C/C++ compiler and TLINK linker
    curlread.me - read file for CURL
    source files for CURL:
      abnormal.c backend.c branch.c burl.c burlfrl.c burlpmrc.c
      burlprj.c burlrez.c burluil.c burlwinr.c cmalloc.c curlkey.c
      curlxvt.c dbg.c furlutil.c furl_out.c hfind.c instream.c
      lex.c misc.c notxvt.c path.c pfa.c spplib.c sppmain.c tparent.c
      yycurl.c yyspp.c abnormal.h backend.h backends.h branch.h
      burl.h burlfcn.h cmalloc.h curl.h curlkey.h curlmenu.h curlsel.h
      curlxvt.h dbg.h def.h furltype.h furl_out.h hfind.h instream.h
      lex.h misc.h path.h pfa.h spp.h sppint.h spplib.h tparent.h
      vresread.h yycurl.h yyproto.h yyspp.h curlread.me yycurl.sed
      yyspp.sed curlxvt.url yycurl.y yyspp.y

doc directory
    errcodes.txt

errscan directory
    makeibmc - errscan makefile for IBM C Set/2 and C Set++ compilers
               and LINK386 linker
    makeborc - errscan makefile for Borland C/C++ compiler and TLINK
    errscan utility source and resource files
      errscan.c errscan.h errscan.url errscan.bmp errscan.ico

examples directory
    makeibmc - Examples Set makefile for IBM C Set/2 and C Set++ compilers
               and LINK386 linker
    makeborc - Examples Set makefile for Borland C/C++ compiler and TLINK
               linker
    example set source and resource files:
      bdown.bmp bup.bmp xvtapp.bmp clip.c color.c control.c dlg.c examp.c
      filevu5.c font.c graphic.c hello.c layout.c password.c sprint.c txdemo.c
      txdemo2.c txdemo3.c txdemo4.c readme.ex3 clip.h color.h control.h dlg.h
      examp.h filevu.h font.h graphic.h hello.h layout.h password.h txdemo.h
      xvtapp.ico examp.txt clip.url color.url control.url dlg.url examp.url
      filevu5.url font.url graphic.url hello.url layout.url password.url
      sprint.url txdemo.url

include directory
    old_cc.h - backwards compatible compiler defined constants
    old_os.h - backwards compatible OS defined constants
    sel.h - string encapsulation definitions
    seltype.h - string encapsulation definitions
    timestmp.h - timestamp file generated by errscan
    url.h - CURL header file
    url_plat.h - platform specific CURL header file
    pmrid.h - resource string ids used by CURL
    pmstr.h - resource strings used by CURL
    xvt.h - root XVT header file includes the following files (xvt*.h)
    xvtconst.h - XVT constants
    xvtincl.h - platform specific includes
    xvtmacro.h - XVT macros
    xvtmenu.h - XVT menu definitions
    xvtproto.h - XVT function prototypes
    xvttype.h - XVT type definitions
    xvt_cc.h - automatic compiler identification header
    xvt_os.h - automatic operating system identification header
    xvt_plat.h - platform specific definitions
    xvthelp.h - header file used by vhelp.c and cchelp.c

lib directory
    xvtpi310.dll - XVT Dynamic Link Library (DLL) for IBM compilers and
                   linker support
    xvtpi310.lib - import library for IBM compilers and linker support
    lmxvtp.lib - (copy of xvtpi310.lib)
    appibmc.def - basic module definition file for building XVT/PM applications
                  using the IBM compilers and linker
    xvtpb310.dll - XVT Dynamic Link Library (DLL) for Borland compiler and
                   linker support
    xvtpb310.lib - import library for BorLand compiler and linker support
    lmxvtpb.lib - (copy of xvtpb310.lib)
    appborc.def - basic module definition file for building XVT/PM applications]
                  using the Borland compiler and linker
    croshair.ptr - XVT cursor
    plus.ptr - XVT cursor
    cross.bmp - Background patterns
    dcross.bmp - Background patterns
    xvtapp.bmp - sample application bitmap
    xvtapp.ico - sample application icon

source directory
    vinterr.c - source for XVT error function
    vmalloc.c - source for XVT memory functions
    vhelp.c - source for XVT help function

template directory
    pmborc.tpl - XVT-Design template for Borland C/C++ 1.0 makefile
    pmibmc1.tpl - XVT-Design template for IBM C Set/2 1.0 makefile
    pmibmc2.tpl - XVT-Design template for IBM C Set++ 2.0 makefile

tutorial directory
    makeibmc - tutorial makefile for IBM C Set/2 and C Set++ compilers
               and LINK386 linker
    makeborc - tutorial makefile for Borland C/C++ compiler and TLINK
               linker
    XVT tutorial source and resource files:
      xvtapp.bmp tutor1.c tutor2.c tutor2.h xvtapp.ico tutor1.url tutor2.url


3. USAGE
--------
Refer to the "XVT Portability Toolkit Manual" for usage information on this
product.

3.1 Compiler command line flags
-------------------------------
We recommend creating your application makefile by editing the new example
makefiles, MAKEIBMC or MAKEBORC.  Refer to the XVT/PM platform-specific book 
in the "XVT Portability Toolkit Manual" for detailed compiler and linker
information.

3.2  Installing New Makefile Templates in XVT-Design
----------------------------------------------------

If you are using XVT-Design for building XVT/PM applications, you should install
the following new makefile templates into XVT-Design:

    pmibmc1.tpl  for IBM C Set/2 1.0
    pmibmc2.tpl  for IBM C Set++ 2.0
    pmborc.tpl   for Borland C/C++ for OS/2 1.0

To install these templates into XVT-Design, you will modify your design.cfg
file as shown below. If you do not currently have a "userTemplates" variable in
your design.cfg file, or if it is commented out, then you can type it exactly as
it appears here. Otherwise, you will need to append to the "userTemplates"
variable that is there, preserving any user templates that were previously
defined.

    userTemplates: PMIBM1, PMIBM2, PMBOR
    PMIBM1.name: XVT/PM (C Set/2)
    PMIBM1.filename: c:\xvt\xvtpm\template\pmibm1c.tpl
    PMIBM2.name: XVT/PM (C Set++)
    PMIBM2.filename: c:\xvt\xvtpm\template\pmibm2c.tpl
    PMBOR.name: XVT/PM (Borland)
    PMBOR.filename: c:\xvt\xvtpm\template\pmborc.tpl

Note:  The "name" variable values must be typed EXACTLY as shown, in order to
       get proper replacement of makefile templates in XVT-Design.

Note:  The pathname "c:\xvt\xvtpm" shown above is the default XVT/PM toolkit
       installation directory.  If you have selected another directory to
       install XVT/PM libraries, the "filename" variable should reflect your
       choice.  Also, the "XVTDIR_definition" macro in the design.cfg file
       must reflect your XVT/PM toolkit root installation directory, as in

         XVTDIR_definition: c:\xvt\xvtpm

See Also:  Refer to sections 4.11.5, 5.4.3.2 and 5.4.3.3 of the 
      "Using XVT-Design Release 2.0" manual for more information.

3.3  Shipping the XVT DLL
-------------------------
Most of the XVT/PM functionality is in the dynamic-link library "XVTPI310.DLL" 
for IBM-compiled applications or "XVTPB310.DLL" for Borland-compiled 
applications.  Since your applications rely on these libraries to operate
properly, you must ship the appropriate Dynamic Link Library (DLL) to your
customers, and have them install it in a directory found in their LIBPATH, just
as you have done when installing the XVT/PM product.  XVT Software Inc. grants
you permission to ship this DLL to your customers, but only for the purpose of
supporting a fully-linked application written with XVT/PM.

XVT Software Inc. DOES NOT grant you permission to ship the statically-linked
libraries "XVTPI310.LIB" or "XVTPB310.LIB" (or their copies, LMXVTP.LIB or
LMXVTP.LIB), nor any other development tool or source file provided by XVT
Software Inc., except where permission is explicitly granted in the source file
itself or by separate written agreement with XVT Software Inc. The permission
to ship the XVT DLL in no way diminishes the copyright claimed by XVT Software
Inc. for any other portion of the XVT/PM toolkit.


4. FIXED BUGS SINCE XVT/PM 3.0
------------------------------

4.1  XVT/PM-Specific Bugs Fixed
-------------------------------

5338      Picture bitmap dimensions are 1 pixel too small.

Version(s): 3.0.02
        WS: PM 2.0
        OS: OS/2 2.0

Description:

   The dimension of the bitmaps used in XVT Pictures are 1 pixel too
   small in both the x and y direction.  Height and width should include
   a 1 pixel (internal) expansion for all rectangular items used in
   drawing (bitmaps, clipping, invalidation).

============================================================================
5339      Focus is not given to any controls in an newly opened dialog.

Version(s): 3.0.02
        WS: PM 2.0
        OS: OS/2 2.0

Description:

   When a dialog is open, focus does not reside in any of the controls.
   It must be given either by tabbing or by clicking on a control.  Focus
   should reside with the first control in the traversal list (native
   behavior).

============================================================================
5447      win_list_add of SLIST to empty listbutton does not select.

Version(s): 3.0
        WS: pm 2.0
        OS: os/2 2.0

Description:

   If a call to win_list_add() is made to add an SLIST to an empty listbutton,
   the first entry is not selected. Instead, the listbutton shows no selection.

============================================================================
5448      win_draw_icon fails sometimes.

Version(s): 3.0
        WS: pm
        OS: os/2 2.0

Description:

   If a call to win_draw_icon is made on a WINDOW before any other drawing
   commands (clear_window() for example), a ICON Error dialog will appear.

============================================================================
5449      Edit controls in windows are created too small.

Version(s): 3.0
        WS: pm 2.0
        OS: os/2 2.0

Description:

   When an edit control is created in a window, its size is too small in
   height and width, generally by two pixels.

============================================================================
5450      Dialogs do not receive any E_SIZE events.

Version(s): 3.0
        WS: pm 2.0
        OS: os/2 2.0

Description:

   Dialogs do not receive any E_SIZE events.

============================================================================
5451      If win_menu_show failed, an incomplete menubar is left.

Version(s): 3.0
        WS: pm 2.0
        OS: os/2 2.0

Description:

   If a call to win_menu_show() fails due to resource exhaustion, an incomplete
   menubar is left in place.

   Instead, the old menubar should be left in place and xvt_errno should
   be set to ERR_NOMEM.

============================================================================
5452      invalidate_rect missed top and right of given RCT.

Version(s): 3.0
        WS: pm 2.0
        OS: os/2 2.0

Description:

   When invalidate_rect() is called, the top and right of the given rectangle
   would not be included in the update region in the induced E_UPDATE.

============================================================================
700025    ATTR_MALLOC_ERR_HANDLER is not implemented.

Version(s): 3.0G
        WS:
        OS: OS/2 2.0

Description:

   ATTR_MALLOC_ERR_HANDLER is not implemented.  However, this should
   not present a problem since OS/2 2.0 is a virtual memory
   system.

============================================================================
700046    Static text does not support justification.

Version(s): 3.0G
        WS:
        OS: OS/2 2.0

Description:

   The flags CTL_FLAG_*_JUST are not honored for WC_TEXT.  This
   applies to text inside windows and text inside dialogs that
   have been created by create_def_dialog.

============================================================================
700049    set_cursor() has a delay.

Version(s): all through 3.0G
        WS:
        OS: OS/2 2.0

Description:

   The set_cursor() function should immediately call the PM
   cursor setting function, if the mouse is over the window
   in question. Instead, there is a delay.

============================================================================
700069    Moving a combo control in a window fails.

Version(s): 3.0G
        WS:
        OS: OS/2 2.0

Description:

   When the control example is run and "move" is chosen, the
   two combo controls disappear.

============================================================================
700073    Iconized nested documents look funny.

Version(s): 3.0G
        WS:
        OS: OS/2 2.0

Description:

   When a toplevel (task or detached) window is iconized, it disappears from
   the desktop, and does not show up in the iconized window viewer.
   Under this situation, the only recourse is to close the task from the
   task list.

   If you iconize a document window, its icon is just a small piece of the
   client window.

============================================================================
700074    Iconizing windows causes an E_SIZE of 0 width and height.

Version(s): 3.0G
        WS:
        OS: OS/2 2.0

Description:

   When a toplevel or nested doc window is iconized, then it
   receives an E_SIZE with width=height=0.  Conversely, when
   a window is deiconized, it gets another E_SIZE.

============================================================================
700080    Iconized window cannot be restored from window list.

Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   Iconized windows cannot be restored by clicking on the application
   name in the window list.

============================================================================
700084    Combo control prevents group box from repainting correctly.

Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   If a list edit or list button is placed in a dialog such that the
   dropdown list covers a group box, the group box will not update
   this area.

============================================================================
700086    Print dialog is missing title.

Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   When the print dialog is displayed it is missing a title in its
   title bar.

============================================================================
700088    WC_LISTBUTTON does not display anything after first item added.

Version(s): 3
        WS:
        OS: OS/2 2.0

Description:

   win_list_add() does not automatically show the first item in a
   list button.

============================================================================
700090    Dialogs are allowed to go behind the Task Window.

Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   The look and feel of PM is for dialogs to have priority over their
   "owner" in the Z-ordering, even when they do not have focus. This
   means that dialogs should not be allowed to go behind the Task
   Window. However, XVT/PM 3.0 allows dialogs to go behind the Task
   Window.

============================================================================
700091    If create_*_window() fails, the application is terminated.

Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   If create_window(), create_res_window(), or create_def_window() fails,
   the application is terminated, instead of the call returning NULL_WIN.

============================================================================
700092    create_*_window() shows an error note if window can not be
          created.
Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   If create_*window() is unable to create a window, it will bring
   up an error note box to notify the user before returning NULL_WIN.
   No error box should be brought up; only NULL_WIN should be returned.

============================================================================
700094    CURL does not recognize justification of static text.

Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   When CURL generates dialog templates that contain static text, it
   does not include justifications that were specified in the URL.

============================================================================
700095    Replaceable components are not actually replaceable.

Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   All of the components that should be replaceable (xvt_help,
   xvt_interr, xvt_malloc, etc.) are linked into the DLL and thus
   are not replaceable.  This also prevents users from setting
   breakpoints on these functions.

============================================================================
700096    gmemset() is not exported from the DLL.

Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   The function gmemset() is not exported from LMXVTP.DLL.

============================================================================
700098    ATTR_WIN_PM_TWIN_STARTUP_RCT is not implemented.

Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   The attribute ATTR_WIN_PM_TWIN_STARTUP_RCT is not implemented.

============================================================================
700099    Long file names (HPFS) are not supported.

Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   When running with an HPFS drive, long file names are not supported.
   They are limited to the FAT 8.3 format.

============================================================================
700102    WC_TEXT in windows and dialogs do not allow a mnemonic to be
          specified.
Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   For WC_TEXT in windows and WC_TEXT in dialogs created with
   create_def_dialog(), specified mnemonics will show the tilde.

============================================================================
700103    create_control for listedit or listbutton crashes in windows.

Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   For WC_TEXT in windows and WC_TEXT in dialogs created with
   create_def_dialog(), specified mnemonics will show the tilde.

   Under larger applications, the creation of listedits or listbuttons
   in windows (but not dialogs) will cause an application crash.

============================================================================
700105    get_client_rect,get_outer_rect,translate_points don't always work.

Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   get_client_rect, get_outer_rect and translate_points do not return
   the correct values for list edits and list buttons in windows.

============================================================================
700106    show_window sets the window to the front.

Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   show_window sets the window to the front in addition to making
   it visible.

============================================================================
700107    ATTR_WIN_PM_CLASS_ICON is not implemented.

Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   The attribute ATTR_WIN_PM_CLASS_ICON is not implemented for XVT/PM.

============================================================================
700112    It is not possible to set the size of the native PM message queue.
 
Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   The size of the message queue is hardcoded in the DLL instead of
   being able to be set by the application writer.

   ATTR_PM_QUEUE_SIZE was implemented to solve this problem.

============================================================================
700114    set_caret_dimensions() causes caret to be incorrectly placed.

Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   If a call to set_caret_dimensions() is made, the next caret_on() will
   place the caret one caret height to low.

============================================================================
700115    set_front_window() causes controls to go to the bottom of the Z-
          order.
Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   If set_front_window() is used on a control in either a dialog or
   window, the control will go to the bottom of the Z-order.

============================================================================
700116    Static text in dialogs are included in the visit order.

Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   In a dialog created with create_def_dialog(), static text is
   included in the visit order.

============================================================================
700117    xvt_msg() allows the user to exit application.

Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   The xvt_msg() dialog gives the user the option of quitting the
   application.

============================================================================
700118    In the event hook, the message is USHORT instead of ULONG.

Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   The event hook for XVT/PM is documented to have the message parameter
   as a ULONG whereas the toolkit currently assumes this is a USHORT.

============================================================================
700119    Menu building code does not translate "\t" correctly.

Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   When a menu item's text is specified with the characters \t the menu
   building code does not correctly translate this into a tab
   character.

============================================================================
700120    Escape in a dialog without a DLG_CANCEL button closes the dialog.

Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   If the escape key is hit in a dialog that does not have a button
   with an ID of 2 (DLG_CANCEL) the dialog will automatically close and
   no E_DESTROY will be sent.

============================================================================
700121    If no printer is installed, an invalid print record is returned.

Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   If no printer driver is installed and get_print_rcd() is called, it
   will return an invalid print record instead of NULL.

============================================================================
700122    convert_units() could produce incorrect results on some machines
          with high resolution monitors.
Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   On some machines, unit conversion is incorrect causing windows and
   controls to show up off screen.

============================================================================
700123    Application icons have the extension ICP.

Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   The icon for an application is required to have the extension ICP
   instead of the natural extension ICO.

============================================================================
700124    Group boxes in windows could redraw themselves over other
          controls.
Version(s): 3.0.01
        WS:
        OS: OS/2 2.0

Description:

   If a window containing a group box requires its entire client area
   to be update, the group box will draw itself over other controls.

============================================================================
700126    Attempt to start an invalid second timer does not return
          XVT_TIMER_ERROR.
Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   If a timer is already started on a window and an attempt is made to start
   another timer, the ID of the first timer is returned instead of
   XVT_TIMER_ERROR.

============================================================================
700127    create_def_tx() does not do a unit conversion.

Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   When a Text Edit object is created with create_def_tx() or with
   create_def_window() or with create_res_window(), its units are not
   converted into pixels.


4.2  XVT Text Edit Bugs Fixed
-----------------------------

1000007   TX: don't call scroll callback routine during tx_destroy()

Version(s): 3.0
        WS:
        OS:

Description:

   Currently, during the call to tx_destroy(), the scroll callback
   routine gets called with nlines set to zero.

============================================================================
1000010   TX: # lines not updated when word wrap turned off

Version(s): 3.0
        WS:
        OS:

Description:

   A call to tx_set_attrib() turning word wrap off doesn't properly
   update the number of lines in the TX data structure.

============================================================================
1000011   TX: tx_clear() doesn't properly reset the horizontal origin

Version(s): 3.0
        WS:
        OS:

Description:

   Calling tx_clear() should reset the horizontal scroll origin, but
   doesn't.

============================================================================
1000012   TX: updating resumed prematurely during paste into selection

Version(s): 3.0
        WS:
        OS:

Description:

   If updating is suspended and a paste is done with a selection active,
   updating is resumed before the paste is done.

============================================================================
1000021   TX: handle tabs correctly

Version(s): 3.0
        WS:
        OS:

Description:

   Text Edit objects should handle tabs in text correctly.  This
   includes displaying, editing, navigating.

============================================================================
1000022   TX: gap between highlighted lines for some fonts

Version(s): 3.0.4
        WS:
        OS:

Description:

   If multiple lines are selected, some fonts leave an
   unhighlighted gap between the highlighted characters.
   This may be the leading area of a font.

============================================================================
1000023   TX: tx_add_par() can add to a one paragraph text edit

Version(s): 3.0
        WS:
        OS: all

Description:

   If a text edit object is created with TX_ONEPAR or that attribute is
   later set, subsequent tx_add_par() calls will treat the text edit as
   a multiple paragraph text edit, allowing multiple paragraphs to be
   entered.

============================================================================
1000024   TX: tx_destroy() can leave paste menu item enabled

Version(s): te3.0.5
        WS:
        OS:

Description:

   tc_set_edit_menu() is called from tm_reset() before the TE is
   destroyed so the paste menu item is enabled if there is something
   in the clipboard.

============================================================================
1000025   TE: deletion causes full update

Version(s): te3.0.5
        WS:
        OS:

Description:

   Any deletion, even of a single character, causes the full TE view
   to be updated.

============================================================================
1000030   TE: tx_clear resumes a suspended TX

Version(s): 3.0.4
        WS:
        OS:

Description:

   Recent changes to code in vtm.c results in tm_resume() getting
   called during a call to tx_clear() even if the TX was suspended.

============================================================================
1000035   TE: changing font leaves old selection highlighted

Version(s): 3.0.9
        WS:
        OS:

Description:

   Changing the font (via tx_set_font()) resets the caret to the
   beginning of the TX, but leaves the original selection
   highlighted.

============================================================================
1000038   TE: vertical scrolling confused by large # of lines

Version(s): ted3.0.9
        WS:
        OS:

Description:

   If the number of lines times the font height is greater than
   some value (USHRT_MAX or INT_MAX?), vertical scrolling gets
   confused.

============================================================================
1000042   TE: up arrow autoscrolls one line too soon for some fonts

Version(s): ted3.0.9
        WS:
        OS:

Description:

   For some fonts, trying to move the caret to the topmost visible line
   causes the text edit to scroll.  It shouldn't scroll until the caret
   tries to be moved past the topmost visible line.

   This is true for fonts that have a leading area (Mac default, Win
   Roman).

============================================================================
5178      In a window with no menubar, tx_destroy causes error

Version(s): ted3.0.10
        WS:
        OS:

Description:

   The situation is as follows:

   Parent window with no menu bar.  In this window is a child window with
   a text edit object.  TX_NOMENU has been defined for the text edit object.
   If you call tx_destroy on the text edit, you will get internal error 35388.

   Also, in the same scenario except that TX_NOMENU is not defined, you will
   get the same internal error on a call to tx_create.

   If a menubar is added to the Parent window, then it does not matter if
   TX_NOMENU is defined.  The error does not appear.



4.3  XVT Shared Components Bugs Fixed
-------------------------------------

1000027   FURL: xvterrno not set when get_res_dialog() fails

Version(s): 3.0
        WS:
        OS:

Description:

   When get_res_dialog() fails, xvterrno is not set to indicate why
   it failed.

============================================================================
1000045   DOC: Doc error in slist_add: reusability of sx pointer.

Version(s): 3.x
        WS:
        OS: N/A

Description:

   The XVT/CH 3.01 User's Guide clearly states on page 228 that, if the sx
   argument points to an existing SLIST, the sx pointer will be left invalid
   and no attempt should be made to free it with slist_dispose().

   In examining the code in xvtv_slist_add(), it appears that only the list
   is "stolen";  the head control structure remains and it would appear
   appropriate to call slist_dispose() to free the structure to avoid a
   memory leak.  The structure could also be reused.

============================================================================
1000049   MEM: Param checking missing for xvt_realloc/xvt_frealloc

Version(s): 3.0
        WS:
        OS:

Description:

   Two boundary conditions are not checked in calls to
   xvt_realloc and xvt_frealloc.  These conditions are:

   (a) A NULL pointer is passed.
   (b) A non-NULL pointer is passed but the passed size is zero.

   The documentation of the ANSI C function, realloc (to
   which xvt_realloc is analogous), indicates that it
   behaves in a well-defined manner under these two
   conditions.  Specifically, under condition:

   (a) realloc is supposed to behave like malloc.
   (b) realloc frees the space pointed to and returns NULL.

============================================================================
1000050   MEM: modifications needed for XVT/PM memory management functions

Version(s): 3.0
        WS:
        OS: OS/2

Description:

   Modification to the Common Component versions of the memory
   management functions are needed for XVT/PM.

============================================================================
5404      assert overrides any user defined assert.

Version(s):
        WS:
        OS:

Description:


   The header file, XVTMACRO.H, #undef's assert() and then #define's an
   XVT version. This over-rode the #define for assert().


4.4  XVT CURL Bugs Fixed
------------------------

800002    Recursive MENU definitions are not detected.

Version(s): all
        WS:
        OS: all

Description:

   Recursive MENU definitions are not detected, and therefore not handled
   properly.  The result of CURL processing a recursive definition is that
   it will hang.  A recursive definition follows:
      MENU 100
         SUBMENU 100 "Recurse For Ever"

============================================================================
800008    Special handling of help menu should be by tag instead of by
          title.
Version(s): ALL
        WS:
        OS: ALL

Description:

   Menu handling code in burlwinr.c and burlpmrc.c should check for M_HELP
   instead of looking for the help title.

============================================================================
800010    CURL crashes on names/IDs longer than 31 characters

Version(s): 2.16
        WS:
        OS:

Description:

   CURL crashes on names/IDs longer than 31 characters.




5. KNOWN BUGS
-------------

5.1  XVT/PM-Specific Known Bugs
-------------------------------

5284      The command line parameters cause Design to hang PM.

Version(s): 3.0.02
        WS: PM
        OS: OS/2 2.0

Description:

  Invoking Design 2.0 for PM causes the system to hang.  This problem
  appears in other applications as well.

Workaround:

  Trap argc and argv prior to call to xvt_system.

============================================================================
5354      An invisible list box in a dialog does not come up invisible.

Version(s): 3.0.02
        WS: PM
        OS: OS/2 2.0

Description:

     A URL specified dialog with an invisible list box, does not come
     up initially invisible.

Workaround:

   No known workaround

============================================================================
5363      Access function is not implemented according to specification.

Version(s): 3.01
        WS: PM
        OS: OS/2 2.0

Description:

   When an access function is called with the argument 0, it fails to
   show read access to a file.

Workaround:

   XVT/PM uses access function from <io.h>, so use argument 4.

============================================================================
700027    There is a limit to the number of windows that can be created.

Version(s): 3.0
        WS: PM
        OS: OS/2 2.0

Description:

     There is a limit to the number of windows that can be created.

Workaround:

   No known workaround

============================================================================
700050    PICTUREs do not print correctly.

Version(s): all through 3.0G
        WS: PM
        OS: OS/2 2.0

Description:

   Printing PICTUREs does not work.  PICTUREs print only to
   Postscript printers.

Workaround:

   No known workaround.  This appears as a native-platform problem.

============================================================================
700097    Disabled windows can still receive focus.

Version(s): 3.0
        WS: PM
        OS: OS/2 2.0

Description:

    Disabled windows can still receive focus.

Workaround:

   No known workaround

============================================================================
700113    Accelerators are enabled for disabled menu items.

Version(s): 3.0
        WS: PM
        OS: OS/2 2.0

Description:

   Accelerators for disabled menu items will send E_COMMAND.

Workaround:

   No known workaround



5.2  XVT Text Edit Known Bugs
-----------------------------

1000009   TX: create_def_tx() ignores unit specifier

Version(s): 3.0
        WS:
        OS:

Description:

   Create_def_tx() should use the unit specifier to convert the given
   sizes to pixels before calling tc_create().  Unfortunately, this
   conversion depends on the underlining toolkit.  The toolkits need
   to provide a function to do the conversion before this bug can be
   fixed.

Workaround:

   Only call create_def_tx() with U_PIXELS.

============================================================================
1000032   TE: italics fonts are handled badly

Version(s): ted3.0.9
        WS:
        OS:

Description:

   Text Edit code does not deal well with italics fonts.  On some
   platforms the caret is placed incorrectly in the middle of
   characters.  Selection highlighting is incorrect on some
   platforms.

Workaround:

   No known workaround.

============================================================================
1000039   TE: keyboard selection doesn't wrap

Version(s): ted3.0.9
        WS:
        OS:

Description:

   It is impossible to extend the current selection to a different
   line on a paragraph that is wrapped.  I.e., shift plus the left
   or right arrow key does not extend the selection to the previous
   or next line if that line is part of the same paragraph.

Workaround:

   Use the mouse or the up/down keys.

============================================================================
1000053   TE: scroll_callback called with clip rect. set

Version(s): ted3.0.9
        WS:
        OS:

Description:

   The TX scroll_callback routine can get called with the window's
   clip rectangle set to the TX view.  When this happens, any
   scrollbars that get changed may not get updated since they are
   outside the clip rectangle.

Workaround:

   The scroll_callback routine can reset the clip rectangle to
   be the entire window.

============================================================================
5193      Caret moves during tx_hscroll call

Version(s): 
        WS: 
        OS: 

Description:

   When caret is set to a horizontal position of zero and then tx_hscroll
   is called, the caret stays at the same position in the window, but moves
   with respect to the characters in the text line. When the horizontal
   position is >0, it stays fixed and scrolls with the text.

Workaround:

   No known workaround.



5.3  XVT Shared Components Known Bugs
-------------------------------------

1000051   dir_to_str and str_to_dir access the drives

Version(s): 3.0
        WS:
        OS: OS/2 2.0

Description:

   dir_to_str and str_to_dir access the drives.
   This can be seen by looking at the XVT/PM source file, wfile.c.

Workaround:

   No known workaround.



5.4  XVT CURL Known Bugs
------------------------

5238      URL -> PRJ - grid pixel spacing set to 0x0.

Version(s): 2.18
        WS: all
        OS: all

Description:

   Project files that are generated by CURL have invalid grid
   pixel spacing values. The values are incorrectly set to
   0x0.

Workaround:

   No known workaround

============================================================================
5300      KP1-9 menu accelerators unavailable for FURL/binary output

Version(s): 3.0
        WS:
        OS:

Description:

   The burlfrl.c backend does not support KP1-9 keys as menu
   accelerators.  This is particularly annoying when burlfrl.c is
   called to output the binary data for another resource type
   (e.g. rcwin) which does support these keys since burlfrl.c outputs
   an error message indicating these keys are not supported.

Workaround:

   Run CURL with the -nb flag to avoid the error message (and the
   binary output) for resource types other than FURL.

============================================================================
800025    Option "-o" changes filename extension

Version(s): 2.18
        WS:
        OS:

Description:

   If an output filename is given on the command line via the "-o"
   option, only the basename is used.  Even if a filename extension
   is given, it is thrown away and replace by the standard extension.

Workaround:

   Changed the filename after CURL has run.

============================================================================
800027    Back-slash characters are not correctly encoded for XVT/WIN and
          XVT/PM.
Version(s): 2.18
        WS:
        OS: DOS OS/2

Description:

   If a back-slash character is required in a string resource and thus encoded
   as "\\", it is not properly written to the native resources as "\\".

Workaround:

   No known workaround



6. GETTING TECHNICAL HELP
-------------------------

For technical assistance with your XVT product, please contact us via FAX,
e_mail, BBS, or phone.  Phone support is available during the hours 8 AM
to 5 PM Mountain Time, Monday through Friday.  Your call is always welcome.
Please use the service request form below, or have this information available,
when you contact us.  You may contact the Customer Support Department using
the following methods:

    Address:
      XVT Software, Inc.
      Box 18750
      Boulder, CO  80308  USA
    Voice:  (303) 443-8XVT
    FAX:    (303) 443-0969 (attn:  Customer Support)
 
    CompuServe Mail address:  75765,1233
    Internet:  techsup@xvt.com
    or send XVT Bulletin Board mail.

Note:  If you purchase your XVT product through a distributor, please contact
this distributor for technical assistance.

For XVT Bulletin Board System sign-on and instructions, contact customer
support.  This service is available to all registered users of XVT with
current maintenance agreements.


Service Request Form:

------------------------------------cut here------------------------------------
 
                              --XVT SERVICE REQUEST--

         Date:                              Serial Number:
Customer Name:                                XVT Product:
 Company Name:                                XVT Version:
 Phone Number:                                   Compiler:
   Fax Number:                              Computer Type:
Email Address:                           Operating System:
         SR #: (if applicable)             Window Manager:
                                             Memory Model:  (XVT/Win Customers)


Question or Problem Description:




--------------------------------------end---------------------------------------

[End of README]
