ษออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออ
บ UNIMAINT
บ Version 5.00.29
บ CSD Level 1997069
บ
บ
บ SofTouch Systems, Inc.
บ 1300 S. Meridan, Suite 600
บ Oklahoma City, OK 73108
บ Phone:(405) 947-8085  Fax:(405) 947-8169
บ
ศออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออ

*******************APPLYING THE  Y5097069.ZIP*****************************

************************************************************************
Running The ACSTEST.EXE

Before applying the CSD, the ACSTEST.EXE program must to be run with the -Z
option. To do this open up an OS2 window and change directories to the
Unimaint Directory. Enter the command:        ACSTEST -Z
This deregisters the class created by the ACSAGENT.DLL and *MUST* be done
*BEFORE* the CSD can be applied.

To check and see if the ACSTEST -Z was sucessful scroll down to the bottom
of the window, the last two lines should read :
ACSAGENT Object Termination Sucessful
ACSAGENT Test Thread Terminating

After this CSD is installed the ACSTEST.EXE program (when run with the -Z option)
will inform the user of successful completion by a message box stating the class
has been deregistered.
*************************************************************************

Open an OS2 window and change directories to the Unimaint directory.

Type:    GTINST X:\TEMP\Y5097069.CSD

Where X:\TEMP is the drive and path that you unzipped the CSD to 
followed by the name of the CSD file. 
This will initialize the installation program. 




*NOTE*
When installing the CSD, if you get an error "Base Level Invalid" then you need to
reinstall the base product before applying the CSD.



!!!!!!!!!!!! IMPORTANT NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

*************************************************************************
TO MAKE SURE THE DESKTOP AND PORTABLE BACKUP WILL RESTORE CORRECTLY
PLEASE READ THE FOLLOWING CAREFULLY
*************************************************************************

1. All users should verify that the Desktop Defaults dialog has the Do  Restore CMD
when Backup checkbox checked. 

2. Once the CSD is installed all users should make sure that UniWatch is not  running,
since the Desktop Backup from UniMaint will not work correctly if it  is,
and then use UniMaint to make a new backup of their Desktop. This will  rebuild
both the SYSBACK.CMD file and the SYSRESTR.CMD files and make a
backup  that will contain, if the user is running Warp 4, the WarpCenter information.
This cannot be done from UniWatch because the CMD files will not get
rebuilt by  UniWatch and they need to be rebuilt in order for the  WarpCenter
information to be included.

3. All users who are on Warp 4 and have a Portable Backup of their Desktop  should
make a new Backup using this version so that the WarpCenter
information is included in the Portable Backup files.

4. All Warp 4 users who make a Portable Backup using this version and who do not
use UniWatch need to add a line to their CONFIG.SYS to run UniCheck.exe  at boot time:

 RUN=X:\UNIMAINT\UNICHECK.EXE
Where X: is the drive Unimaint is installed on.

This is not necessary if the user is running UniWatch because
all of the  functions in UniCheck are also in UniWatch. It will not hurt anything to run
both of  them, but it is not needed.

If this is not done then the user will not be able to make any modifications  to the
WarpCenter after they have done a Portable Restore that included the
WarpCenter. Actually, they will be able to modify the WarpCenter but the  changes
will not be there after they reboot OS/2.
__________________________________________________________________________________




*This is a list of changes since version 5.00.23*

******************************* V5.00.24 *********************************

The items fixed in Version 5.00.24 are:

1. It turns out that it is possible to have files associated with Templates
that are larger than 64k. This means that these files cannot be saved in the
Portable Backup *.WPS file because this is an INI file. Therefore, this
information will have to be saved in supplemental files. The changes to
accomplish this have been added to this version.

2. Because of a problem with one OS/2 DLL code has been added to validate
that the import information in the DLL is valid and the DLL will be bypassed
if it is not.

3. Code has been added so that the Title bar and the About box will both
reference UniSafe as opposed to UniMaint when the safe version is being run.

4. The Repair would report a logic error if the setting of the Object ID for
an object failed. This has been changed so that the Repair of just that
object will be reported as having failed.

5. Since it is now possible for the Repair of a specific item to fail, a
count of failures has been added to the Repair variables and any failure will
result in a message box to the user when the repair is completed.

6. Since a failure when unlocking a WPS object is not really a serious
problem the code has been changed to ignore the failure of this WPS method.

7. The Portable Backup routines have been changed so that a failure to get
the Default Help Panel for an Object will not cause a logic error.

8. OS/2 V2.1 had a problem when the splitpath API was used on just a drive
and directory. Therefore, code has been added to insure that these situations
are always handled correctly.

9. In certain situations where a file to be Uninstalled or Archived was in
the Root Directory for a drive, the Archive would get a 1938 logic error 
because the routines did not correctly set the default directory when the
directory was the root directory. The routines have been changed to correctly
handle the root directory situation.

******************************* V5.00.25 *********************************

The items fixed in Version 5.00.25 are:

1. Code was added to the Portable Backup and Restore to handle the WarpCenter
Trays.

