12016-04-29 Caolán McNamara <caolanm at LibO>: 2 * deprecate old api and add new one 3 old one remains implemented in terms of new one 4 and will eventually be removed 5 * shrink exposed api down to just hunspell.hxx 6 * next major release is likely to require C++11 7 82016-04-15 Caolán McNamara <caolanm at LibO>: 9 * generally using std::string and std::vector internally 10 112016-04-13 Caolán McNamara <caolanm at LibO>: 12 * gh#371 drop experimental code 13 142015-09-11 Caolán McNamara <caolanm at LibO>: 15 * rhbz#1261421 crash on mashing hangul korean keyboard 16 172014-12-03 Németh László <nemeth at numbertext dot org>: 18 * tools/hunspell.cxx: security fixes of the Hunspell executable 19 - secure file name handling, the problem (checking 20 OpenDocument files with malicious file names) 21 reported by Eric Sesterhenn 22 - using tmpnam() only with system("mkdir tempname && ...") 23 242014-10-17 Caolán McNamara <caolanm at LibO>: 25 * sf#245 Feature from Anish Patil -S mode 26 to show suggestions for completion of 27 correctly spelled words 28 * sf#248 Fix manpage about how to include 29 302014-10-16 Caolán McNamara <caolanm at LibO>: 31 * rhbz#915448, sf#57, sf#185 report character offset 32 and not byte offset in ispell mode 33 * sf#56 segv in experimental mode 34 * sf#228 don't translate init string 35 362014-09-22 Németh László <nemeth at numbertext dot org>: 37 * fix crash in morphological analysis of the Hungarian 38 compound word 'művészegyéniség', reported by Gáspár Sinai 39 402014-08-26 Németh László <nemeth at numbertext dot org>: 41 * unmunch separates flags of prefixes from the word, 42 bug reported by Daniel Naber 43 442014-08-05 Németh László <nemeth at numbertext dot org>: 45 * moz#318040 Mozzilla accepts abbreviations without dots 46 * myfopen(): add _wfullpath to expand relative parts of absolute paths 47 482014-07-16 Caolán McNamara <caolanm at LibO>: 49 * moz#675553 Switch from PRBool to bool 50 * moz#690892 replace PR_TRUE/PR_FALSE with true/false 51 * Silence the warning about empty while body loop in clang 52 * moz#777292 Make nsresult an enum 53 * moz#579517 Use stdint types in gecko 54 * moz#784776 consistently use FLAG_NULL 55 * moz#927728 Convert PRUnichar to char16_t 56 * moz#943268 Remove nsCharsetAlias and nsCharsetConverterManager 57 * Don't include config.h in license.hunspell if MOZILLA_CLIENT is set 58 592014-06-26 Caolán McNamara <caolanm at LibO>: 60 * clang scan-build: Allocator sizeof operand mismatch 61 * clang scan-build: other low hanging warnings 62 * clang scan-build: significant warnings 63 642014-06-02 Németh László <nemeth at numbertext dot org>: 65 * escape spaces in paths of ODF files 66 672014-05-28 Németh László <nemeth at numbertext dot org>: 68 * add long path/Unicode path support in WIN32 environment: 69 - hunspell#233 (reported by mahak gark) and LibreOffice fdo#48017 70 * flat ODF support, eg.: 71 hunspell doc.fodt 72 cat doc.fodt | hunspell -l -O 73 * new options: 74 - -X (XML) input format 75 - -O (ODF or flat ODF) input format 76 - --check-apostrophe: check and force Unicode apostrophe usage 77 (ASCII or Unicode apostrophe has to be in the 78 WORDCHARS section of the affix file) 79 * fix ODF support: 80 - break 1-line XML of ODT documents at </style:style>, too, 81 not only at </text:p> (limiting tokenization problems, when 82 fgets stops within an XML tag) 83 - show ODF file path on the UI instead of the temporary file 84 * fix XML support: 85 - ', ", &, < and > in replacements converted to XML entities 86 - recognize &apos at tokenization, depending from WORDCHARS 87 - ' in tokens converted to ' before spell checking and 88 in the output of the pipe interface 89 * better apostrophe usage: 90 - WORDCHARS only with one of the Unicode or ASCII apostrophe 91 results extended word tokenization: both of them will be part of 92 the words (if they are inside: eg. word's, but not words'). 93 - convert Unicode apostrophes to ASCII ones for 8-bit dictionaries 94 (eg. English dictionaries), or for UTF-8 dictionaries only 95 with ASCII apostrophe supports (eg. French dictionaries). 96 * updated manual: 97 - hunspell.4 renamed to hunspell.5, see 98 hunspell#241 reported by Cristopher Yeleighton 99 - updated translations 100 - note about long/Unicode paths in WIN32 (hunspell.3) 101 1022014-04-25 Németh László <nemeth at numbertext dot org>: 103 * OpenDocument support, eg. 104 hunspell *.odt 105 hunspell -l *.odt 106 * always load default personal dictionary (fix 107 filtering bad words - reduce this word list - using 108 it as a personal dictionary workflow) 109 * fix parsing/URL recognition problem (bad tokens 110 with aposthrophes) 111 1122013-07-25 pchang9@cs.wisc.edu 113 * moz#897255 Wasted work in line_uniq 114 * moz#897780 Wasted work in SuggestMgr::twowords 115 1162013-07-25 Caolán McNamara <caolanm at LibO>: 117 * hunspell#167 layout problems with long lines 118 - based on the original fix by xorho 119 adapted to HEAD 120 * rhbz#925562 upgrade config.guess for aarch64 121 1222013-07-24 pchang9@cs.wisc.edu 123 * moz#896301 Wasted work in SfxEntry::checkword 124 * moz#896844 Wasted work in AffixMgr::defcpd_check 125 1262013-06-13 Konstantin Khlebniko 127 * #49 HashMgr::add_word computes wrong size for struct hentry 128 1292013-06-13 Ville Skyttä 130 * #53 Man page syntax fixes 131 1322013-04-19 John Thomson <john thomson at SIL> 133 * win_api: add remove() of Hunspell API (hun#3606435) 134 1352013-04-19 Rouslan Solomokhin <at sf.net> 136 * fix crash in suggestions for 99-character long words 137 by extending arrays of SuggestMgr::forgotchar_* 138 (hun#3595024, also http://crbug.com/130128), 139 thanks to also Paweł Hajdan to report the patch 140 1412013-04-01 Caolán McNamara <caolanm at LibO>: 142 * hunspell: -Werror=undef 143 1442013-03-13 Caolán McNamara <caolanm at LibO>: 145 * rhbz#918938 crash in interaction with danish thesaurus 146 1472012-09-18 Németh László <nemeth at numbertext dot org>: 148 * src/hunspell/affixmgr.*: - fix morphological analysis of 149 compound words (hun#3544994, reported by Dávid Nemeskey, fdo#55045) 150 1512012-06-29 Caolán McNamara <caolanm at LibO>: 152 * fix various coverity warnings 153 1542012-01-10 Ehsan Akhgari <ehsan at mozilla dot com> 155 * moz#710940 Firefox Crash [@ AffixMgr::parse_file(char const*, char 156 const*) ] 157 1582011-12-16 Jared Wein <jwein at mozilla dot com> 159 * moz#710967 Incorrect argument passed to strncmp in 160 AffixMgr::parse_convtable 161 1622011-12-06 Caolán McNamara <caolanm at LibO>: 163 * rhbz#759647 fixed tempname of hunSPELL.bak collides with other users 164 when multiple edits in one dir 165 1662011-10-13 Caolán McNamara <caolanm at LibO>: 167 * moz#694002 crash in hunspell affixmgr on exit with bad .aff 168 * leak in hunspell affixmgr with bad .aff 169 1702011-09-19 Caolán McNamara <caolanm at LibO>: 171 * make libparsers.a not installed thanks to Tomáš Chvátal 172 1732011-06-23 Caolán McNamara <caolanm at LibO>: 174 * fix some windows compiler warnings 175 1762011-05-24 Németh László <nemeth at numbertext dot org>: 177 * src/hunspell/affixmgr.*: allow twofold suffixes in compounds 178 by extended version of Arno Teigseth's patch, see hun#3288562. 179 - new option for this feature: COMPOUNDMORESUFFIXES 180 1812011-02-16 Németh László <nemeth at numbertext dot org>: 182 * src/*/Makefile.am: fix library versioning, the probem reported by 183 Rene Engerhald and Simon Brouwer. 184 185 * man/hunspell.4: new version based on the revised version of Ruud Baars 186 1872011-02-02 Németh László <nemeth at OOo>: 188 * suggestngr.cxx: fix ngram PHONE suggestion for input words with 189 diacritics using UTF-8 encoded dictionaries (add byte length to the 190 8-bit phonet() argument instead of character length) 191 192 * suggestmgr.cxx: fix missing csconv problem with UTF-8 encoding 193 dictionares, when the input contains non-BMP characters 194 - tests/utf8_nonbmp.sug: test file 195 196 * suggestmgr.cxx: mixed and keyboard based character suggestions 197 don't forbid ngram suggestion search (optimized tests/suggestiontest) 198 199 * affixmgr.cxx: fix hun#2999225: interfering compounding mechanisms, 200 tested on Dutch word list and reported by Ruud Baars 201 202 * affixmgr.cxx: allomorph fix for hun#2970240 (Hungarian 203 compound "vadász+gép" was analyzed as vad+ász+gép, and rejected 204 by the ss->s rep rule (verb "vadássz"), but the analysis 205 didn't continue for the longer word parts (vadász+gép). 206 207 * csutil.cxx: add lang code "az_AZ", "hu_HU", "tr_TR" for back 208 compatibility (fixing Azeri and Turkish casing conversion, also 209 Hungarian compound handling) 210 211 * affixmgr.cxx: fix morphological analysis 212 2132011-01-26 Németh László <nemeth at OOo>: 214 * affixmgr.cxx: fix for moz#626195 (memcheck problem with FULLSTRIP). 215 216 * affixmgr.*, suggestmgr.cxx: FORBIDWARN parameter (see manual) 217 2182011-01-24 Németh László <nemeth at OOo>: 219 * suffixmgr.cxx: fix bad suggestion of forbidden compound words, eg. 220 "termijndoel" with the Dutch dictionary. Reported by Ruud Baars. 221 222 * latexparser.cxx: fix double apostrophe TeX quoation mark tokenization 223 (hun#3119776), reported by Wybodekker at SF.net. 224 225 * tests/suggestiontest/*: multilanguage and single Hunspell version, see README 226 * tests/suggestiontest/prepare2: for make -f Makefile.orig single 227 2282011-01-22 Németh László <nemeth at OOo>: 229 * affixmgr.*, suggestmgr.*: new features 230 ONLYMAXDIFF: remove all bad ngram suggestions (default mode keeps one) 231 NONGRAMSUGGEST: similar to NOSUGGEST, but it forbids to use the word 232 in ngram based (more, than 1-character distance) suggestions. 233 2342011-01-21 Németh László <nemeth at OOo>: 235 * suggestmgr.*: limit wild suggestions (hun#2970237 by Ruud Baars) 236 - limited compound word suggestions 237 - improved and limited ngram based suggestions 238 * tests/*.sug: modified test files 239 - feature MAXCPDSUGS: 240 MAXCPDSUGS 0 : no compound suggestion, suggested by 241 Finn Gruwier Larsen in hunfeat#2836033 242 MAXCPDSUGS n : max. ~n compound suggestions 243 - feature MAXDIFF: differency limit for ngram suggestions: 0-10 244 eg. MAXDIFF 5: normal (default) limit 245 MAXDIFF 0: only one ngram suggestion 246 MAXDIFF 10: ~maxngramsugs ngram suggestions 247 248 * affixmgr.*, hunspell.*: add flag FORCEUCASE (hun#2999228), force 249 capitalization of compound words, see Hunspell 4 manual), 250 suggested by Ruud Baars 251 test/forceucase.*: test files 252 253 * affixmgr.*, hunspell.*: add flag WARN (hun#1808861), optional warning feature 254 for rare words, suggested by Ruud Baars 255 tests/warn: test files 256 * tools/hunspell.cxx: add option -r for optional filtering of rare words 257 258 * affixmgr.cxx: fix hun#3161359 (gcc warnings) reported by Ryan VanderMeulen. 259 2602011-01-17 Németh László <nemeth at OOo>: 261 * suggestmgr.cxx: fix hun#3158994 and hun#3159027 (missing csconv table 262 using awkward 8bit capitalization of UTF-8 encoded dictionary words with PHONE 263 suggestion, reported by benjarobin and dicollecte at SF.net). 264 2652011-01-13 Németh László <nemeth at OOo>: 266 * affixmgr.cxx: ONLYINCOMPOUND fix for hun#2999224 (fogemorphene 267 was allowed in end position of compoundings). Reported by Ruud Baars. 268 * tests/onlyincompound2.*: test files 269 2702011-01-10 Ingo H. de Boer <idb_winshell at SF.net>: 271 * win_api/{hunspell,libhunspell, testparser}.vcproj: updated project 272 files for the library and the executables. Compiling problem 273 also reported by Don Walker. 274 2752011-01-06 Németh László <nemeth at OOo>: 276 * affixmgr.cxx: fix freedesktop#32850 (program halt during Hungarian 277 spell checking of the word "6csillagocska6", reported by András Tímár) 278 279 * tools/hunspell.cxx: add Mac OS X Hunspell dictionary paths, asked by 280 Vidar Gundersen in hunfeat#3142010 281 2822011-01-05 Caolán McNamara <cmc at OOo>: 283 * moz#620626 NS_UNICHARUTIL_CID doesn't support 284 case conversion 285 2862011-01-03 Németh László <nemeth at OOo>: 287 * NEWS and THANKS: update for release 1.2.13 288 2892010-12-20 Németh László <nemeth at OOo>: 290 * affixmgr.cxx: hun#3140784 291 2922010-12-16 Németh László <nemeth at OOo>: 293 * affixmgr.cxx: 294 - improved fix of hun#2970242 (supporting 295 zero affixes, reported by Ruud Baars 296 - tests/opentaal_cpdpat{,2}: test files 297 298 - switching off default BREAK parameters by BREAK 0, 299 reported by Ruud Baars 300 301 - hun#2999225: interfering compounding mechanisms, reported by Ruud Baars 302 3032010-12-11 Németh László <nemeth at OOo>: 304 * affixmgr.cxx: fix hun#2970242 (CHECKCOMPOUNDPATTERN only with flags), 305 the bug reported by Ruud Baars 306 * tests/2970242.*: test files 307 308 * tests/2970240.*: test files for CHECKCOMPOUNDPATTERN fix (check all 309 boundaries in compound words, fixed by the previous CHECKCOMPOUNDREP 310 fix), the bug reported by Ruud Baars 311 312 * win_api/Makefile.cygwin: update 313 3142010-12-09 Caolán McNamara <cmc at OOo>: 315 * moz#617953 fix leak 316 3172010-11-08 Caolán McNamara <cmc at OOo>: 318 * rhbz#650503 crash in arabic dictionary 319 3202010-11-05 Caolán McNamara <cmc at OOo>: 321 * rhbz#648740 don't warn on empty flagvector 322 3232010-11-03 Caolán McNamara <cmc at OOo>: 324 * logically we shouldn't need a csconv table in utf-8 mode 325 3262010-10-27 Németh László <nemeth at OOo>: 327 * hun#3000055 (requested by Ruud Baars) add REP boundary specifiation: 328 REP ^word$ xxxx 329 REP ^wordstarting xxxx 330 REP wordending$ xxxx 331 332 * hun#3008434 (requested by Adrián Chaves Fernández) and 333 hun#3018929 (requested by Ruud Baars): REP with more than 2 words: 334 REP morethantwo more_than_two 335 336 * suggestmgr.cxx: fix incomplete suggestion list for capitalized words, 337 eg. missing Machtstrijd->Machtsstrijd in the Dutch dictionary 338 (reported by Ruud Bars) 339 340 * tests, man: related updates 341 3422010-10-12 Caolán McNamara <cmc at OOo>: 343 * moz#603311 HashMgr::load_tables leaks dict when decode_flags fails 344 * fix mem leak found with new tests 345 * hun#3084340 allow underscores in html entity names 346 3472010-10-07 Németh László <nemeth at OOo>: 348 * affixmgr.cxx: 349 - hun#2970239 fix bad suggestion of forbidden compound words 350 - hun#2999224 fix keepcase feature on compound words (only partial 351 fix for COMPOUNDRULE based compounding) 352 - fix checkcompoundrep feature in compound words (check all boundaries, 353 not only the last one) 354 Problems reported by Ruud Baars. 355 356 * tests/opentaal_forbiddenword[12]*, tests/opentaal_keepcase*: 357 new test files for the previous fixes 358 * tests/checkcompoundrep: extended test file. 359 3602010-09-05 Caolán McNamara <cmc at OOo>: 361 * moz#583582 fix double buffer gcc fortify issue 362 3632010-08-13 Caolán McNamara <cmc at OOo>: 364 * moz#586671 AffixMgr::parse_convtable leaks pattern/pattern2 if it 365 can't create both 366 * moz#586686 tidy up get_xml_list and friends 367 3682010-08-10 Caolán McNamara <cmc at OOo>: 369 * hun#3022860 fix remove duplicate code 370 3712010-07-17 Caolán McNamara <cmc at OOo>: 372 * remove ununsed get_default_enc and avoid potential misrecognition of 373 three letter language ids 374 * normalize encoding names before lookup 375 3762010-07-05 Caolán McNamara <cmc at OOo>: 377 * hun#2286060 add Hangul syllables to unicode tables 378 3792010-06-26 Caolán McNamara <cmc at OOo>: 380 * moz#571728 keep new[]/delete[] wrappers in sync for embedded in moz 381 case 382 3832010-06-13 Caolán McNamara <cmc at OOo>: 384 * moz#571728 keep new[]/delete[] wrappers in sync for embedded in moz 385 case 386 3872010-06-02 Caolán McNamara <cmc at OOo>: 388 * moz#569611 compile cleanly under win64 389 3902010-05-22 Caolán McNamara <cmc at OOo>: 391 * moz#525581 apply mozilla's current preferred get_current_cs impl 392 3932010-05-17 Németh László <nemeth at OOo>: 394 * affixmgr.cxx: fix bad limitation of parenthesized flags at 395 COMPOUNDRULEs. Windows crash reported by Ruud Baars and Simon Brouwer. 396 3972010-05-05 Caolán McNamara <cmc at OOo>: 398 * rhbz#589326 malloc of int that should have been of char** 399 * hun#2997388 fix ironic misspellings 400 4012010-04-28 Caolán McNamara <cmc at OOo>: 402 * moz#550942 get_xml_list doesn't handle failure from get_xml_par 403 4042010-04-27 Caolán McNamara <cmc at OOo>: 405 * moz#465612 mozilla-specific code leaks 406 * moz#430900 phone is dereferenced before oom check 407 * moz#418348 ckey_utf alloc is used unchecked in SuggestMgr::badcharkey_utf 408 * CID#1487 pointer "rl" dereferenced before NULL check 409 * CID#1464 Returned without freeing storage "ptr" 410 * CID#1459 Avoid duplicate strchr 411 * CID#1443 Avoid any chance of dereferencing *slst 412 * CID#1442 Unsafe to have a null morph 413 * CID#1440 Avoid null filenames 414 * CID#1302 Dereferencing NULL value "apostrophe" 415 * CID#1441 Avoid deferencing null ppfx 416 4172010-04-16 Caolán McNamara <cmc at OOo>: 418 * hun#2344123 fix U)ncap in utf-8 locale 419 * fix up hunspell text UI and lines wider than terminal 420 4212010-04-15 Caolán McNamara <cmc at OOo>: 422 * hun#2613701 fix small leak in FileMgr::FileMgr 423 * fix small leak in tools/hunspell 424 * hun#2871300 avoid crash if def and words are NULL 425 * hun#2904479 fix length of hzip file 426 * hun#2986756 mingw build fix 427 * hun#2986756 fix double-free 428 * hun#2059896 fix crash in interactive mode without nls 429 * hun#2917914 add some extra words to the latexparser 430 * make some structs static 431 * C-api has duped symbol names 432 * regenerate gettext/intl with recent version 433 * hun#2796772 build a .dll under MinGW 434 * rhbz#502387 allow cross-compiling for MinGW target 435 * hun#2467643 update .vcproj files to include replist.?xx 436 * unify visiblity/dll_export support across platforms 437 * hun#2831289 sizeof(short) typo 438 * hun#2986756 add -u3 gcc style output 439 4402010-04-14 Caolán McNamara <cmc at OOo>: 441 * hun#2813804 fix segfault on hu_HU stemming 442 4432010-04-13 Caolán McNamara <cmc at OOo>: 444 * hun#2806689 fix ironic misspellings 445 * hun#2836240 add Italian translations 446 4472010-04-09 Caolán McNamara <cmc at OOo>: 448 * fix titchy possible leak in command-line spellchecker 449 4502010-04-07 Caolán McNamara <cmc at OOo>: 451 * hun#2973827 apply win64 patch 452 * hun#2005643 fix broken mystrdup 453 4542010-03-04 Caolán McNamara <cmc at OOo>: 455 * ooo#107768 fix crash in long strings in spellml mode 456 * hun#1999737 add some malloc checks 457 * hun#1999769 drop old buffer on realloc failure 458 * hun#2005643 tidy string functions 459 * hun#2005643 micro-opt 460 * hun#2006077 free strings on failed dict parse 461 * hun#2110783 ispell-alike verbose mode implementation 462 4632010-03-03 Németh László <nemeth at OOo>: 464 * hunspell/(affixmgr, suggestmgr).cxx: add character sequence 465 support for MAP suggestion, using parenthesized character groups 466 in the syntax, eg. MAP ß(ss). 467 * man/hunspell.4, tests/map*: documentation and test files 468 4692010-02-25 Németh László <nemeth at OOo>: 470 * hunspell/hunspell.cxx: add recursion limit for BREAK (fix OOo Issue 106267) 471 472 * hunspell/hunspell.cxx: fix crash in morphological analysis of 473 capitalized words with ending dashes 474 475 * affixmgr.cxx: fix morphological analysis of long numbers combined with dash, 476 eg. 45-00000045 (reported by a@freeblog.hu). 477 4782010-02-23 Caolán McNamara <cmc at OOo>: 479 * hun#2314461 improve ispell-alike mode 480 * hun#2784983 improve default language detection 481 * hun#2812045 fix some compiler warnings 482 * hun#2910695 survive missing HOME dir 483 * hun#2934195 fix suggestmgr crash 484 * hun#2921129 remove unused variables 485 * hun#2826164 make sure make check uses the in-tree libhunspell 486 * bump toolchain to support --disable-rpath 487 * hun#2843984 fix coverity warning 488 * hun#2843986 fix coverity warning 489 * hun#2077630 add iconv lib 490 * make gcc strict-aliasing warning free 491 * make cppcheck warning free 492 4932008-11-01 Németh László <nemeth at OOo>: 494 * replist.*, hunspell.cxx, affixmgr.cxx: new input and output 495 conversion support, see ICONV and OCONV keywords in the Hunspell(4) 496 manual page and the test examples. The input/output conversion 497 problem of syllabic languages reported by Daniel Yacob and 498 Shewangizaw Gulilat. 499 - tests/{iconv,oconv}.*: test examples 500 501 * tools/wordforms: word generation script for dictionary developers 502 (Hunspell version of the unmunch program) 503 504 * hunspell/hunspell.cxx: extended BREAK feature: ^ and $ mean in break 505 patterns the beginning and end of the word. 506 - tests/BREAK.*: modified examples. 507 508 * hunspell/hunspell.cxx: set default break at hyphen characters. 509 The associated problem reported by S Page in Hunspell Bug 2174061. 510 See Mozilla Bug ID 355178 and OOo Issue 64400, too. 511 - tests/breakdefault.*: test data 512 The following definition is equivalent of the default word break: 513 514 BREAK 3 515 BREAK - 516 BREAK ^- 517 BREAK -$ 518 519 * affixmgr.cxx: SIMPLIFIEDTRIPLE is a new affix file keyword to allow 520 simplified forms of the compound words with triple repeating letters. 521 It is useful for Swedish and Norwegian languages. 522 523 * affixmgr.cxx: extend CHECKCOMPOUNDPATTERN to support 524 alternations of compound words for example by sandhi 525 feature of Indian and other languages. The problem reported 526 by Kiran Chittella associated with Telugu writing system 527 (see Telugu example in tests/checkcompoundpattern4.test). 528 The new optional field of CHECKCOMPOUNDPATTERN definition is the 529 replacement of the compound boundary defined by the previous fields: 530 CHECKCOMPOUNDPATTERN ff f ff 531 means ff|f compound boundary has been replaced by "ff", like in 532 the (prereform) German Schiffahrt (Schiff+fahrt). 533 - CHECKCOMPOUNDPATTERN supports also optional flag conditions now: 534 CHECKCOMPOUNDPATTERN ff/A f/B ff 535 means that the first word of the compound needs flag "A" and 536 the second word of the compound needs flag "B" to the operation. 537 538 * tools/hunspell.cxx: add empty lines as separators to the output of 539 the stemming and morphological analysis. 540 541 * affixmgr.cxx: fix condition checking algorithm. Bad suggestion 542 generation reported by Mehmet Akin in SF.net Bug 2124186 with help of 543 Eleonora Goldman. 544 545 * affixmgr,cxx: fix COMPOUNDWORDMAX feature. The problem and its 546 code details reported by Göran Andersson under SF.net Bug ID 2138001. 547 548 * csutil.cxx: fix bad conditional code for Mozilla compilation. 549 Patch by Serge Gautherie. The problem reported by Ryan VanderMeulen. 550 551 * hunspell/hunspell.cxx: add missing ngram suggestion for HUHINITCAP 552 (capitalized mixed case) words. 553 554 * w_char.hxx: use GCC conditions for GCC related code. Patch by 555 Ryan VanderMeulen. 556 557 * affixmgr.cxx: check morphological description in morphgen() 558 (fix potential program fault by incomplete morphological 559 description of affix rules) 560 561 * src/win_api: config.h: switch on warning messages on Windows 562 563 * tools/affixcompress: extended help for -h (use LC_ALL=C sort 564 for input word list) 565 566 * man/hunspell.4: updated manual: 567 - new and modified features (SIMPLIFIEDTRIPLE, ICONV, OCONV, 568 BREAK, CHECKCOMPOUNDPATTERN). 569 - note about costs of zero affixes, suggested by Olivier Ronez. 570 571 * hunspell/hunspell.cxx: remove deprecated word breaking codes. 572 5732008-08-15 Németh László <nemeth at OOo>: 574 * affentry.cxx: add FULLSTRIP option. With FULLSTRIP, affix rules can 575 strip full words, not only one less characters. Suggested by 576 Davide Prina and other developers in OOo Issue 80145. 577 * tests/fullstrip.*: Test data based on Davide Prina's example. 578 * tools/unmunch.cxx: modified for FULLSTRIP. 579 580 * affixmgr.cxx: COMPOUNDRULE now works with long and numerical flag 581 types by parenthesized flags. Syntax: (flag)*, (flag)(flag)?(flag)*. 582 * tests/compoundrule[78].*: tests with parenthesized COMPOUNDRULE 583 definitions. 584 585 * suggestmgr.cxx: modified badchar*(), forgotchar*() and extrachar*() 586 1-character distance suggestion algorithms: search a TRY character 587 in all position instead of all TRY characters in a character position 588 (it can give more readable suggestion order, also better suggestions 589 in the first positions, when TRY characters are sorted by frequency.) 590 For example, suggestions for "moze": 591 ooze, doze, Roze, maze, more etc. (Hunspell 1.2.6), 592 maze, more, mote, ooze, mole etc. (Hunspell 1.2.7). 593 594 * suggestmgr.cxx: extended compound word checking for better COMPOUNDRULE 595 related suggestions, for example English ordinal numbers: 121323th -> 596 121323rd (it needs also a th->rd REP definition). 597 598 * phonet.cxx: cast unsigned char parameter of isdigit() and fix 599 isalpha by myisalpha() (potential problems in Windows environment). 600 Reported by Thomas Lange in OOo Issue 92736. 601 602 * hunspell/csutil.*,hunspell/{affentry,affixmgr,hunspell,suggestmgr}.cxx: 603 fix potential buffer overloading under morphological analysis by the 604 new mystrcat() function. Reported by Molnár Andor (dolhpy at true 605 dot hu) in SF.net Bug 2026203. 606 607 * affixmgr.cxx: add recursion limit to defcpd(). Fix OOo Issue 76067: 608 crash-like deceleration by checking hexadecimal numbers with long FFF 609 sequence (combinatory explosion by the en_US words "f" and "ff"). 610 Missing fix reported by Mathias Bauer. 611 612 * affixmgr.cxx: fix the difference in the Unicode and non-Unicode 613 parts of cpdcase_check(). Bug report by Brett Wilson. 614 615 * filemgr.*, affixmgr.cxx, csutil.*, hashmgr.*: warning messages now 616 contain line numbers (use --with-warnings configure option for 617 warning messages). 618 619 * hunspell.cxx: analyze(): fix case conversion of stemming and 620 morphological analysis of UTF-8 encoded input. Reported by Ferenc Godó. 621 622 * tools/hunspell.cxx: fix LaTeX Unicode support in filter mode. 623 Reported by Jan Seeger in SF.net Bug 2039990. 624 625 * affixmgr.hxx: 0.5 or in 64 bit environment, 1 MB (virtual) memory 626 saving using only the requested size for sFlag and pFlag arrays. 627 Bug report by Brett Wilson. 628 629 * affixmgr.cxx,tools/hunspell.cxx: get_version() returns with full 630 VERSION affix parameter instead of its first word. Fixes for 631 Hunspell's header. Some problems with Hunspell header reported in 632 SF.net Bug 2043080. 633 6342008-07-15 Németh László <nemeth at OOo>: 635 * affentry.cxx: fixes of the affix rule matching algorithm (affected 636 only the sk_SK dictionary from all OpenOffice.org dictionaries): 637 - fix dot pattern + accented letters matching (in non Unicode encoding) 638 - word-length conditions work again 639 * tests/condition.*: extended test for the fix. 640 641 * hashmgr.cxx: load multiword expressions: spaces may be parts 642 of the dictionary words again (but spaces also work as morphological 643 field separators: word word2 -> "word word2", word po:noun -> "word"). 644 * man/hunspell.4: updated manual 645 646 * tools/hunspell.cxx: add iconv character conversion support to 647 stemming and morphological analysis 648 649 * tools/hunspell.cxx: add /usr/share/myspell/dicts search path for 650 Ubuntu support 651 6522008-07-09 Németh László <nemeth at OOo>: 653 * affentry.cxx: fixes of the affix rule matching algorithm: 654 - right ASCII character handling in bracket expression; 655 - fault-tolerant nextchar() for bad rules. 656 Problem with the en_GB dictionary and nextchar() with a detailed 657 code analysis reported by John Winters in SF.net Bug ID 2012753. 658 * tests/condition.*: extended test for the fix. 659 660 * hunspell/hunspell.*, parsers/*, tools/hunspell.cxx: fix compiler 661 warnings (deprecated const-free char consts) 662 663 * win_api/hunspelldll.*: add hunspell_free_list(), the problem 664 reported by Laurier Mercer. 665 6662008-06-30 Török László <torok_laszlo at users dot SF dot net>: 667 * tests/affixmgr.cxx: fix morphological analysis: strcat() on 668 an uninitialized char array in suffix_check_morph(). 669 6702008-06-18 Németh László <nemeth at OOo>: 671 * src/hunspell/affixmgr.cxx: fix GCC compiler warnings 672 (comparisons with string literal results in unspecified behaviour). 673 The problem reported by Ladislav Michnovič. 674 6752008-06-17 Németh László <nemeth at OOo>: 676 * src/hunspell/{hunspell.cxx,hunspell.h}: add free_list() to the C and 677 C++ interface to deallocate suggestion lists. The problem 678 reported by Laurie Mercer and Christophe Paris. 679 * csutil.cxx: fix freelist() to deallocate non-NULL list, when n = 0. 680 * tools/{analyze,example,chmorph,hunspell}.cxx: use free_list(). 681 682 * tools/hunspell.cxx: fix only --with-readline compiling problem. 683 Reported by Volkov Peter in SF.net Bug 1995842. 684 685 * man/hunspell.3,hunspell.hxx: fix analyze and generate examples in 686 the manual and comments (using char*** parameter instead of char**). 687 688 * tools/example.cxx: fix suggestion example. 689 6902008-06-17 Németh László <nemeth at OOo>: 691 * affentry.cxx: fix the new affix rule matching algorithm of 692 Hunspell 1.2. Arabic dictionary problem reported by Khaled Hosny 693 in SF.net Bug ID 1975530. Mohamed Kebdani also sent a 694 prepared test data. 695 * tests/{1975530,condition*}: tests for the fix 696 6972008-06-13 Ingo H. de Boer <idb_winshell at SF.net>: 698 * src/hunspell/{affixmgr.cxx,hunspell.cxx}: add missing type 699 cast to strstr() calls for VC8 compatibility. 700 7012008-06-13 Németh László <nemeth at OOo>: 702 * suggestmgr.cxx: add also part1-part2 suggestion with dash 703 for bad part1part2 word forms, suggested by Ruud Baars. 704 For example, now suggestion of "parttime": "part time" 705 and "part-time". 706 NOTE: this feature will work only when the TRY definition 707 contains "-" or the letter "a". 708 709 * hunspell.cxx: new XML API in spell() and suggest() (see hunspell(3)). 710 711 * src/hunspell/*: fixes for OpenOffice.org build environment. 712 713 * man/{hunspell.3,hzip.1,hunzip.1}: add new manual pages for 714 Hunspell programming API and dictionary compression and 715 encryption utilities. 716 717 * src/hunspell/*: handle failed mystrdup() calls and other potential 718 insufficient memory problems. The problem reported by Elio Voci 719 in OpenOffice.org Issue 90604 and others. 720 721 * src/tools/affixmgr.cxx: restore original behaviour of get_wordchars 722 without conditional code. Problem reported by Ingo H. de Boer 723 in SF.net Bug 1763105. 724 725 * win_api/hunspelldll.h: put_word() renamed to add() in the (old) 726 Windows DLL API bug reported in SF.net Bug 1943236. Also reported 727 by Bartkó Zoltán. 728 729 * tools/hunspell.cxx: fix chench() for environments without 730 native language support (ENABLE_NLS 0 in config.h), 731 PHP system_exec() bug reported by Michel Weimerskirch in 732 SF.net Bug 1951087. 733 734 * hunspell.cxx, affixmgr.cxx: remove "result" from the 735 (result && *result) conditions, when "result" is a static variable. 736 The problem and a possible solution reported by Ladislav Michnovič. 737 738 * affixmgr.cxx: parse_affix(): print line instead of NULL in 739 the warning message, when affix class header is bad. 740 The problem reported by Ladislav Michnovič. 741 7422008-06-01 Christian Lohmaier <cloph at OOo> 743 * configure.ac: patch to fix --with-readline, --with-ui logic. 744 Reported in the SF.net Bug 981395. 745 7462008-05-04: Volkov Peter <volkov_peter at users sourceforge net> 747 * configure.ac: fix LibTool 2.22 incompatibility by removing 748 unused LT_* macros. Report and patch in SF.net Bug 1957383. 749 The problem reported and fixed by Ladislav Michnovič, too. 750 7512008-04-23: Ladislav Michnovič <lmichnovic at suse cz> 752 * hunspell.pc.in: fix wrongly set directories. 753 7542008-04-12 Németh László <nemeth at OOo>: 755 * src/tools/hunspell.cxx: 756 - Multilingual spell checking and special dictionary support with -d. 757 Multilingual spell checking suggested by Khaled Hosny (SF.net 758 Bug 1834280). Example for the new syntax: 759 760 -d en_US,en_geo,en_med,de_DE,de_med 761 762 en_US and de_DE are base dictionaries, and en_geo, en_med, de_med 763 are special dictionaries (dictionaries without affix file). 764 Special dictionaries are optional extension of the base dictionaries. 765 There is no explicit naming convention for special dictionaries, 766 only the ".dic" extension: dictionaries without affix file will 767 be an extension of the preceding base dictionary. First dictionary 768 in -d parameter must have an affix file (it must be a base 769 dictionary). 770 771 - new options for debugging, morphological analysis and stemming: 772 -m: morphological analysis or flag debug mode (without affix 773 rule data it signs the flag of the affix rules) 774 -s: stemming mode 775 -D: show also available dictionaries and search path 776 (suggested by Aaron Digulla in SF.net Bug 1902133) 777 778 - add missing refresh() to print bad words before the slower suggestion 779 search in UI (better user experience) 780 781 - fix tabulator problems (reported by ugli-kid-joe AT sf DOT net) 782 783 - fix different encoding of dic and input, and suggestions 784 785 - add per mille sign to LANG hu_HU section. 786 787 - rewrite program messages. Concatenating multiple printfs for 788 easier translation suggested by András Tímár and Gábor Kelemen. 789 790 * src/hunspell/csutil.cxx: set static encds variable. Patch by 791 Rene Engerhald. SF.net Bug 1896207 and 1939988. 792 793 * src/hunspell/w_char.hxx,csutil.hxx: reorganizing 794 w_char typedef and HENTRY_DATA, HENTRY_FIND consts 795 796 * src/hunspell/hunzip.cxx: fopen(): using rb options instead of r (fix 797 for Windows) 798 799 * src/tools/affixmgr.cxx: restore original behaviour of get_wordchars 800 in an #ifdef WINSHELL section. Problem reported by Ingo H. de Boer 801 in SF.net Bug 1763105. 802 803 * src/tools/chmorph.cxx: remove the experimental modifications 804 805 * src/tools/hzip.c: fopen(): using wb options instead of w (fix 806 for Windows) 807 808 * src/tools/hunzip.cxx: add missing MOZILLA_CLIENT. Reported 809 by Ryan VanderMeulen. 810 811 * man/*, man/hu/*: updated manual 812 813 * man/hunspell.4: fix formatting problem (missing header) 814 815 * tools/makealias: now works with the extra data fields. 816 817 * phonet.cxx: use HASHSIZE const 818 819 * tests/rep.aff: fix REP count 820 821 * src/win_api/Makefile.cygwin, README: native Windows compilation 822 in Cygwin environment without cygwin1.dll dependency (see README 823 for compiling instructions). 824 8252008-04-08 Roland Smith <rsmith AT xs4all DOT nl>: 826 * src/parsers/latexparser.cxx: fix PATTERN_LEN for AMD64 and 827 other platforms with different struct padding (SF.net Bug 1937995). 828 8292008-04-03 Kelemen Gábor <kelemeng AT gnome DOT hu>: 830 * po/POTFILES.in: fix path of the source file 831 832 * po/Makevars: add --from-code=UTF-8 gettext option 833 834 * hunspell.cxx: add comments for shortkey translation 835 8362008-02-04 Flemming Frandsen <flfr AT stibo DOT com> 837 * src/hunspell.h: fix Windows DLL support 838 - this patch also reported by Zoltán Bartkó. 839 8402008-01-30 Mark McClain <marc_mcclain AT users DOT sf DOT net> 841 * src/hunspell.cxx: stem(): fix function call side effect 842 for PPC platform (SF.net Bug 1882105). 843 8442008-01-30 Németh László <nemeth at OOo>: 845 * hunspell.cxx, csutil.cxx, hunspelldll.c: fix 846 SF.et Bug 1851246, patch also by Ingo H. de Boer. 847 848 * hunspell.h: fix SF.net Bug 1856572 (C prototype problem), 849 patch by Mark de Does. 850 851 * hunspell.pc.in: fix SF.net Bug 1857450 wrong prefix, reported 852 by Mark de Does. 853 854 * hunspell.pc.in: reset numbering scheme: libhunspell-1.2. 855 Fix SF.net Bug 1857512 reported by Mark de Does, 856 also by Rene Engelhard. 857 858 * csutil.cxx: patches for ARM platform, signed_chars.dpatch 859 by Rene Engelhard and arm_structure_alignment.dpatch by 860 Steinar H. Gunderson <sesse@debian.org> 861 862 * hunzip.*, hzip.c: new hzip compression format 863 864 * tools/affixcompressor: affix compressor utility (similar to 865 munch, but it generates affix table automatically), works 866 with million-words dictionaries of agglutinative languages. 867 868 * README: fix problems reported by Pham Ngoc Khanh. 869 870 * csutil.cxx, suggestmgr: Warning-free in OOo builds. 871 872 * hashmgr.*, csutil.*: fix protected memory problems with 873 stored pointers on several not x86 platforms by 874 store_pointer(), get_stored_pointer(). 875 876 * src/tools/hunspell.cxx: fix iconv support on Solaris platform. 877 878 * tests/IJ.good: add missing test file 879 880 * csutil.cxx: fix const char* related errors. Compiling bug 881 with Visual C++ reported by Ryan VanderMeulen and Ingo H. de Boer. 882 8832008-01-03 Caolan McNamara <cmc at OO.o>: 884 * csutil.cxx: SF.net Bug 1863239, notrailingcomma patch and 885 optimization of get_currect_cs(). 886 8872007-11-01 Németh László <nemeth at OOo>: 888 * hunspell/*: new feature: morphological generation, 889 also fix experimental morphological analysis and stemming. 890 - new API functions and improved API: 891 - analyze(word): (instead of morph()) morphological analysis 892 - stem(word): stemming 893 - stem(list): stemming based on the result of an analysis 894 - generate(word, word2): morphological generation 895 - generate(word, list): morphological generation 896 - add(word): add word to the run-time dictionary (renamed put_word()) 897 - add_with_affix(word, word2): (renamed put_word_pattern()): 898 add word to the run-time dictionary with affix flags of the 899 second parameter: all affixed forms of the user words will be 900 recognised by the spell checker. Especially useful for 901 agglutinative languages. 902 - remove(word): remove word from the run-time dictionary (not 903 implemented) 904 - see manual and hunspell/hunspell.hxx header and tests/morph.* 905 * tests/morph.*: test data, example for morphological analysis, 906 stemming and generation 907 908 * tools/analyze, tools/chmorph: extended and new demo applications: 909 - analyze (originally hunmorph): analyses and stems input words, 910 generates word forms from input word pairs. 911 - chmorph: morphological transformation filter 912 913 * configure.ac, hunspell/makefile.am: set library version number. 914 Bug reported by Rene Engelhard. 915 916 * affentry.cxx, affixmgr.cxx: new pattern matching algorithm in 917 condition checking of affix rules instead of the Dömölki-algorithm: 918 - Unlimited condition length (instead of max. 8 characters). 919 - Less memory consumption, especially useful for affix rich languages: 920 5,4 MB memory savings with hu_HU dictionary. 921 - Speed change depends from dictionaries and CPU caches: English spell 922 checking is 4% faster on Linux words with en_US dictionary, Hungarian 923 spell checking is 25% slower on most frequent words of Hungarian 924 Webcorpus. 925 926 * tests/sug.*, sugutf.*: updated test data (use "a" and "lot" 927 dictionary items instead of "a lot".) 928 929 * src/hunspell/hunspell.cxx: free(csconv) instead of delete csconv. 930 Report and patch by Sylvain Paschein in Mozilla Issue 398268. 931 932 * suggestmgr.cxx, tools/hunspell.cxx: bad spelling of "misspelled". 933 Ubuntu Bug #134792, patch by Malcolm Parsons. 934 935 * tests/base_utf.*: use Unicode apostrophe instead of 8-bit one. 936 937 * hunspell.cxx, hashmgr.cxx: add(): use HashMgr::add() 938 9392007-10-25 Pavel Janík <pjanik at OOo>: 940 * hunspell/csutil.cxx: Fix type cast warnings on 64bit Linux in 941 printing of character positions in u8_u16(). OOo issue 82984. 942 9432007-09-05 Németh László <nemeth at OOo>: 944 * win_api/Hunspell.vproj, parsers/testparser.cxx,textparser.hxx: 945 warning fixes and removing unnecessary Windows project file. 946 Reported by Ingo H. de Boer. 947 948 * hashmgr.*, {affixmgr,suggestmgr}.cxx: optimized data structure 949 for variable-count fields (only "ph" transliteration field in 950 this version, see next item). Also less memory consumption: 951 -13% (0.75 MB) with en_US dictionary, -6% (1 MB) with hu_HU. 952 953 * suggestmgr.cxx: dictionary based phonetic suggestion for special 954 or foreign pronounciation (see also rule-based PHONE in manual). 955 Usage: tab separated field in dictionary lines, started with "ph:". 956 The field contains a phonetic transliteration of the word: 957 958Marseille ph:maarsayl 959 * tests/phone.*: test data for dictionary and rule based phonetic 960 suggestion. 961 962 * hunspell.cxx: fix potential bad memory access in allcap word 963 capitalization in suggest() (bug of previous version). 964 965 * hunspell.cxx, atypes.hxx: set correct limit for UTF-8 encoded 966 input words (256 byte). 967 968 * suggestmgr.cxx: improved REP suggestions with spaces: it works 969 without dictionary modification. 970 OOo issue 80147, reported by Davide Prina. 971 * tests/rep.*: new test data: higher priority for "alot" -> "a lot", 972 and Italian suggestion "un'alunno" -> "un alunno". 973 974 * affixmgr.cxx: fix Unicode ngram suggestions in expand_rootword(). 975 (Suggestions with bad affixes.) 976 Bug reported by Vitaly Piryatinksy <piv dot v dot vitaly at gmail>. 977 * tests/ngram_utf_fix.*: test based on Vitaly Piryatinksy's data. 978 979 * suggestmgr.cxx: fix twowords() for last UTF-8 multibyte character. 980 (conditional jump or move depended on uninitialised value). 981 9822007-08-29 Ingo H. de Boer <idb_winshell at SF.net>: 983 * win_api/{hunspell,libhunspell, testparser}.vcproj: new project 984 files for the library and the executables. 985 986 * Hunspell.rc, Hunspell.sln, config.h: updated versions. 987 Version number problem also reported by András Tímár. 988 9892007-08-27 Németh László <nemeth at OOo>: 990 * suggestmgr.hxx: put fixed version. Bug report by Ingo H. de Boer. 991 992 * suggestmgr.cxx: remove variable-length local character array 993 reported by Ingo H. de Boer. 994 9952007-08-27 Németh László <nemeth at OOo>: 996 * suggestmgr.hxx: change bad time_t to clock_t in header, too. 997 Bug reports or patches by Ingo H. de Boer under SF.net 998 Bug ID 1781951, János Mohácsi and Gábor Zahemszky, András Tímár, 999 OMax3 at SF.net under SF.net Bug ID 1781592. 1000 1001 * phonet.*: change variable-length local character array to 1002 portable fixed size character array. Problem reported by 1003 Ingo H. de Boer under SF.net Bug ID 1781951 and 1004 Ryan VanderMeulen. 1005 1006 * suggestmgr.cxx: remove debug message (also by 1007 Ingo H. de Boer). 1008 10092007-08-26 Ingo H. de Boer <idb_winshell at SF.net>: 1010 * win_api/Hunspell.vcproj: updated version (with phonet.*) 1011 10122007-08-23 Németh László <nemeth at OOo>: 1013 * phonet.{c,h}xx, suggestmgr.cxx: PHONE parameter: 1014 pronounciation based suggestion using Björn Jacke's original Aspell 1015 phonetic transcription algorithm (http://aspell.net), relicensed 1016 under GPL/LGPL/MPL tri-license with the permission of the author. 1017 Usage: see manual. 1018 1019 * affixmgr,suggestmgr.cxx: add KEY parameter for keyboard and 1020 input method error related suggestions. 1021 Example: KEY qwertyuiop|asdfghjkl|zxcvbnm 1022 1023 * man/hunspell.4: description about PHONE and KEY suggestion parameters. 1024 1025 * suggestmgr.cxx: enhancements for better suggestions: 1026 - Set ngram suggestions for badchar-type errors 1027 and only two word and compound word suggestions, too. 1028 - Separate not compound and compound word 1029 suggestions for MAP suggestion, too. 1030 - Double swap suggestions for short words. 1031 For example: ahev -> have, hwihc -> which. 1032 - Better time limits using clock() instead of time() 1033 (tenths of a second resolution instead of second ones). 1034 - leftcommonsubstring() weigth function. 1035 1036 * htype.hxx, hashmgr.cxx: blen (byte length) and clen (character 1037 length) fields instead of wlen 1038 1039 * affixmgr.cxx: fix get_syllable() for bad Unicode inputs. 1040 1041 * tests/suggestiontest/*: test environment for suggestions 1042 10432007-08-07 Martijn Wargers: 1044 * csutil.cxx: fix Mingw build error associated with ToUpper() call. 1045 Report and patch in Mozilla Issue 391447. 1046 10472007-08-07 Robert Longson: 1048 * atypes.cxx: use empty inline function HUNSPELL_WARNING instead of 1049 variadic macros to switch of Hunspell warnings. 1050 Reported by Gavin Sharp in Mozilla Issue 391147. 1051 10522007-08-05 Ginn Chen: 1053 * hashmgr.cxx: Hunspell failed to compile on OpenSolaris (use stdio 1054 instead of csdio). Report and patch in Mozilla Issue 391040. 1055 10562007-07-25 Németh László <nemeth at OOo>: 1057 * parsers/*.cxx: Hunspell executable recognises and accepts URLs, 1058 e-mail addresses, directory paths, reported by Jeppe Bundsgaard. 1059 * src/tools/hunspell.cxx: --check-url: new option of Hunspell program. 1060 Use --check-url, if you want check URLs, e-mail addresses and paths. 1061 1062 * parsers/textparser.cxx: strip colon at end of words for Finnish 1063 and Swedish (colon may be in words in Finnish and Swedish). 1064 Problem reported by Lars Aronsson. 1065 * tests/colons_in_words.*: test data 1066 1067 * tests/digits_in_words.*: example for using digits in words 1068 (eg. 1-jährig, 112-jährig etc. in German), reported by Lars Aronsson. 1069 1070 * hashmgr.cxx: Hunspell accepts allcaps forms of mixed case 1071 words of personal dictionaries (+allcaps custom dictionary words with 1072 allcaps affixes). 1073 Sf.net Bug ID 1755272, reported by Ellis Miller. 1074 1075 * hashmgr.cxx: fix small memory leaks with alias compressed 1076 dictionaries (free flag vectors of affixed personal dictionary words 1077 and flag vectors of hidden capitalized forms of mixed case and 1078 allcaps words). 1079 1080 * affixmgr.cxx: fix COMPOUNDRULE checking with affixed compounds. 1081 Sf.net Bug ID 1706659, reported by Björn Jacke. Also fixing for 1082 OOo Issue 76067 (crash-like deceleration for hexadecimal numbers 1083 with long FFFFFF sequence using en_US dictionary). 1084 1085 * tools/hunspell.cxx: add missing return to save_privdic(). 1086 1087 * man/hunspell.4: add information about affixation of personal words: 1088 "Personal dictionaries are simple word lists, but with optional 1089 word patterns for affixation, separated by a slash: 1090 1091 foo 1092 Foo/Simpson 1093 1094 In this example, "foo" and "Foo" are personal words, plus Foo 1095 will be recognised with affixes of Simpson (Foo's etc.)." 1096 10972007-07-18 Németh László <nemeth at OOo>: 1098 * src/win_api/: add missing resource files, reported by Ingo H. de Boer. 1099 11002007-07-16 Németh László <nemeth at OOo>: 1101 * hunspell.cxx: fix dot removing from UTF-8 encoded words in cleanword2() 1102 (Capitalised words with dots, as "Something." were not recognised 1103 using Unicode encoded dictionaries.) 1104 * tests/{base.*,base_utf.*}: extended and new test files for 1105 dot removing and Unicode support. 1106 1107 * tools/hunspell.cxx: fix Cygwin, OS X compatibility using platform 1108 specifics iconv() header by ICONV_CONST macro of Autoconf. 1109 Sf.net Bug ID 1746030, reported by Mike Tian-Jian Jiang. 1110 Sf.net Bug ID 1753939, reported by Jean-Christophe Helary. 1111 1112 * tools/hunspell.cxx: fix missing global path setting with -d option. 1113 1114 * tests/test.sh: fix broken Valgrind checking (missing warnings 1115 with VALGRIND=memcheck make check). 1116 1117 * csutil.cxx: fix condition in u8_u16() to avoid invalid read 1118 of not null-terminated character arrays (detected by Valgrind 1119 in Hunspell executable: associated with 8-bit character table 1120 conversion in tools/hunspell.cxx). 1121 1122 * csutil.cxx: free_utf_tbl(): use utf_tbl_count-- instead of utf_tbl--. 1123 Memory leak in Hunspell executable detected by Valgrind. 1124 1125 * hashmgr.cxx: add missing free_utf_tbl(), memory leak in Hunspell 1126 executable detected by Valgrind. 1127 1128 * hashmgr.cxx: load_tables(): fix memory error in spec. capitalization. 1129 Use sizeof(unsigned short) instead of bad sizeof(unsigned short*). 1130 Invalid memory read detected by Valgrind. 1131 1132 * hashmgr.cxx: add_word(): fix memory error in spec. capitalization. 1133 Update also affix array length of capitalized homonyms. Invalid 1134 memory read detected by Valgrind. 1135 1136 * hunspell.cxx: suggest(): fix invalid memory write and leak. 1137 Bad realloc() and missing free() detected by Valgrind associated 1138 with suggestions for "something.The" type spelling errors. 1139 1140 * {dictmgr,csutil,hashmgr,suggestmgr}.cxx: check memory allocation. 1141 Sf.net Bug ID 1747507, based on the patch by Jose da Silva. 1142 11432007-07-13 Ingo H. de Boer <idb_winshell at SF.net>: 1144 * atypes.cxx: fix Visual C compatibility: Using 1145 "HUNSPELL_WARNING(a,b,...} {}" macro instead of empty "X(a,b...)". 1146 1147 * hunspell.cxx: changes for Windows API. 1148 * win_api/Hunspell.*: new resource files 1149 * win_api/hunspelldll.*: set optional Hunspell and Borland spec. codes 1150 Sf.net Bug ID 1753802, patch by Ingo H. de Boer. 1151 See also Sf.net Bug ID 1751406, patch by Mike Tian-Jian Jiang. 1152 11532007-07-09 Caolan McNamara <cmc at OO.o>: 1154 * {hunspell,hashmgr,affentry}.cxx: fix warnings of Coverity program 1155 analyzer. Sf.net Bug ID, 1750219. 1156 11572007-07-06 Németh László <nemeth at OOo>: 1158 * atypes.cxx: warning-free swallowing of conditional warning messages 1159 and their parameters using empty HUNSPELL_WARNING(a,b...) macro. 1160 * {affixmgr,atypes,csutil}.cxx: fix unused variable warnings 1161 using WARNVAR macro for conditionally named variables. 1162 * hashmgr.cxx: fix unused variable warning in add_word() by cond. name 1163 * hunspell.cxx: fix shadowed declaration of captype var. in suggest() 1164 11652006-06-29 Caolan McNamara <cmc at OO.o>: 1166 * hunspell.cxx: patch to fix possible memory leak in analyze() of 1167 experimental morphological analyzer code. Sf.net Bug ID 1745263. 1168 11692007-06-29 Németh László <nemeth at OOo>: 1170improvements: 1171 * src/hunspell/hunspell.cxx: check bad capitalisation of Dutch letter IJ. 1172 - Sf.net Feature Request ID 1640985, reported by Frank Fesevur. 1173 - Solution: FORBIDDENWORD for capitalised word forms (need 1174 an improved Dutch dictionary with forbidden words: Ijs/*, etc.). 1175 * tests/IJ.*: test data and example. 1176 1177 * hashmgr.cxx, hunspell.cxx: check capitalization of special word forms 1178 - words with mixed capitalisation: OpenOffice.org - OPENOFFICE.ORG 1179 Sf.net Bug ID 1398550, reported by Dmitri Gabinski. 1180 - allcap words and suffixes: UNICEF's - UNICEF'S 1181 - prefixes with apostrophe and proper names: Sant'Elia - SANT'ELIA 1182 For Catalan, French and Italian languages. 1183 Reported by Davide Prina in OOo Issue 68568. 1184 * tests/allcaps*: tests for OPENOFFICE.ORG, UNICEF'S capitalization. 1185 * tests/i68568*: tests for SANT'ELIA capitalization. 1186 1187 * hunspell/hunspell.cxx: suggestion for missing sentence spacing: 1188 something.The -> something. The 1189 1190 * tools/hunspell.cxx: multiple character encoding support 1191 - -i option: custom input encoding 1192 Sf.net Bug ID 1610866, reported by Thobias Schlemmer. 1193 Sf.net Bug ID 1633413, reported by Dan Kenigsberg. 1194 See also hunspell-1.1.5-encoding.patch of Fedora from Caolan Mc'Namara. 1195 * tests/*.test: add input encodings 1196 1197 * tools/hunspell.cxx: use locale data for default dictionary names. 1198 Sf.net Bug ID 1731630, report and patch from Bernhard Rosenkraenzer, 1199 See also hunspell-1.1.4-defaultdictfromlang.patch of Fedora Linux 1200 from Caolan McNamara. 1201 1202 * tools/hunspell.cxx: fix 8-bit tokenization (letters without 1203 casing, like ß or Hebrew characters now are handled well) 1204 1205 * tools/hunspell.cxx: dictionary search path 1206 - DICPATH environmental variable 1207 - -D option: show directory path of loaded dictionary 1208 - automatic detection of OpenOffice.org directories 1209 1210fixes: 1211 * affixmgr.cxx: fault-tolerant patch for REP and other affix 1212 table data problems. Problem with Hunspell and en_GB dictionary 1213 reported by Thomas Lange in OOo Issue 76098 and 1214 Stephan Bergmann in OOo Issue 76100. 1215 Sf.net Bug ID 1698240, reported by Ingo H. de Boer. 1216 1217 * csutil.cxx: fix mkallcap_utf() for allcaps suggestion in UTF-8. 1218 1219 * suggestmgr.cxx: fix bad movechar_utf() (missing strlen()). 1220 1221 * hunspell.cxx: fix bad degree sign detection in Unicode 1222 hu_HU environment. 1223 1224 * hunspell/hunspell.cxx: free allocated memory of csconv in 1225 ported Mozilla code. 1226 - Mozilla Bugzilla Bug 383564, report and Mozilla MySpell patch 1227 by Andrew Geul. Reported by Ryan VanderMeulen for Hunspell. 1228 1229 * suggestmgr.cxx: fix minor difference in Unicode suggestion 1230 (ngram suggestion of allcaps words in Unicode). 1231 1232 * hashmgr.cxx: close file handle after errors. 1233 Sf.net Bug ID 1736286, reported by John Nisly. 1234 1235 * configure.ac: syntax error (shell variable with spaces). 1236 Sf.net Bug ID 1731625, reported by Bernhard Rosenkraenzer. 1237 1238 * hunspell.cxx: check_word(): fix bad usage of info pointer. 1239 1240 * hashmgr.cxx: fix de_DE related bug (accept words with leading dash). 1241 Sf.net Bug ID 1696134, reported by Björn Jacke. 1242 1243 * suggestmgr.cxx, tests/1695964.*: fix NEEDAFFIX homonym suggestion. 1244 Sf.net Bug ID 1695964, reported by Björn Jacke. 1245 1246 * tests/1463589*: capitalized ngram suggestion test data for 1247 Sf.net Bug ID 1463589, reported by Frederik Fouvry. 1248 1249 * csutil.cxx, affixmgr.cxx: fix possible heap error with 1250 multiple instances of utf_tbl. 1251 Sf.net Bug ID 1693875, reported by Ingo H. de Boer. 1252 1253 * affixmgr.cxx, suggestmgr.cxx, license.hunspell: convert to ASCII. 1254 Locale dependent compiling problems. Sf.net Bug ID 1694379, reported 1255 by Mike Tian-Jian Jiang. OOo Issue 78018 reported by Thomas Lange. 1256 1257 * tests/test.sh: compatibility issues 1258 - fix Valgrind support (check shared library instead of shell wrapper) 1259 - remove deprecated "tail +2" syntax 1260 - set 8-bit locale for testing (LC_ALL=C) 1261 1262 * hunspell.hxx: remove license.* and config.h dependencies. 1263 - hunspell-1.1.5-badheader.patch from Caolan McNamara <cmc at OO.o> 1264 12652007-03-21 Németh László <nemeth at OOo>: 1266 * tools/Makefile.am, munch.h, unmunch.h: add missing munch.h and unmunch.h 1267 Reported by Björn Jacke and Khaled Hosny (sf.net Bug ID 1684144) 1268 * hunspell/hunspell.cxx, hunspell.hxx: fix --with-ui compliling error (add get_csconv()) 1269 Reported by Khaled Hosny (sf.net Bug ID 1685010) 1270 12712007-03-19 Németh László <nemeth at OOo>: 1272 * csutil.cxx, hunspell/hunspell.cxx: Unicode non BMP area (>65K character range) support 1273 (except conditional patterns and strip characters of affix rules) 1274 * tests/utf8_nonbmp*: test data 1275 1276 * src/hunspell/*: add Mozilla patches from David Einstein 1277 - run-time generated 8-bit character tables 1278 - other Mozilla related changes (see Mozilla Bugzilla Bug 319778) 1279 1280 * csutil.cxx, affixmgr.cxx, hashmgr.cxx: optimized version of IGNORE feature 1281 - IGNORE works with affixes (except strip characters and affix conditions) 1282 * tests/ignore*: test data with latin characters 1283 * tests/ignoreutf*: Unicode test data with Arabic diacritics (Harakat) 1284 1285 * src/hunspell/suggestmgr.cxx: new edit distance suggestion methods 1286 - capitalization: nasa -> NASA 1287 - long swap: permenant -> permanent 1288 - long mov.: Ghandi -> Gandhi 1289 - double two characters: vacacation -> vacation 1290 * tests/sug.*: test data 1291 1292 * src/hunspell/affixmgr.cxx: space in REP strings (alot -> a lot) 1293 Note: Underline character signs the space in REP strings: REP alot a_lot, and 1294 put the expression with space ("a lot") into the dic file (see tests/sug). 1295 1296 * hashmgr.cxx, affixmgr.cxx: ignore Unicode byte order mark (BOM sequence) 1297 * tests/utf8_bom*: test data 1298 1299 * hunspell/*.cxx: OOo Issue 68903 - Make lingucomponent warning-free on wntmsci10 1300 - fix Hunspell related warning messages on Windows platform (except some assignment 1301 within conditional expressions). Reported and started by Stephan Bergmann. 1302 1303 * hunspell/affixmgr.cxx: fix OOo Issue 66683 - hunspell dmake debug=x fails 1304 - Reported by Stephan Bergmann. 1305 1306 * src/hunspell/hunspell.[ch]xx: thread safe API for Hunspell executable 1307 (removing prev*() functions, new spell(word, info, root) function) 1308 1309 * configure.ac, src/hunspell/*: HUNSPELL_EXPERIMENTAL code 1310 --with-experimental configure option (conditional compiling of morphological analyser 1311 and stemmer tools) 1312 1313 * configure.ac, src/hunspell/*: conditional Hunspell warning messages 1314 --with-warnings configure option 1315 1316 * affixmgr.cxx: new, optimized parsing functions 1317 1318 * affixmgr.cxx: fix homonym handling for German dictionary project, 1319 reported by Björn Jacke (sf.net Bug ID 1592880). 1320 * tests/1592880.*: test data by Björn Jacke 1321 1322 * src/hunspell/affixmgr.cxx: fix CIRCUMFIX suggestion 1323 Bug reported by Erdal Ronahi. 1324 1325 * hunspell.cxx: reverse root word output (complex prefixes) 1326 Bug reported by Munzir Taha. 1327 1328 * tools/hunspell.cxx: fix Emacs compatibility, patch by marot at sf.net 1329 - no % command in PIPE mode (SourceForge BugTracker 1595607) 1330 - fix HUNSPELL_VERSION string 1331 1332 * suggestmgr.[hc]xx: rename check() functions to checkword() (OOo Issue 68296) 1333 adopt MySpell patch by Bryan Petty (tierra at ooo) for Hunspell source 1334 1335 * csutil.cxx, munch.c, unmunch.c: adopt relevant parts of the MinGW patch 1336 (OOo Issue 42504) by tonal at ooo 1337 1338 * affigmgr.cxx: remove double candidate_check() call, reported by Bram Moolenaar 1339 1340 * tests/test.sh: add LC_ALL="C" environment. Locale dependency of make check 1341 reported by Gentoo project. 1342 1343 * src/tools/hunspell.cxx: UTF-8 highlighting fix for console UI 1344 (not solved: breaking long UTF-8 lines) 1345 1346 * src/tools/unmunch.c: fix bad generation if strip is shorter than condition, 1347 reported by Davide Prina 1348 * src/tools/unmunch.h: increase 5000 -> 500000 1349 1350 * src/tools/hunspell.cxx: fix memory error in suggestion (uninitialized parameter), 1351 Bug also reported by Björn Jacke in SourceForge Bug 1469957 1352 1353 * csutil.cxx, affixmgr.cxx: fix Caolan McNamara's patch for non OOo environment 1354 13552006-11-11 Caolan McNamara <cmc at OO.o>: 1356 * csutil.cxx, affixmgr.cxx: UTF-8 table patch (OOo Issue 71449) 1357 Description: memory optimization (OOo doesn't use the large UTF-8 table). 1358 1359 * Makefile.am: shared library patch (Sourceforge ID 1610756) 1360 1361 * hunspell.h, hunspell.cxx: C API patch (Sourceforge ID 1616353) 1362 1363 * hunspell.pc: pkgconfig patch (Sourceforge ID 1639128) 1364 13652006-10-17 Ryan Jones <at Mozilla Bugzilla>: 1366 * affixmgr.cxx: missing fclose(affixlst) calls 1367 Reported by <gavins at ooo> in OOo Issue 70408 1368 13692007-07-11 Taha Zerrouki <taha at gawab>: 1370 * affixmgr.cxx, hunspell.cxx, hashmgr.cxx, csutil.cxx: IGNORE feature to remove 1371 optional Arabic and other characters from input and dictionary words. 1372 * src/hunspell/langnum.hxx: add Arabic language number, lang_ar=96 1373 * tests/ignore.*: test data 1374 13752006-05-28 Miha Vrhovnik <mvrhov at users.sourceforge>: 1376 * src/win_api/*: C API for Windows DLLs 1377 - also Delphi text editor example (see on Hunspell Sourceforge page) 1378 13792006-05-18 Kevin F. Quinn <kevquinn at gentoo>: 1380 * utf_info.cxx: struct -> static struct 1381 Shared library patch also developed by Gentoo developers (Hanno Meyer-Thurow, 1382 Diego Pettenò, Kevin F. Quinn) 1383 13842006-02-02 Németh László <nemethl@gyorsposta.hu>: 1385 * src/hunspell/hunspell.cxx: suggest(): replace "fooBar" -> "foo bar" suggestions 1386 with "fooBar" ->"foo Bar" (missing spaces are typical OCR bugs). 1387 Bug reported by stowrob at OOo in Issue 58202. 1388 * src/hunspell/suggestmgr.cxx: twowords(): permit 1-character words. 1389 (restore MySpell's original behavior). Here: "aNew" -> "a New". 1390 * tests/i58202.*: test data 1391 1392 * src/parsers/textparser.cxx: fix Unicode tokenization in is_wordchar() 1393 (extra word characters (WORDCHARS) didn't work on big-endian platforms). 1394 1395 * src/hunspell/{csutil,affixmgr}.cxx: inline isSubset(), isRevSubset(): 1396 little speed optimalization for languages with rich morphology. 1397 1398 * src/tools/hunspell.cxx: fix bad --with-ui and --with-readline compiling 1399 when (N)curses is missing. Reported by Daniel Naber. 1400 14012006-01-19 Tor Lillqvist <tml@novell.com> 1402 * src/hunspell/csutil.cxx: mystrsep(): fix locale-dependent isspace() tokenization 1403 14042006-01-06 András Tímár <timar@fsf.hu> 1405 * src/hunspell/{hashmgr.hxx,hunspell.cxx}: fix Visual C++ compiling errors 1406 14072006-01-05 Németh László <nemethl@gyorsposta.hu>: 1408 * COPYING: set GPL/LGPL/MPL tri-license for Mozilla integration. 1409 Rationale: Mozilla source code contains an old MySpell version 1410 with GPL/LGPL/MPL tri-license. (MPL license is a copyleft license, similar 1411 to the LGPL, but it acts on file level.) 1412 * COPYING.LGPL: GNU Lesser General Public License 2.1 (LGPL) 1413 * COPYING.MPL: Mozilla Public License 1.1 (MPL) 1414 * license.hunspell, src/hunspell/license.hunspell: GPL/LGPL/MPL tri-license 1415 1416 * src/hunspell/{affixmgr,hashmgr}.*: AF, AM alias definitions in affix file: 1417 compression of flag sets and morphological descriptions (see manual, 1418 and tests/alias* test files). 1419 Rationale: Alias compression is also good for loading time and memory 1420 efficiency, not only smaller resources. 1421 * src/tools/makealias: alias compression utility 1422 (usage: ./makealias file.dic file.aff) 1423 * tests/alias{,2,3}: AF, AM tests 1424 * man/hunspell.4: add AF, AM documentation 1425 * src/hunspell/affentry.cxx, atypes.hxx: add new opts bits (aeALIASM, aeALIASF) 1426 1427 * tools/hunspell, src/parser/*, src/hunspell/*: Hunspell program 1428 tokenizes Unicode texts (only with UTF-8 encoded dictionaries). 1429 Missing Unicode tokenization reported by Björn Jacke, Egmont Koblinger, 1430 Jess Body and others. 1431 Note: Curses interactive interface hasn't worked perfectly yet. 1432 * tests/*.tests: remove -1 parameters of Hunspell 1433 * tests/*.{good,wrong}: remove tabulators 1434 1435 * src/hunspell/{hunspell,affixmgr}.cxx: BREAK option: break words at 1436 specified break points and checking word parts separately (see manual). 1437 Note: COMPOUNDRULE is better (or will be better) for handling dashes and 1438 other compound joining characters or character strings. Use BREAK, if you 1439 want check words with dashes or other joining characters and there is no time 1440 or possibility to describe precise compound rules with COMPOUNDRULE. 1441 * tests/break.*: BREAK example. 1442 1443 * src/hunspell/{affixmgr,hunspell}.cxx: add CHECKSHARPS declaration instead 1444 of LANG de_DE definitions to handle German sharp s in both spelling and 1445 suggestion. 1446 * src/hunspell/hunspell.cxx: With CHECKSHARPS, uppercase words are valid 1447 with both lower sharp s (it's is optional for names in German legal texts) 1448 and SS (MÜßIG, MÜSSIG). Missing lower sharp s form reported by Björn Jacke. 1449 * src/hunspell/hunspell.cxx: KEEPCASE flag on a sharp s word has a special 1450 meaning with CHECKSHARPS declaration: KEEPCASE permits capitalisation and SS upper 1451 casing of a sharp s word (Müßig and MÜSSIG), but forbids the upper cased form 1452 with lower sharp s character(s): *MÜßIG. 1453 * tests/germancompounding*: add CHECKSHARPS, remove LANG 1454 * tests/checksharps*: add CHECKSHARPS and KEEPCASE, remove LANG 1455 1456 * src/hunspell/hunspell.cxx: improved suggestions: 1457 - suggestions for pressed Caps Lock problems: macARONI -> macaroni 1458 - suggestions for long shift problems: MAcaroni -> Macaroni, macaroni 1459 - suggestions for KEEPCASE words: KG -> kg 1460 * src/hunspell/csutil.cxx: fix mystrrep() function: 1461 - suggestions for lower sharp s in uppercased words: MÜßIG -> MÜSSIG 1462 * tests/checksharps{,utf}.sug: add tests for mystrrep() fix 1463 1464 * src/hunspell/hashmgr.cxx: Now dictionary words can contain slashes 1465 with the "\/" syntax. Problem reported by Frederik Fouvry. 1466 1467 * src/hunspell/hunspell.cxx: fix bad duplicate filter in suggest(). 1468 (Suggesting some capitalised compound words caused program crash 1469 with Hungarian dictionary, OOo Issue 59055). 1470 1471 * src/hunspell/affixmgr.cxx: fix bad defcpd_check() call in compound_check(). 1472 (Overlapping new COMPOUNDRULE and old compounding methods caused program 1473 crash at suggestion.) 1474 1475 * src/hunspell/affixmgr.{cxx,hxx}: check affix flag duplication at affix classes. 1476 Suggested by Daniel Naber. 1477 1478 * src/hunspell/affentry.cxx: remove unused variable declarations (OOo i58338). 1479 Compiler warnings reported by András Tímár and Martin Hollmichel. 1480 1481 * src/hunspell/hunspell.cxx: morph(): not analyse bad mixed uppercased forms 1482 (fix Arabic morphological analysis with Buckwalter's Arabic transliteration) 1483 1484 * src/hunspell/affentry.{cxx,hxx}, atypes.hxx: little memory optimization 1485 in affentry: 1486 - using unsigned char fields instead of short (stripl, appndl, numconds) 1487 - rename xpflg field to opts 1488 - removing utf8 field, use aeUTF8 bit of opts field 1489 1490 * configure.ac: set tests/maputf.test to XFAILED on ARM platform. 1491 Fail reported by Rene Engelhard. 1492 1493 * configure.ac: link Ncursesw library, if exists. 1494 1495 * BUGS: add BUGS file 1496 1497 * tests/complexprefixes2.*: test for morphological analysis with COMPLEXPREFIXES 1498 1499 * src/hunspell/affixmgr.cxx: use "COMPOUNDRULE" instead of 1500 "COMPOUND". The new name suggested by Bram Moolenaar. 1501 * tests/compoundrule*: modified and renamed compound.* test files 1502 1503 * man/hunspell.4: AF, AM, BREAK, CHECKSHARPS, COMPOUNDRULE, KEEPCASE. 1504 - also new addition to the documentation: 1505 Header of the dictionary file define approximate dictionary size: 1506 ``A dictionary file (*.dic) contains a list of words, one per line. 1507 The first line of the dictionaries (except personal dictionaries) 1508 contains the _approximate_ word count (for optimal hash memory size).'' 1509 Asked by Frederik Foudry. 1510 1511 One-character replacements in REP definitions: ``It's very useful to 1512 define replacements for the most typical one-character mistakes, too: 1513 with REP you can add higher priority to a subset of the TRY suggestions 1514 (suggestion list begins with the REP suggestions).'' 1515 15162005-11-11 Németh László <nemethl@gyorsposta.hu>: 1517 * src/hunspell/affixmgr.*: fix Unicode MAP errors (sorted only n-1 1518 characters instead of n ones in UTF-16 MAP character lists). 1519 Bug reported by Rene Engelhard. 1520 1521 * src/hunspell/affixmgr.*: fix infinite COMPOUND matching (default char 1522 type is unsigned on PowerPC, s390 and ARM platforms and it will never 1523 be negative). Bug reported by Rene Engelhard. 1524 1525 * src/hunspell/{affixmgr,suggestmgr}.cxx: fix bad ONLYINCOMPOUND 1526 word suggestions. 1527 * tests/onlyincompound.sug: empty test file to check this fix. 1528 Bug reported by Björn Jacke. 1529 1530 * src/hunspell/affixmgr.cxx: fix backtracking in COMPOUND pattern matching. 1531 * tests/compound6.*: test files to check this fix. 1532 1533 * csutil.cxx: set bigger range types in flag_qsort() and flag_bsearch(). 1534 1535 * affixmgr.hxx: set better type for cont_classes[] Boolean data (short -> char) 1536 1537 * configure.ac, tests/automake.am: set platform specific XFAIL test 1538 (flagutf8.test on ARM platform) 1539 15402005-11-09 Németh László <nemethl@gyorsposta.hu>: 1541improvements: 1542 * src/hunspell/affixmgr.*: new and improved affix file parameters: 1543 1544 - COMPOUND definitions: compound patterns with regexp-like matching. 1545 See manual and test files: tests/compound*.* 1546 Suggested by Bram Moolenaar. 1547 Also useful for simple word-level lexical scanning, for example 1548 analysing numbers or words with numbers (OOo Issue #53643): 1549 http://qa.openoffice.org/issues/show_bug.cgi?id=53643 1550 Examples: tests/compound{4,5}.*. 1551 1552 - NOSUGGEST flag: words signed with NOSUGGEST flag are not suggested. 1553 Proposed flag for vulgar and obscene words (OOo Issue #55498). 1554 Example: tests/nosuggest.*. 1555 Problem reported by bobharvey at OOo: 1556 http://qa.openoffice.org/issues/show_bug.cgi?id=55498 1557 1558 - KEEPCASE flag: Forbid capitalized and uppercased forms of words 1559 signed with KEEPCASE flags. Useful for special ortographies 1560 (measurements and currency often keep their case in uppercased 1561 texts) and other writing systems (eg. keeping lower case of IPA 1562 characters). 1563 1564 - CHECKCOMPOUNDCASE: Forbid upper case characters at word bound in compounds. 1565 Examples: tests/checkcompoundcase* and tests/germancompounding.* 1566 1567 - FLAG UTF-8: New flag type: Unicode character encoded with UTF-8. 1568 Example: tests/flagutf8.*. 1569 Rationale: Unicode character type can be more readable 1570 (in a Unicode text editor) than `long' or `num' flag type. 1571 1572bug fixes: 1573 * src/hunspell/hunspell.cxx: accept numbers and numbers with separators (i53643) 1574 Bug reported by skelet at OOo: 1575 http://qa.openoffice.org/issues/show_bug.cgi?id=53643 1576 1577 * src/hunspell/csutil.cxx: fix casing data in ISO 8859-13 character table. 1578 1579 * src/hunspell/csutil.cxx: add ISO-8859-15 character encoding (i54980) 1580 Rationale: ISO-8859-15 is the default encoding of the French OpenOffice.org 1581 dictionary. ISO-8859-15 is a modified version of ISO-8859-1 1582 (latin-1) character encoding with French œ ligatures and euro 1583 symbol. Problem reported by cbrunet at OOo in OOo Issue 54980: 1584 http://qa.openoffice.org/issues/show_bug.cgi?id=54980 1585 1586 * src/hunspell/affixmgr.cxx: fix zero-byte malloc after a bad affix header. 1587 Patch by Harri Pitkänen. 1588 1589 * src/hunspell/suggestmgr.cxx: fix bad NEEDAFFIX word suggestion 1590 in ngram suggestions. Reported by Daniel Naber and Friedel Wolff. 1591 1592 * src/hunspell/hashmgr.cxx: fix bad white space checking in affix files. 1593 src/hunspell/{csutil,affixmgr}.cxx: add other white space separators. 1594 Problems with tabulators reported by Frederik Fouvry. 1595 1596 * src/hunspell/*: replace system-dependent <license.*> #include 1597 parameters with quoted ones. Problem reported by Dafydd Jones. 1598 1599 * src/hunspell/hunspell.cxx: fix missing morphological analysis of dot(s) 1600 Reported by Trón Viktor. 1601 1602changes: 1603 * src/hunspell/affixmgr.cxx: rename PSEUDOROOT to NEEDAFFIX. 1604 Suggested by Bram Moolenaar. 1605 1606 * src/hunspell/suggestmgr.hxx: Increase default maximum of 1607 ngram suggestions (3->5). Suggested by Kevin Hendricks. 1608 1609 * src/hunspell/htypes.hxx: Increase MAXDELEN for long affix flags. 1610 1611 * src/hunspell/suggestmgr.cxx: modify (perhaps fix) Unicode map suggestion. 1612 tests/maputf test fail on ARM platform reported by Rene Engelhard. 1613 1614 * src/hunspell/{affentry.cxx,atypes.hxx}: remove [PREFIX] and 1615 MISSING_DESCRIPTION messages from morphological analysis. 1616 Problems reported by Trón Viktor. 1617 1618 * tests/germancompounding.{aff,good}: Add "Computer-Arbeit" test word. 1619 Suggested by Daniel Naber. 1620 1621 * doc/man/hunspell.4: Proof-reading patch by Goldman Eleonóra. 1622 1623 * doc/man/hunspell.4: Fix bad affix example (replace `move' with `work'). 1624 Bug reported by Frederik Fouvry. 1625 1626 * tests/*: new test files: 1627 affixes.*: simple affix compression example from Hunspell 4 manual page 1628 checkcompoundcase.*, checkcompoundcase2.*, checkcompoundcaseutf.* 1629 compound.*, compound2.*, compound3.*, compound4.*, compound5.* 1630 compoundflag.* (former compound.*) 1631 flagutf8.*: test for FLAG UTF-8 1632 germancompounding.*: simplification with CHECKCOMPOUNDCASE. 1633 germancompoundingold.* (former germancompounding.*) 1634 i53643.*: check numbers with separators 1635 i54980.*: ISO8859-15 test 1636 keepcase.*: test for KEEPCASE 1637 needaffix*.* (former pseudoroot*.* tests) 1638 nosuggest.*: test for NOSUGGEST 1639 16402005-09-19 Németh László <nemethl@gyorsposta.hu>: 1641 * src/hunspell/suggestmgr.cxx: improved ngram suggestion: 1642 - detect not neighboring swap characters (pernament -> permanent) 1643 Rationale: ngram method has a significant error with not neighboring 1644 swap characters, especially when swap is in the middle of the word. 1645 - suggest uppercase forms (unesco -> UNESCO, siggraph's -> SIGGRAPH's) 1646 - suggest only ngram swap character and uppercase form, if they exist. 1647 Rationale: swap character and casing equivalence give mutch better 1648 suggestions as any other (weighted) ngram suggestions. 1649 - add uppercase suggestion (PERMENANT -> PERMANENT) 1650 1651 * src/hunspell/*: complete comparison with MySpell 3.2 (in OOo beta 2): 1652 - affixmgr.cxx: add missing numrep initialization 1653 - hashmgr.cxx: add_word(): don't allocate temporary records 1654 - hunspell.cxx: in suggest(): 1655 - check capitalized words first (better sug. order for proper names), 1656 - check pSMgr->suggest() return value 1657 - set pSMgr->suggest() call to not optional in HUHCAP 1658 - csutil.cxx: fix bad KOI8-U -> koi8r_tbl reference in enc_entry encds 1659 - csutil.cxx: fix casing data in ISO 8859-2, Windows 1251 and KOI8-U 1660 encoding tables. Bug reported by Dmitri Gabinski. 1661 1662 * src/hunspell/affixmgr.*: improved compound word and other features 1663 - generalize hu_HU specific compound word features with new affix file 1664 parameters, suggested by Bram Moolenaar: 1665 - CHECKCOMPOUNDDUP: forbid word duplication in compounds (eg. foo|foo) 1666 - CHECKCOMPOUNDTRIPLE: forbid triple letters in compounds (eg. foo|obar) 1667 - CHECKCOMPOUNDPATTERN: forbid patterns at word bounds in compounds 1668 - CHECKCOMPOUNDREP: using REP replacement table, forbid presumably bad 1669 compounds (useful for languages with unlimited number of compounds) 1670 - ONLYINCOMPOUND flag works also with words (see tests/onlyincompound.*) 1671 Suggested by Daniel Naber, Björn Jacke, Trón Viktor & Bram Moolenaar. 1672 - PSEUDOROOT works also with prefixes and prefix + suffix combinations 1673 (see tests/pseudoroot5.*). Suggested by Trón Viktor. 1674 - man/hunspell.4: updated man page 1675 1676 * src/hunspell/affixmgr.*: fix incomplete prefix handling with twofold 1677 suffixes (delete unnecessary contclasses[] conditions in 1678 prefix_check_twosfx() and prefix_check_twosfx_morph()). 1679 Bug reported by Trón Viktor. 1680 1681 * src/hunspell/affixmgr.*: complete also *_morph() functions with 1682 conditions of new Hunspell features (circumfix, pseudoroot etc.). 1683 1684 * src/hunspell/suggestmgr.cxx: 1685 - fix missing suggestions for words with crossed prefix and suffix 1686 - fix redundant non-compound word checking 1687 - fix losing suggestions problem. Bug reported by Dmitri Gabinski. 1688 1689 * src/hunspell/dictmgr.*: 1690 - add new dictionary manager for Hunspell UNO modul 1691 Problems with eo_ANY Esperanto locale reported by Dmitri Gabinski. 1692 1693 * src/hunspell/*: use precise constant sizes for 8-bit and 16-bit character 1694 arrays with MAXWORDUTF8LEN and MAXSWUTF8L macros. 1695 1696 * src/hunspell/affixmgr.cxx: fix bad MAXNGRAMSUGS parameter handling 1697 1698 * src/hunspell/affixmgr.cxx, src/tools/{un}munch.*: fix GCC 4.0 warnings 1699 on fgets(), reported by Dvornik László 1700 1701 * po/hu.po: improved translation by Dvornik László 1702 1703 * tests/test.sh: improved test environment 1704 - add suggestion testing (see tests/*.sug) 1705 - add memory debugging environment, based on the excellent Valgrind debugger. 1706 Usage on Linux and experimental platforms of Valgrind: 1707 VALGRIND=memcheck make check 1708 - rename test_hunmorph to test.sh 1709 1710 * tests/*: new tests: 1711 - base.*: base example based on MySpell's checkme.lst. 1712 - map{,utf}.*, rep{,utf}: MAP and REP suggestion examples 1713 - tests on new CHECKCOMPOUND, ONLYINCOMPOUND and PSEUDOROOT features 1714 - i54633.*: capitalized suggestion test for Issue 54633 from OOo's Issuezilla 1715 - i35725.*: improved ngram suggestion test for Issue 35725 1716 17172005-08-26 Németh László <nemethl@gyorsposta.hu>: 1718improvements: 1719 1720 * src/hunspell/suggestmgr.cxx: 1721 Unicode support in related character map suggestion 1722 1723 * src/hunspell/suggestmgr.cxx: Unicode support in ngram suggestion 1724 1725 * src/hunspell/{suggestmgr,affixmgr,hunspell}.cxx: improve ngram suggestion. 1726 Fix http://qa.openoffice.org/issues/show_bug.cgi?id=35725. See release 1727 notes for examples. This problem reported by beccablain at OOo. 1728 - ngram suggestions now are case insensitive (see `Permenant' bug in Issuezilla) 1729 - weight ngram suggestions (with the longest common subsequent algorithm, 1730 also considering lengths of bad word and suggestion, identical first 1731 letters and almost completely identical character positions) 1732 - set strict affix congruency in expand_rootword(). Now ngram suggestions 1733 are good for languages with rich morphology and also better for English. 1734 Rationale: affixed forms of the first ngram suggestion 1735 very often suppress the second and subsequent root word suggestions. But 1736 faults in affixes are more uncommon, and can be fix without suggestions. 1737 We must prefer the more informative second and subsequent root word 1738 suggestions instead of the suggestions for bad affixes. 1739 - a better suggestion may not be substring of a less good suggestion 1740 Rationale: Suggesting affixed forms of a root word is 1741 unnecessary, when root word has got better weighted ngram value. 1742 (Checking substrings is a good approximation for this refinement.) 1743 - lesser ngram suggestions (default 3 maximum instead of 10) 1744 Rationale: For users need a big extra effort to check a lot of bad ngram 1745 suggestions, nine times out of ten unnecessarily. It is very 1746 distracting, because ngram suggestions could be very different. 1747 Usually Myspell and Hunspell suggest one or two suggestions with 1748 the old suggestion algorithms (maximum is 15), with ngram algorithm 1749 often gives maximum number suggestions. With strict affix congruency 1750 and other refinements, the good suggestion there is usually among the 1751 first three elements. 1752 - new affix parameter: MAXNGRAMSUG 1753 1754 * src/hunspell/*: support agglutinative languages with rich prefix 1755 morphology or with right-to-left writing system (for example, Turkic 1756 and Austronesian languages with (modified) Arabic scripts). 1757 - new affix parameter: COMPLEXPREFIXES 1758 Set twofold prefix stripping (but single suffix stripping) 1759 * src/hunspell/affixmgr.cxx: 1760 - speed up prefix loading with tree sorting algorithm. 1761 * tests/complexprefixes.*, tests/complexprefixesutf.*: 1762 Coptic example posted by Moheb Mekhaiel 1763 1764 * src/hunspell/hashmgr.cxx: check size attribute in dic file 1765 suggested by Daniel Naber 1766 Rationale: With missing size attribute Hunspell allocates too small and 1767 more slower hash memory, and Hunspell can lose first dictionary word. 1768 1769 * src/hunspell/affixmgr.cxx: check stripping characters and condition 1770 compatibility in affix rules (bugs detected in cs_CZ, es_ES, es_NEW, 1771 es_MX, lt_LT, nn_NO, pt_PT, ro_RO and sk_SK dictionaries). See release 1772 notes of Hunspell 1.0.9 in NEWS. 1773 1774 * src/hunspell/affixmgr.cxx: check unnecessary fields in affix rules 1775 (bugs detected in ro_RO and sv_SE dictionaries). See release notes. 1776 1777 * src/hunspell/affixmgr.cxx: remove redundant condition checking 1778 in affix rules with stripping characters (redundancy in OpenOffice.org 1779 dictionaries reported by Eleonóra Goldman) 1780 Rationale: this is a little optimization, but it was excellent for 1781 detect the bad ngram affixation with bad or weak affix conditions. 1782 1783 * tests/germancompounding.aff: improve compound definition 1784 - use dash prefix instead of language specific tokenizer 1785 Rationale: Using uniform approach is the right way to check and analyze 1786 compound words. Language specific word breaking is deprecated, need 1787 a sophisticated grammar checking for word-like word pairs 1788 (for example in Hungarian there is a substandard, but accepted 1789 syntax with dash for word pairs: cats, dogs -> kutyák-macskák (like 1790 cats/dogs in English). 1791 1792 * test Hunspell with 54 OpenOffice.org dictionaries: see release notes 1793 1794bug fixes: 1795 1796 * src/hunspell/suggestmgr.*: add time limit to exponential 1797 algorithm of the related character map suggestion 1798 Rationale: a long word in agglutinative languages or a special pattern 1799 (for example a horizontal rule) made of map characters can `crash' the 1800 spell checker. 1801 1802 * src/hunspell/affentry.cxx: add() functions: fix bad word generation 1803 checking stripping characters (see similar bug in unmunch) 1804 1805 * src/hunspell/affixmgr.cxx: parse_file(): fix unconditional getNext() 1806 call for ~AffixMgr() when affix file is corrupt. 1807 1808 * src/hunspell/affixmgr.*: AffixMgr(), parse_cpdsyllable(): fix missing 1809 string duplications for ~AffixMgr() when affix file is corrupt. 1810 1811 * src/hunspell/affixmgr.*: parse_affix(): fix fprintf() call when affix 1812 file is corrupt. Bug reported by Daniel Naber. 1813 1814 * suggestmgr.cxx: replace single usage of 'strdup' with 'mystrdup' 1815 patch by Chris Halls (debian.org) 1816 1817 * src/hunspell/makefile.mk: add makefile.mk for compiling in OpenOffice.org 1818 See README in Hunspell UNO modul. 1819 Problems with separated compiling reported by Rene Engelhard 1820 1821 * src/hunspell/hunspell.cxx: fix pseudoroot support 1822 - search a not pseudoroot homonym in check() 1823 * tests/pseudoroot4.*: test this fix 1824 1825 * src/tools/unmunch.c: fix bad word generation when conditions 1826 are shorter or incompatible with stripping characters in affix rules 1827 1828 * src/tools/unmunch.c: fix mychomp() for de_AT.dic and other dic files 1829 without last new line character. 1830 1831other changes: 1832 * src/hunspell/suggestmgr.*: erase ACCENT suggestion 1833 Rationale: ACCENT suggestion was the same as Kevin Hendrick's map 1834 suggestion algorithm, but with a less good interface in affix file. 1835 1836 * src/hunspell/suggestmgr.*: combine cycle number limit 1837 in badchar(), and forgotchar() with a time limit. 1838 1839 * src/hunspell/affixmgr.*: remove NOMAPSUGS affix parameter 1840 1841 * src/hunspell/{suggestmgr,hunspell}.*: strip periods from 1842 suggestions (restore MySpell's original behaviour) 1843 Rationale: OpenOffice.org has an automatic period handling mechanism 1844 and suggestions look better without periods. 1845 - new affix file parameter: SUGSWITHDOTS 1846 Add period(s) to suggestions, if input word terminates in period(s). 1847 (No need for OpenOffice.org dictionaries.) 1848 1849 * tests/germancompounding.aff: improve bad german affix in affix example 1850 (computeren->computern). Suggested by Daniel Naber. 1851 1852 * src/tools/example.cxx: add Myspell's example 1853 1854 * src/tools/munch.cxx: add Myspell's munch 1855 1856 * man{,/hu}/hunspell.4: refresh manual pages 1857 18582005-08-01 Németh László <nemethl@gyorsposta.hu>: 1859 * add missing MySpell files and features: 1860 - add MySpell license.readme, README and CONTRIBUTORS ({license,README,AUTHORS}.myspell) 1861 - add MySpell unmunch program (src/tools/unmunch.c) 1862 - add licenses to source (src/hunspell/license.{myspell,hunspell}) 1863 - port MAP suggestion (with imperfect UTF-8 support) 1864 - add NOSPLITSUGS affix parameter 1865 - add NOMAPSUGS affix parameter 1866 1867 * src/man/man.4: MAP, COMPOUNDPERMITFLAG, NOSPLITSUGS, NOMAPSUGS 1868 1869 * src/hunspell/aff{entry,ixmgr}.cxx: 1870 - improve compound word support 1871 - new affix parameter: COMPOUNDPERMITFLAG (see manual) 1872 * src/tests/compoundaffix{,2}.*: examples for COMPOUNDPERMITFLAG 1873 * src/tests/germancompounding.*: new solution for German compounding 1874 Problems with German compounding reported by Daniel Naber 1875 1876 * src/hunspell/hunspell.cxx: fix German uppercase word spelling 1877 with the spellsharps() recursive algorithm. 1878 Default recursive depth is 5 (MAXSHARPS). 1879 * src/tests/germansharps*: extended German sharp s tests 1880 1881 * src/tools/hunspell.cxx: fix fatal memory bug in non-interactive 1882 subshells without HOME environmental variable 1883 Bug detected with PHP by András Izsók. 1884 18852005-07-22 Németh László <nemethl@gyorsposta.hu>: 1886 * src/hunspell/csutil.hxx: utf16_u8() 1887 - fix 3-byte UTF-8 character conversion 1888 18892005-07-21 Németh László <nemethl@gyorsposta.hu>: 1890 * src/hunspell/csutil.hxx: hunspell_version() for OOo UNO modul 1891 18922005-07-19 Németh László <nemethl@gyorsposta.hu>: 1893 * renaming: 1894 - src/morphbase -> src/hunspell 1895 - src/hunspell, src/hunmorph -> src/tools 1896 - src/huntokens -> src/parsers 1897 1898 * src/tools/hunstem.cxx: add stemmer example 1899 19002005-07-18 Németh László <nemethl@gyorsposta.hu>: 1901 * configure.ac: --with-ui, --with-readline configure options 1902 * src/hunspell/hunspell.cxx: fix conditional compiling 1903 1904 * src/hunspell/hunspell.cxx: set HunSPELL.bak temporaly file 1905 in the same dictionary with the checked file. 1906 1907 * src/morphbase/morphbase.cxx: 1908 1909 - handling German sharp s (ß) 1910 1911 - fix (temporaly) analyize() 1912 1913 * tests: a lot of new tests 1914 1915 * po/, intl/, m4/: add gettext from GNU hello 1916 1917 * po/hu.po: add Hungarian translation 1918 1919 * doc/, man/: rename doc to man 1920 19212005-07-04 Németh László <nemethl@gyorsposta.hu>: 1922 * src/morphbase/hashmgr.cxx: set FLAG attributum instead of FLAG_NUM and FLAG_LONG 1923 1924 * doc/hunspell.4: manual in English 1925 19262005-06-30 Németh László <nemethl@gyorsposta.hu>: 1927 * src/morphbase/csutil.cxx: add character tables from csutil.cxx of OOo 1.1.4 1928 1929 * src/morphbase/affentry.cxx: fix Unicode condition checking 1930 1931 * tests/{,utf}compound.*: tests compounding 1932 19332005-06-27 Németh László <nemethl@gyorsposta.hu>: 1934 * src/morphbase/*: fix Unicode compound handling 1935 19362005-06-23 Halácsy Péter: 1937 * src/hunmorph/hunmorph.cxx: delete spelling error message and suggest_auto() call 1938 19392005-06-21 Németh László <nemethl@gyorsposta.hu>: 1940 * src/morphbase: Unicode support 1941 * tests/utf8.*: SET UTF-8 test 1942 1943 * src/morphbase: checking and fixing with Valgrind 1944 Memory handling error reported by Ferenc Szidarovszky 1945 19462005-05-26 Németh László <nemethl@gyorsposta.hu>: 1947 * suggestmgr.cxx: fix stemming 1948 * AUTHORS, COPYING, ChangeLog: set CC-LGPL free software license 1949 19502004-05-25 Varga Dániel <daniel@all.hu> 1951 * src/stemtool: new subproject 1952 19532005-05-25 Halácsy Péter <peter@halacsy.com> 1954 * AUTHORS, COPYING: set CC Attribution license 1955 19562004-05-23 Varga Dániel <daniel@all.hu> 1957 * src: - modifications for compiling with Visual C++ 1958 1959 * src/hunmorph/csutil.cxx: correcting header of flag_qsort(), 1960 * src/hunmorph/*: correct csutil include 1961 19622005-05-19 Németh László <nemethl@gyorsposta.hu> 1963 * csutil.cxx: fix loop condition in lineuniq() 1964 bug reported by Viktor Nagy (nagyv nyelvtud hu). 1965 1966 * morphbase.cxx: handle PSEUDOROOT with zero affixes 1967 bug reported by Viktor Nagy (nagyv nyelvtud hu). 1968 * tests/zeroaffix.*: add zeroaffix tests 1969 19702005-04-09 Németh László <nemethl@gyorsposta.hu> 1971 * config.h.in: reset with autoheader 1972 1973 * src/hunspell/hunspell.cxx: set version 1974 19752005-04-06 Németh László <nemethl@gyorsposta.hu> 1976 * tests: tests 1977 1978 * src/morphbase: 1979 New optional parameters in affix file: 1980 - PSEUDOROOT: for forbidding root with not forbidden suffixed forms. 1981 - COMPOUNDWORDMAX: max. words in compounds (default is no limit) 1982 - COMPOUNDROOT: signs compounds in dictionary for handling special compound rules 1983 - remove COMPOUNDWORD, ONLYROOT 1984 19852005-03-21 Németh László <nemethl@gyorsposta.hu> 1986 * src/morphbase/*: 1987 - 2-byte flags, FLAG_NUM, FLAG_LONG 1988 - CIRCUMFIX: signed suffixes and prefixes can only occur together 1989 - ONLYINCOMPOUND for fogemorpheme (Swedish, Danish) or Flute-elements (German) 1990 - COMPOUNDBEGIN: allow signed roots, and roots with signed suffix in begin of compounds 1991 - COMPOUNDMIDDLE: like before, but middle of compounds 1992 - COMPOUNDEND: like before, but end of compounds 1993 - remove COMPOUNDFIRST, COMPOUNDLAST 1994