Library and Tool Change List
(January - December 2002 releases)


        

Version released at this point: 6.04.0004

December 09, 2002

   1)   Entry Title: Thor - Would like the field list loaded when the relation
                     editor comes up
      Area Affected: Thor
             Status: Complete

        Description: Would like to have the field list loaded when the
                     relation editor is started to save having to click twice
                     (once to load and once to open) on each relation to see
                     its field list.

         Correction: When the relation editor is selected it will start
                     loading each relation and its field data.  It will
                     continue this for three seconds (an arbitrary pick but
                     about as long as someone will be patient).  If it does
                     not complete the load within that time it will abandon
                     loading the field information and just finish loading the
                     relations.  The relations that are fully loaded will
                     start with the + sign to the left of their name.  Those
                     that did not load will not have the +.  Any of those that
                     didn't get loaded in that time will still load when they
                     are clicked on just as they have always done.


   2)   Entry Title: Thor - Concat fields without subfields should generate
                     warnings
      Area Affected: Thor
             Status: Complete

        Description: If a field is added or modified with a 0 type (Concat)
                     and no subfields have been defined that should
                     immediately generate a warning.  Also at compile time
                     those fields should be identified since they are probably
                     a mistake.

         Correction: Added checks and warnings.  During the Add/Modify of a
                     field if this condition is detected it will pop up a
                     warning that must be acknowlegded by the user.  During
                     compile time those fields are also identified in the
                     listing file and added to the Cautions list.


December 06, 2002

   1)   Entry Title: SDI - Getting file handle errors
      Area Affected: SDI
             Status: Complete

        Description: Getting file handle errors.

         Correction: Found a place where a closed handle was being closed
                     again.  Also some tweaking to ensure that SDI can still
                     be run in batch mode without user intervention.  One
                     recent change had caused a screen to pop up even in batch
                     mode.  If run in batch mode and print is selected then
                     it will take the file destination first for the report.
                     If that is blank then it will select the print
                     destination.  If that is also blank the report will not
                     be printed.


December 05, 2002

   1)   Entry Title: Sage - PutFieldI can fail without setting SageError
      Area Affected: Ada
             Status: Complete

        Description: This affects the Ada library only.  PutFieldI can fail
                     without setting SageError.  There are two components to
                     getting this error 1) you must be doing a PutFieldI to a
                     target field which is type Alpha, Upper Case Alpha or
                     Alpha Num and 2) the number of digits of the value being
                     sent to the field is EQUAL TO or greater than the number
                     of digits the field can hold.  It has always failed if
                     the value is larger than the field but a change
                     introduced on Aug. 8, 2002 caused it to also fail if the
                     value was the same size as the field.  If the value is
                     smaller than the field then the put will succeed.

         Correction: To accomodate more types being sent to the routine there
                     was a slight change in how it translates the values to
                     the field.  That change introduced this error.  The error
                     is present in the following builds:  6.03.0004,
                     6.03.0005, 6.03.0006, 6.03.0007, 6.04.0001, 6.04.0002 and
                     6.04.0003 and any special builds during that same time.


   2)   Entry Title: Thor - Relation with password stops rebuild list
      Area Affected: Thor
             Status: Ignore

        Description: If you have a relation with a password and do not enter
                     the password before selecting the .DFL file the list of
                     relations stops when it hits that relation.

         Correction: Corrected by later work on Rebuild.  This bug report is
                     now void.


   3)   Entry Title: Thor - SRC file name disappears under All Objects and Fix
                     options
      Area Affected: Thor
             Status: Ignore

        Description: Selecting either of these options causes the name to
                     disappear from the bottom of the screen.

         Correction: A later fix may have corrected this.  It does disappear
                     briefly but comes back once the option is exitted.


   4)   Entry Title: Thor - Would like a visual clue when relation has non
                     standard keys
      Area Affected: Thor
             Status: Complete

        Description: Because the use of non standard keys can have an impact
                     on the performance of an application it would be nice if
                     Thor would give a visual clue when a relation has these.

         Correction: Thor has been enhanced so that on the relation edit
                     dialog the list of relations will have a different icon
                     if the relation has non standard keys.  If the small box
                     that usually shows a line of color at the top next to the
                     relation name has a red diamond in the center of it the
                     relation has a keyed field that is using non standard
                     values of KeysPerNode = 20 and NodesInCore = 5.  When the
                     field list for that relation is opened the icon next to
                     the field name will be a gray F with a red diamond in the
                     center of it.  Note that during editting the field icon
                     will stayed in sync with the status of that field.  If a
                     field is added with non standard values or is changed to
                     standard values the field icon changes.  If it is changed
                     to non standard the relation icon is changed.  However
                     it would be cumbersome to try and check when a field is
                     changed to standard and reset the relation since it would
                     have to search through all the fields of that relation
                     each time a change is made.  So for now the only behavior
                     that may not be in sync is that the relation icon may
                     show as non standard even if all the fields have been
                     corrected.  The icon will be changed the next time the
                     relation editor is started.


December 04, 2002

   1)   Entry Title: Strings - FormatString routine corrupting string if single
                     digit which is 0
      Area Affected: Strings
             Status: Complete

        Description: The FormatString routine is corrupting the string if it
                     is a single character long and that character is a 0.
                     Returns the string as all dashes for the size you
                     specified.

         Correction: Found and corrected some logic that was trying to strip
                     off leading 0's before formatting the string as specified
                     by the input parameters.


   2)   Entry Title: Various - Found that UNC paths were not being handled
      Area Affected: Ada, M2
             Status: Complete

        Description: Found that UNC (Universal Naming Convention  i.e.
                     \\MyServer\MyDirectory\Test.fil) names were not being
                     handled correctly in Sage.  Most noticable is that there
                     was no way to open a file if it is pathed this way, the
                     open will fail.

         Correction: Added code to detect and handle these this format.
                     During this change I discovered that the routines
                     DosLib.CurrentDrive, DosLib.SelectDrive and their
                     equivalent routines in DiskLib do not always work
                     correctly in Win32.  In fact once you put the UNC names
                     in the mix these routines are not valid for Win32.  So
                     they have been removed from the Win32 libraries.  To find
                     you where you are you should use
                     DosLib.GetCurrentDirectory (in Dos this only returns the
                     directory,  in Win32 it returns the full path) and to
                     change locations you should use DosLib.ChangeDirectory.
                     These routines will perform the same actions but in a
                     safer and more consistent manner in both X32 and Win32
                     modes.  Because the DosLib package was already being
                     touched I included another change requested by some
                     users.  The parameters to the routines in DosLib where
                     the address of a string was being sent in have been
                     changed to accept the string itself.  This seems to be a
                     more intuitive way of passing these params plus in Win32
                     mode I can do more checking to avoid problems.  When the
                     address of the string is all that is passed there is no
                     way for me to know if when I assign long values back to
                     them if I am overrunning the string or not.


December 03, 2002

   1)   Entry Title: Thor - SubSchema dialog needs to behave correctly when read
                     only or no subschemas
      Area Affected: Thor
             Status: Complete

        Description: The subschema edit screen has several things that need to
                     be cleaned up.  When the SRC is read only or when there
                     are no subschemas defined there are buttons and controls
                     active that should not be.

         Correction: Cleaned up the behavior of the dialog.   When the SRC is
                     read only the only active control is the close button.
                     When there are no subschemas defined the only buttons
                     available are the close and the add.  Once there are
                     subschemas defined then the other buttons appear to allow
                     editting of the existing subschemas.


December 02, 2002

   1)   Entry Title: Thor - Escape key not active in some DOS screens
      Area Affected: Thor
             Status: Complete

        Description: The escape key is not working in some DOS screens.

         Correction: Found that the escape key was not turned on if you
                     started Thor and went directly to either the Keyboards or
                     Views DOS edit screens and went to add or modify an
                     item.  If you had been in the Forms screen before this it
                     had turned the escape key on so you would be okay.


   2)   Entry Title: Sage - PutField and FieldChk or CheckLib used together can
                     cause incorrect SageError to return
      Area Affected: Sage
             Status: Complete

        Description: By default doing a PutField triggers the FieldCheck
                     routine to be called unless the Sage.CheckPutField
                     routine has been used to turn it off.  This is a correct
                     behavior.  However during the FieldCheck routine if the
                     user has defined code to call another Sage routine that
                     sets SageError (such as 112 error coming from a
                     ReadRecord) the original PutField routine will end up
                     returning the global value of SageError (which in this
                     case is 112).  This is not correct.  There are four
                     components to producing the error: 1) using any of the
                     PutField routines when 2) you have not changed the
                     default behavior by using the Sage.CheckPutField routine
                     and 3) the app is also using the FormChk intercept
                     routine and 4) using any calls back to the Sage package
                     inside of FieldCheck.  If your app meets those conditions
                     then you should pick up this correction.  Remember that
                     this is triggered by the PutField routine so even if you
                     are using a Win32 interface you could still get this
                     problem if you are still using FieldCheck to validate
                     values.  Note that this not only returns an incorrect
                     SageError value but the PutField will also fail to load
                     the field

         Correction: The problem stems from the internal use of SageError as
                     an error parameter to other internal routines.  Declared
                     some local params to push into the routines so that they
                     return locally the correct error setting of the
                     particular routine.  Then SageError is set from those
                     return values so that the routine is returning the true
                     SageError value of its own actions.  The prior use of the
                     global variable SageError allowed for cross
                     contamination of the value by other routines while the
                     first routine was still processing.


   3)   Entry Title: FileUtil - Could use some file comparison routines
      Area Affected: Ada, M2
             Status: Complete

        Description: Could use some routines to do file comparisons for
                     equality.

         Correction: Added the routines FileUtil.FilesTextEqual and
                     FileUtil.FilesBinaryEqual.  These routines check files to
                     find if the contents are equivalent.


   4)   Entry Title: Thor - DOS edit functions can cause main Thor window to be
                     hidden upon return
      Area Affected: Thor
             Status: Complete

        Description: If during the use of the DOS EDITING windows of Thor
                     (Forms, Keyboards, Menus, Views) the main window of Thor
                     ended up behind another app window when you exit the edit
                     window Thor's main window is still hidden.  It should be
                     brought back up to the top because of touching the edit
                     window.

         Correction: Added code to pop the main window back to the top upon
                     exit of the DOS item edit windows.


