This is a Customer Service Disk (CSD) for the IBM C/C++ Tools Product

 --------------------------------------------
|CSD1 for C Set ++             July 30, 1993 |
 --------------------------------------------

 --------------------------------------------
|C/C++ Compiler                              |
|Filename:  CTC0001.zip                      |
 --------------------------------------------
------------------------------------------------------------------------

This CSD is provided as a set of files.  You can choose one of the
following methods of installation:

(1) You can install directly from the directory in which the files are
    found with the command:

      [d:][path]SERVICE [d:\toolpath]

    The CSD directory must be on a drive accessible to your operating
    system, including drives on a LAN server.

    The d:\toolpath argument is optional.  If it is specified, the CSD
    installation program assumes that IBM C/C++ Tools is installed in
    that directory.  If it is not specified, the program searches for
    the installed version of IBM C/C++ Tools.  If it cannot find the
    installed product, the CSD installation program prompts you for a
    directory.

    The CSD may be installed to any disk accessible to your system,
    including LAN drives.  The service program itself must run within an
    OS/2 2.0 or 2.1 session.


(2) You can create diskettes containing the CSD, and install the CSD
    from the diskettes.  To create diskettes, make the directory where
    the CSD files are located the current directory, then enter:

      MAKEDSKT a:

    Where a: is the drive letter of the diskette drive where the CSD
    diskettes are to be created.  CSD diskettes may be 720Kb, 1.44Mb, or
    2.88 Mb 3-1/2" diskettes, or 1.2Mb 5-1/4" diskettes.  MAKEDSKT
    determines diskette size automatically.

    To install a CSD from diskettes, invoke the service program as
    described in (1) above.  The service program will prompt for
    additional diskettes as required.

    To recreate the CSD on a hard file, use XCOPY to copy the contents
    of all the CSD diskettes to a directory on your hard file.  For
    information on XCOPY, please see the OS/2 online Command Reference.

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

The following conditions must exist for CSD installation to be
successful:

(1) You must have already installed the IBM C/C++ Tools product.  You
    cannot apply the CSD to a beta copy of the product.

(2) The LIBPATH specified in your CONFIG.SYS file must include the
    directory '.' (single period).  OS/2 2.x puts this in your
    LIBPATH by default.

(3) CSD installation uses the file DDE4FIX.DLL to locate the directories
    in which the IBM C/C++ Tools are installed.  This file was created
    when you installed the IBM C/C++ Tools product.  If it is not
    present, the CSD installation program informs you that the product
    is not installed.  You must re-install C/C++ Tools before installing
    the CSD.

(4) No IBM C/C++ Tools files can be open in any session when you install
    the CSD.  If the copy of IBM C/C++ Tools being serviced resides on a
    LAN drive, you must ensure that no other LAN user has any of these
    files open.

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

After the CSD installation terminates, the file DDE4FIX.LOG is placed in
the IBM C/C++ Tools base directory.  It contains a cumulative log of all
CSD installations to this copy of the product.

A CSD applies fixes to only one of the components of the IBM C/C++
Tools.  The components are the compiler, the class libraries, and the
utilities.  To maintain the levels for these components separately, the
IBM C/C++ SYSLEVEL file will be split into three files, one for each
component (if this is the first time a CSD is applied).

A list of the fixes contained in this CSD can be found in the file
CSDFIXES.LST.  The fixes are cumulative, meaning that this CSD contains
all fixes described in CSDFIXES.LST, even if they were fixed on a prior
CSD.

The complete list of files in this CSD can be found in the file
SERVICE.LST.

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

 --------------------------------------------
|Utilities - Debugger/Extra                  |
|Filename:  CTU0001.zip                      |
 --------------------------------------------
