home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 8
/
CDASC08.ISO
/
VRAC
/
INIM21E2.ZIP
/
INICHNGE.TXT
< prev
next >
Wrap
Text File
|
1993-08-16
|
61KB
|
1,291 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.