November 27, 2002

   1)   Entry Title: DosLib - GetVersion routine returns inconsistent results
      Area Affected: Ada
             Status: Complete

        Description: GetVersion routine is returning inconsistent results when
                     called.

         Correction: Found that the variables were uninitialized.   Could get
                     to the end of the routine and only one of four variables
                     would have a reliable setting.


   2)   Entry Title: ErrorLog - Need to localize so routines behave correctly in
                     DLL use
      Area Affected: Ada, M2
             Status: Complete

        Description: Need to localize the package so that the routines get the
                     values they need (Log file name, show date, show time)
                     as parameters instead of relying on global values.
                     Currently the values are set into global variables by
                     using routines.   That practice is not safe in a DLL
                     environment where multiple applications could be trying
                     to use the package at the same time.

         Correction: Added a param to let the user pass in the values each
                     time.   Removed the routines that were no longer
                     necessary.  They were SetDateStamping, SetTimeStamping,
                     GetLogFile, SetLogFile and SetLogStatus.


   3)   Entry Title: Sage - Should log Fatal and Minor errors to file if the
                     flags prevent showing the errors
      Area Affected: Ada, M2
             Status: Complete

        Description: If the Fatal or Minor flags prevent the errors from being
                     popped up they should be logged to a file so at least
                     there is a record that errors are being thrown by the
                     application.

         Correction: Added code to detect this condition.  When this happens
                     the error entry is now written to a file called
                     STSUPRES.LOG.  In addition there are four new routines
                     added to the SageErrs package to support this.  Using
                     these routines you can check the current settings of the
                     flags and turn them on/off.  Fatal and Minor logging are
                     controlled individually so one or both can but turned
                     on/off the same as the display settings of the errors.
                     The new routines are SageErrs.GetFatalLoggingFlag,
                     SageErrs.LogFatalErrors, SageErrs.GetMinorLoggingFlag and
                     SageErrs.LogMinorErrors.  I might suggest that if you
                     turn off display of both types and you are inclined to
                     also turn off logging that you might consider leaving
                     Fatal logging on even if you turn Minor off.   If Fatal
                     errors are being thrown by your application you really
                     should now about it.


November 26, 2002

   1)   Entry Title: CtrlLV - Need correction so that scroll mouse affects the
                     vertical scroll instead of horizontal
      Area Affected: Ada, M2
             Status: Complete

        Description: In the ListView control the scroll mouse scrolls the
                     horizontal axis of the control.   The expected action
                     would be that it affects the vertical operation of the
                     control.

         Correction: Corrected so that the wheel of the mouse is controlling
                     the vertical scrolling axis of the control.


   2)   Entry Title: GDIView - Need a way to go to a particular page in viewer
      Area Affected: GDIView
             Status: Complete

        Description: Need a way to go to a particular page in the viewer.  If
                     you have large reports with hundreds or thousands of
                     pages it gets clumsy to find a particular page in the
                     middle of the report.

         Correction: Added several navigation aids.   Added extra menu and
                     button items called skips.  They allow the user to skip
                     through the records using a distance that can be defined
                     by them.  For instance using a menu option they can set
                     the skip to 10.  Then when the skip items are selected
                     the advance/retreat through the records ten at a time.
                     The skip factor can be set to any value from 1 to 1000.
                     Also added a Goto menu and button item.  When this is
                     selected a small dialog pops up and the user enters a
                     page number.  The viewer is then taken directly to that
                     page number.


   3)   Entry Title: SageList - Add ability to control scrolling using a wheel
                     mouse
      Area Affected: Ada, M2
             Status: Complete

        Description: Need the ability to control scrolling using the wheel of
                     the mouse.

         Correction: Added control of vertical scroll with the mouse wheel.


   4)   Entry Title: Thor - Would like to not generate GDL file each time in
                     reports
      Area Affected: Thor
             Status: Complete

        Description: Would like to have a comparison and if the GDL file is
                     current with the report file do not generate it each
                     time.

         Correction: Added a check and if the GDL is newer than the report
                     file it is not regenerated.


November 25, 2002

   1)   Entry Title: Thor - Would be nice if the report name would default to
                     last used
      Area Affected: Thor
             Status: Complete

        Description: Would be nice if the report name would default to the
                     same name as was last used.  Most of the time reports are
                     just generated again to the same file.

         Correction: Added a save/retrieve of the report name.  The value is
                     saved to the project's INI file.


   2)   Entry Title: GDIPrint - Need to define an empty record type for the
                     ViewRecord
      Area Affected: GDIPrint
             Status: Complete

        Description: Need to define an "Empty" type for the ViewRec.  This can
                     be used for easy initialization of variables declared of
                     this type.

         Correction: Added a type that is the Empty initial values for a
                     variable of this type.


   3)   Entry Title: Profile - Missing from the Ada side
      Area Affected: Profile
             Status: Complete

        Description: The profile package exists in the M2 side but is missing
                     from Ada.

         Correction: Updated the documenation for the package.   Added a
                     Success param for the GetToken and PutToken routines.
                     Added the package to the Ada library.


   4)   Entry Title: GDIPrint - ASCIIToGDL not converting some line draw
                     characters
      Area Affected: GDIPrint
             Status: Complete

        Description: The routine ASCIIToGDL is not converting any of the
                     double line or single/double line combination characters.

         Correction: Added code to detect and correctly convert all line draw
                     characters.


   5)   Entry Title: Thor - Need a better message about the report file not
                     existing
      Area Affected: Thor
             Status: Complete

        Description: Need a better message about the report file not existing.
                     Currently comes out as a message that ASCIIToGDL has
                     encountered a problem converting the file.

         Correction: Added a check and an exact message indicating that the
                     current report file does not exist.


November 22, 2002

   1)   Entry Title: Thor - SRC Options modify window should never block changes
      Area Affected: Thor
             Status: Complete

        Description: The SRC options dialog should never block changes even if
                     the SRC is read only.  The reason is that all the
                     changes from this screen are written to a local .INI file
                     which should not be read only.   Allowing changes here
                     has no effect on the SRC.

         Correction: Removed the warning message and stopped making the
                     controls read only when the dialog is entered.


November 21, 2002

   1)   Entry Title: CtrlRich - The LoadData routine does not work correctly at
                     the Object level
      Area Affected: Ada, M2
             Status: Complete

        Description: If the LoadData routine is called from the object level
                     it does not work correctly.

         Correction: Found that the response flag was not getting set.  Added
                     code to check if the user did send something back and set
                     the flag so that the data will be used by the control.


   2)   Entry Title: CtrlRich - Need param to show how large data can be when
                     sent to control
      Area Affected: Ada, M2
             Status: Complete

        Description: Need a way to know how large the data buffer can be that
                     is sent to the control when it is set for User data.

         Correction: Modifed the GetDataPosition routine to be a procedure
                     instead of a function.  Also added a parameter that
                     returns the max size the the buffer can be when passed to
                     the load routine.  Added code to the load routine to
                     detect if the buffer is larger than allowed and to only
                     take the data up to the max size.  The rest of the data
                     will be ignored.  Previously it ran over the end of the
                     buffer and clobbered memory.


   3)   Entry Title: CtrlRich - ForceSave routine does not save for User data
                     type
      Area Affected: Ada, M2
             Status: Complete

        Description: The ForceSave routine does not save for any type other
                     than Sage data type.  It will not save for User data type
                     or File data type.

         Correction: Modified to also save for the User data type.  Did not
                     turn on for File data type.  If needed that will require
                     additional testing time to assure that function will work
                     correctly.


November 20, 2002

   1)   Entry Title: Sage - CopyRecord should ignore concat fields
      Area Affected: Ada, M2
             Status: Complete

        Description: Sage.CopyRecord should not copy the concat fields.   They
                     are built when the other fields are copied so this is
                     just extra time taken for no reason.   Also it might
                     corrupt the field value under certain conditions.

         Correction: CopyRecord modified to ignore concat fields during the
                     copy.


   2)   Entry Title: GDIPrint - Would like print progress messages when printing
                     is busy
      Area Affected: Ada, M2
             Status: Complete

        Description: Would like to have messages showing the progress when
                     printing.   Currently it just seems to hang until
                     printing completes.

         Correction: Added a message showing 'Printing Page [N]' while
                     printing is working.   This message is turned on/off by a
                     flag passed into the routines.


Version released at this point: 6.04.0003

November 20, 2002

   1)   Entry Title: GDI - Need messages during global change
      Area Affected: GDI
             Status: Complete

        Description: Need to use messages to let the user know how the change
                     is progressing especially on large relations.

         Correction: Added messages to show progress during the change.


November 19, 2002

   1)   Entry Title: Btree - Type casting problem causing index locating to not
                     work
      Area Affected: Ada
             Status: Complete

        Description: Problem is manifested in that GetKeyPosition may not
                     return the correct values.

         Correction: Found a type cast that accidentally converted a negative
                     number in a for loop to a positive value.  This caused
                     the loop to execute when it should not have.  This bug is
                     present in the following version: 6.02.0001, 6.03.0001,
                     6.03.0002, 6.03.0003, 6.03.0004, 6.03.0005, 6.03.0006,
                     6.03.0007, 6.04.0001 and 6.04.0002.   It was introduced
                     into the code on July 3, 2002.  If you have any of these
                     versions or the special builds during that time and you
                     are using the GetKeyPosition call (from either Sage or
                     MultSage) I highly recommend that you get this update.
                     In any of those version the GetKeyPosition routine is
                     unreliable.


Version released at this point: 6.04.0002

November 18, 2002

   1)   Entry Title: ODBC - Goes into infinite loop
      Area Affected: ODBC
             Status: Complete

        Description: There is an infinite loop in CloseRelation.

         Correction: Corrected infinite loop in CloseRelation for
                     restrictList.


November 14, 2002

   1)   Entry Title: Thor - Check for block field/file discrepancy during compile
      Area Affected: Thor
             Status: Complete

        Description: Would like some checks during the compile of a .DFL file
                     to warn if there are discrepancies in the settings of
                     block data fields and the persistent fileset they are
                     assigned to.

         Correction: Added checks to determine the status of block data fields
                     and the persistent fileset during compilation.  You can
                     get one of three warnings from the checks.   1) You have
                     a block data field in the relation but the relation is
                     not persistent (assigned to a fileset)  2) You have a
                     block data field but you do not have a block file listed
                     for that relation 3) You have a block file listed for
                     that relation but the relation does not contain a block
                     field.


November 13, 2002

   1)   Entry Title: FileUtil - Need routine to do a non case sensitive test of
                     a file extension
      Area Affected: Ada, M2
             Status: Complete

        Description: Would like a routine that can do a NON case sensitive
                     comparison to see if a file has a given extension (i.e.
                     .ads, .exe, .res, etc.)

         Correction: Added the routine FileUtil.FilenameExtensionIs which
                     takes a file name and an extension (with or without the
                     '.') and returns a boolean value representing if that
                     extension is on this filename.  The comparison is NOT
                     case sensitive.


   2)   Entry Title: CtrlList - Need to allow larger strings values to be passed
                     to the control
      Area Affected: Ada, M2
             Status: Complete

        Description: Need to allow larger strings to be passed to the control.
                     Currently limited to 256 characters.

         Correction: Sage List Box now uses a string buffer of type
                     SageListBoxString having a size of 512.  It used to use
                     StandardString which was size 256.


November 12, 2002

   1)   Entry Title: BTree - Constraint error on large index
      Area Affected: Ada
             Status: Complete

        Description: Getting a constraint error when using a large index file
                     (greater than 180,000 records ).

         Correction: Two variables needed to have their types converted before
                     doing the math operation on them.  Otherwise the
                     resulting value overflows the capacity of the variable
                     type.


   2)   Entry Title: Thor - Persistence button should show if read only, Window
                     editor should warn
      Area Affected: Thor
             Status: Complete

        Description: The persistence button should show even if the SRC file
                     is read only.   Also the Window editor should give
                     warnings if the SRC is read only, that changes will not
                     be kept.

         Correction: Persistence button now shows up.  The Window editor gives
                     a warning on entry and upon exit if the SRC is read
                     only.


