Spellex Windows SDK - Technical Support

Revision History (Partial)

Contents:


Version 5.16

All SDKs:

  • New options have been added to treat ampersands (&) and forward slashes (/) as part of the word when they are surrounded by alphanumeric characters. This affects SSCE_CheckString, SSCE_CheckBlock, SSCE_CheckCtlrDlg, and SSCE_CheckBlockDlg.

  • A character set parameter has been added to the SqLex command line.

  • Some minor improvements to suggestions for words containing transposed letters have been made.

  • SqLex now displays descriptive strings rather than error codes when an error occurs during compression.

Windows SDK:

  • Support for interactive and background checking of TX Text Control (version 10 and later) has been added.

  • A C# example and C# class for the Spellex API has been added.

  • Lower-level functions to support background checking (SSCE_CheckCtrlBackgroundMenu, SSCE_CheckCtrlBackgroundNotify, SSCE_CheckCtrlBackgroundRecheckAll) have been added. These functions rely on the calling application to detect events (change and caret change) events related to background checking. The new approach is more reliable and more likely to work reliably with future text controls. Also, SSCE_CheckCtrlBackgroundNotify can be used to detect if a misspelled word was typed in a standard edit control or text box; previously, background checking worked only with rich-edit controls.

  • A function to unmark all words marked as misspelled during background checking (SSCE_CheckCtrlBackgroundClear) has been added.

  • The file name of the Spellex Windows DLL has been changed to ssce5532.dll.

  • The Spellex license key is now provided as a signed, decimal integer. It is no longer necessary (or correct) to treat the key as a hexadecimal number. SSCE_SetKey now expects a signed 32-bit value as a parameter.

  • The Main Dictionary Language list in the Options dialog box now contains separate entries for pre- and post-reform German.

  • The strikethough (also known as strikeout) text effect can now be used to mark misspelled words during background checking.

  • Support for background checking rich-edit controls with class RichEdit50W has been added.

Source SDK:

    None.