------------------------------------------------------------------------

 Debbuger:
 ---------
 PM Resource Interlock Problem
 -----------------------------
 When debugging a Presentation Manager application, it is possible that
 IPMD will display the message "PM Resource Interlock". This is due to a
 design limitation in OS/2. OS/2 applications have access to system
 semaphores, and when such applications stop (such as when a breakpoint
 is hit), a system semaphore contention problem may develop within the
 operating system.

 Some IPMD users have received the PM Resource Interlock message on
 OS/2 2.1 while debugging applications that did not have the condition
 on OS/2 2.0.  Work is in progress on a fix to OS/2 that will alleviate
 this problem in some situations, particularly for drag/drop and
 scroll operations. The fix is unlikely to prevent all possible
 PM Resource Interlock conditions. It may be possible to work
 around the problem by moving breakpoints around slightly, or by
 toggling the PM Debugging Mode (changing from synchronous to
 asynchronous, or vice versa).

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

 Execution Trace Analyzer
 ------------------------
 You may encounter the following printing problems with EXTRA running on
 OS/2 2.1:

 a) Printing a Time Line may print information outside of the Time Line
    window.
    Solution 1: Move the Time Line window to the top left of the desktop
    ----------  before issuing the print request.
    Solution 2: Make the Time Line the active window and press Print
    ----------  Screen.

 b) Printing a Call Graph to some printers does not print arcs and
    nodes displayed with the color red.
    Solution:   Make the Call Graph the active window and press Print
    --------    Screen.
------------------------------------------------------------------------

 ------------------------------------------------
|Class Libraries - User Interface Class Libraries|
|Filename:  CTL0001.zip                          |
 ------------------------------------------------

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

You may encounter the following problems/situations when using these
User Interface Class Libraries:

IContainerControl
-----------------
  Drag/Drop Hang
    When dragging an OS/2 desktop object (possibly any object) over a container
    created with the User Interface Class Library, a system hang might occur.
    This is an OS/2 problem that will be fixed in the operating system.  An
    application can prevent this by statically linking to the OS/2 drag DLL.
    This can be accomplished by simply having any drag call (for example,
    DrgAccessDraginfo) in your code.

  OS/2 2.1 Hang when closing window with open container MLE
    An apparent hang on OS/2 2.1 exists when closing a frame
    window with an open container edit field.  The system is
    not hung and can be recovered by pressing Ctrl-Esc and waiting
    a few seconds for the window list to appear.  The cause of
    the problem currently is under investigation and can be worked
    around by explicitly closing the MLE when the frame window is closed.

    The problem exists in the cnr sample program and can be patched
    by overriding systemCommand() in ACnrexWindow and providing the
    following implementation:

    Boolean ACnrexWindow :: systemCommand(ICommandEvent& cmdevt) {
      switch(cmdevt.commandId()) {

        case SC_CLOSE: {         // 0x8004
           cnrCtl->closeEdit();
           break;
        }
      }
      return(false);
    }

ICnrEditHandler
---------------
  The documentation for ICnrEditHandler states that the function
  reallocateString() must be overridden to provide text reallocation
  if the data type is not 'isIString'.  This is no longer true.  The
  reallocation of both the data types 'isIString' and 'isCharacterPointer'
  is provided by the default behavior of the handler.


IOutlineBox
-----------
  ColorArea enumerator
     The documentaton incorrectly states that border is a valid enumeration.
     Additionally, the documentation for the fillRegion enumeration is
     incorrect.  It has been changed to the following:
       "Sets the color that the outline is drawn with.  This overides the
        currently set OutlineType."


ISpinButton
-----------
  Constructing spin buttons with default size
    If an ISpinButton is created with the default size, IRectangle(). the
    control will incorrectly be displayed due to a bug in PM.  If the spin
    button is a master the buttons will be displayed, if the spin button is
    a slave a small entry field will be displayed.  The circumvention is to
    create the spin button without the IWindow::visible style.


ISystemMenu
-----------
  addBitmap()
    If you are going to use addBitmap(id, bitmapHandle) to add a new bit map
    to the right of the system menu bit map on the title bar, then bitmapHandle
    must reference a bit map that has the same dimensions as an icon (that is,
    40x36).  If bitmapHandle references a bit map larger then an icon, the
    bit map will be clipped.  You also need to provide a visual indication
    of separation along the left side of the bit map if more than one such
    bit map will appear on the title bar.