November 11, 2002

   1)   Entry Title: Various - Need to use constants for file extensions for
                     consistancy
      Area Affected: Ada, M2
             Status: Complete

        Description: Need to use constants for the value of file extensions.
                     Found a place where a lower case version of the
                     extension was being assigned but later the upper case
                     version was being searched for in a string.

         Correction: Added constants to represent the extensions in SageSpec.
                     All instances changed to use the constant value for
                     assignments and searches.


   2)   Entry Title: InfoLib - Should check and pop up Fatal and Minor errors
                     from FieldEmpty and FieldBlank
      Area Affected: Ada, M2
             Status: Complete

        Description: The routines FieldEmpty and FieldBlank should do the
                     Fatal and Minor error pop up if an error is set in the
                     routine.

         Correction: Added code to check for errors and do the standard pop up
                     messages.


   3)   Entry Title: GDI - Global search and replace on data would be a nice
                     feature
      Area Affected: GDI
             Status: Complete

        Description: Would be nice to have a global search and replace feature
                     to use in changing field values.

         Correction: Added a basic search and replace.   May need some
                     additional checking or work to handle various field types
                     but for now is functional on alpha fields.


November 08, 2002

   1)   Entry Title: FileUtil - SplitPath routine does not handle if path
                     contains a '.' character
      Area Affected: Ada, M2
             Status: Complete

        Description: The SplitPath routine will not correctly split a name if
                     the path contains a '.' character.

         Correction: Found and corrected the problem.   Added flag to indicate
                     the the extension of the file had already been located.


   2)   Entry Title: Thor - Browse for file during copy, buttons should be
                     grayed out
      Area Affected: Thor
             Status: Complete

        Description: When doing the browse for an SRC to copy from the buttons
                     on the copy dialog should be disabled.

         Correction: Added code to disable the buttons while the browse dialog
                     is up.


   3)   Entry Title: Sage - CompareFieldA failing if values such as '--' used
                     for the compare
      Area Affected: Ada, M2
             Status: Complete

        Description: The CompareFieldA routine does not return correct results
                     if values such as "--" are used as the comparison on
                     Integer fields.

         Correction: Found multiple problems with the routine.   It would fail
                     if you sent in a null string.   If you sent in strings
                     representing the 'empty field' it would fail (i.e.
                     ----/--/-- for a date).   Whenever a failure occurred it
                     returned False but in many cases SageError was also set.
                     However I don't think most people ever checked
                     SageError coming off the routine so most people just
                     assumed the False value to be correct.   Besides fixing
                     the routine to handle most cases reliably now I corrected
                     one additional problem.   Many of the SageErrors that
                     were being set and returning fell in the category of
                     Fatal or Minor.  However the routine was missing the
                     check before it exited to pop those errors up to the
                     user.   That was added not only to this routine but to
                     all the other CompareField[something] routines also.  If
                     you have been using CompareFieldA mostly on Alpha fields
                     and sending values it (not null strings) then you should
                     not see any change in this routine.  However for those
                     users passing in null strings or using this routine with
                     any other field type I suggest that you get this update.


   4)   Entry Title: Thor - Not handling SRC names with spaces or '.' in the
                     path in the copy utility
      Area Affected: Thor
             Status: Complete

        Description: If an SRC name is used that has spaces or dots in the
                     path it is not recognized in the copy utility (as the
                     source SRC to copy from).

         Correction: Replaced all code that was starting at '0' of string and
                     going forward looking for a '.' character.  Once found it
                     always assumed that was the start of the file extension.
                     Most places tried to loop and parse the path
                     themselves.   Changed all places to call the
                     FileUtil.SplitPath routine.   Also when trying to build
                     file names with a different extension changed all those
                     places to call FileUtil.ReplaceExtension.  Those routines
                     are standard code that knows how to handle spaces or
                     dots embedded in the path to the file.


   5)   Entry Title: FileUtil - Should use two strings for ReplaceExtension
                     routine
      Area Affected: Ada, M2
             Status: Complete

        Description: The ReplaceExtension routine should use two string params
                     so that an original name can be passed in but not
                     modified.

         Correction: Added the param.


November 06, 2002

   1)   Entry Title: Environment - Package is missing from the HTML documentation
      Area Affected: Ada
             Status: Complete

        Description: The Environment package is missing from the Ada HTML
                     documentation.

         Correction: Added the necessary stuff so that this package is
                     included when the HTML documenation is generated.


   2)   Entry Title: SortMrg - Using more than one handle at a time causes wrong
                     callback routine to be called
      Area Affected: Ada
             Status: Complete

        Description: When the Init routine is called the callback routine is
                     assigned to a global variable.  If you try to use more
                     than one handle at a time the last callback routine
                     Inited is the one called no matter what handle is used.

         Correction: Added a field to the handle so that each handle carries
                     the value of the callback routine to use when that handle
                     is being processed.


Version released at this point: 6.04.0001

November 04, 2002

   1)   Entry Title: Thor - Errors handling readOnly file, closing a file
      Area Affected: Thor
             Status: Complete

        Description: Thor gives a warning that you cannot modify the SRC if
                     you try to close a file that was opened as read only.
                     Closing a file without exiting Thor leaves all the menu
                     and button items grayed out and disabled.  After closing
                     an SRC there are still messages on the bottom of the main
                     window reporting the number of Relations, Forms, etc.
                     that the SRC had.

         Correction: Put in code to guard against the change flag being
                     modified when the file is read only.   Added code to
                     correctly set the menu and buttons after closing an SRC.
                     Added code to clean up the status bar line after closing
                     an SRC.  Added code to gray out the relation and field
                     edit controls when the file is read only.


   2)   Entry Title: ObjCalendar - Blows up on last day of month if prior month
                     shorter
      Area Affected: Ada, M2
             Status: Complete

        Description: Blows up with an exception if executed on the last day of
                     a month when the prior month does not have that many
                     days.

         Correction: One place tried to just replace the month number with the
                     previous month and then send that into a routine.  The
                     problem was that they did not adjust the day number so if
                     the current month had 31 days and the previous month
                     only had 30 it would blow up.   The day value did not
                     matter to this routine other than being valid so I just
                     changed the day to be 01 in all cases for this call.


   3)   Entry Title: WinReports - Need a routine to set RTF footer tab stops
      Area Affected: WinReports
             Status: Complete

        Description: Would like a routine so that tab stops can also be used
                     in the footer part of RTF documents.

         Correction: Added a routine called WinReports.RTFSetFooterTabStops.


October 30, 2002

   1)   Entry Title: Thor - Copy relations results in a handle error popping up
      Area Affected: Thor
             Status: Complete

        Description: When relations are copied a message indicating a handle
                     error will pop up.

         Correction: Found where a variable that tracked the status of a file
                     handle (opened or closed) did not get set to the proper
                     state when the file was closed.


   2)   Entry Title: GDIPrint - Added param to know if user aborted the printer
                     dialog
      Area Affected: Ada, M2
             Status: Complete

        Description: Need to have a parameter that will tell the calling
                     routine if the user did actually print the log or not.

         Correction: Added a parameter of OpenSuccess to the OpenPrinter
                     routine.  This can be False when the user clicked the
                     Cancel button on the printer dialog.  On the PrintLog
                     routine added a parameter called Printed to tell the
                     calling routine if the user did follow through and
                     printed the document.


   3)   Entry Title: ObjCalendar - Should be able to send in dates for Get
                     routines
      Area Affected: Ada, M2
             Status: Complete

        Description: Would like to be able send in a date to the new Get
                     routines of ObjCalendar.

         Correction: Used to ignore whatever was sent in for dates.  Now uses
                     the passed in date and sets the calendar to that spot
                     initially.  User must still click any date (including the
                     passed in date) to have it selected however.


October 29, 2002

   1)   Entry Title: MultSage - Relation opens with 108 error, call to
                     RelationIsOpen returns wrong
      Area Affected: Ada, M2
             Status: Complete

        Description: If the MultSage.OpenRelation call returns error 108
                     (VersionConflictIndex) then subsequent calls to
                     MultSage.RelationIsOpen return False.  This is not
                     correct, they should return True.

         Correction: Found a check coming off the OpenRelation that did not
                     allow anything except 0 to qualify the relation as open
                     as far as MultSage was concerned.  In Sage either the 0
                     result or a 108 (VersionConflictIndex) still qualifies as
                     the relation being open.  Modified the check to allow
                     the 108 also.  Now with getting a 108 on the
                     MultSage.OpenRelation call a subsequent call to
                     MultSage.RelationIsOpen will return True.


October 28, 2002

   1)   Entry Title: Version Change - Now 6.04
      Area Affected: Sage Version
             Status: Complete

        Description: Version needs to be changed due to changing both
                     compilers (Ada and M2) to new versions

         Correction: Sage version is now 6.04.   First build will be 6.04.0001


   2)   Entry Title: ObjCalendar - Needs one call routines for easy use of
                     calendar object
      Area Affected: Ada, M2
             Status: Complete

        Description: Need to have routines that are one simple call to use the
                     calendar object.

         Correction: Added two routines.  They are GetSingleDate and
                     GetDateRange.  These are a simple one call to use the
                     calendar object to get either a single date or a date
                     range.


October 16, 2002

   1)   Entry Title: GDIPrint - Eating the character after a FormFeed char is
                     found
      Area Affected: Ada, M2
             Status: Complete

        Description: The GDIPrint.AsciiToGdl routine eats the character
                     immediately following a form feed character.

         Correction: Found a counter that was tracking the position on the
                     line was being incremented when it should not be.


   2)   Entry Title: Toolbar - Getting a NIL pointer error
      Area Affected: Ada, M2
             Status: Complete

        Description: Getting a NIL pointer error.   A dialog is being
                     displayed in the main proc of a window before the window
                     comes up.  That window does have the toolbar on it.

         Correction: Added code to check a pointer before using it.   The
                     pointer was still NIL because of the window not being up
                     yet.


October 15, 2002

   1)   Entry Title: Sage - GetFieldA has a NIL pointer problem
      Area Affected: Ada, M2
             Status: Complete

        Description: If passing a bad field name and then telling the error
                     message to not abort you experience a NIL pointer
                     problem.

         Correction: Found and corrected the NIL pointer.  Now it passes
                     through without aborting.


Version released at this point: 6.03.0007

October 10, 2002

   1)   Entry Title: MultSage - Some code appears to not be needed
      Area Affected: Ada, M2
             Status: Complete

        Description: Looks like some unneeded code in MultSage. For some
                     reason when the OpenRelation is called it opens the
                     relation and if successful it closes it and then reopens
                     it again.   That appears to serve no useful purpose at
                     all and slows down processes using MultSage considerably.

         Correction: Took out what appeared to be unneeded code.  Testing
                     after removing the code did not reveal any problems and
                     did show an increase in execution speed, especially in
                     areas that are opening multiple relations


   2)   Entry Title: SDI - Should use GDL technique for SageTerm printing
      Area Affected: SDI
             Status: Complete

        Description: Should use the GDL technique for printing in SageTerm
                     mode.

         Correction: The printing of the report when the SageTerm version of
                     SDI is used has been changed to use the
                     GDIPrint.AsciiToGdl technique.  Now the user is presented
                     with a visual page showing the report and from that they
                     can print to a desired Windows printer


   3)   Entry Title: SortList - Need this package on the Ada side
      Area Affected: Ada
             Status: Complete

        Description: Need to add the SortList package to the Ada side.

         Correction: Added to the Ada library.  This library is probably not
                     for general use (although it can be) but it had to be
                     added to support another new library


   4)   Entry Title: WinReports - New function needed in Sage
      Area Affected: Ada, M2
             Status: Complete

        Description: Need a new library called WinReports to support doing
                     reports in Windows.

         Correction: Added the library.  This is a first cut at a possible
                     replacement for the old form based Reports package.
                     With this library you can define the layout of a report
                     (later we hope to add a visual tool also) and then save
                     that layout.   Then the layout can be used to generate
                     reports in RTF or HTML output.  CAUTION - This library is
                     very rough right now and could be changed quite a bit
                     before it is generally usable