2. The Desktop Restore CMD file still referenced ShiftRun even though it is
not needed with Warp. The code has been changed so that the file will
reference using Alt-F1 in place of ShiftRun.

3. The Selected Object Settings would cause a Warp 4 FTP-Host Object
to open when the detail information was collected. Code has been added to insure that
this will no longer happen.

4. It was possible to get a logic error of 2711 when resetting the read only
INI files because the reset routine attempted to write something to the INI
files that were being reset before the reset was finished. The code has been
changed so that a logic error will not occur when this condition is
encountered.

5. Code has been added to the Desktop Backup and Restore routines to backup
and restore the WarpCenter configuration files if the backup is made on a
Warp 4 system.

6. The error message in IniClean when it cannot delete a directory has been
changed so that it no longer says logic error and tells the user that the
processing is continuing.

7. There was a possible condition in the Reinstall code where the reinstalled
files would get copied into the default directory, normally the UniMaint
directory, rather than into the correct target directory. This occurred in
OS/2 V2.1 and was caused by a problem in how one of the api's handled names
that did not have a file specified. This function has now been transferred to
a subroutine that will check for and fix the error introduced by the problem 
api.

8. An option has been added to the EA defaults that allows users to ignore
errors in thew DosFindFirst/Next API's. This will allow users to identify any 
directories or files that have problems with the EAs so that they can delete
or move the information. If logging is turned on the errors will be logged to
the log file.

******************************* V5.00.26 *********************************

The items fixed in Version 5.00.26 are:

1. The code that is in UniCheck to check the WarpCenter Config Files has been
added to UniWatch so that users using UniWatch at boot time do not need to
use UniCheck.

2. There were a couple of places in the Restore WarpCenter routine where
additional logging was required in order to identify where a problem
occurred.

3. It was possible to not get a dump file when a SYS3175 occured because a
dump file had not been selected or because the current dump file could not be
opened. The code has been modified so that a default dump file name will be
used if either of these conditions occur. This means that the dump will not
get recorded only if a fila by the name of unimaint.dmp cannot be opened in
the default directory.

4. If one of the WarpCenter CFG files had the Read Only Attribute turned on 
when UniMaint tried to Restore it a logic error 1769 would result because the 
file could not be opened for write. Code has been added to check for this
and remove the Read Only Attribute before an attempt is made to write to the
file.

5. If the Exists menu in the Portable Restore window was set to anything
other than Update when the WarpCenter was restored problems would result. If
the setting was Replace, a SYS3175 would occur in SOM.DLL. This has been
fixed by forcing the Exists Setting to Update when the WarpCenter is
restored.

6. When certain file related library api's such as fopen, fclose, fread and
fwrite are called and OS/2 encounters some sort of error the api will not
return the OS/2 error code it returns a generic error code that simply says
that OS/2 had a problem. Code has been added in a number of places to be sure
to capture the OS/2 error code in these case so that the actual error
condition can be determined.

7. There were situations where objects would not get restored because the
incorrect index was used to determine how many Objects were in the Portable
Restore window. This was not a problem before the WarpCenter because the
count of objects and the count of lines in the window were the same. However,
since some of the WarpCenter objects are not placed in the window using the
count of lines would cause the last few objects in the table to not be
processed.

8. It was possible to get duplicate DOS queue names when multiple runs of
UniMaint were done and certain kinds of functions are done. The code has been
changed to add the thread id to the queue name so that each time will be
unique. Code has also been added to the termination routine to close any open
DOS Queue before the program ends.

9. If the Desktop Restore CMD file could not find the generation the user
specified the user was notified. However, after hitting any key to get out,
the user simply saw the same message again. It was necessary to hit
Ctrl-Break to get out of the CMD file. The code has been changed so that the
Desktop Restore will simply exit after the user has been told about the error
and hits any key.

10. It turns out that the TCPIP WPS Class DLL's often get registered with a
double backslash in the path information. This creates a problem in a number
of areas so code has been added to look for the condition and remove the
second backslash.

11. In order to improve the logging of problems the subroutine that splits
path and filenames will now log both the original information and the
results.

12. IniCopy could get a SYS3175 at termination time because a memory area was
freed twice. This has been fixed.

13. Additional logging has been added to UniWatch to log out the exact
parameters used when the OS/2 Command Processor or IniCopy are run.

14. If the New INI File Processing flag is set in UniMaint then UniWatch will
now add the item to the IniCopy parameter line that will insure that IniCopy
also use the New INI File processing routines.

15. There was a bug in the routine that initialized the WPS Settings
Structure that did not surface until the V3.0 compiler was installed. The
problem would cause a SYS3175 when the structure was being initialized
because an attempt was made to modify a constant string. The code has been
changed to insure that the string being changed is not in constant storage.

16. The WPS Setting structure was not getting completely dumped when the
variable dump was written to a file because of a problem in corrdination
between the actual dump routine and the write routine. The dump routine was
changed so that all of the information will now get dumped.

17. The WPS Settings structure was getting completely dumped even when it had
not been used so code was added to insure that it is only dumped when
something has been changed.