Bug fixes, all SDKs:

  • Duplicate suggestions are no longer generated when case sensitivity is disabled.

  • A problem where some suggestions would be incorrectly recognized as duplicate and therefore deleted has been corrected.

  • When SSCE_SPLIT_WORDS_OPT is enabled, the second (and subsequent) words may now be capitalized.

  • A problem that caused entries in text lexicons to be truncated at 79 characters instead of 80 characters has been corrected.

  • A problem where an attempt to auto-correct a word with incorrect case would result in the word being unchanged has been corrected.

  • A problem where an out-of-sequence word in some cases caused an unusable lexicon to be created during lexicon compression has been corrected.

  • A problem with automatic replacement of words containing possessives ('s) has been corrected.

  • A problem where the previous contents of a lexicon were not cleared when SSCE_SyncLex was called has been corrected.

  • A problem where invalid suggestions would be generated when SSCE_SPLIT_WORDS_OPT was enabled has been corrected.

  • When an error is encountered with a word during lexicon compression, the word's line number is now reported correctly.

  • SSCE_MIXED_DIGITS_WORD_RSLT is now returned only if the word contains a mixture of alphabetic and numeric characters. Previously, it was returned for words that consisted entirely of numeric characters.

Bug fixes, Windows SDK:

  • A problem that resulted in garbled text after undoing the deletion of a doubled word when SSCE_CheckCtrlDlg was used with TX Text Control has been corrected.

  • A problem that caused the Spellex Sentry DLL to fail to recognize misspelled words in certain rare cases has been corrected. The same problem may result in incorrect words appearing in the suggestion list when the typographical suggestion algorithm is used.

  • Words marked with SSCE_EXCLUDE_ACTION are now immediately rejected as misspelled. Previously, depending on option settings, various attempts to re-evaluate them may have been made (e.g., to check if the word was a series of concatenated words if SSCE_SPLIT_WORDS_OPT was enabled), which sometimes resulted in excluded words being treated as correct.

  • If a word containing mixed digits (e.g., 2Q2006) is added to a text lexicon with an auto/conditional change action, and SSCE_REPORT_MIXED_DIGITS_WORD_OPT is enabled, the other word associated with the word in the lexicon is now returned via the otherWord parameter, rather than a normalized form of the word containing
    mixed digits.

  • The method used to recognize TX Text Control has been changed to better deal with the frequent changes to that control's window class name. Any window class name of the form TXnn, where nn >= 10, is recognized as belonging to TX Text Control.

  • The Help button in the built-in dialog boxes can now display either traditional WinHelp (.hlp) and HTML Help (.chm) help files. The extension of the file name assigned to the HelpFile property is used to determine the type of help file; the extension must be either .hlp or .chm.

  • SSCE_CheckCtrlBackgroundClear now correctly unmarks misspelled words marked with a red zig-zag underline in TX Text Control.

  • A problem that occurred during background checking where a series of periods in text could not be selected using shift and an arrow key has been corrected.

  • A problem where a spurious underline would appear when a space was inserted in a misspelled word during background checking has been corrected.

  • A crash no longer occurs when multiple lines of text are pasted into a .NET rich-text control during background checking.

  • Various minor problems with background checking have been corrected.

  • Attempting to background-check a rich-edit control with class RichEdit20W no longer causes a crash.

  • A problem where passing a NULL window handle to turn off background checking in SSCE_CheckCtrlBackground would cause a crash or other unexpected behavior has been corrected.

  • A problem where text pasted into a text control immediately after SSCE_CheckCtrlBackground was called was not checked for spelling errors has been corrected.

  • The amount of "flashing" caused by text selection during background checking has been reduced somewhat.

  • If no file name is entered in the New Dictionary dialog box, a dictionary file named ".tlx" is no longer created.

  • A problem where "not found" errors would be incorrectly displayed when the Test button was pressed in the Configuration dialog box in the Spellex MFC Example (Spellex Example Program) has been corrected.

  • A problem with hyphenated words in the "Custom dialog box" demos has been corrected.

  • Declarations for SSCEVB_xxxDlgTmplt functions have been added to sscevb.bas.

  • A problem where class names for TX Text Control classes could not be mapped in the INI file or registry has been corrected.

Bug fixes, Source SDK:

  • WS_WordComparator_Typographical no longer reads beyond the bounds of the word passed to it. This caused no problem in practice, but did cause warnings to appear in instrumentation software.

  • A problem where the Unicode BOM character would appear as part of the first word read in Unicode text-format lexicons has been corrected.

  • A problem where an assertion error would be raised when a compressed lexicon containing no suffixes was read has been corrected.

  • WordComparator_Wildcard and WordComparator_WildcardNC now return correct values.

  • The CHAR_TO_BASE macro now correctly returns the original character if no unaccented equivalent character exists.


 

Version 5.15

All SDKs:

  • The Spellex engine now supports all ISO-8859 character sets. Two new functions, SSCE_GetCharSet and SSCE_SetCharSet have been defined for this purpose. The default character set is ISO-8859-1, which was the only ISO-8859 character set supported previously. The character set is a "global" setting, meaning a change to the character set affects all sessions. A set of language-id constants for each major language covered by ISO-8859 character sets has been defined.

  • A backup copy of updated text lexicons is now made if SSCE_BACKUP_LEX_OPT is enabled. The backup is written to a file of the same name as the lexicon file with a ".bak" extension.

  • Text lexicon files are now updated in place. Previously, the updated lexicon contents were written to a temporary file, which was then renamed or copied to the original file name. Any permissions or other operating-system dependent attributes assigned externally to the lexicon file were therefore lost. The new approach prevents loss of permissions.

  • During lexicon compression, word list files are now sorted automatically by SSCE_CompressLexFile. Previously, it was necessary to sort word list files externally before compressing them. This change affects lexicons compressed using the Spellex API or using SqLex.

  • URLs, e-mail addresses, and numeric IP addresses are now also ignored when SSCE_IGNORE_DOMAIN_NAMES_OPT is enabled.

  • The criteria for determining if a string contains a domain name are now more restrictive.

  • HTML character entities which translate to alphabetic characters (e.g., ø) are now treated as part of the word in which they appear when SSCE_IGNORE_HTML_MARKUPS_OPT is enabled and are translated accordingly.

  • The typographical suggestion algorithm now has better handling for words misspelled by doubling letters or failing to double letters when required.

  • If the memBudget parameter passed to SSCE_OpenLex is negative, the entire lexicon is loaded into memory at the time the lexicon is opened (normally, parts of the lexicon are loaded as needed when spelling is checked and suggestions are obtained). This approach improves spell-checking performance and throughput (at the expense of slightly longer initialization), and may be particularly beneficial when lexicons are accessed across a network.

  • SSCE_AddToLex now returns -13 (SSCE_UNSUPPORTED_ACTION_ERR) if the lexicon is "external" (not created by the Spellex engine) and the action code passed as a parameter is anything other than SSCE_IGNORE_ACTION. Previously, the word would be added and the action and other word would simply be dropped. If the word was added as an auto-correction entry, this could potentially result in a misspelled word being added to the external lexicon (since the auto-correction entry was likely intended to correct a misspelling).

  • SSCE_CloseSession now frees memory used to hold session information when the last session is closed. This prevents spurious memory-leak reports in instrumented software.

  • The SqLex program now includes an option to generate a suffix file which can be used when re-compressing the same or similar word list subsequently.

  • The Spellex programmer's guide is now distributed as a single PDF file to facilitate searching.

  • A new function, SSCE_SyncLex, has been added to the Spellex API. This function re-loads the contents of an open text lexicon if the lexicon's associated disk file was changed since the lexicon was last loaded. This supports updates to shared lexicons made by other applications or users.

  • A new lexicon (tech.tlx) containing technical and Internet-related terms is now included. This lexicon can be open along with other lexicons to skip words such as "firewall" and "spammer."

  • When SSCE_IGNORE_HTML_MARKUPS_OPT is enabled, suggestions and replacement words no longer contain embedded HTML character entities in place of non-ASCII characters. Previously, if a suggested word contained a non-ASCII character (as in døg) a character entity was inserted in its place (as in døg) (but only if SSCE_HTML_MARKUPS_OPT was enabled). Applications which require character entities in place of non-ASCII characters can perform the substitution.

Windows SDK:

  • The text in the context menu which appears when the mouse is right-clicked over a control monitored by SSCE_CheckCtrlBackground is now obtained from the string table so it can be localized.

  • The text effects and text color used by SSCE_CheckCtrlBackground to mark misspelled words can now be specified by the calling application. Misspelled words can be marked by setting any one or more of the following attributes: text color, bold, underline, italics.

  • The SSCE_CheckBackground function will now, under control of the application, optionally not display a context menu when the mouse is right-clicked over the control. This allows the calling application to take responsibility for the contents of the context menu to insert application-specific items.

  • An option can be passed to SSCE_CheckCtrlBackground which causes it to check any existing text in a rich-edit control and mark any misspelled words. This is useful in situations where the control's contents are loaded from an external source, such as a disk file.

  • The MFC example now includes a dictionary configuration page which displays the values of the MainLexFiles, MainLexPath, UserLexFiles, and UserLexPath properties. In addition, the existence of each dictionary file can be tested to help diagnose configuration problems.

  • The "Options" and "Dictionaries" buttons in the built-in spelling dialog box can now be hidden using property settings.

  • The DictionariesButtonVisible, MemBudget, OptionsButtonVisible, and ReportUncappedWord properties were defined.

  • The set of potential languages which may appear in the Main Dictionary Language list in the options dialog box has been expanded to included all major languages covered by the ISO-8859 character sets. Customers who create dictionaries for languages not offered by Spellex can place their dictionaries in the MainLexPath folder so the dictionary's language will appear in the list. Also, the ISO-8859 character set associated with a language is now set when the language is selected.

  • When attempting to determine the type of text control passed to SSCE_CheckCtrlDlg or SSCE_CheckBackground, the Spellex engine will now search for certain sub-strings in the control's window class name. For example, if the window class name contains the sub-string "RichEdit20A", the control is assumed to be based on RichEdit 2.0. If the control type cannot be determined in this fashion, a mapping entry is sought in the system registry or INI file as described in the programmer's guide under "Checking third-party controls."

  • A VB.NET example is now included.

  • The SqLex program is now distributed as a console-mode application to permit word-list files to be specified using wildcard patterns.

  • SSCE_SetIniFile and SSCE_SetRegTreeName now return values indicating if the specified INI file or registry tree exist.

  • Function SSCE_GetIniFile has been added. This function returns the name of the INI file currently being used by the Spellex DLL, or an empty string if the system registry is being used. Also, SSCE_GetRegTreeName now returns an empty string if the Spellex DLL is using an INI file.

Source SDK:

  • The Validate program now checks the definitions of types such as SSCE_U8 and SSCE_S32 for correctness. This immediately highlights certain hard-to-detect build errors.

  • In the Unicode spelling engine, if the first character of a text lexicon contains a Unicode byte-order mark (BOM), the indicated byte ordering is used to read the lexicon and the BOM is skipped. Also, if a text lexicon read by the Unicode spelling engine appears to contain single-byte characters, the characters are converted to Unicode during reading. Text lexicons written by the Unicode spelling engine always contain Unicode characters in big-endian byte order.

  • In the Unicode spelling engine, characters with numeric values less than 0x00ff are now converted to single-byte characters and classified using the ISO-8859-1 character set tables. This dramatically improves performance when working with single-byte lexicons such as ssceam2.clx.

  • Source files for 25000, 50000, and 100000 word Canadian English lexicons are now included (ca25kc.c, ca50kc.c, ca100kc.c, cat.c).

  • When a word ended in a period, and the period was followed by a single quote (e.g., dog.'), the word would be checked with the period intact, resulting in a spurious spelling error. This problem has been corrected.

  • The correct cursor value is now returned by SSCE_DelStringWord.

  • Various problems with case patterns in replacement words have been corrected.

  • A problem where SSCE_GetLex would fail to copy the lexicon contents if the size of the lexicon was greater than 64K has been corrected.

  • A memory leak which occurred when an existing word was added again to a text lexicon has been fixed.

  • Words added to text lexicons are now checked for validity before being added. This prevents problems where strings containing control characters would corrupt a text lexicon.

  • SSCE_SetBlockCursor now allows the cursor to be positioned at the character following the last text character in the block.

  • The time required to load large, sorted text lexicons has been reduced.

  • Checking performance when SSCE_SPLIT_WORDS_OPT is enabled has been improved.

  • The German ß character is now correctly treated as lower-case.

  • Duplicate suggestions no longer appear in the suggestions list returned by SSCE_Suggest.

  • Characters such as "@" and ":" are now treated as word separators when SSCE_IGNORE_DOMAIN_NAMES_OPT is enabled, unless they appear in a string that appears to be a URL or e-mail address. Hyphens and underscores are treated the same way as alphabetic characters in domain names.

  • Ampersands in URLs are no longer treated as HTML character entities when SSCE_IGNORE_HTML_MARKUPS_OPT is enabled. Also, a newline character encountered in an HTML character entity is treated as the end of the character entity.

  • A crash that sometimes resulted when a corrupted compressed lexicon file was opened has been corrected.

  • When a mixed-case word was detected and SSCE_REPORT_MIXED_CASE_WORD_OPT was enabled, the otherWord parameter passed to an SSCE_Check* function is supposed to contain the word in a normalized case form. This was not happening, but the problem has now been corrected. Also, when a word containing mixed digits is detected and SSCE_REPORT_MIXED_DIGITS_WORD_OPT is enabled, the otherWord parameter now contains the checked word with a space inserted between letters and digits.

  • Long words no longer cause looping when SSCE_IGNORE_HTML_MARKUPS_OPT is enabled.

  • A problem with the formatting of the "#LID" header line in text lexicons has been corrected.

Bug fixes, all SDKs:

  • Possessive initialisms (e.g., D.A.'s) are now parsed correctly.

Bug fixes, Windows SDK:

  • A problem where the MFC example program would sometimes crash when the Check Background button was pressed has been corrected.

  • A problem where the "Performance" demo in the MFC example program would not show the full contents of alice.rtf when run under Win2K, XP, or NT has been corrected.

  • The "Add" item in the SSCE_CheckCtrlBackground context menu is no longer displayed if there is no user dictionary to add words to. Also, a problem where the misspelled word would not be added to the user dictionary has been corrected.

  • Problems where SSCE_CheckCtrlBackground would hang or crash when certain text was typed in the monitored control have been corrected.

  • The modification state of a control monitored by SSCE_CheckCtrlBackground is no longer changed simply by moving the cursor in the control.

  • A problem where SSCE_CheckCtrlBackground would not unmark part of a marked word if the word was corrected using the backspace key has been resolved.

  • The SSCE_CheckCtrlBackground function no longer displays a busy cursor when checking spelling. This reduces cursor flickering.

  • The control's parent now receives WM_NOTIFY messages when the control is monitored by SSCE_CheckCtrlBackground. This prevents problems when the monitored control is in a dialog box shared by TreeView controls.

  • Words followed by ellipses (...) are no longer unnecessarily marked misspelled by SSCE_CheckCtrlBackground.

  • A problem where SSCE_SetIniFile would use ssce.ini regardless of the name passed as a parameter, if the file name contained a relative rather than absolute path, has been corrected.

  • The ssce.h file no longer uses the TCHAR data type, which caused problems when the file was included in a Unicode application.

  • The LastSelectedLex property is now set to an empty string if all user dictionaries are removed.

  • The built-in spelling dialog box now does a better job of positioning itself to avoid the text being checked. Also, the dialog is not moved if it already avoids the text.

  • Change All now operates correctly when part of a hyphenated term is reported as misspelled.

  • A problem with the tab order of controls in the built-in spelling dialog box has been corrected.

  • Accents in words imported by the built-in dictionaries dialog box are no longer stripped off.

  • A problem where the custom dialog box in the Delphi example would crash if no misspelled words were found has been corrected.

  • SSCE_CheckCtrlDlg now leaves the control's cursor where it was when the function was called.

  • The Ignore All button in the built-in spelling dialog box is now enabled only if the reported word is misspelled. Previously, it was enabled for all problems except doubled words. If a word was correctly spelled (i.e., was contained in a lexicon) but was reported for containing mixed case or embedded digits, the Ignore All button appeared to be ineffective. The Ignore All button adds the word to a temporary lexicon, which prevents it from being reported as misspelled again, but does not prevent the word from being reported for containing mixed case or embedded digits.

  • A problem where the "N" shortcut key was used twice in the built-in options dialog box has been resolved.

  • The heap is no longer corrupted when all user dictionaries are removed using the built-in dictionaries dialog box.

  • Labels in the built-in dialog boxes are now visible when the system color scheme is set to high-contrast black.

  • The built-in options dialog box now modifies the MainLexFiles property only if the user selects a new main dictionary language. Previously, MainLexFiles was modified whenever the user clicked the OK button.

  • The Main Dictionary Language list in the built-in options dialog box is now sorted. Previously, the list itself was unsorted but entries were added in sorted order. However, the sort order was correct only if the entries were in English. When the language names appearing in list items were localized, the entries were not sorted resulting in user confusion.

  • A problem with the .dsp file for the DlgDemo example has been corrected.

  • The DlgDemo example program now prompts for a license key if necessary.

  • The CheckBlockDlg function in Spellex SentryASC is now implemented.

  • The Spellex SentryASC DLL is now built with "Retained in memory" and "Unattended execution" options.

  • Paths using UNC syntax passed to SSCE_SetIniFile are now treated as absolute paths.

Bug fixes, Source SDK:

  • Compressed lexicons containing suffix tables larger than 64K can now be opened. Large suffix tables are possible when a Unicode lexicon is compressed.

  • SqLex now frees allocated memory before it exits.

  • When lex2c is built with SSCE_UNICODE defined, and is used to convert a text lexicon, the resulting C data structure now contains valid Unicode character data.

  • MCLex lexicons can now be used with Unicode data structures created by lex2c.

  • The Validate program contained some non-ASCII character constants which caused problems with some compilers. The required characters are now generated at run time.

  • The "vector.c" source file has been renamed "wsvector.c", and the VECTOR data type has been renamed to WS_VECTOR, to avoid conflicts with the STL vector class.

  • The end-of-line character sequence is now defined as a constant string, rather than a macro. This makes it easier to define a portable Unicode sequence.

  • The temporary suffix file created by SqLex built to support Unicode now contains Unicode characters, rather than single-byte characters.

Version 5.14

  • The SSCE_IGNORE_HTML_MARKUPS_OPT option was added. This option causes the Spellex engine to skip over text in HTML markups (e.g., <B>). The option is reflected in the Spellex Windows DLL as the IgnoreHTMLMarkups property.

  • The SSCE_CHECK_SINGLE_WORD_OPT option was added. This option is intended to be used in the "stateless" API (available with the Spellex Source SDK only) to cause WS_CheckText to treat the text as a single word, rather than as a series of words.

  • When the SSCE_IGNORE_NON_ALPHA_WORDS_OPT option is set, the same numbers appearing twice in a row will no longer be reported as a doubled word.

  • The SSCE_CheckCtrlBackground function was added to the Spellex Windows API. This function monitors typing made in standard rich-edit controls (CRichEditCtrl, TRichEdit, RichTextBox) for spelling errors, and marks misspelled words by changing their color to red. Example programs that implemented this feature in previous versions have been replaced with examples that use SSCE_CheckCtrlBackground.

  • Several functions that support checking and editing of strings have been added to the Spellex Core API. These functions will eventually replace the block-related functions.

  • A new lexicon type, MFCLex, has been added to the "stateless" API (available with the Spellex Source SDK). MFCLex lexicons are memory-based compressed lexicons that are loaded from clx files when the lexicon is opened. The entire contents of the clx file is loaded into memory, so once opened, MFCLex lexicons can be treated as read-only, meaning they can be safely shared by threads without need for synchronization.

  • New example applications written in C++/MFC, Visual Basic, and Delphi are included with the Spellex Windows SDK. The new examples demonstrate how to use the Spellex engine to perform various common spelling-checker tasks.

  • The Spellex Programmer's Guide has been reformatted as a set of HTML pages. The programmer's guide was reformatted so customers who receive the Spellex SDK electronically can easily print their own documentation.

  • The Active Server Pages example program included with the Spellex Windows SDK has been modified to improve its robustness.

  • The C code generated by the Lex2C utility program (included with the Spellex Source SDK) caused run-time problems on some systems. The code has been corrected.

  • A problem where misspelled sub-words in a compound word would not be reported if the first sub-word was misspelled and ignored has been corrected.

  • A problem where sub-words consisting entirely of digits would not be ignored when the SSCE_IGNORE_NON_ALPHA_WORDS_OPT option was set has been corrected.

  • A problem where the block cursor would be positioned incorrectly by SSCE_DelBlockWord has been corrected.

  • A problem where the "Get" functions in the Spellex Windows API (e.g., SSCE_GetMainLexFiles) would return garbage if they were the first functions called has been corrected.

  • A problem where SSCE_CheckWord would break the text at word separators and check each word individually, rather than checking the text as a single word, has been corrected.

  • A problem where the Spellex engine would take a long time to check text (and may appear to be hung) when the SSCE_ALLOW_ACCENTED_CAPS_OPT option was disabled has been corrected.

  • A problem where SSCE_InsertBlockText and SSCE_ReplaceBlockWord would return large negative numbers when making changes to blocks containing more than 32K of text has been corrected.

  • A problem with the suggestions produced for plural possessives (e.g., girls') has been corrected.

  • A problem with the Spellex DLL where a new language selection that was made through the Options dialog while a spelling check was in progress has been corrected.

  • A problem where the case pattern of the first replacement was different that the case pattern of subsequent replacements in a "change all" operation has been corrected.

  • A problem where the spelling dialog in the Spellex DLL would move after being initially displayed, even after SSCE_SetDialogOrigin had been called, has been corrected.

  • Synchronization problems that occurred when the Spellex DLL was called by many threads simultaneously has been corrected.

  • Various compilation warnings raised when the Spellex source code was compiled with the gcc compiler have been corrected.

  • Functional makefiles are now included with the Spellex Source SDK.

  • A problem where the SSCEVB_GetLex function always returned a lexicon of size 1 has been corrected.


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 "spellex.com."

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 punctuation 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.

Home | Order Now | Products | Upgrades | Free Trial | Partners | About Spellex | Contact Us | Site Map | Privacy Policy

Spellex Corporation © 2008. All rights reserved