The following is a list of items fixed 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.