Wintertree Software Inc.

Sentry Spelling Checker Engine

HomeSite indexContact usCatalogProductsSupportSearch

You are here: Home > Support > Sentry Spelling Checker Engine > Revision History

Revision History (Partial)


Version 5.17

Windows SDK:

Source SDK:

Bug fixes, all SDKs:

Bug fixes, Windows SDK:

Bug fixes, Source SDK:

Version 5.16

All SDKs:

Windows SDK:

Source SDK:

Bug fixes, all SDKs:

Bug fixes, Windows SDK:

Bug fixes, Source SDK:

Version 5.15

All SDKs:

Windows SDK:

Source SDK:

Bug fixes, all SDKs:

Bug fixes, Windows SDK:

Bug fixes, Source SDK:


Version 5.14

Version 5.13

Support for Active Server Pages (ASP) has been added to the SSCE Windows SDK.

If the SSCE_SetIniFile function is called in the 32-bit SSCE DLL, the DLL will now read and write property values to the specified INI file rather than the system registry. By default, the 32-bit SSCE DLL will use the system registry. Calling SSCE_SetIniFile will cause the DLL to use the INI file until SSCE_SetRegTreeName is called or the DLL is unloaded. The 16-bit SSCE DLL will always use an INI file.

If the registry tree name passed in the SSCE_SetRegTreeName function starts with "HKEY_LOCAL_MACHINE", the 32-bit SSCE DLL will read and write properties in the HKEY_LOCAL_MACHINE tree rather than HKEY_CURRENT_USER.

The StripPossessives property has been added to the Windows DLLs. This property corresponds with the SSCE_STRIP_POSSESSIVES_OPT option.

The word-parsing algorithm was modified to accept trailing periods only in words that contain embedded periods and no more than two consecutive alpha-numerics. The algorithm will accept trailing periods in words like "U.S.A." and "Ph.D." but not in ""

The behavior of the SSCE_SPLIT_WORDS_OPT option (and the SplitWords property) was changed to accept only words formed from sub-words containing two or more letters.

The real-time or "as you type" spelling check demos now honor the Auto Correct property setting. If this property is disabled, words marked for automatic replacement will be treated as conditional replacements.

A problem where the C Validate program and C "Speller" example would not compile under VC++ has been corrected. The ssce.h include file would include windows.h if _WIN16 or _WIN32 was defined. The validate.c and speller.c source files use strict ANSI C, and compiler warnings would result if windows.h was included (windows.h is not ANSI C compliant). However, Microsoft's implementation of ANSI C include files, such as stdlib.h, would issue warnings if _WIN32 was not defined. The solution was to define a new preprocessor symbol, SSCE_NO_WINDOWS, when compiling an ANSI C source file using VC++. The presence of this symbol prevents ssce.h from including windows.h.

The Validate program (included with the SSCE Source SDK only) will now verify the ability to access compressed lexicon files.

A problem where a GPF would occur when importing words into a text lexicon using the Dictionary dialog in the SSCE DLL has been corrected.

A problem where duplicate words would sometimes be added to text lexicons has been corrected.

A problem where a crash would sometimes occur when the "selectedOnly" parameter in SSCE_CheckCtrlDlg was true has been corrected.

A problem where SSCE_GetBlockInfo would report an incorrect cursor position when the first word contained leading puntuation has been corrected.

The 32-bit DlgDemo program (DlgDemo32) will now accept "curly" apostrophes (character code 146) as part of a typed word. Previously, these apostrophes were treated as word separators. The same problem was also corrected in the MFC demo.

A problem where the SSCEVB_GetBlock function in sscevb.bas would always result in an empty string has been corrected.

A problem where actions and other words would not be saved when a text lexicon was created, closed, then re-opened has been corrected.

The lexBfrSz parameter has been removed from SSCEVB_GetLex in sscevb.bas. Note that this does NOT apply to SSCE_GetLex.

Version 5.12

The limit on the number of open sessions, the number of open lexicons per session, and the number of open blocks per session, has been removed. The number of sessions, blocks, and lexicons that can be opened is now limited only by available memory.

A new API, called the "Stateless API," is now available with the SSCE Source SDK. The Stateless API is thread safe without the need for synchronization mechanisms (e.g., semaphores).

The SSCE Source SDK now supports memory-based text and compressed lexicons. Memory-based lexicons are implemented as C data structures which are initialized at compile time and linked directly to SSCE. Memory-based compressed lexicons are fully thread safe, and memory-based text lexicons are thread safe if they are not modified. Memory based lexicons can be used in embedded systems and in highly concurrent applications such as servers. American and British compressed lexicons in 25,000, 50,000, and 100,000 word sizes are included with the Source SDK. A utility program which converts compressed (.clx) and text (.tlx) lexicon files to memory-based lexicons is also included.