October 09, 2002

   1)   Entry Title: CmndLine - GetCommandPair overwrites memory if command
                     values long
      Area Affected: Ada, M2
             Status: Complete

        Description: CmndLine.GetCommandPair crashes and/or overwrite memory
                     if the passed in strings are not large enough to contain
                     the values found on the command line.

         Correction: Added checks to guard if the strings are too short.  Also
                     added code to make it a Minor error pop up if that
                     happens.


   2)   Entry Title: Thor - Not handling if the path to the SRC contains a '.'
      Area Affected: Thor
             Status: Complete

        Description: Thor does not handle it properly if the path to the SRC
                     contains a '.' character.

         Correction: Added code to handle a '.' in the path of the SRC.  It
                     used to chop the name off at that point thinking that it
                     was the start of the file extension.


October 07, 2002

   1)   Entry Title: HTML - Need new library to support creation of HTML
                     documents
      Area Affected: Ada, M2
             Status: Complete

        Description: Need a new library to support creation of HTML documents.

         Correction: Library created, tested and added to both M2 and Ada
                     libraries.   This library provides calls to create HTML
                     output files.


October 03, 2002

   1)   Entry Title: GDIPrint - Need LinesPerPage param to control SetFixedFont
      Area Affected: Ada, M2
             Status: Complete

        Description: Need a LinesPerPage param for the SetFixedFont routine.
                     This would allow better control of the font size when it
                     is created.

         Correction: Added a LinesPerPage parameter to the
                     GDIPrint.SetFixedFont routine. Using the CharsPerLine and
                     the LinesPerPage params the user can now control the
                     size of the font that will be allocated.  The resulting
                     font when printed will exactly fit the values specified.


   2)   Entry Title: Thor - Convert printing to AsciiToGdl routine
      Area Affected: Thor
             Status: Complete

        Description: The printing should use the AsciiToGdl routine from
                     GDIPrint.

         Correction: Removed the setting for LinesPerPage that had recently
                     been put in.  The printing has been changed over to use
                     the AsciiToGdl routine from GDIPrint.   By doing this I
                     needed to internally set the number of lines for it to
                     come out right.   The new method now gives a much nicer
                     report preview and the printed reports look more
                     'Windows' like.  Reports with a large number of pages can
                     take a few seconds to convert before the viewer comes up
                     so be patient


   3)   Entry Title: Thor - Message not visible enough during report generation
      Area Affected: Thor
             Status: Complete

        Description: Need to change the message display when generating
                     reports so that it comes up as a separate pop up message.
                     Currently they display on the status bar and are not
                     easily visible.

         Correction: Changed the message display when generating reports so
                     that it comes up as a separate pop up message.  The
                     message is now very prominent.


   4)   Entry Title: GDIPrint - Need more hatch types
      Area Affected: Ada, M2
             Status: Complete

        Description: Need to add the additional hatch types to GDIPrint that
                     are available from StonyBrook.

         Correction: Additional types add to the GDIPrint package/


October 02, 2002

   1)   Entry Title: GDIPrint - Text moves around while zooming in/out
      Area Affected: Ada, M2
             Status: Complete

        Description: Text does not stay in the correct positions while zooming
                     up and down.

         Correction: Fixed several small bugs in the GDIPrint library, mostly
                     in the viewer.  When zooming up and down the text will
                     now stay in its correct position much more closely


   2)   Entry Title: GDIPrint - Changed version number on GDL files
      Area Affected: Ada, M2
             Status: Complete

        Description: Need to change the version number of the GDL files due to
                     changing some of the structures stored inside.

         Correction: Version number in the files incremented.  Unfortunately
                     this means that any existing files cannot be opened now
                     in the current version.  However I don't think this will
                     be a problem for most people as I don't believe that
                     files are being saved. Contact me if this is not the case
                     and you have an important file that must be saved.


   3)   Entry Title: Sage - ReadRecordX routines sometimes do not return correct
                     SageError
      Area Affected: Ada, M2
             Status: Complete

        Description: ReadRecordX routines do not return the correct SageError
                     sometimes.

         Correction: Found a call that was resetting the SageError before
                     returning.  Added code to save and correctly set
                     SageError before leaving the routine.


   4)   Entry Title: GDIPrint - Need routine to convert ASCII to GDL format
      Area Affected: Ada, M2
             Status: Complete

        Description: Need a routine to convert ASCII text to GDL format.
                     This would allow easy conversion of existing reports to a
                     Windows look and feel.

         Correction: Add a new routine called GDIPrint.AsciiToGdl.  This
                     routine allows you to convert an existing ASCII file
                     (possibly a report written to an ASCII file by the
                     Reports package or using BufIO) into GDL format. The GDL
                     format is used by the GDIPrint library to view/print data
                     in a Windows friendly manner.  This is an easy method of
                     converting existing DOS reports to a Windows environment
                     including viewing and printing using techniques very
                     much like other Windows programs.  NOTE - This still
                     relies on you outputting the reports to the ASCII file.
                     This helps you AFTER that point to be more Windows like
                     in previewing/printing the content of the file.   This
                     does NOT get you away from using the Forms and the
                     Reports package to generate the report


September 25, 2002

   1)   Entry Title: LinkList - Initialize routine should be in the DLL
      Area Affected: M2
             Status: Complete

        Description: The LinkList.Initialize routine should be in the Dll.

         Correction: Added the routine LinkList.Initialize to the Dll by added
                     it to the EDF file.


   2)   Entry Title: ODBC - Should pull out of regular installation and be in
                     own install
      Area Affected: Installation
             Status: Complete

        Description: Need to pull the ODBC driver out of the regular
                     installation set.  It should be in its own installation
                     set available on the download page of the web site

         Correction: Pulled the ODBC driver out of the regular installation
                     set.  It is now in its own installation set available on
                     the download page of the web site.


September 19, 2002

   1)   Entry Title: RTF - Opening and then closing a file generates an
                     incorrect file
      Area Affected: Ada, M2
             Status: Complete

        Description: If you open a file and then close it without ever doing a
                     write it generates an incorrect file which was missing a
                     closing brace

         Correction: Found and corrected the problem.  Needed an extra check
                     for this condition in order to include the missing brace.


September 18, 2002

   1)   Entry Title: ODBC - Limits user to only 20 relations total
      Area Affected: ODBC
             Status: Complete

        Description: There appears to be a limitation of 20 total relations
                     that can be accessed.

         Correction: Found and removed the limitation that restricted the
                     opening of tables to 20 or fewer.  This restriction
                     stemmed from earlier version's attempt to speed up access
                     to the data.  There is currently no restriction on the
                     number of relations that can be opened.


   2)   Entry Title: Strings - FormatNumberString sometimes does not zero fill
                     correctly
      Area Affected: Ada, M2
             Status: Complete

        Description: Sometimes the Strings.FormatNumberString routine returns
                     with the number string not zero filled as the user had
                     requested.

         Correction: Found a mistake where it could get out before calling the
                     zero fill part of the routine.


September 16, 2002

   1)   Entry Title: RTF - Needs a GetHandleState routine
      Area Affected: Ada, M2
             Status: Complete

        Description: Needs to have a GetHandleState routine.  This routine
                     would be used to check if the current handle is opened or
                     closed.

         Correction: Added a new routine called RTF.GetHandleState.  This
                     routine is called in order to check the current state
                     (opened or closed) of a handle.


   2)   Entry Title: BufIO - Needs checking and reporting of Handle errors.
      Area Affected: Ada, M2
             Status: Complete

        Description: Needs to have handle checking added.  It should detect
                     and report the minor errors of SageErrs.HandleAlreadyOpen
                     (50) and SageErrs.HandleAlreadyClosed (51).

         Correction: Added checking to properly detect and report the minor
                     errors of SageErrs.HandleAlreadyOpen (50) and
                     SageErrs.HandleAlreadyClosed (51).   Previously it would
                     have hit those when it used calls to the Files package
                     but that was after it had done some processing into each
                     routine.   The new checking will test this at the start
                     of each routine and not allow further processing if the
                     handle is invalid.


   3)   Entry Title: RTF - Needs to have handle checking included
      Area Affected: Ada, M2
             Status: Complete

        Description: Needs to have handle checking added similar to how BufIO
                     and Files works.

         Correction: Added handle checking.  It will now detect and report the
                     minor errors of SageErrs.HandleAlreadyOpen (50) and
                     SageErrs.HandleAlreadyClosed (51).


September 12, 2002

   1)   Entry Title: Thor - Needs a browse button on the Compiler Environment
                     field
      Area Affected: Thor
             Status: Complete

        Description: Needs to have a browse button on the Compiler Environment
                     field of the SRC setup screen.

         Correction: Added a browse button to the Compiler Environment field
                     of the SRC setup screen.


   2)   Entry Title: Thor - Should not default in names for the symbol and res
                     files.
      Area Affected: Thor
             Status: Complete

        Description: Should not default in names for the symbol and res files.
                     For people doing only DOS development this does not
                     apply and if not caught will cause an annoying warning
                     message to pop up on subsequent opens of the SRC.

         Correction: Changed the SRC setup screen so that it does not default
                     in names for the symbol and res files.  Subsequent opens
                     of the SRC will not pop up the warning screens now
                     because the values (blank) will be okay.


