
            UNIMAINT               Version 4.00.9
            ReadMe.csd    CSD1995324   11/16/95


This diskette contains corrective service for UniMaint Version 4.00
To install the corrective service, follow the procedure described
on page 2 of the UniMaint Technical Reference manual.

Corrective Service files are cumulative. The latest CSD file contains
fixes found in all previous CSD files.

To determine if you need to apply this CSD, execute the GtLevel
command from an OS/2 command prompt. If the last 5 digits of the CSD
level (e.g. 95218) shown there is less than 95324 there are fixes 
here you may wish to install. A list of fixes are shown below.

If while attempting to apply this CSD you encounter the error
message pop-up with the title which reads "Base Level Invalid", it
means that the version information stored in the INI files could
not be found. This information was placed there during the
installation of the base product, but is no longer there. You must
reinstall the base product and then apply this CSD.




******************************* V4.00.1 *****************************

The items fixed in Version 4.00.1 are:

1. When running under OS/2 V2.11 the renaming of the WPS Agent DLL's did not 
work correctly. The ACSAGTWP.DLL was renamed to ACAAGENT.DLL, but the 
ACSAGTNO.DLL file is the one that should have been renamed. The code has been 
changed to fix this problem.

2. It was not possible to modify the Program Settings information for 
WPProgram Objects if they did not have an EXE Name specified because the test 
only looked for certain non default values. An additional check has been 
added so that all WPProgram Objects will be included, even if all of the 
Program related items are in their default condition.

3. If the WPS Settings Modify Dialog Checkbox to do the Remaining Objects was 
checked but one or more of the remaining Objects that qualified based on 
Class and Selection criteria did not already have one or more of the values 
that were being modified, then that WPS Setting would not get changed because 
the flag that causes the specific WPS Setting to be updated was not turned 
on. Additional code has been added to insure that the flag will not be set 
correctly.

******************************* V4.00.2 *****************************

The items fixed in Version 4.00.2 are:

1. It was possible to get s SYS3175 while attempting to Uninstall an 
Application if Extended Program was installed on the Desktop because of a 
problem where a pointer was not correctly updated while searching the 
WPAbstract Object information. The code has been updated so that the pointer 
will get correctly set under all conditions.

2. If the SET HELP= or SET BOOKSHELF= entries were not in the CONFIG.SYS 
file, the Uninstall would get a SYS3175 because the code did not check for a 
NULL pointer after looking for these entries in the CONFIG.SYS. Addtional 
code has been added to check for this condition.

******************************* V4.00.3 *****************************

The items fixed in Version 4.00.3 are:

1. The ability to do several types of individual repairs from the Command 
Line, in addition to just starting the Repair Dialog, have been added.

2. There is an extremely unusual case where the Printer Repair code will 
remove a Printer that is actually installed on the Desktop and this has been 
fixed.

******************************* V4.00.4 *****************************

The items fixed in Version 4.00.4 are:

1. If the Repair Logging was turned on, the setting would be saved from one 
run of UniMaint to the next. The effect of this could be that the Repair 
Logging could be left on for a long time and generate a very large logging 
file. The code to save the logging status across runs has been removed.

2. The Repair Logging function would only Log those items that were added to 
the Repair Window, it would not Log the items that were actually Repaired. 
Additional code has been added so that the Repair Logging will now Log both 
sets of information.

3. The Help did not work in the Selected WPS Object Settings Dailog because 
the correct value was not passed to the Help Manager. The Help Manager table 
has been modified to fix this problem.

4. The Help did not work in the WPS Settings Dailogs that modified the 
various WPS Settings because the incorret window was made the active Help 
window. The code has been modified so that the active Help window now agress 
with the Help Table used by the Help Manager.

5. It was possible for the Printer Repair code to miss the fact that the 
IBMNULL printer was installed under certain unusual circumstances. The check 
for this Printer has been modified so that it will now work in all known 
situations.

******************************* V4.00.5 *****************************

The items fixed in Version 4.00.5 are:

1. With certain default settings, an attempt to do a Portable Restore for the 
Desktop itself resulted in a SYS3175 in SOM.DLL because the WPS Pointer to 
the parent Object was NULL. Additional code has been added to check for the 
NULL Parent Pointer and correctly Restore the Object.

******************************* V4.00.6 *****************************

The items fixed in Version 4.00.6 are:

1. Certain WPS Classes respond to the WPS _wpPopulate method by attempting to 
do certain functions that might not work at that time. This causes problems 
with all of the various UniMaint functions that deal with WPS Objects. 
Additional code has been added to insure that these special Classes are 
handled correctly.

******************************* V4.00.7 *****************************

The items fixed in Version 4.00.7 are:

1. The WPNetgrp Class was added to the other classes as ones that should not 
get populated.

2. The Warp FixPak 10 did not fix the problem of writing large INI files, so 
a third modification to the Portable Backup has been implemented to get past 
this problem. Specifically, an option has been added to tell the Portable 
Backup to write a series of temporary small INI files in place of the one 
large PORTBK01.WPS File and then combine the temporary files into the actual 
PortBK01.WPS file at the end of the Backup.

******************************* V4.00.8 *****************************

The items fixed in Version 4.00.8 are:

1. Users have suddenly found that a single drive letter is duplicated in the 
File Handle Structure in the OS2SYS.INI file. Additional code has been added 
to the File Handle Repair to identify, report and fix this problem.

******************************* V4.00.9 *****************************

The items fixed in Version 4.00.9 are:

1. The Display WPS Objects Dialog will get a SYS3175 error if one of the 
Object Type Filters is being used, The Display Filtered Objects only Option 
is turned on and the Display Lower Levels Checkbox in the Defaults Dialog is 
checked. The reason is that an attempt is made to select an item that is not 
even displayed in the window, therefore, does not have a valid container 
object pointer. An additional check has been added to make sure that only 
objects that are actually in the window are selected.

2. The names for the four Portable Backup Files have been changed so that the 
names will not result in duplicate *.!!! files in the same directory when an 
attempt is made to open all of the files for a particular backup.

3. When doing a Repair on a HD where some partitions have been deleted, it is 
possible to get a Logic Error 634 with a Dos Error of 15 and this terminates 
the Repair. Additional code has been added to handle the situation.

4. The code that is designed to bypass calling the WPS _wpPopulate Folder for 
certain WPS Classes was not working because the wrong pointer was incremented 
while making the test thus making all but the first test invalid. Code has 
been added so that a temporary pointer will be used rather than the base 
pointer.

5. The are some classes of WPS Objects, such as Wipeout, which do not give a 
good return when an attempt is made to remove any of the WPS Locks that were 
created as a result of WPS Methods such as _wpPopulate and others. This would 
cause a Logic Error 1709 because WPS would not report an error. The routine 
involved has been changed so that it will simply assume an Object is Unlocked 
if the Unlock Menthod gives an error return but WPS does not report an 
outstanding error.