The SqLex and WinSqLex programs will now determine an optimal set of suffixes to use from the word list files if no suffix file is specified.

File I/O performance in the Windows DLLs has been improved.

A problem where the "as you type" spelling checker example programs incorrectly truncated contracted words (e.g., "isn't") has been corrected.

A problem where characters typed before a misspelled word were inserted with the wrong text color in the "as you type" example programs has been corrected.

A problem where extra characters were sometimes inserted when a word was auto-corrected in the "as you type" example programs has been fixed.

A problem where a program or system crash would occur when checking RichEdit20A controls containing large amounts of text has been corrected. The problem appears to be a bug in the RichEdit20A control; a temporary work-around has been applied to avoid the bug until the problem is resolved.

The phonetic suggestion algorithm was modified to work better with words which contain several misspellings.

Suggestions for misspelled plural possessives (e.g., girls') are now handled correctly.

Version 5.11

The Options dialog now contains a Main Dictionary Language list. The list contains languages for which dictionaries have been installed in the directory indicated by the current MainLexPath setting. When the user selects a language, the MainLexFiles property is automatically updated. See the "SSCE Properties" section of the "Using the SSCE Windows SDK" chapter of the SSCE Programmer's Guide for more information.

The origin (position) of the Spelling dialog is now saved in the SSCE.INI file or system registry in the DialogOriginX and DialogOriginY properties when the dialog closes. In addition, these properties are read to set the dialog at the specified position when the dialog is displayed if the SetDialogOrigin property has a value of 1. If the SetDialogOrigin property has a value of 0, the dialog will be positioned automatically.

A new option, SSCE_ALLOW_ACCENTED_CAPS_OPT, was added to support checking French Canadian text with Wintertree Software's French dictionary. This option is enabled by default and should be left enabled unless checking French Canadian text. The option is represented as the AllowAccentedCaps property in the SSCE Windows SDK.

The 32-bit SSCE DLL now reads and writes all properties in the HKEY_CURRENT_USER registry tree. If a property is not found in the HKEY_CURRENT_USER tree, it is looked for in HKEY_LOCAL_MACHINE, and if not there, the default is used. This includes the MainLexPath, MainLexFiles, HelpFile, and DebugFile properties. Similarly, the 16-bit SSCE DLL now reads and writes all properties in the [SSCE User] section of SSCE.INI. Properties not found in [SSCE User] are looked for in the [SSCE] section.

Problems with the declarations of the SSCE_InsertBlockText and SSCE_SetAutoCorrect functions in SSCE.BAS have been corrected.

The C and MFC as-you-type demos now correctly recognize accented characters.

The amount of flickering in the Visual Basic RealTime demo has been reduced.

A problem where the Options dialog could be displayed multiple times, or at the same time as other SSCE dialogs, has been corrected.

A problem where capital letters were not being reduced to lower case with SSCE_AUTO_CHANGE_PRESERVE_CASE_ACTION or SSCE_CONDITIONAL_CHANGE_PRESERVE_CASE_ACTION has been corrected.

A problem where attempts to add or remove a word from a text lexicon would fail has been corrected. The problem occurred when the directory pointed to by the TMP environment variable was on a different drive than the directory containing the text lexicon.

SSCE no longer incorrectly reports "Can't change word; probably out of space" when deleting a word at the end of a line in a rich-text control.

The "as you type" demos in C, MFC, Delphi, and Visual Basic now mark words which contain capitalization or other word-form problems in addition to misspelled words.

A problem where the 16-bit DLL did not honor the SSCE_SetDialogOrigin setting has been corrected.

The accuracy of typographical suggestions was improved, particularly for misspellings caused by inserted or deleted letters.

A problem was corrected where the Spelling dialog would add the other word associated with a word marked with a "conditional change" action to the suggestion list, but would not select the list item. This caused the Change button to be disabled, and forced the user to manually select the first list item.

Version 5.10

The SSCE Windows DLL will now look for the MainLexPath, MainLexFiles, and HelpFile settings in the HKEY_CURRENT_USER registry tree, or in the [SSCE User] section of SSCE.INI if they are not found in the HKEY_LOCAL_MACHINE tree or [SSCE] section.

A problem which caused the Undo button to remain enabled in the Spell Check dialog even if no changes were available to undo has been corrected.

A problem which prevented the Visual Basic "real time" demo from checking pasted text has been corrected.

A problem which caused the MFC demo program to crash when characters were typed has been corrected.

A problem which prevented the "C" DlgDemo program from unmarking misspelled words after Ignore All or Add was selected in the context menu has been corrected.

A problem which caused the Visual Basic "real time" demo to go into a loop when the Add item was selected in the context menu has been corrected.

A number of new words was added to the accent.tlx file.

A number of new words was added to the American and British English dictionaries.

Improvements were made to the phonetic suggestion algorithm to improve its accuracy.

A problem which caused misspelled words to be marked incorrectly in the "C" DlgDemo program when multi-line text was inserted has been corrected.

A reference to non-existent include file "riched.h" in the SSCE source code has been removed.

The SSCE DLL now returns SSCE_UNSUPPORTED_ACTION_ERR (-13) if creation of a dialog box fails. This typically happens if the DLL is not built correctly; e.g., the dialog resources are not bound to the DLL at link time.

Version 5.9

A problem which caused the spelling dialog to ignore the origin set via SSCE_SetDialogOrigin was corrected.

SSCE_GetLexId now accepts a NULL in the fileName parameter addition to an empty string.

A problem with text selection in the RichEdit20 control was fixed.

The default value of the IgnoreNonAlphaWords property was changed to TRUE.

A problem in the Visual Basic "as you type" spell checker example was fixed. The problem occurred if the first word was misspelled and a space was inserted before it.

A problem where an assertion failure was reported in the MFC "as you type" spell checker example was fixed. The problem occurred if the first word was misspelled and a space was inserted before it.

A change was made to the Visual Basic and Delphi "as you type" spell checker examples to reduce the amount of flickering.

Problems with selecting text in all "as you type" spell checker examples were fixed.

A problem was fixed where SSCE would loop when a very long misspelled word was checked.

Temporary files created when a user lexicon is updated are now created in the directory indicated by the TMP environment variable.

SSCE_CheckBlockDlg and SSCE_CheckCtrlDlg now correctly return SSCE_CANCEL_ERR if the user clicks the Cancel button.

Version 5.8

This is a maintenance release issued to correct a GPF which occurred when the 16-bit SSCE DLL was used from Visual Basic.

Version 5.7

The names of the SSCE DLLs have changed to SSCE5216.DLL (16 bit) and SSCE5232.DLL (32 bit). The DLL name changes to reflect changes in the SSCE API.

A new option, SSCE_IGNORE_NON_ALPHA_WORD_OPT, was added. This option is enabled by default. When this option is disabled, SSCE can be used to check non-alphabetic strings such as part numbers. The SSCE DLL refers to this option via the IgnoreNonAlphaWord property.

Functions SSCE_GetSelUserLex and SSCE_SetSelUserLex have been added to the Windows API. These functions get and change the name of the default user lexicon, which is the lexicon words are added to when the "Add" button is pressed in the Check-Spelling dialog.

A new option, SSCE_IGNORE_DOMAIN_NAMES_OPT, was added. This option determines whether strings that appear to be domain names (such as are checked or ignored. The SSCE DLL refers to this option via the IgnoreDomainNames property.

Various changes were made to the way suggestions are obtained to improve both speed and accuracy.

The appearance of the Check-Spelling dialog has been updated to resemble spelling dialog used in Office97. The Change To field has been removed.

The Change and Change All buttons now obtain the replacement text from the Problem field if it has been modified, and from the selected item in the Suggestion list otherwise. The Lock Pos checkbox has been removed.

The SSCE_CheckCtrlDlg function now works correctly with RichEdit 2.0 controls. See "Checking third-party controls" in the SSCE Programmer's Guide for information on checking Edit, RichEdit, and RichEdit20A controls.

A number of additional corrections for misspelled words have been added to correct.tlx.

Example programs showing how to check spelling "as you type" have been added. These examples use the standard 32-bit RichEdit control, so they are usable only with 32-bit development environments under Win9x or NT 4.0 or later. The examples are included in the following directories:

Bug fixes:

Version 5.6

Fixed a problem where the SSCE DLL continued to use the old file names after SSCE_SetMainLexFiles was called.

Some problems in autocorrect.tlx were fixed and some words were added to the English lexicons.

The SqLex program no longer accepts words containing TAB characters (characters with decimal value 9). The presence of TAB characters causes problems in compressed lexicons.

Version 5.5

Fixed a problem where suggestions would not appear in possessive form if the misspelled word was in possessive form.

Certain words reported as offensive were removed from the English lexicons.

Version 5.4

A problem where the "fancy" apostrophe (character code 146) was treated as a word separator has been corrected.

A problem where a word's action and other word would be incorrect in a text lexicon if the word was deleted and the lexicon file couldn't be saved was corrected.

The value of SSCE_CONDITIONAL_CHANGE_PRESERVE_CASE_ACTION in ssce.bas and ssce.pas was corrected.

A problem where long lexicon file names appearing in drop-down lists were truncated has been corrected.

A problem with the word count reported by SSCE_GetStatistics has been corrected.

The context display in the spelling checker dialog now scrolls and wraps correctly.

The tab order in the spelling checker and options dialog boxes has been corrected. A problem with conflicting accelerators in the options dialog box has been corrected. Also, various minor cosmetic improvements were made to the dialog boxes.

Some performance improvements were made to reduce the time needed to open a compressed lexicon.

Fixed a problem where words marked with the "exclude" action were sometimes being offered as suggestions.

Version 5.3

Added some additional tests to better detect invalid or corrupt compressed lexicons.

Words containing no alphabetic characters (e.g., strings of digits, numbers containing decimal points, etc.) are now completely ignored and are not checked for spelling errors.

Added some additional words to accent.tlx.

Fixed a problems with the 16-bit version of SSCEVB_GetMainLexPath.

Trailing single quotes are now removed when possessives are removed.

Version 5.2

Fixed a problem where no error would be reported if changes were made to a text lexicon but the lexicon image couldn't be written to disk.

Fixed a problem where file names containing paths relative to UserLexPath or MainLexPath were not resolved correctly.

Fixed a problem where SSCE_Suggest would crash if the size of the scores array was 0.

Fixed a problem where SSCE_SetBlockCursor returned a garbage return value.

Fixed a problem where SSCE_DelBlockWord would return -1 when the first word in a block was deleted.

SSCE_UNCAPPED_WORD_RSLT is now returned for words which are spelled correctly but capitalized incorrectly.

Fixed a problem where a crash would sometimes occur after many changes were made to a text control being checked.

Fixed a problem where no error would be reported if a change would cause the block passed to SSCE_CheckBlockDlg to overflow.

Fixed a problem where "Change All" would make a few replacements then stop working.

Fixed a problem where SSCE_FindLexWord would return SSCE_WORD_NOT_FOUND_ERR if the word was in possessive form.

Fixed a problem where long action descriptions were truncated in the dictiionaries dialog box.

Fixed a problem where the block size limit wasn't honored by SSCE_CheckBlockDlg when the showContext parameter was TRUE.

Version 5.1

Text lexicons now associate an action and an alternate word with each word. This means that one lexicon file can now hold words which should be ignored, words which should automatically or conditionally replaced with other words, and words which should be excluded. It's no longer necessary to ship one text lexicon file for each action.

The automatic and conditional change actions which can be applied to words have variants which preserve the case of the checked word or use the case of the alternate word exactly as listed in the text lexicon. If the case of the checked word is preserved, SSCE will (for example) capitalize the substitution if the checked word was capitalized. If the case of the alterate word is used, SSCE can be used to expand simple abbreviations.

The compressed lexicon file format was changed for cross-platform portability. The SSCE compressed lexicons can now be used on all platforms, regardless of byte ordering.

The SSCE_DelBlockWord function now deletes leading white space rather than trailing punctuation and white space. This works better when the deleted word is at the end of a sentence.

Some new functions have been added to the basic SSCE API to support undoing changes to text blocks.

The spelling-checker dialog now includes an Undo button, which reverses the effect of the last change. Undo can be pressed a number of times to undo successive changes (in reverse order).

The dialogs displayed by the SSCE DLL are now fully "localizable." An application can provide alternate dialog templates for each dialog, and all of the text strings displayed by the dialogs in list boxes, changeable labels, error messages, etc. are obtained from a table in the .INI file or system registry. By supplying alternate dialog templates and an alternate string table, an application can now completely translate the dialogs displayed by the SSCE DLL into a language other than English.

The Spelling-Checker dialog now allows misspelled words to be deleted.

If the change-to field is empty, the Change button changes to Delete.

The Sentry engine can now support Unicode through a build option. Currently, this support is limited to the SSCE Source SDK. As part of this support, SSCE can now process single-byte characters from the Latin 1 (ISO-8859-1) character set or Unicode. Character sets ISO-8859-2 through ISO-8859-10 are no longer supported (use Unicode instead). The lexicon-compression API (SSCE_CompressLex*) creates a Latin 1 or Unicode compressed lexicon depending on how the engine was built. The Unicode engine can read both Unicode and Latin 1 compressed lexicons, but the Latin 1 engine cannot read Unicode compressed lexicons.

Version 4.22

A problem which caused the 32-bit DLL to use the wrong permissions when accessing keys in the system registry has been corrected. The problem would occur when users other than the system administrator would run an application which used the DLL.

HomeSite indexContact usCatalogProductsSupportSearch

Copyright © 2015 Wintertree Software Inc.