September 11, 2002

   1)   Entry Title: Thor - Sometimes does not ask to save even if changed
      Area Affected: Thor
             Status: Complete

        Description: Sometimes it does not ask if you want to save even if
                     there have been obvious changes.

         Correction: Found and fixed a couple of leaks that let it slip past
                     asking.


   2)   Entry Title: Thor - Compression of filesets leaves old fileset data
                     still in SRC
      Area Affected: Thor
             Status: Complete

        Description: Even though Thor detects and compresses out the unused
                     filesets it still leaves that old fileset data in the
                     SRC.   Would be nice if a Repair/Compress of the SRC
                     could be scheduled to clean out that info.

         Correction: When you enter the relation editor it does a check to see
                     if there are gaps in the fileset list.   If there is it
                     automatically compresses out those spaces.  The code to
                     compress those filesets down to a contiguous list was
                     fine but I added code so that if that happens it will
                     also do a repair of the SRC which deletes those now empty
                     fileset entries


   3)   Entry Title: HyperTxt - Much slower since the last release
      Area Affected: Ada, M2
             Status: Complete

        Description: HyperTxt seems to be much slower since the last release,
                     especially doing searches.

         Correction: Fixed a slowdown problem when in search mode in HyperTxt.
                     Some recent changes to keep the systems from eating up
                     all the processor resources when running under Windows
                     had caused the problem.   After checking this area a
                     little closer I determined that the additional code could
                     be removed in this one place.  This restored the former
                     search speed.


   4)   Entry Title: HyperTxt - Highlighting not in correct position
      Area Affected: Ada
             Status: Complete

        Description: Since the last release there seems to be a problem with
                     the position of highlighted items.  The highlighting is
                     off to the side of what it should be over.

         Correction: Found that the problem was related to the recent Modsys
                     type tightening.   A set of parens used to do type
                     casting had been incorrectly placed causing a calculation
                     error.


   5)   Entry Title: GDI - Chopping off field contents, especially on date fields
      Area Affected: GDI
             Status: Complete

        Description: GDI seems to be chopping off the display of date fields
                     on the last digit.

         Correction: Found and corrected the mistake where it chopped one
                     character off from the end of the displayed field
                     contents, especially in date fields.


   6)   Entry Title: Thor - Option to do automatic Repair/Compress on exit
      Area Affected: Thor
             Status: Complete

        Description: Would like the option of having Thor do an automatic
                     Repair/Compact of the SRC as you are about to exit (and
                     if there have been changes).

         Correction: Added an option to have Thor do an automatic
                     Repair/Compact of the SRC as you are about to exit (and
                     if there have been changes).  This setting by default is
                     on.   You can change this setting by using the File - SRC
                     Setup options on the menu and unchecking the box.  The
                     Repair/Compact occurs just after initiating the exit and
                     just before the Save - Yes/No dialog comes up.  If you
                     notice a few seconds delay during that time that is what
                     is taking place.  I would have liked to put it after you
                     answer yes but because of the way it was put together
                     originally that would have been a much more complicated
                     process.


   7)   Entry Title: Rebuild - Getting modify permission errors on rebuilding
      Area Affected: Rebuild
             Status: Complete

        Description: Getting relation modify errors during rebuild.  Probably
                     related to new enforcement of the Modify param of the
                     OpenRelation call.

         Correction: In some cases the relation it was working on was opened
                     as read only.   Since the new checks were put in that
                     enforce the modify parameter of the OpenRelation call
                     this caused an error to show up when you told rebuild to
                     go ahead and rebuild the index of that relation.  Changed
                     the OpenRelation to use Modify = True.


September 10, 2002

   1)   Entry Title: Various - Need more checking on file handles
      Area Affected: M2
             Status: Complete

        Description: There are a few places where file handles don't seem to
                     be checked fully and currectly before use.

         Correction: Added more code to ensure that file handles are properly
                     initialized before using in a couple of places.


September 09, 2002

   1)   Entry Title: TimeLib - New routines to convert Fractional dates
      Area Affected: Ada, M2
             Status: Complete

        Description: Would like routines to convert to/from Fractional Dates.
                     A fractional date has the format yyyy.ffffff (i.e.
                     January 27, 2001 would be 2001.071233).  Fractional dates
                     are calculated by taking the offset number of days into
                     the year (i.e. January 01 is 0, January 02 is 1, etc.)
                     and dividing by the number of days in that year. For a
                     normal non leap year such as 2001 the date January 01 is
                     2001.000000, January 02 is 2001.002740, December 31 is
                     2001.997260, etc).  In a leap year the divisor is
                     slightly larger (366 instead of 365) so the decimal
                     digits are slightly different for those same days.
                     Fractional dates are routinely used by NASA.

         Correction: Added two new routines to TimeLib called
                     TimeLib.Date0ToFractional and TimeLib.FractionalToDate0.


September 05, 2002

   1)   Entry Title: STRegistry - New routine to Save/Retrieve position values
                     in the registry
      Area Affected: Ada, M2
             Status: Complete

        Description: Need new routines in STRegistry to help people save and
                     retrieve typical position values for dialogs and windows.

         Correction: Added two new routines called
                     STRegistry.RetrievePositionValues and
                     STRegistry.SavePositionValues. Saving the position and
                     size of a window or dialog so that the next time it is
                     displayed it can be restored to those values is a very
                     common task in Windows.  Almost always those values are
                     stored in the registry so these routine have been
                     provided for your convenience to accomplish that task


   2)   Entry Title: WinTools - New routines for CreateDirectory, DeleteDirectory
      Area Affected: Ada, M2
             Status: Complete

        Description: Need new routines in WinTools.  They would be called
                     WinTools.CreateDirectory, WinTools.DeleteDirectory and
                     WinTools.DeleteSubdirectories.

         Correction: Added new routines to WinTools.  They are called
                     WinTools.CreateDirectory, WinTools.DeleteDirectory and
                     WinTools.DeleteSubdirectories.   These routines use Win32
                     calls to accomplish the task hence the reason they are
                     in a Win32 only library


   3)   Entry Title: CtrlLV - New routines to help with positioning
      Area Affected: Ada, M2
             Status: Complete

        Description: Need new new routines in CtrlLV.  They would be
                     CtrlLV.CalculateTopRow, CtrlLV.AdjustAndHighLightRow and
                     CtrlLV.ResetAndHighlightRow.

         Correction: Added new routines to CtrlLV.  They are
                     CtrlLV.CalculateTopRow, CtrlLV.AdjustAndHighLightRow and
                     CtrlLV.ResetAndHighlightRow.  The task accomplished by
                     these routines can be performed by a series of calls to
                     CtrlLV but these routines encapsulate those and are
                     provided for your convenience.


   4)   Entry Title: Window - New routine to get the window position
      Area Affected: Ada, M2
             Status: Complete

        Description: Need a new routine to get the position of the window.

         Correction: Added a new routine to Window called
                     Window.GetWindowPositionInfo.  This routine is used to
                     find the current coordinates and size of a window


   5)   Entry Title: Dialog - New routine to get the dialog position info
      Area Affected: Ada, M2
             Status: Complete

        Description: Need a new routine to get the dialog position
                     information.

         Correction: Added a new routine to the Dialog package called
                     Dialog.GetDialogPositionInfo.  This routine is used to
                     find the current coordinates and size of a dialog.


September 04, 2002

   1)   Entry Title: ODBC - Test for compliance with SQL-92 minimum standard
      Area Affected: ODBC
             Status: Complete

        Description: Test that the ODBC driver is in compliance with the SQL
                     minimum grammer standard for SQL-92.

         Correction: Established the SQL minimum grammer standard for SQL-92.
                     Other SQL statements are active, available and seem to
                     work but the minimum set is all that have been tested to
                     any great extent.  The minimum set includes the following
                     SQL statements: CREATE TABLE table-name (col-id
                     data-type [, column-id data-type]...) DELETE FROM
                     table-name [WHERE search-condition] DROP TABLE table-name
                     INSERT INTO table-name [(col-id [,col-id]...)] VALUES
                     (value[,value]..) SELECT [ALL|DISTINCT] select-list FROM
                     table-list [WHERE search-condition] [order-by-clause]
                     UPDATE table-name SET col-id = {expression|NULL} [,col-id
                     = {expression|NULL}]... [WHERE search-condition.


   2)   Entry Title: ODBC - Problem with creating and dropping tables
      Area Affected: ODBC
             Status: Complete

        Description: There seems to be a problem with creating and dropping
                     tables.

         Correction: Found and corrected the problem.  NOTE: This capability
                     is limited to cases where the Sage-ST schema source file
                     (.SRC) is available and in the same directory as the
                     schema definition file (.DFL).  Otherwise, access to
                     existing data will be lost because the tables will no
                     longer be defined in the definition file.  In order to
                     add or drop tables an new definition file (.DFL) is
                     created from the source file.


   3)   Entry Title: ODBC - Gets error opening DFL with latest version of Sage.
      Area Affected: ODBC
             Status: Complete

        Description: The ODBC driver needs to be brought up to a newer version
                     of the C++ compiler.   It has to be recompiled to use
                     the latest version of SageST in order to get rid of an
                     error when opening the DFL.

         Correction: The ODBC driver was upgraded to compile using a more
                     modern compiler, Visual C++ 5.0.  This change was
                     required to upgrade the driver to work with the new
                     Sage-ST schema definition format.


   4)   Entry Title: ODBC - Getting an error due to enforcement of the Modify
                     param of OpenRelation
      Area Affected: ODBC
             Status: Complete

        Description: Getting an error that emerged when using the new Sage-ST
                     DLL that enforces the read/write indicator flag on
                     OpenRelation calls.

         Correction: Corrected the problem.   Needed to do a Modify = True on
                     the OpenRelation.


August 28, 2002

   1)   Entry Title: Thor - Need to control the number of lines per page on
                     reports
      Area Affected: Thor
             Status: Complete

        Description: Need to be able to control the number of lines per page
                     that are used on reports.

         Correction: Added an edit control (with buddy) that shows you the
                     setting for Lines Per Page on report generation.  The new
                     ability to print to a printer is simply handing the
                     ASCII text file to a printer.   Because this is not yet a
                     true Windows report being generated directly to the
                     printer, it tends to look different on various printers
                     (mostly that each page of data will be too long or too
                     short for that printer).   The new control allows you to
                     set the number of Lines Per Page that will be best for
                     the printer you are using.  You can type in the value or
                     use the buddy to increment and decrement it.  The value
                     is saved in the registry so the next time you come back
                     that setting is the one that you will see until you
                     change it.


August 22, 2002

   1)   Entry Title: Thor - Print reports directly from reports screen
      Area Affected: Thor
             Status: Complete

        Description: Would like an option to print reports directly from the
                     reports dialog.

         Correction: Added a print button to the reports screen of Thor.  The
                     report being generated still goes to a local file as it
                     always has.  You can select as many different things as
                     you choose to report on but once you select either the
                     print button or the Exit button the local file is closed.
                     If you click the print button then the Windows common
                     dialog for selecting a printer is shown.


Version released at this point: 6.03.0006

