home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-03-25 | 116.4 KB | 2,421 lines |
- INIMAINT CHANGE HISTORY
-
- ******************************* V1.0a *******************************
-
- The items fixed in Version 1.0a are:
-
- 1. There was a potential problem in 1.0 if a new file was selected
- before the data for a key was written to the file. This turned out to
- not be a problem.
-
- 2. If INIMAINT was closed in a minimized condition, the correct
- window size and location were not stored. This has been fixed.
-
- 3. The SIZE calculation for All Groups was incorrect if a single
- Application was included in more than one Group. This has been fixed.
-
- 4. If the Help Instance could not be created because the INIHELP.HLP
- file was not found, the user only got a 5101 logic error. The Dump
- Dialog has been changed to add a line that gives the reason for any
- outstanding logic error.
-
- 5. The PM Error Text was not displayed when there was a PM Error.
- OS/2 1.3 with CSD WR5050 has a bug in this area and will not display
- the correct text. The text will now be displayed.
-
- 6. When an error was encountered during Help Instance Initialization,
- the help error code was not stored in the Help Error area. This has
- now been fixed.
-
- 7. INIMAINT would not run at all if there was a problem initializing
- the Help. It will now run, but no Help will be available.
-
- ******************************* V1.0b *******************************
-
- The items fixed in Version 1.0b are:
-
- 1. More of the Help has been done, the missing Help is now that for
- the Dialog Boxes.
-
- 2. When run under OS/2 2.0 a Message Queue Full error was being
- encountered. This was fixed by increasing the Message Queue from the
- default 10 to 30.
-
- ******************************* V1.0c *******************************
-
- The items fixed in Version 1.0c are:
-
- 1. A Dump message logging facility was added so that problems with
- message sequences could be logged and identified.
-
- 2. Because of a problem in OS/2 2.0 the return from setting the top
- index in a listbox is incorrect. The check for a valid return from
- this API call has been removed so that INIMAINT will run under OS/2
- 2.0.
-
- ******************************* V1.0d *******************************
-
- The items fixed in Version 1.0d are:
-
- 1. When INIMAINT first comes up, the LOGO box does not have the Focus
- and the Enter Key will not close it, it can only be closed using the
- Mouse. The Focus is not forced to the LOGO Dialog during initial
- window processing.
-
- 2. The Dump Dialog will not fit on a 640x480 VGA Screen. To fix this
- the Dump dialog was made 20 pels shorter.
-
- 3. The filling of the Listboxes, the MLE and the Size calculation all
- have the capability to run for some time, especially under OS/2 2.0,
- and they block any processing of messages during this period. These
- functions have been moved to a separate thread.
-
- 4. Choosing Menu Items such as Size, Copy and Move cause a Dialog box
- to appear with the selections. The Selections are now a menu, not a
- dialog.
-
- 5. If there is a lot of data to be inserted into the MLE, the MLE
- blinks a lot. The window is now be disabled during the data insertion.
-
- 6. If Size is selected and then Cancelled, a Size of 20 bytes was
- displayed. This has been fixed.
-
- 7. The buttons in the New File Dialog were in uppercase, but now are
- lower case.
-
- 8. If a New File is selected on a diskette drive that has no
- diskette, a terminal error resulted. Now a Message Box will be
- presented and the old drive will remain the current drive.
-
- 9. Selecting an empty VDISK drive got a terminal error. This has been
- fixed.
-
- 10. You could not Cancel a Copy without selecting a target file. This
- has been fixed.
-
- 11. When the contents of the Dump Dialog were written to a file, the
- values of the various error indicators, which are displayed at the
- top of the Dialog, were not written. This has been fixed.
-
- 12. If a non-INI file is selected and it causes INIMAINT to
- terminate, then the program would not restart, because it attempted to
- use the same file and continued to get the same error. The user is
- now informed the file is invalid and given a chance to select a new
- file to edit.
-
- 13. When opening a new INI file to edit, the check for a valid INI
- file was not sufficient to identify the bad file during the file
- selection process. This has not been fixed and any file that gets
- through the file selection will be a valid INI file.
-
- 14. If a Drive was selected and the root directory was empty,
- INIMAINT would terminate attempting to fill the file Listbox. This
- has now been fixed.
-
- 15. When editing the any line of a multiline entry in the Key
- Value MLE while in overtype mode, as opposed to insert mode,
- the following line had the initial characters deleted. This has been
- fixed.
-
- 16. When the Focus was removed from the INIMAINT window, the
- Titlebars of both Listboxes stayed in a highlighted condition. This
- has been fixed and the colors of the Titlebars will now behave
- correctly.
-
- 17. Since no user input is accepted while the Listboxes are being
- filled, the MLE is being reset, a Size is being calculated or a Move
- or Copy are in progress, the Pointer should be changed to an
- hourglass pointer, this was not working, but has been fixed.
-
- 18. The Help has been finished.
-
- 19. There was a problem with seeing the pointer in the MLE under OS/2
- 2.0, so a call to WinSetOwner setting the Main Client window as the
- Owner of the MLE was added to fix the problem.
-
- ******************************* V1.0e *******************************
-
- The items fixed in Version 1.0e are:
-
- 1. Copy an Entire File got a return of 10 from the Copy program. This
- has been fixed.
-
- 2. The MOVE/COPY in Progress Dialog did not display the word
- Move/Copy. This has been fixed.
-
- 3. The MOVE/COPY did not verify that the target file was a valid INI
- file. This will now be done and an Error Message box will be
- displayed if the COPY/MOVE cannot be done.
-
- 4. The smallest item that could be MOVEed or COPYed was an
- Application. It is now possible to COPY/MOVE an individual key.
-
- 5. Considerably more Help has been added.
-
- 6. Accelerator Keys have been implemented and added to the Help.
-
- 7. If a New File was selected and either the OS2.INI or OS2SYS.INI
- files were specified without the initial path information, INIMAINT
- did not recognize them as the User and System INI files and attempted
- to open them in an incorrect manner. This has been fixed.
-
- 8. If a COPY/MOVE was attempted and either the OS2.INI or OS2SYS.INI
- files were specified as the target without the initial path
- information, INIMAINT did not recognize them as the User and System
- INI files and attempted to open them in an incorrect manner. This has
- been fixed.
-
- 9. If an INI file was selected that had no Applications in it, the
- INIMAINT window would not appear. This has been fixed.
-
- 10. It was not possible to cancel the Add Application or Add Key
- without getting the Message Box saying that something had to be
- entered. The Cancel will now work correctly.
-
- 11. The Listboxes and MLE would flash excessively. This will no
- longer occur.
-
- 12. When in the Dump Dialog, it was not possible to change the name
- of the Dump File by simply typing in the Filename Entry Field. This
- will now work and the new filename will become the Dump File for
- future Dumps.
-
- 13. When the Help was open, the Title Bars of the smaller INIMAINT
- windows appeared to still have the focus because they were
- highlighted. This will no longer occur.
-
- 14. When in the Replace Key Dialog and the key value was longer than
- what could be displayed in the Listbox, any change to the value would
- cause the contents of the ASCII and Hex Entry Fields would shift to
- the very end of the value data. This has been fixed.
-
- 15. INIMAINT was not using the Logo Display Time that is set by the
- user in the Control Panel, but was using an internal 10 second
- display time. This has been changed so that the Control Panel value
- will now be used. Even with a value specified in the Control Panel,
- it is still possible to turn off the Initial Logo Display with the
- Options Dialog.
-
- ******************************* V1.0f *******************************
-
- The items fixed in Version 1.0f are:
-
- 1. The Menus did not show the Accelerator Keys, this information has
- been added to the appropriate menu items.
-
- 2. Because of a bug in handling Timers, INIMAINT would get an error
- when run under OS/2 2.0 and the About Dialog was dismissed. This has
- been fixed by changing the Parent of the About box when it is invoked
- from the Menu.
-
- 3. The Help indicated that there was an Accelerator key that would
- directly pull down the COPY or MOVE menus. This was an error and has
- been removed from the Help file.
-
- 4. When a COPY/MOVE was attempted for the Selected Application or
- Selected Key and either of the Selected Names had an embedded blank,
- then the COPY?MOVE would terminate with an Error=5 from the INICOPY
- program. This has been fixed.
-
- 5. The Error Message Box displayed when an invalid INI file was
- selected did not include the error message, this has been fixed.
-
- 6. When an invalid INI file was selected, INIMAINT would not close
- the file, therefore, no other process could use the file. This has
- been fixed.
-
- ******************************* V1.0g *******************************
-
- The items fixed in Version 1.0g are:
-
- 1. The Dump to a file could get a Trap D and could dump some garbage
- messages because it was going past the end of the Message table. This
- has been fixed.
-
- 2. A message sequence number has been added to the dump of messages.
-
- 3. When doing a MOVE/COPY the Wait Pointer was not set correctly when
- the pointer was over the Listboxes or MLE. This has been fixed.
-
- 4. If a Group was deleted, a hole was left in the menu items that
- include the Groups. This has been fixed.
-
- 5. When things were MOVEd from an INI file to another file, the
- Listboxes were not updated to reflect the fact that the MOVEd items
- were no longer in the Source INI file. This has been fixed and the
- Listboxes will be automatically updated after the MOVE.
-
- 6. The supplemental error text was not always complete if an error
- occurred during a MOVE/COPY operation. This has been fixed.
-
- 7. V1.0f displayed a Version number of 1.0e. V1.0g will show the
- correct version.
-
- 8. When the last Key for an Application was moved to another INI
- file, the Application entry was not deleted and an Application with
- no Keys was left in the file. INIMAINT will now check to see if a
- MOVE Key is being done for the last Key and promote it to a MOVE
- Application, so that the Application entry will be removed from the
- Source INI file.
-
- 9. The Groups Dialog did not redisplay the Group that was being
- displayed when the last Group Update was done. This has been fixed.
-
- ******************************* V1.1 *******************************
-
- The items fixed in Version 1.1 are:
-
- 1. The System Default Accelerator keys did not work because the
- System Commands were not getting to the Main Window Frame. This has
- been fixed.
-
- 2. The Registration code was added.
-
- 3. When an input string was requested, the user was asked to 'Select'
- something. This has been changed to ask the user to 'Enter' the
- information.
-
- ******************************* V1.1a *******************************
-
- The items fixed in Version 1.1a are:
-
- 1. The supplemental error text was not correctly filled in when there
- was an error during a COPY/MOVE. This has been fixed.
-
- 2. It was possible to get a Trap D when selecting a New INI File
- because dynamic memory was released prematurely. This has been fixed.
-
- ******************************* V1.1b *******************************
-
- The items fixed in Version 1.1b are:
-
- 1. It was possible to get a Trap D while the MLE was formatting a
- long entry if an attempt was made to make a selection in one of the
- Listboxes or an attempt was made to change the MLE. Now any such
- attempt will cause an error tone and the action will be rejected
- until all updaing has been done.
-
- 2. There were some relatively rare situations where dynamic memory
- blocks were not being freed, theu that amount of memory used would
- slowly grow. This has been fixed.
-
- 3. In order to better track potential memory problems, a dump of the
- contents of the heap has been added to the Dump window and and more
- complete listing will be written to the Dump File.
-
- 4. Under certain circumstances, INIMAINT would put Keys in the
- OS2.INI file for the INI File Maintenance Application that had NULL
- Values. This will no longer occur, although it did not cause any
- problem other than put unneeded items in the INI file.
-
- 5. There are certain Applications and/or Keys that cannot be deleted
- from the OS2SYS.INI file. When an attempt was made to Delete or MOVE
- one of these entries, INIMAINT would terminate. Additional code has
- been inserted that will identify these conditions, inform the user
- and then continue.
-
- 6. Under OS/2 2.0 INIMAINT would terminate with an error 109 after
- the About INIMAINT Dialog box was displayed. This was caused by
- static variables that were not correctly initialized after the first
- use of the dialog. This has been fixed.
-
- 7. The Spooler, and perhaps other sections of OS/2 protect certain
- areas of the INI files, especially the System INI file, thus making
- it impossible to remove certain Keys from the files, even though the
- Keys are associated with things that are no longer on the Desktop. In
- order to facilitate these efforts, a new capability has been added to
- INIMAINT that allows the user to change the User and/or System INI
- files to a different file. The user can then edit the original file
- as he wishes and then switch back. This must be done with much care
- in order to avoid causing a system problem, but the capability can be
- extremely important when attempting to recover from conditions where
- the operating system has created conflicting or other conditions that
- can be corrected no other way.
-
- ******************************* V1.1c *******************************
-
- The items fixed in Version 1.1c are:
-
- 1. The Main Window Menu Items for changing the User and System INI
- files have been moved from the Actions Menu to a new Menu, Recover.
- It is intended that additional capabilities will be added to give the
- user the ability to recover from corrupted INI files and those
- capabilities will be added to this menu. In addition, the Actions
- Menu was getting crowded.
-
- 2. Two new items have been added to the Action Menu. Rename Key will
- change the name of an existing Key and Duplicate Key will make a
- duplicate copy of a Key Value using a different Key Name.
-
- ******************************* V1.1d *******************************
-
- The items fixed in Version 1.1d are:
-
- 1. The New File and Exit Menus have been combined into a single Menu
- called File. This was done for two reasons, first, the number of menu
- items was becoming too large and, second, a new file type function
- was added, see below.
-
- 2. Since there are a number of different conditions that could modify
- an INI file that is currently being viewed using INIMAINT, the
- ability to reload an INI file from disk has been added. It is the
- Refresh selection on the File Menu.
-
- 3. There was an error in Error Message 13 in the INICOPY program.
-
- 4. It was not possible to select a Application/Key pair when the Key
- Value was zero length ie., there was no Value, only the Application
- and Key Names. This has been fixed.
-
- 5. It was not possible to COPY/MOVE and INI file that had an
- Application/Key pair with a zero length Key Value. This has been
- fixed.
-
- 6. When Adding or Replacing a Key Value, the ability to specify that
- a zero termination character is to be added to the Key Value can now
- be indicated with a Checkbox.
-
- 7. The most common files that INIMAINT is asked to display are the
- User and System INI files. In order to make it easy to select these
- files, two new entries have been added to the File Menu that allow
- for direct selection of these two files without having to use the
- file selection dialog.
-
- 8. Some of the dialog procedures did not initialize static data
- causing a new use of the same dialog to behave in unexpected ways.
- This has been fixed.
-
- 9. A new item has been added to the Options that gives users the
- ability to have the Application and Key Listboxes loaded in the same
- sequence as the actual INI file as opposed to alpha sequence.
-
- ******************************* V1.1e *******************************
-
- The items fixed in Version 1.1e are:
-
- 1. When the menu item was used to switch to the User or System INI
- files, the new file information was not saved. The effect of this was
- that the next time INIMAINT was run, it would go back to the previous
- INI file. This has been fixed.
-
- 2. INIMAINT can now be started with a Command Line parameter
- specifying the initial INI file for this execution of INIMAINT. This
- not only allows INIMAINT to be run with a parameter, but also allows
- for it to be run by double clicking on an INI file, if the
- association has been set up, and allows for running INIMAINT by
- dropping an INI file on the ICON on the Desktop.
-
- 3. For versions of OS/2 prior to 2.0, there is no provision for
- setting up file associations. Therefore a new item has been added to
- the FILE Menu that will set up an association between INIMAINT and
- all files whose file extensions are INI. This option will not appear
- on the menu if the version is 2.0 or higher.
-
- 4. There are some key values which are very long, therefore, they
- take a long time to load into the MLE. It is often the case that the
- user does not even want to see the key value and would prefer to
- switch to another key name. However, it was necessary to wait until
- the MLE was filled and then wait again until all of the lines were
- removed from the MLE. It is now possible to terminate the loading of
- the key value lines into the MLE by hitting the ESC key while the MLE
- is loading. The current Application and Key names will still be
- highlighted, but the MLE will be empty.
-
- 5. In order to keep the menu line from becoming too crowded, the Dump
- menu item has been moved to the File submenu. This was an item that
- is not frequently used anyway. This makes room for the item below.
-
- 6. A new menu item has been added to the main menu, Find. This
- submenu will allow searching of either of the listboxes, the key
- value MLE, all the key names in the current file, all of the key
- values for the current application or all of the key values in the
- current file for either an Ascii or Hex value.
-
- 7. It was possible to select a new item in the Application or Key
- Listboxes while the boxes were being filled. This would cause a
- Protection Violation and has now been fixed.
-
- 8. When certain errors were encountered during the loading of the
- Listboxes or the MLE, they were not reported, this has been fixed.
-
- 9. If the Value of a Key is larger than 65,500 characters, selecting
- that Key in the Key Listbox would cause a memory allocation error and
- the INI file with the Key Value could not be MOVEd, COPYed or used as
- the target of a FIND search. All of these have been fixed. However,
- only the first 60,000 characters of the Key Value will be displayed
- in the Key Value MLE.
-
- 10. If INIMAINT was started with an INI file where the first Key
- Value of the first Application was very large, it was not possible to
- terminate the loading of the Key Value MLE because the main window
- was not visible. This has been fixed by making the main window
- visible before the intial loading of the Key Value MLE.
-
- 11. A new feature, Compare, has been added to the File menu. This
- item will allow the user to compare two INI files on any one of three
- different levels, write or print a listing of the differences and
- write an INI file that contains only those Applications and/or Keys
- where there are differences.
-
- ******************************* V1.1f *******************************
-
- The items fixed in Version 1.1f are:
-
- 1. When an attempt to set an association with the INI files was
- attempted under OS/2 1.3, the association was set up, but INIMAINT
- would then abend with a protection exception. This has been fixed.
-
- 2. When INIMAINT asked the user to enter any character string
- variable, there was no warning when the entered string was too long.
- This has been fixed and the user will hear a beep if they attempt to
- enter a string that exceeds the maximum length for the requested
- item.
-
- 3. It was possible to enter a Group Name that was longer than 30
- characters, which is the maximum. This would appear to work
- correctly, but subsequent attempts to use INIMAINT on the INI file
- involved would cause a protection exception.
-
- 4. The filling of the window that holds the Key values, an OS/2 MLE,
- was very slow if the key value length exceeded 1,000 or so
- characters. If the value approached 64k, then time needed was several
- minutes, even on a fast machine. The loading has been changed and 64K
- can be loaded into the window in less than 10 seconds on the test
- machine, which is a 25mhz 486. However, there does not seem to be any
- way to clear a long key value from the window in less than
- approximately 45 seconds on the test machine. Several different
- approaches have been tried, but none of them resulted in a lower
- time. Therefore, it takes longer to clear the key value window than
- it takes to fill it. If the 45 seconds becomes a problem, hitting F3
- will immediately terminate INIMAINT, which can then be restarted.
- However, it is hard to see how this could be done in less than 45
- seconds on a regular basis.
-
- 5. A Repair feature is being worked on and is in the Online Help.
- However, there are still some problems with the code that compares
- the INI file entries to the actual contents of the desktop. This
- feature will be implemented in the next release. If the item is
- selected from the menu, the dialog box will appear and will be fully
- functional, except that the Execute Button will not work. Choosing
- Execute will result in a Message Box saying that the Execute has not
- been implemented in this release.
-
- 6. At least one user has a need to move a Key from one Application to
- another. The Duplicate Key item on the Action Menu has been modified
- so that the user will now be prompted for a New Application Name as
- well as a New Key Name. One of these names must be modified and the
- Key Value will be copied using the modified names. If just the
- Application Name is changed, then this has the effect of copying the
- Key Name and Value to the new Application. The information will
- remain using the old Application and Key Names unless specifically
- deleted by the user.
- where there are differences.
-
- ******************************* V1.1g *******************************
-
- The items fixed in Version 1.1g are:
-
- 1. The clearing of the Key Value window could take a considerable
- amount of time when the key value was larger than a few thousand
- characters. This has been fixed by changing the code from sending a
- message to delete the contents of the window to simply destroying the
- window and recreating it.
-
- 2. Hitting F10 did not cause a refresh of the file, because the
- System uses F10 to hilight the first menu item. The Refresh was
- changed to F4.
-
- 3. The address and phone number for Carry Associates was changed in
- the documentation files, but was not changed in the About Dialog or
- in the online Help. This has been fixed.
-
- 4. A new item has been added to the Action Menu, Duplicate
- Application, which will make a duplicate copy of any Application in
- the same INI file using a different Application Name.
-
- 5. When a Key was Duplicated in an INI file and the copy was put in
- an Application that did not previously exist, the Application Listbox
- was not refreshed. This has been fixed.
-
- ******************************* V1.1h *******************************
-
- The items fixed in Version 1.1h are:
-
- 1. A Rename Application item has been added to the Action Menu.
- This is the same as the Duplicate Application except that the old
- Application is deleted.
-
- ******************************* V1.1i *******************************
-
- The items fixed in Version 1.1i are:
-
- 1. The Control Program Error indicator could be reset in an error
- situation before the Dump Dialog was displayed, thus losing this
- information. This has been fixed by saving the contents of this
- variable at the point that the initial error occurred.
-
- 2. The found flag was not always reset when multiple Find's were
- requested. The result of this was an indication that a target was
- found when it really was not. This has been fixed by resetting the
- found flag at the start of each find cycle.
-
- 3. A new item has been added to the Recover Menu, Repair INI file.
- Refer to the INIREP.TXT file for a detailed description of the
- currently available repair actions and the online help for how to use
- the facility. Initially, the only repair action that is available is
- to remove entries from any INI file that reference files which are
- not present on the desktop.
-
- 4. The Print function in the Compare and Repair Dialog boxes did not
- correctly print lines that were longer that the current page, the
- line would be truncated rather than carried over to the next line.
- This has been fixed.
-
- 5. When certain errors occurred, for example during a repair action
- or a file compare, the error was not reported via the Dump Dialog and
- INIMAINT would simply stop processing messages. This has been fixed
- by insuring that the various work threads correctly return any error
- indication to the controlling dialog and that the dialog procedure
- terminates the dialog when the error is seen.
-
- ******************************* V1.1j *******************************
-
- The items fixed in Version 1.1j are:
-
- 1. A new item, Condense, has been added to the Repair Menu. This item
- will condense the empty space out of the Current, System, User or
- both System and User INI files with a single selection. INIMAINT has
- had this capability for some time, but it required a number of
- different selections to accomplish.
-
- 2. The menu item to change both the System and User INI files only
- changed the User INI file. This has been fixed.
-
- 3. An item has been added to the online help to describe what is
- meant be the System and User INI files.
-
- 4. The Size submenu has been expanded to add the ability to calculate
- a Size for the System INI File or User INI File without having to
- make one of these files the current INI file.
-
- 5. The Copy submenu has been expanded to add the ability to make a
- Copy of the System INI File, the User INI File or both the System and
- User INI files without having to make these files the current INI
- file.
-
- ******************************* V1.1k *******************************
-
- The items fixed in Version 1.1k are:
-
- 1. A new submenu has been added to the Actions menu, Backup. This
- allows the user to make a backup copy of the System INI File, the
- User INI File or both the System and User INI Files. This item
- differs from the Copy item in two respects. First, in order for a
- Copy to be a true backup, the target file must not exist. With Copy,
- it was necessary for the user to insure that this was the case. The
- Backup menu item will automatically erase the file if it already
- exists. Second, each time a copy was done, it was necessary to
- specify the target INI file for the copy and, since INIMAINT only
- maintains a single target copy filename and does not save this
- filename from one execution of INIMAINT to the next, the names had to
- be reentered each time. INIMAINT will save the names of the System
- and User INI File backup target files and present them as the default
- target files each time a backup is requested. Finally, a new item has
- been added to the Options Dialog that allows the user to bypass being
- asked if they want to use the current backup target files. If this
- option is selected then INIMAINT will use the backup target files
- without asking the user for confirmation.
-
- 2. The Copying File Box would always be displayed during a copy, even
- if the Option was set to not display it. This has been fixed.
-
- 3. There were two potential heap corruption situations in the INICOPY
- program. In one case the wrong form of the free API was used. In the
- other case, it was possible to free the same memory block more than
- one time. Both of these have been fixed.
-
- 4. The Condense item on the Recover menu has been improved in two
- ways. First, INIMAINT will now automatically build a name for the
- temporary INI file and insure that it does not duplicate an existing
- file, this eliminates the need to ask the user for the temporary
- filename. Second, once the initial copy is done, INIMAINT will use
- the standard copy to make a second copy of the new file, erase the
- original file and then rename the second copy to the original name.
- This eliminates the need to do a second INI type of copy, which can
- take a relatively long time. The effect of this is to significantly
- reduce the amount of time that is required to do the Condense.
-
- 5. There was a serious bug in the Condense Both INI files code. The
- temporary file was not erase between the two copies, so the second
- file contained everything from both files. This has been fixed by
- erasing the temporary file immediately after the copy.
-
- ******************************* V1.1l *******************************
-
- The items fixed in Version 1.1l are:
-
- 1. When attempting to do a Copy or Move with the System or User file
- as either the source or target file and lower case characters were
- user in either file name, the Copy could fail because INICOPY did not
- recognize the names as the names of these files, which must be opened
- differently. This has been fixed by forcing the names to upper case
- before checking them against the names of the standard files.
-
- 2. If an error was encountered setting the normal or wait pointers,
- it was not reported because the subroutines did not return an error
- return. This has been fixed.
-
- 3. If Cancel was chosen when the initial Condense Dialog was
- displayed a SYS3175 error would occur because a NULL pointer was
- passed to free(). This has been fixed by moving the free() to a point
- after the pointer has been validated.
-
- 4. it was possible for certain entries in some INI files to cause the
- INIMAINT Repair Dialog to terminate with a 1109 logic error and a DOS
- error of 123. This was caused by passing a name to DosLoadModule that
- it considered invalid, INIMAINT did not check for this return and
- would, therefore, post it as an error. This has been fixed by
- including this check in the list of returns that are considered valid
- returns by INIMAINT.
-
- 5. A logic error 1111 witha DosError of 15 was possible during a
- Repair because INIMAINT did not check for an Invalid Drive return
- from the DosOpen of a drive. This has been fixed by including this
- error in the normal set of checks.
-
- 6. When INIMAINT starts, it saves the current pointer from the
- Desktop so that it will know which pointer to restore after putting
- up the Wait pointer. It was possible, if some unusual pointer was
- displayed at the time that INIMAINT saved the current pointer, that
- the wrong pointer type would be saved and an attempt to restore to
- this incorrect pointer would cause a logic error 616. This has been
- fixed by saving the standard pointer rather than attempting to save
- the current pointer.
-
- 7. When the Condense of both the System and User INI files was
- selected. The desktop was reset two times for each file. This caused
- two problems, first, it takes a long time to reset the desktop and,
- second, on certain occasions it left the desktop in a condition where
- it was necessary to reboot before any work could be done. This has
- been fixed by, in this situation, copying both the System and User
- INI files before the first Reset. This way the desktop is only reset
- two times, which is the minimum possible.
-
- 8. Because of a conflict between the LOCKUP facility and Dialog boxes
- that have had their Parent switched to the Desktop Object Window, in
- order to make the dialog not visible, the Option that sets the
- display of the Copy Dialog will not work. The Copy Dialog will always
- be displayed, no matter what the setting of the Option. Once this
- problem is researched and something is done to remove the conflict,
- the Option will be reenabled.
-
- ******************************* V1.1m *******************************
-
- The items fixed in Version 1.1m are:
-
- 1. When a Size was cancelled using the Esc key, the pointer did not
- return to the normal pointer and the thread was not terminated, thus
- INIMAINT would not do any work and had to be cancelled externally.
- This has been fixed.
-
- 2. The Options Dialog was becoming too high, so it has been broken
- into tow side by side lists.
-
- 3. A new Option, Fast Copy, has been added. If this Option is
- activated then INIMAINT will use special high speed methods to access
- the INI files when an entire file is being Copied, Moved, Backedup or
- Condensed. This greatly reduces the time necessary to process large
- INI files, such as the System and User INI files.
-
- ******************************* V2.0 *******************************
-
- The items fixed in Version 2.0 are:
-
- 1. This version is a full 32 bit version.
-
- 2. A number of improvements have been made to the INSTALL procedure,
- including the ability to install all the files into a single
- subdirectory.
-
- 3. The Repair and Compare Dialogs had the Options box and the results
- Listbox too close together the Dialog was also too high to
- comfortably fit on a default 640x480 screen. Both of these have been
- fixed.
-
- 4. When an error was encountered in the Repair Process, the line from
- the INI file that caused the problem was not placed into the
- supplemental error text field. This has been fixed.
-
- 5. Because the 16 bit Prf API's were limited to 64K of data for any
- key Value, INIMAINT was limited to reading and displaying this amount
- of data. The restriction has been removed with this version because
- of the conversion to full 32 bit.
-
- 6. The Repair Function had attempted to see if *.PSF files that were
- in the INI files with no path information actually existed on the
- Desktop. DosLoadModule was used for this check, since the files
- should be in the LIBPATH. It turns out that DosLoadModule will not
- find anything other than DLL files, so this check was removed.
-
- 7. The Repair Function ignored files that had a pathname that
- indicated they were on a floppy drive, a disk drive with removable
- media, a tape drive, an unknown type of drive, an invalid drive and a
- drive that could not be accessed via DosOpen. Since it is very
- unlikely that any INI file entry that has a pathname that starts with
- any of these type of drive is one that should remain in the INI file,
- all of these conditions have been added to the list of situations
- that INIMAINT will recommend for removal.
-
- 8. If Help was requested while doing a Repair after a new Save INI
- File or Write File was selected, the Help would not work because the
- Repair Dialog was not reset as the active help window. This has been
- fixed.
-
- 9. If the Repair function encountered a path and filename combination
- that looked like it was valid, but it was not, the Repair would
- terminate with a 1109 Logic Error Code. This has been fixed by adding
- checks for an invalid filename at the appropriate points.
-
- ******************************* V2.0a *******************************
-
- The items fixed in Version 2.0a are:
-
- 1. V2.0 forced and path and filenames to upper case in a number of
- places. The caused a number of problems with lower case characters in
- filenames and this code has been removed.
-
- 2. It was possible for the New File Dialog to go into a loop during
- the initialization phase. This has been fixed by checking if the code
- involved has already been executed, and causing an abend if it has.
-
- 3. Two of the SIZE Accelerator keys used Alt-F8 and Alt-F9, which are
- used by OS/2, so they are not available. The SIZE User INI File has
- been changed to Alt-R and the SIZE System INI File has been changed
- to Alt-M.
-
- 4. The New File Dialog was not wide enough, so it has been expanded.
-
- ******************************* V2.0b *******************************
-
- The items fixed in Version 2.0b are:
-
- 1. Because of problems with the custom New File Dialog, this version
- has been modified to use the standard OS/2 New File Dialog.
-
- ******************************* V2.0c *******************************
-
- The items fixed in Version 2.0c are:
-
- 1. When INICOPY was invoked by INIMAINT, the path and filename of the
- Input and Output files were not enclosed in quotes. This created a
- problem with parsing the parameter string. This has been fixed by
- enclosing these two parameters in quotes.
-
- 2. When the Condense was used the part of the initial message that
- said that the Desktop would be reset twice was confusing. The part of
- the message about resetting the Desktop twice has been removed so
- that the message now simply states that the Desktop will be reset.
-
- 3. During the Condense, some of the messages displayed in the right
- hand window were too long for the window. The window has been
- expanded so that it will now display the full message.
-
- 4. Because of the warning about reseting the Desktop, users have
- sometimes waited for some time after a Condense has completed, since
- they do not want to cause a problem with their environment. This is
- because there is no clear indication that the Condense is complete.
- This has been fixed by displaying an additional dialog that will tell
- the user that the Condense is finished and it is okay to resume
- normal operations.
-
- 5. When the Fast Copy Option was used, INICOPY did not validate the
- input file to insure that it was an INI file and one that the Fast
- Copy code understood. This has been fixed by adding two new checks to
- INICOPY and to the Copy Dialog in INIMAINT. One check will report an
- error if the input file is not a valid INI file. The other will
- change the Fast Copy to a normal copy if the INI file is not one that
- the Fast Copy Code understands, thus making the file not valid for
- Fast Copy.
-
- 6. The Condense routine has been updated to test the file to be
- Condensed to see if the Condense is really necessary. If the Condense
- will not reduce the size of the file, then the user will be informed
- of this via a Message Box.
-
- ******************************* V2.0d *******************************
-
- The items fixed in Version 2.0d are:
-
- 1. There were a number of places where the return from a PM API call
- was converted to a 32 bit integer by using the SHORT1FROMMR macro and
- then casting the result to a 32 bit integer. Because the macro goes
- through an unsigned short variable, this did not work for negative
- numbers, such as LIT_END. The result of this was that some things did
- not work correctly, including selection of a new member of a group.
- All of these situations have been fixed by having the macro fill a 16
- bit integer and then using the 16 bit integer to fill the 32 bit
- integer.
-
- 2. If INIMAINT could not open a file as a valid INI file and the
- current INI file could also not be opened, INIMAINT would just start
- and end with no error message. Users with this problem were very
- confused by this and did not know what was happening. This has been
- fixed by adding code that will insure that at least the error dialog
- will be displayed in any error situation.
-
- 3. If an error was encountered attempting to open the default INI
- file at the very start of the execution of INIMAINT, it was possible
- for the Error Dialog routine to get an access violation because some
- pointers were NULL and the NULL value was not tested. This has been
- fixed by adding code to test the pointer values for NULL and print
- None if they are not yet set.
-
- 4. When the initial file that INIMAINT attempted to open was a file
- with no applications or keys, an error was encountered because the
- determination of whether the file was in the new or old format would
- result in an invalid file setting. This has been fixed by
- specifically checking for an empty file.
-
- ******************************* V2.0e *******************************
-
- The items fixed in Version 2.0e are:
-
- 1. Because of the large number of possible items in the Repair
- window, it was possible to exceed the maximum capacity of a Listbox.
- Therefore, the Repair window has been changed to a Text type
- Container.
-
- 2. An additional option has been added to the Repair selections. If
- the users chooses to simply have the items that would be Repaired
- displayed in the Window, it is now possible to select the items that
- they want repaired and then check the 'Repair Selected' Checkbox and
- then Execute and those items that are selected will be Repaired.
-
- 3. Because there will now be a number of different Repair actions,
- the selection of the type of Repair desired is now a Combobox rather
- than a Checkbox.
-
- 4. A new Repair items has been added, Removal of any Key with a Zero
- Length Key Value. These Keys cause a problem for the WPSBKUP program
- and have no value.
-
- 5. A new Repair capability has been added, the removal of any
- File/Directory Handles in the OS2SYS.INI file that point to Files or
- Directories that are no longer on the desktop. If a Drive or
- Directory is deleted using this facility, all subdirectories and
- files in the Directory and Subdirectories are also deleted. In
- addition, making any changes in this area requires that the Desktop
- be reset before the WPS will recognize the changes, so this will be
- done upon dismissal of the Repair dialog.
-
- 6. A new Repair capability has been added, the removal of any WPS
- entries in the OS2.INI file that point to objects that are no longer
- on the desktop.
-
- 7. A new Repair capability has been added, the removal of any Objects
- in the OS2.INI file that the user wants removed from the INI files.
- There is currently no known way to verify whether the Objects
- actually exist, therefore, INIMAINT cannot automatically delete
- invalid Objects.
-
- 8. The capability to display the contents of the File/Directory
- Handles, Objects and WPS entries has been added to the Repair.
- Although this is not strictly a Repair function, it allow the user to
- see, save in a file or print the expanded information. This allows
- the user to determine the actual meaning of all the random looking
- numbers seen in the OS2.INI and OS2SYS.INI files for both Key Names
- and Key Values.
-
- 9. It was not possible to always print the contents of the Repair
- Window because the print routine would not handle an empty line.
- This has been fixed.
-
- 10. It was possible to initially start INIMAINT in such a way that it
- would set the default window size at zero, even though the window was
- not minimized. When this occurred, the INIMAINT window would not be
- visible and it woud not be in the minimized folder. This has been
- fixed by adding checks to force the window to a minimum size if it is
- not minimized.
-
- 11. I the user of a registered copy of INIMAINT set the Logo Display
- Time to indefinite, INIMAINT would abend during its initialization
- because a negative number was passed to the WinStartTimer API. This
- has been fixed by adding code to check for a negative number and to
- not even start the timer in this case.
-
- 12. The word 'reason' was not spelled correctly in the message that
- informed the user that the Help was not available if the Help file
- could not be found. This has been fixed.
-
- 13. There was no user notification when INIMAINT was about to create
- a new INI file because the file the user selected did not already
- exist. This has been changed so that the user will now be informed
- that INIMAINT is about to create a new INI file and the user will
- have the option of creating the new file, choosing a different file
- or canceling INIMAINT.
-
- 14. The type of ICON displayed in some of the message boxes was not
- the appropriate ICON. These have been fixed.
-
- 15. It was not possible to add any Groups to an INI file because the
- response from the Prf API that deleted the old Groups was changed
- from TRUE to FALSE if the old Group information did not exist. This
- would cause a 704 logic error when the OK button was chosen on the
- Group Dialog. This has been fixed by checking for the Not in Index PM
- Error Code when a FALSE is returned by this API and accepting this as
- a valid response.
-
- ******************************* V2.0f *******************************
-
- The items fixed in Version 2.0f are:
-
- 1. When Repairing Dir/File Handles and the drive letter is selected
- for deletion, all of the invalid directories and files on the drive
- should be deleted. It did not happen if the drive was a valid
- drive. This has been fixed by adding extra logic to check for this
- specific condition.
-
- 2. If the number of Dir/File handles becomes very large, it is
- possible that they will be stored in the OS2SYS.INI file in multiple
- pieces. 2.0e would ignore all but the first piece. This has been
- fixed by continuing to get the data until all of the pieces have been
- accessed.
-
- 3. There were a number of problems with the dumping of the Repair
- Variables. These have all been fixed.
-
- 4. If the Device Driver for a drive did not correctly handle the API
- used by INIMAINT to identify the drive type, it would cause INIMAINT
- to terminate with a Logic Error 1112. This was caused by a
- undocumented return code from the API. Typically, the device driver
- is an old driver and often is supporting a CD-ROM device. This
- problem has been fixed by adding code to handle the new return from
- the API and, when the error return is seen, INIMAINT will do a
- further check on the drive and, if it is write only, will identify it
- as a CD-ROM device. Otherwise, the drive will be identified and an
- invalid drive.
-
- 5. There were circumstances where a Repair to the WPS entries would
- get a logic error 1104 because of an attempt to allocate a zero
- length memory block. This has been fixed by initializing the Key
- Value Length field to a small value rather than zero, so that the
- allocation will work.
-
- 6. Invalid PM_Abstract:FldrContent entries that had an invalid Object
- ID were not deleted, even though the entry in the Repair Window would
- indicate it was deleted. The reason was the some of the value level
- items were valid, but the key name was not a valid Object. This
- caused the item to be deleted from the INI file and then reinserted.
- This has been fixed by insuring that all value level entries for an
- invalid key name are also marked as invalid because of the key name.
-
- 7. The Repair Save and Repair Write file were not saved from one run
- of INIMAINT to the next. Additional code has been inserted to save
- the current information and it will be presented as the default for
- future Repair activities.
-
- ******************************* V2.1 *******************************
-
- The items fixed in Version 2.1 are:
-
- 1. When there was nothing to Repair for the Repair Dir/File Handles
- and Repair WPS Entries, the message box that told the user this was
- not displayed because the variable that the message box code tested
- was not set correctly. This has been fixed.
-
- 2. When displaying the Dir/File Handles the drive entries were
- displayed even if there were no Directory or File entries to display
- for the drive. This has been fixed by adding additional code to only
- add the drive information to the window when the first Directory or
- File is added.
-
- 3. The Help for the new Repair functions was not complete, but has
- now been completed.
-
- 4. Some object values in the 0x20000 range could be identified as
- invalid, when they were actually valid. This has been fixed by
- insuring that values in the 0x20000 range are correctly checked
- against the Objects entry in the OS2.INI file.
-
- 5. Some of the Repair functions take a considerable amount of time
- and often the INI files do not have any errors in them, so the only
- result is a message box telling the user that there is nothing to
- Repair. I was easy to miss the appearance of this box, so code has
- been added to cause a beep whenever the message box is displayed.
-
- ******************************* V2.1a *******************************
-
- The items fixed in Version 2.1a are:
-
- 1. If a drive connected to the system via a switch was not switched
- onto the system when a Repair was requested, it was possible for a
- couple of the API's to return the General Failure Error code, which
- was not correctly handled by the Repair code. The code has been
- changed to look for this specific error condition and to treat the
- drive as an Inaccessable Drive.
-
- 2. When a Repair was requested, the Do Not Save Option was not turned
- on and the Save INI file had not been selected, INIMAINT would
- terminate with a logic error code of 1. This was caused by an
- incomplete check of the filename, specifically, it was checked for a
- NULL pointer, but not checked to see if it was an empty string. The
- additional check has now been added.
-
- 3. When Repairing the File/Directory Handles, the Ask Before Repair
- did not work because there was a drive level check placed in front of
- the code that asked the user and it should have been placed after the
- code that asked the user. The code has now been moved to the correct
- postion.
-
- 4. Alt-R was specified as an accelerator key for Size User INI File.
- However, this key was needed for the Recover Menu. Therefore the Size
- User INI File has been changed to Alt-E.
-
- 5. In order to facilitate the processing of both the WPS Entries and
- the File/Dir Handles, a new set of Repair types have been added that
- will List or Repair both sets of Entries at one time.
-
- 6. When Invalid Handles were being listed or the Handles were being
- Repaired. The actual drive entry for CD-ROM and Floppy drives was not
- displayed in the Window. Addtional code has been added to insure that
- these entries will always get put in the window when appropriate.
-
- 7. If the Ask First Repair Type was chosen, it was possible that the
- user could be forced to respond Yes or No to a very large number of
- items and there was no way to stop the questions until all of the
- approriate items had been presented to the user. The message box has
- now been modified so that there is also a Cancel entry that will
- terminate the questions and do the Repair actions that had been
- requested to that point.
-
- ******************************* V2.1b *******************************
-
- The items fixed in Version 2.1b are:
-
- 1. When attempting to open a network drive, under some circumstances,
- INIMAINT would get a logic error 1111 with a dos error of 3. The dos
- error indicates that the path is not found and is not handled
- correctly. Code has been added to check for this return and to treat
- the drive as unavailable.
-
- 2. If INIMAINT is added to the WPS main menu, it is started with the
- Desktop subdirectory passed as a command line parameter. This would
- cause a dialog box to appear indicating that the directory was not a
- valid INI file and asking if the user wanted to create it. In order
- to prevent this from happening, code has been added to examine the
- startup filename and, if it is only a directory, to ignore it.
-
- 3. If INIMAINT was started with a current INI file that had been
- deleted, one of two things would occur. If the INI file could be
- created, it was created and used as the default. If the file could
- not be created, for example, if the subdirectory had also been
- removed, then INIMAINT would terminate. INIMAINT will now check to
- see if the default file exists and if it does not, ask the user if he
- wants to create it and, if he does not, then it will aks the user to
- enter a new filename.
-
- 4. When the Repair dialog was displayed and the current entry in the
- combobox that lists the type fo repair was selected by hitting the
- tab key. A request for help would cause INIMAINT to terminate. Code
- has been added to the combobox help routine to check for this
- condition and to insure that the correct help panel is displayed.
-
- ******************************* V2.1c *******************************
-
- The items fixed in Version 2.1c are:
-
- 1. Some users found the use of the word 'List' in the for the type of
- Repairs to be misleading, so the word 'List' has been changed to
- 'Display'.
-
- 2. The message 'Doing Repair' would appear in the Repair Dialog even
- when no actual Repair was being performed, but the Display window was
- simply being loaded. Additional code has been added to change the
- message to 'Loading Display' when that is all that is being done.
-
- 3. The Handles structure for certain kinds of Network situations have
- a Drive entry that is not a normal drive letter followed by a colon.
- The Repair Function did not handle this situation correctly and would
- get a 1114 Logic Error. This has now been fixed and will be
- recognized as a Network situation.
-
- 4. The Repair Options dialog did not have an entry to allow the user
- to ignore or bypass Network drives and other Network entries. A set
- of Network options has now been added.
-
- 5. There were situations where IniMaint would indicate an INI file
- did not exist, when it was simply opened in such a wya that all other
- users were denied. This has been fixed by handling the check for
- whether the file exists in a different manner.
-
- 6. A number of additional error returns from the call to the DosOpen
- API that indicate a drive entry is a Network Drive have been
- identified and added into the code that determines what kind of drive
- the Repair function is dealing with.
-
- 7. The return from WinPostMsg was treated the same as the return from
- WinSendMsg and normally not checked. This could result in a message
- posting error that would not be detected by the error checking code.
- All calls to the WinPostMsg API have been changed so that the return
- code from the API is validated.
-
- 8. There are situations where it was not clear exactly where an error
- occurred when the Dump Dialog was invoked. The reason for this is
- that there are a number of error codes that are used by more than one
- subroutine. In order to address this problem, the error routine is
- not passed an additional parameter which identifies the subroutine
- that is reporting the error and the id of the routine that first
- reports an error that will cause the Dump Dialog to appear is saved
- by the error reporting routine. This information has also been added
- to the Dump Dialog Window.
-
- 9. The only way that the Repair function would ask the user about
- each Repair action was if the user wanted to be asked about every
- single item that needed to be repaired. It was not possible to select
- certain items and then have the Repair function only ask about those
- items. The Repair code has been modified so that it is now possible
- to check the Ask box with some of the items selected and the user
- will then only be asked it they want to Repair the selected items.
-
- 10. A number of the Accelerator Keys used the Alt Key in conjuction
- with a letter. This cause problems with menu selections and a number
- of other functions. All of these Accelerator Keys have now been
- replaced with Ctrl-Alt and a letter combinations. Refer to the
- Accelerator Key section of the Help for a detailed list.
-
- 11. When doing the Repair of the WPS entries or the File Directory
- Handles, selecting certain items to be Repaired also would cause
- other lower level items to be Repaired. For example, selecting a
- Drive entry would cause a Repair to all the items on that drive. This
- was not clear from the behavior of the highlighting in the window,
- since only the selected item was highlighted and not the other items
- that would also get Repaired. The highlighting code has been changed
- so that all of the items that are going to get Repaired will now be
- highlighted.
-
- 12. The initial version of the code to handle Extended Attributes has
- been added in this version. When the Extended Attribute feature is
- activated, IniMaint becomes SysMaint and a new set of menu items
- appear that provide editing, displaying, moving, copying and a
- number of other functions in the Extended Attribute area. The
- Extended Attribute functions are not Shareware, but are only
- activated when a fully registered copy is being used. Refer to the
- Help file under Registration for details.
-
- ******************************* V2.1d *******************************
-
- The items fixed in Version 2.1d are:
-
- 1. The TEST function for the Extended Attributes has been
- implemented.
-
- ******************************* V2.1e *******************************
-
- The items fixed in Version 2.1e are:
-
- 1. An additional option has been added to the Repair Options Dialog
- box. This item, Bypass Known Errors, will cause the Repair function
- to make some addtional checks for errors it knows about and should
- not be of concern to the user. A full list of the things bypassed are
- in the online help file.
-
- 2. During the updating of an INI file, OS/2 creates a file in the
- same directory with the same name except with an extension of ###.
- Thie ### entry gets added to the Handles structure in the OS2SYS.INI
- file. Since the ### file only exists for a short time, it will always
- be identified by the Repair function as an entry in the Handles that
- cannot be found. Additional code has been added so that when the ###
- file is not found and the user has asked to bypass known errors, a
- check is made for a file with the same name with an INI extension. If
- the INI file is found, then the Repair function will not identify the
- ### file as a file not found.
-
- 3. The EA Test Dialog has been added to the Help file.
-
- 4. The Help file has been updated to also describe SysMaint.
-
- 5. An additional item has been added to the Extended Attribute
- Defaults that allows the user to specify that they always want to
- continue when a sharing error is encountered while processing
- Extended Attributes.
-
- 6. Deskman/2 adds a zero value entry to the Abstracts:Icons entry in the
- OS2.INI file. This entry is not found in the list of Objects,
- therefore, this entry is reported as invalid. Since we know the entry
- is valid, additional code has been inserted to check for this
- condition and to identify the Icon as the Deskman Icon if the user
- wants IniMaint to bypass known errors.
-
- 7. The WPSBKUP program creates a temporary object with the name of
- NFD73 during the backup process. This causes an entry to be made in
- the Handles structure for this filename. Since the file is temporary,
- it will always be identified as a file not found. Code has been
- included in this version to not report this specific filename if the user
- wants IniMaint to bypass known errors.
-
- 8. When the EA Test function found entries to add to the Test Dialog,
- the processing EA's Dialog was left on the screen. The exact reason
- for this is not known, but I believe it is associated with loading
- two different modal dialogs with the same Parent and Owner and then
- destroying the second dialog before destroying the first one. It was
- not possible to debug this problem because it would not occur when
- the program was run under IPMD. The problem has been fixed by
- including code to destroy the Processing EA's dialog before the
- Testing dialog is created.
-
- 9. If some sort of terminal error was encountered before the main
- window was created, no error Dialog would appear because the error
- routine was posting a message to the main window in order to get the
- error Dialog to appear. The error routine has been changed to check
- to see if the main window handle is valid and, if it is not, the
- error routine will display the error Dialog directly.
-
- 10. If the OS2.INI file was corrupted to the point that the data
- needed by IniMaint or SysMaint could not be read from the file, it
- was not possible to run the application, since it would terminate
- during the initialization phase. In order to get around this problem,
- the application will now look for an Environment Variable INIMAINT=
- and, if this variable is found, it will assume this is the full
- pathname of a file than should be used to obtain the IniMaint or
- SysMaint default information. For example, if the user wanted to use
- an INI file with the name of:
- C:\OS2\APPS\INIMAINT.INI
- then you would add the following line to your CONFIG.SYS file or to a
- CMD file that runs IniMaint or SysMaint:
- SET INIMAINT=C:\OS2\APPS\INIMAINT.INI
-
- 11. If a terminal error occurred before the name of the current INI
- file was filled in, the error Dialog code would get a protection
- exception attempting to display this name. The code has been changed
- to test for a null value before attempting to print the name.
-
- ******************************* V2.1f *******************************
-
- The items fixed in Version 2.1f are:
-
- 1. IniCopy has been upgraded to handle Extended Attribute files as
- well as INI files.
-
- 2. The Add New Key Name item on the Action Menu did not work because
- a return from one of the Prf API's was not tested correctly. The test
- has been fixed.
-
- 3. A new item has been added to the Files Menu, Recall. Selecting
- this menu item will cause a submenu to be displayed showing the a
- list of the INI or EA files that were the current file. If one of
- these files is selected, it will become the current INI or EA file.
- The number of files displayed is controlled by a new Option in the
- Options Dialog and has a default value of 10.
-
- ******************************* V2.1g *******************************
-
- The items fixed in Version 2.1g are:
-
- 1. When Updating the Extended Attributes from an EA file and one of
- the Source Files or Directories has been deleted, SysMaint will get a
- 1317 Logic Error because the Set Path Info API will give a return
- code of 3, indicating that the file is not found. Additional code has
- been inserted to notify the user of this condition.
-
- 2. The Duplicate Key menu item has been updated to handle EA files.
-
- 3. The Rename Key menu item has been updated to handle EA files.
-
- 4. The Delete Key menu item has been updated to handle EA files.
-
- 5. Code has been added to deactivate the Add Application and Add Key
- menu items when an EA files is the current file. Adding Extended
- Attributes involves adding a number of different control items and
- will be implemented via an entry on the Extended Attribute Menu.
-
- 6. Code has been added to delete the Condense items from the Recover
- Menu if the version of OS/2 is 2.1 or later. This function makes no
- sense for these versions, since no empty space is ever left in the
- INI files.
-
- 7. After Editing an Extended Attribute file and switching back to an
- INI file, the EA flag would sometimes not get reset, causing SysMaint
- to think it was working with the wrong type of file.
-
- 8. Some of the Ctl-Alt Accelerator Keys did not work correctly
- because of the order in which they were defined in the resource file.
- The sequence of the definitions has been changed so that the
- Accelerator Keys will work correctly.
-
- 9. The Dialog that is responsible for getting new character string
- information from the user was not capable of handling a character
- string longer than 32 characters. This limit has been increased to
- 255 characters.
-
- ******************************* V2.1h *******************************
-
- The items fixed in Version 2.1h are:
-
- 1. Popup menus have been added for the various windows. Clicking on
- the RMB while the pointer is in the Application, Key Name or Key
- Value windows will popup a menu with the items that are appropriate
- for that window.
-
- 2. A Desktop menu item has been added to the SysMaint menu bar. This
- menu will eventually have a number of different entries to allow
- users to do various maintenance functions for the Desktop.
-
- 3. A Reset Desktop item has been added to the Desktop menu. This item
- will simply reset WPS so that changes that have been made to the INI
- and EA files that require the Desktop to be restarted will become
- effective.
-
- 4. It was not possible to split the EAs from a Directory or to update
- the EAs for a Directory because a logic error 1346 would result. The
- reason was that the name of the Directory that was used for one of
- the API's still had the trailing slash on it causing a Path Not Found
- error to be returned. The code has been modified so that the
- Directory name is specified correctly.
-
- 5. After Repairing the WPS Entries and/or the Handles Entries, it can
- take a considerable amount of time to free the memory for the
- Container Records. In order to make sure the user knows what is
- happening, a message dialog will now be displayed telling the user
- what is going on.
-
- 6. It was possible for some of the WPS entries, such as
- PMWP_ASSOC_TYPE, to be incorrectly marked as invalid. The reason was
- that a case in a switch statement was missing a break, thus causing
- it to fall through to the next case. The break has been added to the
- code so that the entries will be reported correctly.
-
- 7. If the last item in the PMWP_ASSOC_TYPE Application was associated
- with nothing, the association was simply left blank because the check
- for any association entries in the structure did not work correctly
- for the last entry. The test has been changed so that it will work
- for all entries.
-
- 8. The titles for the Extended Attribute Submenu entries were
- confusing for most people. This Submenu has been completely reworked
- and will, hopefully, be more clear.
-
- ******************************* V2.1i *******************************
-
- The items fixed in Version 2.1i are:
-
- 1. The Edit item on the Extended Attribute Menu bothered some users
- because Edit implies that things are going to be modified. When
- SysMaint 'edited' the Extended Attributes, it did not change anything
- unless the user asked for a specific update of the Extended
- Attributes. Therefore, this menu item has been changed to View.
-
- 2. Running IniMaint or SysMaint would leave a zero length file in the
- default directory, INIERR.TXT. This was caused by redirecting the
- stderr output. The code has been changed so that stderr will only get
- redirected when compiling the debugging version of the program.
-
- 3. The Extended Attribute Default option to delete temporary files
- would only delete the files used in the Compare. The temporary files
- created when the Extended Attributes are View'ed should also be
- deleted when the user is finished Viewing the information. The code
- has been changed to do the additional deletes.
-
- 4. Whenever the Control or Alt Keys were pressed and held, the Key
- Value window would flash. This was caused by the code that disabled
- and reenabled the window while a key was being processed. Additional
- code has been inserted to prevent these keystrokes from being passed
- to this window.
-
- 5. If the current INI file was deleted between runs of IniMaint, the
- user was informed of this the next time that IniMaint was run and was
- asked if they wanted a new file created. If the user replied NO, then
- the standard User INI file, OS2.INI, was opened as the current file.
- However, the IniMaint entry in the INI file for the current default
- INI file was not updated. Therefore, the user would be asked about
- the same file the next time IniMaint was run and this would continue
- until the user did something to cause the information in the INI file
- to get updated. Additional code has been added so that the
- information in the INI file will get updated when the User INI file
- is made the default.
-
- 6. A Defaults Dialog has been added to the Desktop menu to allow the
- user to set the various default values and flags for the Desktop Menu
- items.
-
- 7. It was not possible to use the Copy or Move entries on the Action
- menu to copy the Extended Attributes for a single file to another
- file if the target file did not already exist. The copy would
- terminate with a message that the files were not compatible. This was
- caused by code that opened the target file before the copy was
- started in order to verify that the target could be used as a valid
- INI or Extended Attribute file. This caused an empty file to be
- created, which had not control information. When this file was opened
- by the IniCopy program, IniCopy got an indication back from the open
- routine that the target was not a valid Extended Attribute hold file
- because of the lack of control information. The problem has been
- fixed by modifying the open code so that it will use the default file
- type that it was passed when it opens a file and the file does not
- even have the signature bytes written to it, in short, it is
- completely empty.
-
- 8. The Join would not work for certain combinations of source and
- target sets of Extended Attributes if the sets were not the same
- type, such as both the Extended Attributes for all the Directories in
- a specific Directory. The reason for this was because a flag in the
- structure used to control the Join was set from the wrong source. The
- code has been modified so that the flag is now set from the correct
- source.
-
- 9. I was not possible to Compare the Extended Attributes that were
- current for a file(s) and/or directory(s) to a set of Extended
- Attributes that had been saved in a file. A new menu item has been
- added to the Extended Attribute menu that will now allow for this
- type of Compare, Compare to Saved EAs.
-
- 10. Code has been added to automatically detect the condition where
- the OS2.INI and OS2SYS.INI files cannot be updated. When this occurs,
- the user will be informed of the situation and asked it they would
- like for the condition to be fixed. If the user replies YES, then
- IniMaint will go through a reset procedure that will fix this problem
- and pick up where it left off.
-
- 11. In line with the item above, a new item has been added to the
- IniMaint Repair menu that will allow the user to have IniMaint
- automatically fix the problem of INI files that cannot be written to.
-
- 12. A new item has been added to the Repair menu that will allow the
- user to run a test for INI files that cannot be written to. If the
- condition is found, it will be automatically fixed if the user wants
- it to be. This is for users who store the IniMaint or SysMaint
- information in an INI file other than the OS2.INI file, thus would
- not normally be automatically notified when the INI files cannot be
- updated.
-
- 13. A number of items have been added to the Desktop menu for
- SysMaint that allow for a Simple backup of the Desktop, including the
- ability to keep as many generations of backup as desired, a selection
- that will generate a backup CMD file that can be run at anytime and
- will maintain all the generations, the ability to generate a CMD file
- that will do a command line restore of the Desktop, and items that
- will restore the two major parts of the Desktop, the directory
- structure and the INI files, while WPS is operational.
-
- 14. This version introduces the 'safe' versions of the program,
- IniSafe and SysSafe. These two versions do the same kinds of things
- as IniMaint and SysMaint do, however, they will not update any files
- or do anything that can cause a problem with the Desktop. If there
- are users in an organization that you want to have access to the
- things that can be accessed via IniMaint and SysMaint, but these
- users should not be allowed to modify anything, then these users can
- be furnished IniSafe and SysSafe in place of the xxxMaint version and
- they will have this capability.
-
- 15. A number of new things have been added to the help files under
- the catagory General Help Information. Most, if not all, of these
- topics have also been inserted into the see also lists for the
- appropriate subject areas. This section contains a discussion of the
- environment that is required for IniMaint or SysMaint, a discussion
- of different kinds of Desktop Backups, a description of and how to
- address INI files that cannot be updated, notes on how the Extended
- Attributes from different files are matched for things like Compare,
- and a description of what IniSafe and SysSafe are. In addition, all
- of the *.TXT files that are normally distributed with IniMaint and
- SysMaint have been incorporated into the online help.
-
- 16. If the user was running an unregistered version of IniMaint, the
- message that the registration information was invalid wuould appear
- everytime the app was run. This was caused by the reuse of a variable
- before it was tested to see if there was no registration information.
- The problem has been fixed by using different variables.
-
- 17. The stack size for the secondary threads was not large enough, so
- it has been considerably increased.
-
- 18. There were a couple of places where the memory allocation was
- done using the wrong routine, which would cause a problem with
- switching back and forth between the normal memory allocation
- routines and the debug routines. All of the source modules have been
- modified to use the correct memory allocation API call.
-
- 19. There was a problem with how the menu selection worked when the
- main window menu was on more than one line. This seems to have been
- caused by the fact that the frame window was not notified when some
- of the menu changes were made. Code has been added to make sure that
- the proper notifications are sent.
-
- ******************************* V2.1j *******************************
-
- The items fixed in Version 2.1j are:
-
- 1. If there was a Network Drive in the Handles0 or 1 structure in the
- OS2SYS.INI file that was not in the normal format and any of the
- handles were deleted. The resulting Handles structure would be
- invalid because the code that rebuilt the Handles structure assumed
- that the Drive entry had a two character name consisting of the Drive
- letter followed by a colon. This is not always true for network
- drives and the code has been modified to use the length of the drive
- information in place of a default value.
-
- 2. The code in the routine that restores the Desktop Directory does
- not remove the temporary CMD file after doing the restore because the
- lines that were commented out for testing were not restored before
- the 2.1i version was released. The comments have been removed and the
- file will not get deleted. The filename will be of the form
- TMMDDXXX.CMD where MM is the month, DD is the day of the month and
- XXX is a sequential number starting from 001, and will probably be
- 001.
-
- 3. Because of the way the default was built and since that is what
- was used during testing, none of the Desktop routines to build Backup
- or Restore CMD files would work correctly once a new directory was
- chosen. This is because the new directory would have a trailing
- backslash and the default one did not. The problem has been fixed by
- insuring that all directory names have a trailing backslash.
-
- 4. The Desktop Default Dialog would put the incorrect information
- into the window that displays the name of the Backup and Restore CMD
- files, if the user tried to change these entries. Actually, the
- Default Backup Directory would be placed in the field.
-
- ******************************* V2.1k *******************************
-
- The items fixed in Version 2.1k are:
-
- 1. The Repair Objects entry in the Repair Dialog has been upgraded so
- that the display will include the folder that contains the Object
- and, when the Object is deleted, all references to the Object will be
- removed from the INI files and the Desktop will be reset. This will
- assure that the Object has been completely deleted, even if it cannot
- normally be shredded.
-
- 2. The SysMaint Desktop Backup still did not work because of an error
- in specifying one of the filenames. The first character of the
- filename was left off. The code has been changed to create a CMD file
- with the correct filename.
-
- 3. If the user chose the User INI File or System INI File options
- from the Files Menu as the file to view immediately after Viewing a
- set of file and/or directory Extended Attributes, the temporary file
- that contained the Extended Attributes was not deleted and a message
- would be seen indicating that the Current INI file could not be
- deleted. This was caused by a failure to save the temporary filename
- in the old INI file field when the two menu items above were
- selected. The code has been updated so that the old filename will be
- properly saved in both situations.
-
- 4. Some changes have been added to the Dump code so that the Version,
- Date and Time of the dump information will be included.
-
- 5. The Dump of certain control structures was limited to only 100
- members of each structure. There were times when this limit was too
- small and critical dump information was in included. Therefore, the
- limit has been increased to 1000.
-
- 6. A new item has been added to the available types of INI File
- Repair. IniMaint will now check the OS2.INI file for leftover
- PM_ProgramListxxx entries and remove them at the user's option. These
- entries are no longer needed under OS/2 2.1 and can cause problems
- with deleting of Program type Objects that are contained in the
- entries.
-
- 7. A new item has been added to the available type of INI file Repair
- that will remove old Printer information from the OS2SYS.INI file.
- Whne Printers are removed from the Desktop, some of the old
- information is left in the INI file. While this information does not
- cause a problem with the Desktop, it can cause a problem with various
- programs, such as Word Processing programs, that look in the
- OS2SYS.INI file for printer information. Some of these programs will
- assume that the old printers can still be used. However, any attempt
- to print to the old printers will be unsuccessful. This item will
- examine the 10 or so entries in the OS2SYS.INI file that might have
- old printer data left and remove it at the user's option.
-
- ******************************* V2.1l *******************************
-
- The items fixed in Version 2.1l are:
-
- 1. The SysMaint Restore process was not sufficiently robust, so a
- number of things have been done to address the problem. First, the
- Restore CMD file will no longer use OS/2 Commands to clean up the
- Desktop Directory, this will now be done via a new program, IniClean,
- that simply has the root as the input and will use the root
- information to remove whatever Desktop Directories and Files
- currently exist. In addition, the name of the programs that are
- executed are now fully qualified, so the the CMD file will work with
- any directory as the default directory.
-
- 2. In order to assure that the executable files and the source and
- target files for the various Backup and Restore actions will all be
- found correctly, all file, directory and program names are now fully
- qualified and enclosed in quotes.
-
- 3. The Desktop Restore Command file did not have lines that would
- erase the existing OS2.INI and OS2SYS.INI files before the UNZIP was
- done. Additional lines have been added to insure that this is done.
-
- 4. The Repair of the PM_ProgramListxxx entries did not remove all the
- references to the Application. It is possible for entries als be
- stored in the PM_Workplace:Location Application. Additional code has
- been added to insure that these entries are also deleted.
-
- 5. The Repair Printers Item did not recognize IBMNULL Printer
- entries, which should never be deleted, if they had lower case
- characters in the name. The type of compare has been changed so that
- upper and lower case characters will compare the same.
-
- 6. When an attempt to remove a Printer entry was not successful, the
- program would terminate with a Dump Dialog. Since the inability to
- remove a Printer entry is not really a terminal type of error, the
- code has been changed to simply notify the user when this situation
- has occcurred.
-
- 7. There were some areas in the Repair Printer and Repair
- PM_ProgramListxxx routines where memory could be left allocated. This
- memory would be freed once the program terminated, but should not be
- left allocated. The problem areas have been fixed.
-
- 8. A new Button has been added to the Dump Dialog, Continue.
- Previously, when a Dump occurred because of some sort of error
- condition, the user had no option but to terminate the program. The
- Continue Button gives the user the ability to continue processing
- even though an error has occurred. If the user chooses to Continue,
- they will be warned that an error condition could continue to exist.
-
- 9. If there was a problem removing a printer entry, the Dialog that
- indicated that the INI files could not be written to would appear.
- This was in error, since the problem was that a specific OS2SYS.INI
- file entry could not be removed, therefore, addtional code has been
- inserted to handle this condition.
-
- 10. If one of the threads other than the main thread got an error
- attempting to make a change to the OS2SYS.INI or OS2.INI files, the
- code that indicated that the INI files could not be updated would be
- entered. This code would abend with a logic error of 1201 because an
- attempt would be made to pop up a message box for a thread that did
- not have a message queue. Additional code has been inserted to insure
- that the check will only be made for the main thread.
-
- 11. In order that the user knows the limitations of the Sysmaint
- Restore process, a message box will be displayed anytime the users
- asks that the Restore CMD file be created that explains the
- limitations.
-
- ******************************* V2.1m *******************************
-
- The items fixed in Version 2.1m are:
-
- 1. If the user selected Continue after a dump and the supplemental
- error text field had been allocated, the memory was not freed. Code
- has been added to free this memory.
-
- 2. There were possible combinations of user names and SysMaint
- registration codes that would not register correctly because a
- variable would evaluate to zero. Additional code has been added to
- check for this condition.
-
- 3. It was possible to get a protection exception when attempting to
- remove invalid registration information. The code has been changed so
- the INI file will get updated correctly.
-
- 4. If the IniClean program used to do the restore of the Desktop did
- not find the old Desktop, it would terminate with an error rather
- than simply allowing the restore process to continue. Additional code
- has been added so that the condition will no longer be treated as an
- error.
-
- ******************************* V3.0 *******************************
-
- The items fixed in Version 3.0 are:
-
- 1. It was possible to get a logic error 1109 when attempting to do a
- Repair because of filenames in the Handles structure that contained
- *. This generated an Invalid Path DOS error that IniMaint was not
- handling correctly. Additional code has been inserted to handle this
- DOS error code.
-
- 2. During certin copy operations it was possible to get a 1201 logic
- error code because an attempt was made to pop up a dialog box for a
- thread that did not have a Message Queue. This problem has been fixed
- by insuring that every thread that creates an Anchor Block also
- creates a Message Queue.
-
- ******************************* V3.0a *******************************
-
- The items fixed in Version 3.0a are:
-
- 1. Under certain circumstances the Application level compare of two
- INI files would go into a loop. The problem was caused by a pointer
- not getting incremented correctly and has been fixed.
-
- 2. An additional check has been added to the Repair File Handles
- routine that will look for Orphan Handles, Handles with no Parent in
- the structure. This condition would previously cause a 1115 Logic
- Error, but will now be added to the list of invalid handles with a
- error message that identifies it as an orphan handle.
-
- 3. If the INIMAINT= Environemnt Variable was invalid, the Dump Dialog
- would appear after the message box that informed the user. There was
- no reason to display the Dump Dialog and it will no longer appear.
-
- 4. Some users were confused by the All Groups display, which includes
- the Applications which are in any of the defined Groups. Therefore,
- additional text has been added to the Help entry that discusses the
- contents of the Groups Listbox.
-
- 5. A number of new users have mentioned that they were not sure how
- to get started with IniMaint and SysMaint, so a Getting Started
- section has been added to the Help file.
-
- ******************************* V3.0b *******************************
-
- The items fixed in Version 3.0b are:
-
- 1. While getting the Extended Attributes for the Desktop of the
- MultiMaint Portable Backup, the memory for the EAs for each directory
- or file should have been freed after the information was recorded in
- the *.EA file. However, this was not done, causing the program to use
- very large amounts of memory. The appropriate areas are now freed
- correctly and the total memory requirement is much smaller.
-
- 2. If a Filename in the Handles structure contained invalid
- characters, it was not identified as having a invalid format and was,
- therefore, no placed in the window listing files that should be
- Repaired. This could result in a number of different problems ranging
- from a Desktop that would not boot to Orphan Handles in the File
- Handles structure. The code has been fixed by adding a new type of
- error that will identify these entries as being an invalid name.
-
- 3. Additional information will be captured by the MultiMaint Beta
- Code. This is the second of three steps in producing a workable
- version of the program.
-
- 4. The MultiMaint Beta did not release the memory as it obtained the
- Extended Attributes for each Directory or File. This has been fixed,
- so the Portable Backup code will no longer cause the Swap file to
- grow by several megabytes.
-
- 5. Additional error recovery has been added to the MultiMaint code so
- that recovery from an error condition will be reported correctly, all
- of the WPS pointers changed for the data collection will be restored
- to their original value and there will be no problems with WPS after
- the test.
-
- 6. The IniClean program would leave part of the Desktop when there
- were several levels of nesting of Folders because the Folders were
- done in the incorrect sequence and some of the chain information was
- lost. The sequencing has been corrected and all Desktop information
- will now be deleted.
-
- 7. If a generation other than generation 01 was used for the restore
- of the Desktop, an error was encountered because there was a space
- between GO and TO in the CMD file. The space has been eliminated, so
- the CMD file will not encounter the error.
-
- 8. There were a number of situations where a Dump Dialog would appear
- if the name of a file used by one of the dialogs was old and pointed
- to a directory that no longer existed. What should happen is that the
- user is informed that the file cannot be opened. All of the locations
- that would have generated a Dump Dialog have been changed to simply
- pop up a message box.
-
- 9. The accsswps.dll file is a dll that is only needed for the upgrade
- to SysMaint, which is in beta. However, V3.0a would not run without
- this file because there were some calls to the AccessWPS API's in the
- Dump Dialog code. These lines have been made conditional based on
- some compile options, so this dll is not longer required for IniMaint
- or SysMaint and can be erased.
-
- 10. Two items have been added to the popup menu for each of the
- windows. One of the items will write the contents of the window to a
- file and the other will print the contents of the window.
-
- 11. It was possible for IniMaint to run out of stack space in certain
- very unusual situations, so the primary stack size and the thread
- stack size have both been increased.
-
- 12. Although it is, in theory, impossible to have an Application with
- no Keys, some examples of this condition have been seen in some INI
- files. It was not possible to delete these Applications with IniMaint
- because IniMaint attempted to use a pointer that was NULL in this
- particular situation. Additional code has been added to handle this
- condition and these Applications can now be deleted.
-
- ******************************* V3.0c *******************************
-
- The items fixed in Version 3.0c are:
-
- 1. The Write and Print Window contents items added to the popup menus
- in the previous version, did not identify the Application when the
- Key Name window was the source and did not identify both the
- Application and Key Name when the Key Value window was the source.
- This made it necessary to manually document this information on each
- printout or in each file. Additional line have been added to the
- heading information to output this information.
-
- 2. The name and location of the logging files for the Repair,
- Extended Attributes and Portable Backup functions were fixed and
- would always be in the default directory. Now, both the name of the
- logging file and its location can be selected by the user from a new
- entry in the Options or Defaults Dialog for the particular function.
- The selected file will be remembered from one run of IniMaint or
- SysMaint to the next.
-
- ******************************* V3.0d *******************************
-
- The items fixed in Version 3.0d are:
-
- 1. The initial Portable Restore capability has been added to the
- MultiMaint version.
-
- 2. The application names of the Objects saved during the Portable
- Backup have been changed to eliminate the Desktop Directory. This was
- redundant information, since every Application started with the
- Desktop, since every Object is on the Desktop.
-
- 3. The INI File write routine will no longer cause the Dump Dialog to
- appear when it finds an error, it will simply pass the error back to
- the calling routine. It will be the responsibility of the calling
- routine to pop up the error dialog. The problem with having the write
- routine pop up the error dialog is that the id of the routine
- actually having the problem and the INI file that was casuing the
- problem would often be lost.
-
- 4. There were conditions where the Save or Write INI file for various
- functions could get the RO attribute left on even though the file was
- not actually opened. This would cause a 704 Logic Error the next time
- the file was used because the file would be considered to be Read
- Only by OS/2. Additional code has been inserted to insure that the RO
- attribute is not set for these files, so that they will always be
- usable.
-
- 5. When a error occurred during a Repair operation, there were
- situations where the error logging was not sufficient to easily and
- accurately determine the problem. Additional information will now be
- logged to improve this area.
-
- 6. If it was not possible to open the file currently set as the Save
- INI file for the Repair because the file had been chosen in a past
- run and the directory structure had been changed to make the path and
- file name combination invalid, an abend would occur with a generic
- Logic Error code of 1. Addtional coade has been added to insure that
- the Save INI file can be opened before any Repair is executed which
- will need to Save any of the INI file data.
-
- 7. The timeout for the execution of the WPS and SOM methods was set
- at 30 seconds, which turns out to be too short for some methods, such
- as wpPopulate. Therefore, the timeout has been increased to 3
- minutes.
-
- 8. The Repair Uninstalled Printers code would sometimes incorrectly
- identify a Printer as not being installed because the key Value entry
- for a critical Application had an ending semicolon. The semicolon
- caused a compare to be unequal, thus causing the incorrect
- conclusion. The code has been modified to ignore the semicolon when
- doing the compare in question.
-
- 9. The physical sequence of many of the items in the Help file have
- been changed to make them more logical. This has no effect on the
- actual Help, however, there are programs that will transform the Help
- file into a text file that can be used in a word processor or
- printed. When this is done to the Help file, the physical sequence of
- the items determines the sequence of the items in the output file.
- The changes were made in order to make this process easier
-
- ******************************* V3.0e *******************************
-
- The items fixed in Version 3.0e are:
-
- 1. The DEF file for the DLL that holds the API's supplied with the
- compiler had an incorrect DLL name because of the conversion from
- V1.0 of the compiler to V2.01 of the compiler. This meant that
- IniMaint and SysMaint would not run without the DDE4MBS.DLL file. The
- DEF file has been fixed and the C SET/2 DLL is no longer required.
-
- ******************************* V3.0f *******************************
-
- The items fixed in Version 3.0f are:
-
- 1. There were situations where memory would not get freed when
- Continue was selected after the Dump Dialog was displayed. Code has
- been inserted to insure that everything is freed once the dialog has
- been dismissed.
-
- 2. If the Save INI file does not exist when an attempt is made to do
- a Repair, a logic error 634 will result because an attempt is made to
- remove the Read Only Attribute from a file that does not exist and
- the code does not test for this condition. The code now makes the
- appropriate tests and this error will no longer occur.
-
- 3. The initial Explain capability has been added to the popup menus
- for each of the three windows. This is a feature that will continue
- to evolve over time as more and more is learned about the various
- entries in the INI files and Extended Attributes.
-
- 4. The Repair File Handles did not correctly process Directory or
- File Names that had characters in them that are not considered
- printable Ascii characters. The names were immediately identified as
- invalid, even though no actual check was made. This turns out to be
- an incorrect approach because there are names in non-US versions of
- OS/2 that are valid and contain these characters. The code has been
- modified so it will check a name from the Handles structure, even if
- the name contains characters that are not printable Ascii characters.
-
- 5. The EA Test Dialog Write File name was not remembered from one run
- of the Dialog to the next. This forces the user to select this file
- from scratch every time they want to have the contents of the Listbox
- written to a file. The Filename will now be remembered and it will be
- displayed as the Default File whenever the Write button is selected.
-
- 6. There was still a problem with certain printers being identified
- as not being installed, when there were perfectly valid. Additional
- changes have been made to the code that validates the printers so
- that printers that are valid will not be treated as invalid.
-
- 7. The default selection on all three popup menus has been changed
- from the Refresh item to the Explain item.
-
- 8. The Help for the Popup Menu items: Write, Print and Explain have
- been added.
-
- 9. It was possible that the Desktop Restore CMD file would not create
- the new Desktop Directory structure correctly if the default drive
- was not the same as the drive that contains the Desktop. Therefore,
- two additional lines have been added to the Restore Command file to
- insure that the correct drive is the default drive.
-
- 10. The Popup Menus did not have the Accelerator Keys noted as part
- of the Menu lines. This information has been added to each line.
-
- 11. There were no Accelerator Keys for Write Window to File or Print
- Window, these have also been added and are the same for all three
- possible windows. An Accelerator Key for Explain has also been added.
-
- 12. It was possible to Exit from IniMaint or request a second window
- Print or Write while there was already a Print or Write in progress.
- In the case of the Exit or Write, several things could happen, but the
- most likely was a protection exception. In the case of the Print, a
- logic error 1504 would occur because an attempt was made to set a
- semaphore that was already set. All of these situations have now been
- fixed by the addition of code that will cause the routines involved
- to wait for the current activity to be completed.
-
- ******************************* V3.0g *******************************
-
- The items fixed in Version 3.0g are:
-
- 1. A number of people have had problems with the Repair Objects item
- in the Repair Dialog. Most of the time, user have simply selected the
- Do Repair item and then Execute. The effect of this is to remove
- every object from the Desktop. In order to address this problem, two
- things have been done. First, the name of the item has been changed
- from Repair Objects to Destroy Objects and, second, the Do Repair
- button warning has been changed to make sure that the user
- understands that every Object Destroyed will be removed fro the
- Desktop.
-
- 2. Many, but not all, Objects have Location information in the
- PM_Abstract:Objects entry for the Object in the OS2.INI file.
- However, for some reason, not all of the Locations defined in the
- Objects are present in the PM_Workplace:Location entry in the OS2.INI
- file. This apparent inconsistancy does not seem to cause a problem in
- the vast majority of situations. However, it is an inconsistant
- situation, so an additional Repair Item has been added to the list,
- Restore Missing Location Entries, which will display any Objects with
- Location information that is not in the Location entry and give the
- user the ability to add the appropriate information.
-
- 3. The Variable dump did not identify the version of OS/2 being used,
- which has caused confusion in certain situations, therefore, this
- information is not included in the variable dump.
-
- 4. The Repair File Handles and Repair WPS Entries would not work with
- versions of OS/2 prior to V2.0 because of a change in the names of
- some of the Applications in the OS2SYS.INI file. Additional code has
- been added to handle either name format.
-
- 5. If a music CD was in the CDROM drive when a Repair of the File
- Handles was attempted, the Repair would abend with a 1109 Logic Error
- because Sector Not Found was returned from the Query Path Info API.
- Additional code has been added to handle this return and a couple of
- other similar return values.
-
- 6. Once a drive was identified as a Network Drive by the Repair
- Handles routine, all files and Directories on the drive were
- considered to be invalid, even without checking them and even if the
- Automatic Repair was set in the Defaults. The code has now been
- modified so that Network drives will be handled the same as CDROM and
- VDISK drives and in accordance with the Default settings.
-
- 7. There have been a couple of situations where the Repair
- Uninstalled Printers Repair function has caused a problem with the
- Desktop. In order to insure that this does not happen in the future,
- this item will not work unless the IBMNULL printer is installed, thus
- insuring that none of the critical Applications in the OS2SYS.INI
- file will have their last Key Name deleted, thus deleting the
- Application and causing a problem on the Desktop. If the IBMNULL
- printer is not found, then user will be informed of it via a Message
- Box and the structures that hold any Uninstalled Printer information
- will be cleared and the memory freed.
-
- 8. The Restore of the Desktop Directory from the Desktop Menu item
- could have worked incorrectly because the Desktop Directory could not
- be found, but the user was not informed that an error had occurred.
- This was caused by two problems, the first was a place in the code
- where a check for an empty Desktop directory was not made and this
- problem has been fixed. The second problem was that the IniClean
- program would revert to the default directory when it was run without
- any input parameters and this has also been fixed.
-
- 9. When the Restore Desktop Directory entry was selected from the
- Desktop Menu, the CMD file that was built attempted to also unzip a
- new copy of the INI files. The unzip was not successful, since the
- INI files already existed, but there should not have been an attempt
- to unzip them and the code to do this has been removed from the CMD
- file.
-
- 10. An attempt to reset the Desktop Directory using the Desktop Menu
- item would result in a SYS3175 error because of a difference in the
- size of a structure that was caused by changing a system wide size
- variable and not recompiling all modules. All of the modules have
- been recompiled, and this fixed the problem.
-
- 11. The reset of the Desktop Directory from the Desktop Menu left two
- zip file in the default directory. Additional code has been added to
- insure that these files are erased once the restore and reset are
- complete.
-
- 12. One additional situation was found where an attempt would be made
- to delete a printer that was actually installed on the Desktop. The
- problem occurs when a specific combination of Driver and Printer
- names were used by the installed Printer. Additional code has been
- added to identify the problem and prevent the printer from being
- reported as not installed.
-
- 13. There are three places where WM_TIMER messages are processed, but
- non of the code that handled these messages made a check to verify
- that the Timer that issued the message was the expected one. The
- effect of this was that the code would take some specific action
- based on the assumption that a specific Timer event had occurred,
- when it was possible that it had not occurred. The specific condition
- that identified this problem was a user who had the initial dialog
- turned on and had accidently erased the INIMAINT.HLP file. The user
- would get the message that the Help was not available and then,
- sometimes, would get a Logic Error 610 and sometimes would have no
- further problems. Which event occurred depended on whether there was
- a Timer message received from an unexpected Timer while the problem
- with the Help was being handled. Additional code has been added to
- insure that Timer messages are ignored excpet when they have been
- caused by the appropriate Timer.
-
- 14. There were a number of readability problems with the IniHelp.TXT
- file, so some changes have been made to improve the readability. Most
- of the changes in volve adding extra blank lines between paragraphs,
- indenting lists, makeing sure there are two spaces after the end of
- each sentence and a few other minor changes.
-
- ******************************* V3.0h *******************************
-
- The items fixed in Version 3.0h are:
-
- 1. There were rare stiuations where the Repair Location entry in the
- Repair Dialog would incorrectly identify a missing location, normally
- it would report it as <>. This was caused by starting the search for
- the location information too early in the Object data. The code has
- been changed to start the search at the correct place and also to
- ignore a location of <>.
-
- 2. There were situations where the Repair Uninstalled Printers Repair
- entry in the Repair Dialog would get a logic error 1128 if some of
- the required printer information entries had been manually removed
- from the OS2SYS.INI file. The code has been changed so that the user
- will now be informed via a message box that critical information is
- missing, so this type of Repair cannot be done.
-
- 3. It was possible to get a Logic Error 1112 when attempting to do
- several of the Repair functions because the Open of a Network drive
- was successful, but the driver for the Network drives did not
- support the DosDevIOCtl API causing an Error Not Supported return
- from the API. Additional code has been inserted to handle this error
- return along with a number of related errors.
-
- 4. There was a problem using the IniClean program when OS/2 was
- booted from a floppy because this program needed the INIMTAPI.DLL and
- it was normally not available because there was no active LIBPATH.
- The compile parameters for IniClean have been changed so that the RTL
- is linked statically instead of dynamically, this removes the need
- for the API DLL.
-
- 5. It was not clear from the documentation that the Restore CMD file
- generated by the menu item on the Desktop Menu was only intended to
- be run when PM and WPS were not running. Additional documentation has
- been added to make this more clear.
-
- 6. It was possible to get a 1501 Logic Error when asking for an
- Explain of the contents of a folder that contained an Object ID for
- an Object that did not exist. An extra check has been added to fix
- the problem.
-
- 7. If an attempt was made to select a new Target File in the Compare
- Files Dialog, the new File Dialog appeared underneath the Compare
- Dialog. This was caused by a problem with the Owner and Parent
- windows of the two windows. The Onwer and Parent relationship has
- been changed, so that the boxes will appear correctly.
-
- 8. I was possible to dismiss the Compare Files Dialog while the
- Select New Target Dialog was active. A 1305 Logic error would then
- occur when the Select New Target File dialog was dismissed.
- Additional code has been added to prevent the Compare Files Dialog
- from being dismissed while the Select New Target File Dialog is
- active.
-
- 9. When comparing two INI Files on a Key Value Level and an entry was
- found in both INI files with the same Application Name and Key Name
- but with Values that had different lengths, the Compare would not
- mark the Key Values as being unequal. Additional code has been added
- to insure that this condition will now be handled correctly.
-
- 10. If the Target File selected for a Compare was a file that did not
- exist, the file would be created and the Compare would identify the
- entire contents of the Source File as not being in the Target File.
- Since this is nonsense, additional code has been added to identify
- this condition and tell the user that a new file cannot be the Target
- for a Compare.
-
- 11. If a Logic Error 617 occurred, there was not sufficient
- diagnostic information in the Dump Dialog to diagnose the problem.
- Additional code has been added to put the appropriate printer
- information into the supplemental error text field so that problems
- in this area are easier to find.
-
- 12. Both the Groups and the Compare Listboxes allowed mutiple
- selection, but not extended selection, where the mouse button could
- be held down and the pointer dragged down the entries. Both Listboxes
- have been modified to allow extended selection.
-
- 13. If the Default Printer could not be found when an attempt was
- made to Print the contents of a window, a Logic Error 617 would
- occur. Additional code has been added so that the user will be
- informed via a Message Box that the Printer cannot be found and the
- Print will simply not be done.
-
- 14. One of the most common errors is that an attempt to write to an
- INI file will fail. This causes a Logic Error of 704. Frequently, the
- user will understand exactly what is going on when this error occurs
- and would simply continue, were they to know the exact problem.
- Therefore, the Error Handling code has been modified to look for this
- error, report it to the user via a Message Box and give the user the
- opportunity to continue processing.
-
- 15. A number of users have had problems making relatively minor
- modifications to the Extended Attributes for a Directory or File.
- They have pointed out that the procedure for doing this is not at all
- clear. Therefore, an additional item has been added to the Online
- Help and to the IniHelp.TXT file that explains how to make such a
- change.
-
- 16. For a number of Extended Attribute functions it was possible to
- select the same directory or file as both the Source and the Target.
- This is illegal and can result in unexpected, but invariably bad,
- results. Code has been inserted to check for this condition and, if
- it occurs, inform the user and terminate the selected function.
-
- ******************************* V3.0i *******************************
-
- The items fixed in Version 3.0i are:
-
- 1. When the Update INI File entry was selected from the Action Menu
- and the Confirm Before Update Option was selected, no confirmation
- was asked for. The user will now be asked to confirm the update, if
- they have selected this Option.
-
- 2. When Replacing a Key Value, the user was not asked to verify the
- change, even if the Ask Before Change Option was selected. The user
- will now be asked if they have selected this Option.
-
- 3. When an Application or Key Name was changed and the Ask Before
- Change Option was selected, the user was not asked to verify the
- change. The user will now be asked if this Option is selected.
-
- 4. When the Confirm Before Change Option was selected, a change was
- made to the INI file and Cancel selected in the Confirm Dialog, it
- was possible for the Confirm Dialog to appear more than one time. The
- reason was that the File Updated flag was not reset when the user
- cancelled the Confirm Dialog. The File Updated flag is now reset
- before the Confirm Dialog appears, so it will not appear multiple
- times for the same change.
-
- 5. The documentation states that the Rename or Duplicate Items on the
- Action Menu will allow duplicate Application Names. However, it is
- possible that a user will duplicate an Application Name without
- realizing it and this could have serious and invariably bad results.
- Therefore, additional code has been added to look for this condition
- and, when found, the user will be informed via a message box and
- given the option to terminate the operation at that point.
-
- 6. The Fast Copy Option is not needed for any version of OS/2 higher
- than V2.0. However, the Options Dialog would still allow a user to to
- set this Option. Additional code has been placed in the Options
- Dialog that will prevent this Option from being set for and Version
- of OS/2 higher than 2.0 and will tell the user that the Option is not
- needed for these versions.
-
- 7. The Add/Replace Key Dialog did not place the cursor in the Ascii
- Text field when the Dialog was initialized, even though this was the
- most likely place where information would be entered. The code has
- been changed to place the cursor in the Ascii field when the Dialog
- is initialized.
-
- 8. The Help for the Add or Replace Key Value Dialog only mentioned
- that it was for the Replace function, not for the Add function,
- therefore, all references have been changed to include a reference to
- the Add function as well as Replace.
-
- 9. There was no Help entry for the Add Zero Terminator Checkbox in
- the Add or Replace Key Dialog. The Help has been added.
-
- 10. The Help for the Select Group Dialog and Listing did not mention
- that these items cannot be invoked directly, but are called
- automatically when a Group needs to be selected. The Help has been
- modified to incude the additional information.
-
- 11. When displaying All Groups in the Groups Dialog, it was possible
- to remove an Application from All Groups by deselecting it.
- Sometimes, this is the desired action, however, it is sometimes an
- error and could create a situation where the user did not remember
- the groups to which the Application belonged. Therefore, the user
- will now be asked to confirm that he wants to remove an Application
- from All Groups if there is more than one Group. If there is only one
- Group, the user will not be asked to confirm the removal, since
- displaying All Groups is the same as displaying the single Group.
-
- 12. When copying the contents of one INI file to another, any
- Application which already exists in the Target file will actually get
- merged with the same Application in the Source file. This creates a
- problem for the IniMaint Groups, so a special check has been added to
- the copy code that will check for the IniMaint Group Application and
- delete it from the Target file before the Source information is
- copied.
-
- 13. If certain parts of the Group information got out of synch with
- each other, it was possible to create an INI file that IniMaint and
- SysMaint could not process. Additional checking has been added to the
- code that handles the Group information to insure that any excessive
- information is ignored.
-
- 14. The Repair Options Dialog did not get the focus when it initially
- appeared because of how the initial dialog message was handled. The
- Dialog will now get the focus correctly.
-
- 15. When the Select Repair Logging File Dialog was selected, the
- Options Dialog was not large enough to contain the standard New File
- Dialog, so the Options Dialog has been made wider, so it will
- correctly contain the New File Dialog.
-
- 16. A Repeat Last Find entry has been added to the Find Menu. This
- entry has also been added to the Popup Menus. In previous versions it
- was necessary to go through a couple of steps to do a Repeat Find,
- which is the most common selection.
-
- 17. The 'Global Find' entry in the Find Text Dialog has been changed
- to 'Global Find Text' to make it more clear.
-
- 18. The 'Select New Desk Directory' has been changed to 'Select New
- Desktop Dir.' in the Desktop Defaults Dialog.
-
- 19. A new version of the UNZIP program is now available. Since the
- new version comes as a 16 bit version and a 32 bit version, the name
- of the EXE file has been changed from UNZIP.EXE to UNZIP32.EXE for
- the 32 bit version. Since UNZIP is used in a number of the SysMaint
- Desktop functions, the code that searches for this progam will now
- first search for UNZIP32.EXE and, if that is not found, search for
- UNZIP.EXE. The code will only fail if neither EXE is found.
-
- 20. A new Version of the ZIP program, V2.0.1, has just become
- available. This version will not ZIP a file that has the System
- Attribute set unless an additional parameter is supplied, -S. This is
- a required parameter for OS/2 2.11, which is OS/2 2.1 with the
- Service Pack, because both the OS2.INI and OS2SYS.INI files have this
- Attribute turned on because they are always open. The previous
- version of ZIP would ZIP files with the System Attribute on without
- the -S parameter. In fact, the -S parameter is not valid for versions
- of ZIP prior to V2.0.1. Therefore, it is necessary for SysMaint to
- know the version of ZIP being used in order for it to know whether to
- add the -S parameter to the line that runs the ZIP program. Since
- there is no way to know this by looking at the program, whenever the
- Backup Command file is being created, the user will be asked which
- version of ZIP they are using.
-
- ******************************* V3.0j *******************************
-
- The items fixed in Version 3.0j are:
-
- 1. When making a Backup of the Desktop or creating the Backup CMD
- file, the user is asked if they have a new or old version of the ZIP
- program and one of the options is to cancel the action. If the action
- is to make a Backup of the Desktop and Cancel is selected, the Backup
- attempts to proceed anyway. This will no longer happen and Cancel
- will actually Cancel the Action.
-
- 2. The Compare Files Dialog can be used to compare either INI files
- or EA files. However, the text for the Source and Target files
- specifically refer to INI files. The text has been modified to remove
- the INI designation.
-
- 3. If the MultiMaint Portable Restore tried to restore certain WPS
- WPProgram values with the original value set for the Object, the
- Restore did not work because the original information had already
- been freed. Additional code has been inserted to fix this problem.
-
- 4. When Restoring a WPProgram Object, the EXE Name and the Default
- Directory would sometimes not be set. This was mostly true when the
- Object was restored to a different machine, but could happen on the
- same machine. Additional checks have been added to fix this problem.
-
- 5. The Message Box displayed to confirm that a Change should be made
- always asked if the Key Value should be changed, even if that was not
- the modified item. The text in the Message Box has been modified to
- make it more general.
-
- 6. If the Copy or Move item is selected on the Extended Attribute
- Menu and the Target File does not exist, the Dump Dialog will appear
- with a Logic Error of 1 and a DOS Error of 206. This has been fixed.
-
- 7. When Comparing Extended Attributes, the parent of the Compare
- Dialog was made to be the SysMaint Window. Therefore, if the window
- was not large enough, now all of the Compare Dialog could be seen.
- The Parent has been changed to the Desktop, so the entire dialog can
- be seen, no matter how large the SysMaint window is.
-
- 8. In the Variable Data Entry Dialog, it was necessary to tab to the OK
- Button and then hit Enter in order to dismiss the Dialog. Additional
- code has been put in this dialog to check for the Enter Key and, if
- the window with the focus is still the Entry Field, the Dialog will
- act as if the Enter Button was selected.
-
- 9. There were a couple of situations where a Logic Error would set
- the Error Code correctly, but the Dump Dialog would not appear. The
- reason for this was that there were a few situations where some
- windows were not cleaned up before an attempt was made to display the
- Dump Dialog. Code has been inserted to insure that these windows are
- cleaned up correctly.
-
- 10. The EA validation code would mark a text string EA as invalid if
- it contained a CR or LF character. This is an error, since many names
- of Objects on the Desktop are multiline entries and will contain on
- or both of these characters. The problem has been fixed by adding
- code to check for these two characters when examining a text string
- and treating them as valid characters.
-
- 11. Many of the Dialogs did not have a Default Button that would be
- executed when the Enter Key was pressed. This has been added to all
- of the Dialogs for which it is appropriate.
-
- 12. If the MultiMaint Portable Backup found a Shadow Object and got a
- valid pointer to the Object being Shadowed, but was not able to find
- the original Object, a Logic Error 1737 would occur. Since this is a
- possible condition and simply indicates that the Shawdowed Object
- does not exist, the code has been changed to treat this as an Orphan
- Shadow.
-
- 13. There was a problem with the MultiMaint Portable backup where the
- Real Name for the Desktop would be recorded in the *.WPS file twice,
- once with the incorrect Application Name. This would cause a problem
- when the Restore was attempted because the incorrect entry would not
- have a Level Key Name and would cause an error while attempting to
- load the Restore Window. The problem has been fixed.
-