18. It was possible to get a SYS3175 in the WPS Settings routine because an
area of memory was freed twice. One of the routines have been changed so that
the memory will only be freed a single time.

19. Because so many users were attempting to turn things like logging on
using the Tools Icons...which does not work because these settings do not
persist from one run of UniMaint to the next...code has been added to warn
the user anytime they do this.

******************************* V5.00.27 *********************************

The items fixed in Version 5.00.27 are:

1. There was a problem introduced in V5.00.26 that caused a logic error 626
when UniMaint attempted to run an external program, such as IniCopy. This was
caused by an inconsistent DOS Queue Name and the code has been modified so
that this problem will no longer occur.

2. The code that saves Shadow information was treating the WarpCenter Tray 
objects as normal shadows. This code was changed so that the object being
shadowed is not informed that this shadow exists so that the shadow will not
get restored when the base object is restored. The reason for this is that we
only want to restore the Warpcenter Shadow Objects when we are actually
resotring the Warpcenter itself.

3. The code that assigns Object ID's always added the Object ID Assigned
message because an 'else' was missing and has been added.

4. If one of the DOCK.CFG files was missing from the WarpCenter directory the
Restore of the WarpCenter would fail because the restore code could not reset
the read only attribute on a file which does not exist. The code has been
changed to ignore a file not found return from the API that resets the read
only attribute.

5. Once a type of tool was specified on the UniMaint parameter line it was
not possible to use and of the /SET options because the code checked for a
tool being set before it checked for the /SET string. The code has been
modified so that parameters can now be set after a toll has been defined.

6. There were some problems in the area of Shadows that were caused by the
changes necessary for the WarpCenter and these have been fixed.

******************************* V5.00.28 *********************************

The items fixed in Version 5.00.28 are:

1. The restore of the Desktop and a few other things would fail with a logic
error of 65635 because a function call inserted in V5.00.25 had it's return
code checked incorrectly. The return code check has been modified so that
this error will no longer occur.

2. New code that was introduced to improve the way that the Portable Restore
found the WPS Pointer and Handle for an object would fail before the Restore
attempted to create the Object with FAIL_IF_EXISTS. The code has been changed
to not report an error but to continue to process the Object and only fail if
all attempts to create the Object fail.

3. The logging for the Portable Backup and Restore was upgraded to insure
that both a start and completed messages is logged for each of the major
backup and restore functions. This will make it easier to determine whether
the backup or restore code was completely finished with a particular object.

4. The logging for the Portable Restore was upgraded to log each of the
pieces of information as it is being restored so that it will be easier to
determine exactly which piece of information caused a problem in case of some
sort of problem.

5. It was possible to set the Portable Restore menu items in a way that the
user could be asked if they wanted each of the entries in the WarpCenter
Trays restored because it was possible that the object already existed. Since
all of the entries in the Trays should be restored when the WarpCenter is
restored, the user should never be asked this question. Code has been added
to bypass this question when restoring the entries in the WarpCenter Trays.

6. Code was added to set a default diagnostic filename when diagnostic mode
is turned on.

7. Many users were confused by the two sets of radio buttons in the dialogs
to modify some of the settings which had only two values. Users would try to
use the Current radio buttons to change the settings rather than the correct
Changed radio buttons. When the Current radio buttons did not change anything
many of the users would simply give up. Code has been added to popup a
message box anytime the user clicks on the Current radiobuttons telling the
user that they need to use the Changed radio buttons to actually modify the
data.

8. The code used to detect whether UniWatch is running has been upgraded to
check the process id and thread id as well as the window handle in order to
insure that the information in the UniMaint control file is correct.

9. Since the Desktop Backup will fail when it attempts to update the UniWatch
control file if UniWatch is running, since UniWatch will have the read only
attribute set for the file, code has been added to the Desktop Backup routine
to check to see if UniWatch is actually running and to warn the user to
either close UniWatch or do the Desktop Backup from the UniWatch menu.

10. The Portable Backup of the WarpCenter would not save the second and
subsequent copies of the information on Objects that were on more than one
WarpCenter tray. Therefore, Objects would be missing on some of the trays
when the restore was done. This has been fixed.

******************************* V5.00.29 *********************************

The items fixed in Version 5.00.29 are:

1. Doing the size calcualtion and creating the container lines for the Cross
Reference can sometimes take more than a minute and there is no evidence
that progress is being made. Code has been added to the routines involved so
that the user will see progress information as the various functions are
performed.

2. The Portable Restore of objects in the WarpCenter trays and the general
restore of shadow objects could have a problem if there is more than one
shadow of a specific object so code has been added to check for this
condition and make sure shadows and WarpCenter tray objects are restored
correctly.

3. The Portable Backup Defaults Dialog was incorrect becasue the Restore Warp
4 Launchpad item was on top of the Ask If Populate Fails item because the
dialog definition was incorrect. The dialog definition has been corrected.

4. Warp 4 will not allow the Templates directory to be deleted therefore the
Desktop Restore has been changed so that it will take this into account and
correctly restore all of the directories and files along with their Extended
Attributes.





