August 21, 2002

   1)   Entry Title: SDI - Would like more Windows like printing in SageTerm mode
      Area Affected: SDI
             Status: Complete

        Description: Would like more Windows like printing in SageTerm mode of
                     SDI.   Currently it acts like a DOS app and wants a
                     local LPT1 or PRN printer.  That used to work well in a
                     pure DOS environment where a printer was almost always
                     attached directly attached to the machine.  However it
                     was recently brought to my attention that this did not
                     work well where the machine was a workstation on a
                     network which is much more common now.

         Correction: Now the report is generated to a local file and then one
                     of two methods is used. If you are using the X32 version
                     of SDI it will attempt to do a "COPY /B [LocalFile]
                     [PrinterName] [great than symbol] nul" where LocalFile is
                     the temp file name I use and PrinterName is the name
                     listed in the Options for that report. PrinterName might
                     be values such as LPT1, PRN or whatever you need for your
                     situation.   For instance under Windows if you want to
                     print from a workstation to a network printer then use
                     the command "net use LPT1: \\[computerName\shareName]
                     /persistent:yes" so that any reference to PRN will be
                     captured to the network printer.   This only needs to be
                     done one time if you set persistent to yes.  Then inside
                     SDI set PRN as the Printer Name in the defaults for your
                     report. SDI will copy the local temp file to PRN which
                     will direct it to the network printer. The second method
                     of printing is used if you are using the SageTerm (Win32)
                     version of SDI.  It still generates to a local file but
                     then it will pop up the Windows printer selection dialog.
                     You can select the desired printer from that dialog
                     and the report will be sent to that printer using the
                     WinPrint.PrintFile routine in Sage.  In this second
                     method the setting for Printer in the defaults is
                     ignored.


   2)   Entry Title: SDI - Need more capability to print to file and printer
      Area Affected: SDI
             Status: Complete

        Description: Would like to split the definition of where you want to
                     send a report.  With only one setting you can specify a
                     file name or a printer.   When you hit the Alt/P option
                     it goes to that destination. Would be nice to have two
                     options set to the preferred printer and the preferred
                     file.  Then when the report is generated pop up and ask
                     the user where to go.  Now they have to go all the way
                     back and reset the field if they want to change.

         Correction: Added a new field to split the definition of where you
                     want to send a report.  One a file name and the other a
                     printer name.   Now when the Alt/P option is selected a
                     screen pops up asking if you want to send to printer or
                     file.   Whichever choice is made the corresponding
                     destination is used. This allows switching between
                     sending to file or printer without going all the way back
                     to change the setting.


   3)   Entry Title: SDI - Printing to file still includes the printer codes
      Area Affected: SDI
             Status: Complete

        Description: When sending the output report to a file the printer
                     codes are still inserted.  Would like to have just a
                     plain ASCII file.

         Correction: When sending the output report to a file the insertion of
                     the printer initialization codes at the top and bottom
                     of the file are now removed.


August 20, 2002

   1)   Entry Title: WinPrint - Should not give option for printing selected text
      Area Affected: Ada, M2
             Status: Complete

        Description: The WinPrint.PrintLines routine pops up the Windows
                     common dialog for selecting a printer.  On that dialog it
                     gave the option to print only the selected text however
                     that routine does not show you the text prior to
                     printing.  That option should not be shown.

         Correction: The print selected text option is now grayed out when the
                     dialog is shown.


August 19, 2002

   1)   Entry Title: Sage - Under Win32 still eating up processor waiting for key
      Area Affected: M2
             Status: Complete

        Description: Looks like there is another place where the processor
                     resources are eaten while waiting for a key.  Need to
                     insert the delay code to stop this from happening.

         Correction: Found and inserted the delay statement where it had been
                     missed.  This is so that under under Windows the app does
                     not consume most of the processor resources while
                     waiting for a key press.


August 16, 2002

   1)   Entry Title: SageErrs - Move logical routines to this package
      Area Affected: Ada, M2
             Status: Complete

        Description: Should move routines logically belonging to the SageErrs
                     package into that package.  They include
                     Sage.GetFatalErrorFlag, Sage.DisplayFatalErrors,
                     Sage.GetMinorErrorFlag and Sage.DisplayMinorErrors.

         Correction: Moved the routines Sage.GetFatalErrorFlag,
                     Sage.DisplayFatalErrors, Sage.GetMinorErrorFlag and
                     Sage.DisplayMinorErrors to the SageErrs package.  This
                     makes better logical sense to have these routines grouped
                     together in the same package that contains the error
                     constants and definitions.


   2)   Entry Title: Sage - Removed routine Sage.SetFatalErrorFlag
      Area Affected: M2
             Status: Complete

        Description: The routine Sage.SetFatalErrorFlag appears to be a
                     duplicate of the SageErrs.DisplayFatalErrors routine.  It
                     needs to be removed.

         Correction: Removed the routine Sage.SetFatalErrorFlag.  This must
                     have been an old name for the same routine that is now
                     called SageErrs.DisplayFatalErrors.  It was a complete
                     duplicate of this routine except for the routine name.
                     Removed because of its redundancy.  This routine did not
                     exist in the Ada side


   3)   Entry Title: MultSage - Need routine to return Modify status of relation
      Area Affected: Ada, M2
             Status: Complete

        Description: Need a new routine to match the one added recently to
                     Sage.  It would be called MultSage.RelationOpenForModify.

         Correction: Added a new routine to MultSage to match the one added
                     recently to Sage.  It is called
                     MultSage.RelationOpenForModify.


August 15, 2002

   1)   Entry Title: TimeLib - Need standard routine to calculate leap years
      Area Affected: Ada, M2
             Status: Complete

        Description: Need a standard routine to calculate leap year so users
                     can call it.  Calculating a leap year is NOT as simple as
                     dividing by 4.  This routine would do the correct
                     calculation and return the result.

         Correction: Added a new routine to TimeLib called IsLeapYear which
                     returns a boolean value to show if a given year would be
                     a leap year.  In Ada it is overloaded to accept either a
                     string or a Modsys.S_Natural.  In M2 the two routines are
                     called TimeLib.IsLeapYearCard and TimeLib.IsLeapYearStr.


August 14, 2002

   1)   Entry Title: Thor - Escape key during compile causes hang
      Area Affected: Thor
             Status: Complete

        Description: If the escape key is hit during the compile the dialog
                     goes away but the compile continues and then the user is
                     trapped in an endless loop waiting for the OK button to
                     be pressed.  Since the dialog has been terminated the
                     user can never get to the button.

         Correction: Added code to capture someone hitting the escape key
                     while compiling a Dfl.


   2)   Entry Title: Thor - Copy messages should be enhanced to indicate progress
      Area Affected: Thor
             Status: Complete

        Description: Some of the message should be enhanced during copy
                     operations.  Currently the message says it is copying but
                     on large numbers of items it appears that the process
                     may be hung until it suddenly completes.  Would be nice
                     to have messages that indicate better if progress is
                     being made.

         Correction: Added messages that show what item is being worked on
                     while copying.  These messages give a visual clue as to
                     what is taking place.


August 13, 2002

   1)   Entry Title: WinTools - Need routine to call the common font dialog
      Area Affected: Ada, M2
             Status: Complete

        Description: Need a routine in WinTools to call and display the
                     Windows Common Font dialog.

         Correction: Added a routine to WinTools called WinTools.GetAFont.
                     This routine puts up the Windows Common dialog for
                     selecting a font.


   2)   Entry Title: CtrlLV - Need more control over hiding/showing grid lines
      Area Affected: Ada, M2
             Status: Complete

        Description: Need functions to help with hiding/showing grid lines and
                     with cell fonts and colors.

         Correction: Added several functions to CtrlLV to allow multiple fonts
                     and colors to be used in the sage ListView and the use
                     of grid lines. CtrlLV.SetItemFont,
                     CtrlLV.SetItemFontColor, CtrlLV.SetHeaderFont,
                     CtrlLV.ShowGridlines, CtrlLV.HideGridlines.  A new
                     message (CtrlLv.GetCellFont) is also sent to allow the
                     user to change the font for each cell.


   3)   Entry Title: CtrlLV - Would like functions to turn on/off the ... when
                     data is wide
      Area Affected: Ada, M2
             Status: Complete

        Description: Would like the ability to turn on or off the dot dot dot
                     feature when a cells text is longer than the cell.

         Correction: Two functions were added to CtrlLV to allow the user to
                     control this behavior.  They are CtrlLV.TurnOnDotDotDot
                     and CtrlLV.TurnOffDotDotDot.


   4)   Entry Title: CtrlLV - Need a routine to check what font is currently
                     used by the control
      Area Affected: Ada, M2
             Status: Complete

        Description: Need a function in CtrlLV to allow the user to determine
                     the current font in use by the ListView.

         Correction: Added the requested function to CtrlLV.  The routine is
                     CtrlLV.CurrentFont.


   5)   Entry Title: RTF - Would like the ability to use colors
      Area Affected: Ada, M2
             Status: Complete

        Description: Would like routines added that will give the ability to
                     use colors in the RTF files.

         Correction: Added three functions to RTF to allow the user to use
                     multiple colors.   They are RTF.RegisterColor,
                     RTF.SetColors and RTF.SetTableColor.


   6)   Entry Title: WinTools - Need routines to handle a Mutex
      Area Affected: Ada, M2
             Status: Complete

        Description: Would like routines to help with using a Mutex (mutually
                     exclusive object).

         Correction: Added two routines to WinTools to handle a Mutex
                     (mutually exclusive object).   They are WinTools.GetMutex
                     and WinTools.ReleaseMutex.  A mutex is used to control
                     access when multiple processes need to share a resource
                     (such as a database) without allowing simultaneous access
                     to the resource.


Version released at this point: 6.03.0005

August 12, 2002

   1)   Entry Title: Sage - Need routine to return Modify status of the relation
      Area Affected: Ada, M2
             Status: Complete

        Description: Need a routine to return how the relation was opened
                     regarding its Modify status.

         Correction: Added a routine called Sage.RelationOpenForModify.  This
                     routine lets you check how a relation was opened (read
                     only or modify). The relation must be open before calling
                     this routine or it will cause SageError to be set.


   2)   Entry Title: Sage - Would like a routine that returns key names (Alt/K,
                     etc.)
      Area Affected: Ada, M2
             Status: Complete

        Description: Need a routine that can return the names of keys.  You
                     would pass in key codes and it will return a string with
                     the name of the key represented by those codes (i.e.
                     "Alt/K", "Ctrl/H", "a", "Z", etc.).

         Correction: Added a new routine called Sage.GetKeyName.  This does
                     the function described.


   3)   Entry Title: Sage - Need routines for getting/putting field pointers
      Area Affected: Ada, M2
             Status: Complete

        Description: Need routines to get and put field pointers.

         Correction: Added two new routines called Sage.GetFieldPointer and
                     Sage.PutFieldPointer.  They allow you to get the actual
                     value of a block data field (not the block data itself,
                     just the pointer).  These routines should only be used
                     when you have a thorough understanding of how block data
                     works and then only when you have some special condition
                     that makes this necessary.  There is a project that needs
                     this, that is why they were added. Most projects would
                     probably never need these routines


   4)   Entry Title: Convert - Any string value greater than 32_767 converts to 0
      Area Affected: Ada
             Status: Complete

        Description: Any string containing a value greater than 32_767 will
                     convert to a value of 0.

         Correction: Corrected an error in Convert that affected the StrToInt
                     routines.  Any string containing a value greater than
                     32_767 will convert to a value of 0.  This was first
                     reported when the Sage.GetFieldI routine started
                     exhibiting this behavior so obviously that routine will
                     also not work without this correction.


Version released at this point: 6.03.0004

August 08, 2002

   1)   Entry Title: FixLib - Routines to control messages missing in M2 side
      Area Affected: M2
             Status: Complete

        Description: Found two routines that exist in the Ada FixLib that are
                     missing in the M2 side.  They are HideMessages and
                     ShowMessages.

         Correction: Added the two routines to the M2 side.  They are
                     HideMessages and ShowMessages.  Using these routines you
                     can turn on/off the messages that show while a
                     FixLib.Restructure is running.


   2)   Entry Title: FixLib - Need routines that are easier to do rebuilding
                     check before opening relation
      Area Affected: Ada, M2
             Status: Complete

        Description: Would like to have routines that can do a check and
                     automatic rebuild of relations before you try to open
                     them.  Should allow checking one or all relations and
                     automatically find the old file if needing a version
                     rebuild.

         Correction: Added four new routines to FixLib.  They are
                     FixLib.OpenedRepairRelation,
                     FixLib.OpenedRepairAllRelations,
                     FixLib.ClosedRepairRelation and
                     FixLib.ClosedRepairAllRelations.  These routines are a
                     high level way of checking if relations need to have an
                     index rebuild or a restructure before you use them.  By
                     using the combination of the four routines you can either
                     check a single relation or all relations for a Dfl.  You
                     can also do this check with the Dfl either opened or
                     closed.   If any relation is found to need one of the
                     actions performed on it then these routines will try to
                     find the matching old Dfl file and restructure and/or
                     reindex the relation so that it is current.  These
                     routines would probably be called at the start of an
                     application to check and fix the data files before
                     opening the system and getting into the logic of the
                     application.


August 02, 2002

   1)   Entry Title: SageSCUp - Need additional categories for setting types
      Area Affected: Tools
             Status: Complete

        Description: Sagescup needs additional categories in order to
                     correctly set the Ada Modsys types encountered.

         Correction: Sagescup has been enhanced with additional features.  Now
                     when asked the questions before it processes the files
                     there will be eight categories to set.  The suggested
                     setting for most people is still to answer 'Y' to all
                     questions.  When it processes a file for the first time
                     it stuffs in the 'use type Modsys.S_........' lines.
                     Without going into a LOT of logic of figuring out what it
                     will eventually change the types to it simply includes
                     the lines for all the general types.   Sagescup has been
                     enhanced now so that on subsequent passes through the
                     files it will check to see if these lines are needed and
                     will put a comment at the end of the line if it is not.
                     The comment will look like this 'use type
                     Modsys.S_Integer16;  -- This line may not be needed'.
                     I'll leave that up to you to pull those lines out since
                     I'm not completely confident that I might not pull that
                     line out and for some reason it was still needed.


   2)   Entry Title: Various - Convert parameters to standard types S_Natural
                     and S_Integer
      Area Affected: Ada
             Status: Complete

        Description: Parameters in Cache, Display, InfoLib, ProgCmnd, SageOpt,
                     ThorPort, Random, MenuLib, DBLoad and SGK should be
                     converted to use standard Modsys.S_Natural and
                     Modsys.S_Integer.

         Correction: Paramters changed in the listed packages.


   3)   Entry Title: Call_Dummy - Should be removed completely
      Area Affected: Ada
             Status: Complete

        Description: The package Call_Dummy should be removed.  It is an
                     obsolete leftover of the Dos 16 bit days.

         Correction: The package has been removed.  It was an obsolete
                     leftover of the Dos 16 bit days.


   4)   Entry Title: Sage - Should remove obsolete routines GetFieldLF and
                     PutFieldLF
      Area Affected: Ada
             Status: Complete

        Description: The routines Sage.GetFieldLF and Sage.PutFieldLF should
                     be removed. They are easily replaced by overloading
                     Sage.GetFieldF and Sage.PutFieldF routines.

         Correction: The routines have been removed. They are replaced by the
                     overloaded Sage.GetFieldF and Sage.PutFieldF routines.


July 30, 2002

   1)   Entry Title: Thor - Should default to all items to report
      Area Affected: Thor
             Status: Complete

        Description: When you select a report type to do (i.e. records or
                     forms) the list that initially comes up should have all
                     items selected.  It seems that when I work on projects I
                     am almost always wanting a report of all items and only
                     occasionally want selected items.

         Correction: Default changed to come up with all selected.


   2)   Entry Title: DiskLib - Convert params to standard types
      Area Affected: Ada
             Status: Complete

        Description: Need to convert DiskLib routines to use standard
                     Modsys.S_Natural and Modsys.S_Integer.

         Correction: Routines converted to standard types.


   3)   Entry Title: Installation - Should ask where to install before what to
                     install
      Area Affected: Installation
             Status: Complete

        Description: Should move the screen which asks for the install
                     destination before the screen that asks what type of
                     install to do.  Seems more logical to verify where to put
                     it before asking what to put there.

         Correction: Moved the destination screen in front of the type of
                     install screen.


   4)   Entry Title: DosLib - Convert params to standard S_Natural and S_Integer
                     types
      Area Affected: Ada
             Status: Complete

        Description: Need to convert DosLib routines to use standard
                     Modsys.S_Natural and Modsys.S_Integer types.

         Correction: Converted all possible routines use standard types.


   5)   Entry Title: Reports - Should convert to standard types on params
      Area Affected: Ada
             Status: Complete

        Description: Should convert params in Reports package to standard
                     types.

         Correction: Reports package converted to use standard
                     Modsys.S_Integer and Modsys.S_Natural types.


   6)   Entry Title: Sage - Routing params should be converted to standard types
      Area Affected: Ada
             Status: Complete

        Description: Sage.GetRecord parameters need to be converted to
                     Modsys.S_Natural.

         Correction: Sage.GetRecord parameter converted from
                     Modsys.S_Natural16 to Modsys.S_Natural.


   7)   Entry Title: Thor - Need option to print reports with no page breaks
      Area Affected: Thor
             Status: Complete

        Description: Need an option to print continuous reports.  They would
                     not have the page numbering or an index or the form feed
                     characters.  This "cleaner" file would be better to use
                     when comparing against the same file from another copy of
                     the SRC.  This should make it easier to spot where there
                     are changes in relations, forms, etc.

         Correction: Added a checkbox that is labeled Continuous.  If you
                     check that box the output file does not have the page
                     numbering or an index or the form feed charcters.


   8)   Entry Title: Sage - Some params still in non standard types
      Area Affected: Ada
             Status: Complete

        Description: Sage.OpenSystem and Sage.OpenDatabase parameters should
                     be converted from Modsys.S_Natural16 to Modsys.S_Natural.

         Correction: Parameters on affected routines converted.


   9)   Entry Title: Thor - Need to gray buttons when functions are running
      Area Affected: Thor
             Status: Complete

        Description: Need to clean up the buttons on the reports.  While the
                     report is running the buttons should be grayed out so
                     that they are not active.  When the report completes the
                     buttons would go active again.

         Correction: Cleaned up the buttons.  Now while the report is running
                     the buttons are grayed out so that they are not active.
                     When the report completes the buttons are active again.


  10)   Entry Title: MultSage - Convert params to standard types
      Area Affected: Ada
             Status: Complete

        Description: MultSage package params need to be converted to use
                     standard Modsys.S_Natural and Modsys.S_Integer.

         Correction: Parameters on routines converted to standard types.


Version released at this point: 6.03.0003

July 29, 2002

   1)   Entry Title: DiskLib - Change params to standard types
      Area Affected: Ada
             Status: Complete

        Description: Need to change params to standard Modsys types.

         Correction: Params changed to standard types.


   2)   Entry Title: WinPrint - Change params in SetMargins to standard types
      Area Affected: Ada
             Status: Complete

        Description: Need to change the WinPrint.SetMargins parameter to
                     standard Modsys types.

         Correction: Params changed to standard types.


July 26, 2002

   1)   Entry Title: TimeReal - Should change routines to get rid of LongReal
                     names
      Area Affected: Ada
             Status: Complete

        Description: Should convert TimeReal routines to get rid of routines
                     with LongReal in their name.

         Correction: LongReal routines removed.  All routines overloaded to
                     handle both Modsys.S_Float32 and Modsys.S_Float64.


July 25, 2002

   1)   Entry Title: ObjCalendar - Overrunning lower and upper limits on dates
      Area Affected: Ada, M2
             Status: Complete

        Description: Does not do bounds checking so it allows you to use the
                     plus and minus month buttons to move the calendar below
                     1900 and above the max year.  Once you do that it will
                     blow up with numeric overflow problems.

         Correction: Bounds checking has been implemented.  Now you cannot
                     move below or above the limits.  The max year available
                     has been increased from 2040 to 2400.   The combo box
                     that listed the available years was also not showing the
                     lowest possible entry (1900).


   2)   Entry Title: Thor - Gray out buttons and menu options not useful if no
                     SRC is open
      Area Affected: Thor
             Status: Complete

        Description: Should clean up buttons and menus of Thor so that if you
                     do NOT have an SRC open then the button and menu entries
                     that are not valid are either not visible or cannot be
                     selected.

         Correction: Grayed out the buttons and menu entries when an SRC is
                     not open.  Once you open an SRC all the menu items and
                     toolbar buttons are visible.  Also since quite a few
                     people are still working with DOS form based systems I
                     moved those items from behind the 'character objects'
                     menu entry to the main edit menu.


Version released at this point: 6.03.0002

July 24, 2002

   1)   Entry Title: SDI - Large letter printing has extra blank line between
                     each line
      Area Affected: SDI
             Status: Complete

        Description: The large letter printing that prints on reports is not
                     correct.  Appears to have an extra blank line between
                     each row of the letters.

         Correction: Corrected to show properly.  Found an extra WriteLn that
                     was causing the extra space.


   2)   Entry Title: SDI - Percent complete string is not showing correctly
      Area Affected: SDI
             Status: Complete

        Description: The percentage string that shows when a report is running
                     has a few characters in it that should not be there.

         Correction: Fixed the percentage string to show up the way it should.


   3)   Entry Title: Files - Multiple file handles to same file not working
                     correctly
      Area Affected: Ada, M2
             Status: Complete

        Description: Condition is when two file handles are open to the same
                     file.  If one handle updates the file by adding to its
                     length the second handle does not know about the
                     increased size.   Note - This will affect MultSage
                     operations.

         Correction: This error was introduced by the May 03, 2002 correction
                     that took out an extraneous Files.Flush command from one
                     of the Files routines.  Any library during the
                     intervening period should be replaced if you are using
                     MultSage.  I did NOT put the Flush command back in to
                     correct this problem.  It was corrected by having the
                     handles dynamically find the end of file when they need
                     it instead of assuming that it was still the same as the
                     last time that the handle used the file.


July 19, 2002

   1)   Entry Title: Strings - Would like a routine that can do formatting of a
                     string
      Area Affected: Ada, M2
             Status: Complete

        Description: Would like a routine that can do some formatting on a
                     string.  Such things as zero fill and/or add commas to a
                     string that is representing a whole number.

         Correction: Added a new routine to Strings called FormatNumberString.
                     By setting the parameters to the call a string can be
                     zero filled and/or have commas added if it is a number
                     string.


   2)   Entry Title: Convert - Would like routines to do conversion using Roman
                     Numerals
      Area Affected: Ada, M2
             Status: Complete

        Description: Would like routines so that Roman Numerals could be
                     handled in conversions.

         Correction: Added two new routines called NumberToRoman and
                     RomanToNumber.  They convert between numbers and a string
                     that represents that number in roman numerals.


Version released at this point: 6.03.0001

July 18, 2002

   1)   Entry Title: SDI - Would like command line param to rebuild its relations
      Area Affected: SDI
             Status: Complete

        Description: Would like a command line param to be recognized called
                     BatchRebuild.  This param from anywhere on the command
                     line would cause SDI to do a check and rebuild of its
                     relations (provided that you have the .OLD and .D[N][N]
                     files for it to rebuild against) and then exit without
                     showing the user any interface.

         Correction: Added a command line value to SDI of BatchRebuild.  This
                     is handy when you send out updates so that during the
                     install you can silently rebuild their SDI data.  (Note -
                     the BatchRebuild value is NOT case sensitive.


July 17, 2002

   1)   Entry Title: SDI - Should look at more than just SDI.OLD if rebuilding
      Area Affected: SDI
             Status: Complete

        Description: Currently if it has to rebuild a relation it only looks
                     for the SDI.OLD file to do that.

         Correction: Now it will cycle around all the way through the possible
                     list of files (SDI.D02 ... SDI.D99) until it finds a
                     compatible file to use as the old.


July 16, 2002

   1)   Entry Title: SDI - Should be able to do a rename of the DFL being used
      Area Affected: SDI
             Status: Complete

        Description: Should have a rename in the Utilities menu.  This would
                     be used in the event that the User DFL is being renamed.

         Correction: Added a rename function to the Utilities menu.  This
                     function will go through the SDI relations changing the
                     stored DFL name from the old name to the new. Typically
                     the user would go into this function while having what
                     will be the old DFL open.  They use the rename function
                     to rename to the new name.  Once they do this there will
                     not be any reports or views left so they should just exit
                     out of SDI.  Then they would restart SDI but use the new
                     DFL this time. When they enter they should see all the
                     existing views, reports, etc. ready for use with the new
                     name.  If they go into the new DFL before renaming they
                     will be required to add one View before they can get to
                     the rename function.  If they do it in this way it will
                     still rename all the existing stuff but is just not as
                     easy.


   2)   Entry Title: Thor - Rolling file names forward including the gaps
      Area Affected: Thor
             Status: Complete

        Description: When you compile a DFL the file names are being rolled
                     forward even when there are gaps.  For instance if you
                     have a .DFL, a .OLD, a .D02 and a .D04 it will roll .D04
                     up to .D05 and .D02 up to .D03 leaving the .D04 spot
                     open.  It would be better if it would roll the gaps
                     closed.

         Correction: The rolling mechanism was corrected so that instead of
                     just rolling the gap forward it will now close it.  In
                     the example just given it will now leave the .D04 in
                     place and roll the .D02 up to .D03 closing the gap.  The
                     next compile after that would result in the normal
                     rolling mechanism since it did not encounter a gap in the
                     sequence.  The new method will prevent the premature
                     loss of the oldest .D[N][N] file.


   3)   Entry Title: ThorPort - Pause is eating up the processor under Windows
      Area Affected: Ada
             Status: Complete

        Description: ThorPort.Pause seems to be eating up the CPU time when
                     the application is run under Windows.

         Correction: Changed the internal code of the ThorPort.Pause routine.
                     The new way it should not be pegging the processor
                     during the Pause period.


   4)   Entry Title: Display - Eating up processor resources in ScrollForm under
                     Windows
      Area Affected: Ada
             Status: Complete

        Description: Display.ScrollForm ties up the processor while waiting
                     for a key under Windows.

         Correction: Corrected a tight wait loop by adding a slight delay
                     while it is waiting for a key.


   5)   Entry Title: SDI - Need to include old copies of SDI.DFL for user to do
                     rebuilding
      Area Affected: SDI
             Status: Complete

        Description: Should include as many of the SDI.D[N][N] (old versions
                     of the SDI.DFL) files as can be recovered.  Users need
                     these files to do rebuilding.

         Correction: I'm now including as many of the SDI.D[N][N] (old
                     versions of the SDI.DFL) files as I could find.   It
                     occurred to me that if you are picking up the newer
                     copies of SDI then you might have some SDI data relations
                     out there that would need to be rebuilt.  In case you
                     happen to overwrite the SDI.DFL that you had then the one
                     you need might be in this list of files.  If anyone
                     happens to have a copy of the SDI.DFL file in any form
                     that is a different date and time than the ones that I've
                     included send it to me and I'll make sure it gets in
                     with the others.


   6)   Entry Title: SDI - Should warn before purging
      Area Affected: SDI
             Status: Complete

        Description: Should warn before actually doing the purge.

         Correction: Added a warning screen before purging.  The user can also
                     abort from this screen before starting the purge.


July 15, 2002

   1)   Entry Title: BinLib - Has an error related to recent type tightening
      Area Affected: Ada
             Status: Complete

        Description: Looks like a mistake has been introduced recently,
                     probably during the type tightening.

         Correction: Corrected a mistake where a paren was incorrectly
                     positioned when casting a type.


Version released at this point: 6.02.0001

July 11, 2002

   1)   Entry Title: Rebuild - Temp file not being deleted
      Area Affected: Rebuild, Ada, M2
             Status: Complete

        Description: During the rebuilding of a relation (using Rebuild or
                     calling it internally) a temp file is created called
                     RESTRUCT.TMP.  That file is not being deleted at the
                     conclusion of the relation rebuild.

         Correction: Added code to delete that file at the end of its use.


   2)   Entry Title: SDI - Problem finding the SDITEMP.XXX file
      Area Affected: SDI
             Status: Complete

        Description: Appears to be a problem related to finding the
                     SDITEMP.XXX file.

         Correction: Use of the file is obsolete.  Removed all use of the file
                     and put in code to delete that file when SDI starts if
                     the file is found.


July 10, 2002

   1)   Entry Title: Rebuild - Showing same version date but marking relation as
                     version problem
      Area Affected: Rebuild
             Status: Complete

        Description: On the new fields which show the relation version
                     information sometimes the relation will be marked that it
                     is a version confict but the version of the relation is
                     the same as that in the DFL.

         Correction: Found that if only the Index File had the wrong version
                     it was showing the .DAT file version. Corrected to show
                     the .IDX version in that case.


July 09, 2002

   1)   Entry Title: Database - Floating point fields corrupted if field
                     shortened or lengthened
      Area Affected: Ada, M2, Rebuild
             Status: Complete

        Description: An important error has been discovered regarding floating
                     point fields.  If the field is shortened or lengthened
                     after there are data records present there is a
                     possibility of the fields ending up with incorrect
                     values.  This only happens to fields that are empty at
                     the time of the change.  The problem will show in that
                     the field which was empty before having its size changed
                     will now contain a value of 0.0. This may not sound like
                     much but if you are doing calculations such as averages
                     based on the number of records that contained a value the
                     calculations will be off.

         Correction: The problem has been corrected by adding code to detect
                     the empty values and properly change their size.  If you
                     are using floating point fields I strongly suggest that
                     you make sure you have the new libraries.  You will
                     definately want to use a version of rebuild that contains
                     this fix before you make any changes to the size of your
                     floating point fields.


July 08, 2002

   1)   Entry Title: Various - Tight types used throughout SageST now
      Area Affected: Ada
             Status: Complete

        Description: Tight types should be used throughout all of the Ada side
                     of SageST and SageSGK.

         Correction: SageST and SageSGK have been completely compiled using
                     the tightest type declarations for the Modsys types.
                     This should help eliminate any problems internally in
                     SageST where values are assigned and they overflow the
                     capacity of the receiving variable.  For a period of time
                     the type declarations will be loosened so that everyone
                     doesn't have to immediately change all of their source.
                     However at some future date (probably within a few
                     months) the types will be tightened again to eliminate
                     the same problem from values being passed into the
                     routines. At that time you will have to match types with
                     what the procedure needs EXACTLY.


   2)   Entry Title: Various - Change Integer params to Natural where logical
      Area Affected: Ada
             Status: Complete

        Description: Several parameters should be changed where the type used
                     is Modsys.S_Integer32 but it does not make sense to allow
                     negative values. For example the parameters to
                     Display.ScrollForm that tell it how many records to
                     scroll and the return value from Sage.TotalRecords.

         Correction: Changed in multiple places.


   3)   Entry Title: Sage - GetFieldI and PutFieldI should be overloaded
      Area Affected: Ada
             Status: Complete

        Description: Should overload the GetFieldI and PutFieldI routines with
                     additional numeric types that they can take as
                     parameters.

         Correction: Overloaded the GetFieldI and PutFieldI routines with
                     additional numeric types.  Currently the routines support
                     Integer, Natural, Modsys.S_Integer, Modsys.S_Integer32,
                     Modsys.S_Natural and Modsys.S_Natural32.  Once this has
                     been in place for a while the GetFieldLI and PutFieldLI
                     routines will be removed so that this single routine name
                     can be used.


June 25, 2002

   1)   Entry Title: WinTools - SelectFolder should be in its own package
      Area Affected: Ada, M2
             Status: Complete

        Description: Should move the routine WinTools.SelectFolder to its own
                     package.

         Correction: It is now in SageDialog.SelectFolder.


   2)   Entry Title: M2 - Now using build 21 of the M2 compiler
      Area Affected: M2
             Status: Complete

        Description: The M2 libraries should use Version 4 Build 21 of the
                     compiler.

         Correction: The M2 libraries are now built using Version 4 Build 21
                     of the compiler.


June 10, 2002

   1)   Entry Title: SGK - Should use largest size of float for numbers
      Area Affected: Ada, M2
             Status: Complete

        Description: SGK should be converted to use strictly Modsys.S_Float64
                     parameters.

         Correction: SGK has been converted to use strictly Modsys.S_Float64
                     parameters.  Previously some params were Modsys.S_Float32
                     which was not large enough in range to hold the values
                     that some users needed.


May 23, 2002

   1)   Entry Title: Modsys - Should remove Inc and Dec routines
      Area Affected: Ada
             Status: Complete

        Description: Should remove the Modsys.Inc and Modsys.Dec routines.
                     These are most likely counter productive to use since it
                     probably costs more run time to set up and make a
                     procedure call than it would to simply execute the line
                     'Index := Index + 1;'  Another point is that most
                     compilers are optimized to look for lines such as the one
                     illustrated.  Using these routines probably masks that
                     and so the compiler is not able to optimize that code.

         Correction: Removed the Modsys.Inc and Modsys.Dec routines.


May 20, 2002

   1)   Entry Title: BinLib - Slowing down updates to the index file
      Area Affected: Ada
             Status: Complete

        Description: A particular change in one package put in when all of
                     Sage was converted from generics to procedure parameters
                     is slowing down lots of stuff, especially updates to the
                     index file.

         Correction: Corrected the error.  Index updates are now a lot faster
                     as well as this should also increase speeds in many of
                     the other Sage calls.


May 15, 2002

   1)   Entry Title: ErrorLog - Need new routine to get the current log file name
      Area Affected: Ada, M2
             Status: Complete

        Description: Need a routine to get the name of the current log file.

         Correction: Added a routine to ErrorLog called GetLogFile.


   2)   Entry Title: QueryLib - Should change error numbers to not conflict with
                     SageErrors
      Area Affected: Ada, M2
             Status: Complete

        Description: Should move all the QueryLib related errors to new
                     numbers.  They conflict with existing SageErrors.

         Correction: Moved all the QueryLib related errors to new numbers.
                     See SageErrs package spec for a list of the errors by
                     number.  They are now in the 140's range and the named
                     constant starts with the word Query.  If you use QueryLib
                     and look for an error other than just generically saying
                     'not equal 0' then you need to review how these error
                     numbers changed.


May 14, 2002

   1)   Entry Title: Terminal - WriteStr