2010-02-25 Németh László <nemeth at OOo>:
	* hunspell/hunspell.cxx: add recursion limit for BREAK (fix OOo Issue 106267)

	* hunspell/hunspell.cxx: fix crash in morphological analysis of
	  capitalized words with ending dashes

	* affixmgr.cxx: fix morphological analysis of long numbers combined with dash,
	  eg. 45-00000045 (reported by a@freeblog.hu).

2010-02-23 Caolán McNamara <cmc at OOo>:
	* hun#2314461 improve ispell-alike mode
	* hun#2784983 improve default language detection
	* hun#2812045 fix some compiler warnings
	* hun#2910695 survive missing HOME dir
	* hun#2934195 fix suggestmgr crash
	* hun#2921129 remove unused variables
	* hun#2826164 make sure make check uses the in-tree libhunspell
	* bump toolchain to support --disable-rpath
	* hun#2843984 fix coverity warning
	* hun#2843986 fix coverity warning
	* hun#2077630 add iconv lib
	* make gcc strict-aliasing warning free
	* make cppcheck warning free

2008-11-01 Németh László <nemeth at OOo>:
	* replist.*, hunspell.cxx, affixmgr.cxx: new input and output
          conversion support, see ICONV and OCONV keywords in the Hunspell(4)
          manual page and the test examples. The input/output conversion
          problem of syllabic languages reported by Daniel Yacob and
          Shewangizaw Gulilat.
        - tests/{iconv,oconv}.*: test examples

	* tools/wordforms: word generation script for dictionary developers
          (Hunspell version of the unmunch program)

	* hunspell/hunspell.cxx: extended BREAK feature: ^ and $ mean in break
          patterns the beginning and end of the word.
	- tests/BREAK.*: modified examples.

	* hunspell/hunspell.cxx: set default break at hyphen characters. 
	  The associated problem reported by S Page in Hunspell Bug 2174061.
          See Mozilla Bug ID 355178 and OOo Issue 64400, too.
	- tests/breakdefault.*: test data
	  The following definition is equivalent of the default word break:

	  BREAK 3
          BREAK -
          BREAK ^-
          BREAK -$

	* affixmgr.cxx: SIMPLIFIEDTRIPLE is a new affix file keyword to allow
          simplified forms of the compound words with triple repeating letters.
	  It is useful for Swedish and Norwegian languages.
 
	* affixmgr.cxx: extend CHECKCOMPOUNDPATTERN to support
          alternations of compound words for example by sandhi
          feature of Indian and other languages. The problem reported
          by Kiran Chittella associated with Telugu writing system
          (see Telugu example in tests/checkcompoundpattern4.test).
          The new optional field of CHECKCOMPOUNDPATTERN definition is the
          replacement of the compound boundary defined by the previous fields:
	  CHECKCOMPOUNDPATTERN ff f ff
	  means ff|f compound boundary has been replaced by "ff", like in
          the (prereform) German Schiffahrt (Schiff+fahrt).
        - CHECKCOMPOUNDPATTERN supports also optional flag conditions now:
	  CHECKCOMPOUNDPATTERN ff/A f/B ff
          means that the first word of the compound needs flag "A" and
          the second word of the compound needs flag "B" to the operation.

	* tools/hunspell.cxx: add empty lines as separators to the output of
          the stemming and morphological analysis.

	* affixmgr.cxx: fix condition checking algorithm. Bad suggestion
          generation reported by Mehmet Akin in SF.net Bug 2124186 with help of
          Eleonora Goldman.

	* affixmgr,cxx: fix COMPOUNDWORDMAX feature. The problem and its
          code details reported by Göran Andersson under SF.net Bug ID 2138001.

	* csutil.cxx: fix bad conditional code for Mozilla compilation.
          Patch by Serge Gautherie. The problem reported by Ryan VanderMeulen.

	* hunspell/hunspell.cxx: add missing ngram suggestion for HUHINITCAP
          (capitalized mixed case) words.

	* w_char.hxx: use GCC conditions for GCC related code. Patch by
          Ryan VanderMeulen.

	* affixmgr.cxx: check morphological description in morphgen()
	  (fix potential program fault by incomplete morphological
	   description of affix rules)

	* src/win_api: config.h: switch on warning messages on Windows

	* tools/affixcompress: extended help for -h (use LC_ALL=C sort
          for input word list)

	* man/hunspell.4: updated manual:
        - new and modified features (SIMPLIFIEDTRIPLE, ICONV, OCONV,
          BREAK, CHECKCOMPOUNDPATTERN).
        - note about costs of zero affixes, suggested by Olivier Ronez.

	* hunspell/hunspell.cxx: remove deprecated word breaking codes.

2008-08-15 Németh László <nemeth at OOo>:
	* affentry.cxx: add FULLSTRIP option. With FULLSTRIP, affix rules can
	  strip full words, not only one less characters. Suggested by
	  Davide Prina and other developers in OOo Issue 80145.
	* tests/fullstrip.*: Test data based on Davide Prina's example.
	* tools/unmunch.cxx: modified for FULLSTRIP.

	* affixmgr.cxx: COMPOUNDRULE now works with long and numerical flag
	  types by parenthesized flags. Syntax: (flag)*, (flag)(flag)?(flag)*.
	* tests/compoundrule[78].*: tests with parenthesized COMPOUNDRULE
	  definitions.

	* suggestmgr.cxx: modified badchar*(), forgotchar*() and extrachar*()
	  1-character distance suggestion algorithms: search a TRY character
	  in all position instead of all TRY characters in a character position
	  (it can give more readable suggestion order, also better suggestions
	  in the first positions, when TRY characters are sorted by frequency.)
	  For example, suggestions for "moze":
	  ooze, doze, Roze, maze, more etc. (Hunspell 1.2.6),
	  maze, more, mote, ooze, mole etc. (Hunspell 1.2.7).

	* suggestmgr.cxx: extended compound word checking for better COMPOUNDRULE
	  related suggestions, for example English ordinal numbers: 121323th ->
	  121323rd (it needs also a th->rd REP definition).

	* phonet.cxx: cast unsigned char parameter of isdigit() and fix
	  isalpha by myisalpha() (potential problems in Windows environment).
	  Reported by Thomas Lange in OOo Issue 92736.

	* hunspell/csutil.*,hunspell/{affentry,affixmgr,hunspell,suggestmgr}.cxx:
	  fix potential buffer overloading under morphological analysis by the
	  new mystrcat() function. Reported by Molnár Andor (dolhpy at true
	  dot hu) in SF.net Bug 2026203.

	* affixmgr.cxx: add recursion limit to defcpd(). Fix OOo Issue 76067:
	  crash-like deceleration by checking hexadecimal numbers with long FFF
	  sequence (combinatory explosion by the en_US words "f" and "ff").
	  Missing fix reported by Mathias Bauer.

	* affixmgr.cxx: fix the difference in the Unicode and non-Unicode
	  parts of cpdcase_check(). Bug report by Brett Wilson.

	* filemgr.*, affixmgr.cxx, csutil.*, hashmgr.*: warning messages now
	  contain line numbers (use --with-warnings configure option for
	  warning messages).

	* hunspell.cxx: analyze(): fix case conversion of stemming and
	  morphological analysis of UTF-8 encoded input. Reported by Ferenc Godó.

	* tools/hunspell.cxx: fix LaTeX Unicode support in filter mode.
	  Reported by Jan Seeger in SF.net Bug 2039990.

	* affixmgr.hxx: 0.5 or in 64 bit environment, 1 MB (virtual) memory
	  saving using only the requested size for sFlag and pFlag arrays.
	  Bug report by Brett Wilson.

	* affixmgr.cxx,tools/hunspell.cxx: get_version() returns with full
	  VERSION affix parameter instead of its first word. Fixes for
	  Hunspell's header. Some problems with Hunspell header reported in
	  SF.net Bug 2043080.

2008-07-15 Németh László <nemeth at OOo>:
	* affentry.cxx: fixes of the affix rule matching algorithm (affected
	  only the sk_SK dictionary from all OpenOffice.org dictionaries):
	- fix dot pattern + accented letters matching (in non Unicode encoding)
	- word-length conditions work again
	* tests/condition.*: extended test for the fix.

	* hashmgr.cxx: load multiword expressions: spaces may be parts
	  of the dictionary words again (but spaces also work as morphological
	  field separators: word word2 -> "word word2", word po:noun -> "word").
	* man/hunspell.4: updated manual

	* tools/hunspell.cxx: add iconv character conversion support to
	  stemming and morphological analysis

	* tools/hunspell.cxx: add /usr/share/myspell/dicts search path for
	  Ubuntu support

2008-07-09 Németh László <nemeth at OOo>:
        * affentry.cxx: fixes of the affix rule matching algorithm:
	- right ASCII character handling in bracket expression;
	- fault-tolerant nextchar() for bad rules.
          Problem with the en_GB dictionary and nextchar() with a detailed
	  code analysis reported by John Winters in SF.net Bug ID 2012753.
	* tests/condition.*: extended test for the fix.

	* hunspell/hunspell.*, parsers/*, tools/hunspell.cxx: fix compiler
	  warnings (deprecated const-free char consts)

	* win_api/hunspelldll.*: add hunspell_free_list(), the problem
	  reported by Laurier Mercer.

2008-06-30 Török László <torok_laszlo at users dot SF dot net>:
	* tests/affixmgr.cxx: fix morphological analysis: strcat() on
	  an uninitialized char array in suffix_check_morph(). 

2008-06-18 Németh László <nemeth at OOo>:
        * src/hunspell/affixmgr.cxx: fix GCC compiler warnings
          (comparisons with string literal results in unspecified behaviour).
          The problem reported by Ladislav Michnovič.

2008-06-17 Németh László <nemeth at OOo>:
        * src/hunspell/{hunspell.cxx,hunspell.h}: add free_list() to the C and
          C++ interface to deallocate suggestion lists. The problem
          reported by Laurie Mercer and Christophe Paris.
        * csutil.cxx: fix freelist() to deallocate non-NULL list, when n = 0.
        * tools/{analyze,example,chmorph,hunspell}.cxx: use free_list().

        * tools/hunspell.cxx: fix only --with-readline compiling problem.
          Reported by Volkov Peter in SF.net Bug 1995842.
          
        * man/hunspell.3,hunspell.hxx: fix analyze and generate examples in
          the manual and comments (using char*** parameter instead of char**).
        
        * tools/example.cxx: fix suggestion example.

2008-06-17 Németh László <nemeth at OOo>:
        * affentry.cxx: fix the new affix rule matching algorithm of
          Hunspell 1.2. Arabic dictionary problem reported by Khaled Hosny
          in SF.net Bug ID 1975530. Mohamed Kebdani also sent a
          prepared test data.
        * tests/{1975530,condition*}: tests for the fix

2008-06-13 Ingo H. de Boer <idb_winshell at SF.net>:
        * src/hunspell/{affixmgr.cxx,hunspell.cxx}: add missing type 
          cast to strstr() calls for VC8 compatibility.

2008-06-13 Németh László <nemeth at OOo>:
        * suggestmgr.cxx: add also part1-part2 suggestion with dash
          for bad part1part2 word forms, suggested by Ruud Baars.
          For example, now suggestion of "parttime": "part time"
          and "part-time".          
          NOTE: this feature will work only when the TRY definition
          contains "-" or the letter "a".

        * hunspell.cxx: new XML API in spell() and suggest() (see hunspell(3)).

        * src/hunspell/*: fixes for OpenOffice.org build environment.

        * man/{hunspell.3,hzip.1,hunzip.1}: add new manual pages for
          Hunspell programming API and dictionary compression and
          encryption utilities.
          
        * src/hunspell/*: handle failed mystrdup() calls and other potential
          insufficient memory problems. The problem reported by Elio Voci
          in OpenOffice.org Issue 90604 and others.

        * src/tools/affixmgr.cxx: restore original behaviour of get_wordchars
          without conditional code. Problem reported by Ingo H. de Boer
          in SF.net Bug 1763105.

        * win_api/hunspelldll.h: put_word() renamed to add() in the (old)
          Windows DLL API bug reported in SF.net Bug 1943236. Also reported
          by Bartkó Zoltán.
  
        * tools/hunspell.cxx: fix chench() for environments without
          native language support (ENABLE_NLS 0 in config.h),
          PHP system_exec() bug reported by Michel Weimerskirch in
          SF.net Bug 1951087.
        
        * hunspell.cxx, affixmgr.cxx: remove "result" from the
          (result && *result) conditions, when "result" is a static variable.
          The problem and a possible solution reported by Ladislav Michnovič.

        * affixmgr.cxx: parse_affix(): print line instead of NULL in
          the warning message, when affix class header is bad.
          The problem reported by Ladislav Michnovič.

2008-06-01 Christian Lohmaier <cloph at OOo>
        * configure.ac: patch to fix --with-readline, --with-ui logic.
          Reported in the SF.net Bug 981395.

2008-05-04: Volkov Peter <volkov_peter at users sourceforge net>
        * configure.ac: fix LibTool 2.22 incompatibility by removing
          unused LT_* macros. Report and patch in SF.net Bug 1957383.
          The problem reported and fixed by Ladislav Michnovič, too.

2008-04-23: Ladislav Michnovič <lmichnovic at suse cz>
        * hunspell.pc.in: fix wrongly set directories.

2008-04-12 Németh László <nemeth at OOo>:
        * src/tools/hunspell.cxx: 
        - Multilingual spell checking and special dictionary support with -d.
          Multilingual spell checking suggested by Khaled Hosny (SF.net
          Bug 1834280). Example for the new syntax:
          
          -d en_US,en_geo,en_med,de_DE,de_med
          
          en_US and de_DE are base dictionaries, and en_geo, en_med, de_med
          are special dictionaries (dictionaries without affix file).
          Special dictionaries are optional extension of the base dictionaries.
          There is no explicit naming convention for special dictionaries,
          only the ".dic" extension: dictionaries without affix file will
          be an extension of the preceding base dictionary. First dictionary
          in -d parameter must have an affix file (it must be a base
          dictionary).

        - new options for debugging, morphological analysis and stemming:
          -m: morphological analysis or flag debug mode (without affix
          rule data it signs the flag of the affix rules)
          -s: stemming mode
          -D: show also available dictionaries and search path
              (suggested by Aaron Digulla in SF.net Bug 1902133)

        - add missing refresh() to print bad words before the slower suggestion
          search in UI (better user experience)
          
        - fix tabulator problems (reported by ugli-kid-joe AT sf DOT net)

        - fix different encoding of dic and input, and suggestions

        - add per mille sign to LANG hu_HU section.

        - rewrite program messages. Concatenating multiple printfs for
          easier translation suggested by András Tímár and Gábor Kelemen.

        * src/hunspell/csutil.cxx: set static encds variable. Patch by
          Rene Engerhald. SF.net Bug 1896207 and 1939988.
        
        * src/hunspell/w_char.hxx,csutil.hxx: reorganizing
          w_char typedef and HENTRY_DATA, HENTRY_FIND consts

        * src/hunspell/hunzip.cxx: fopen(): using rb options instead of r (fix
          for Windows)
          
        * src/tools/affixmgr.cxx: restore original behaviour of get_wordchars
          in an #ifdef WINSHELL section. Problem reported by Ingo H. de Boer
          in SF.net Bug 1763105.

        * src/tools/chmorph.cxx: remove the experimental modifications

        * src/tools/hzip.c: fopen(): using wb options instead of w (fix
          for Windows)

        * src/tools/hunzip.cxx: add missing MOZILLA_CLIENT. Reported
          by Ryan VanderMeulen.

        * man/*, man/hu/*: updated manual

        * man/hunspell.4: fix formatting problem (missing header)
        
        * tools/makealias: now works with the extra data fields.

        * phonet.cxx: use HASHSIZE const

        * tests/rep.aff: fix REP count
        
        * src/win_api/Makefile.cygwin, README: native Windows compilation
          in Cygwin environment without cygwin1.dll dependency (see README
          for compiling instructions).

2008-04-08 Roland Smith <rsmith AT xs4all DOT nl>:
        * src/parsers/latexparser.cxx: fix PATTERN_LEN for AMD64 and
          other platforms with different struct padding (SF.net Bug 1937995).

2008-04-03 Kelemen Gábor <kelemeng AT gnome DOT hu>:
        * po/POTFILES.in: fix path of the source file

        * po/Makevars: add --from-code=UTF-8 gettext option 
        
        * hunspell.cxx: add comments for shortkey translation

2008-02-04 Flemming Frandsen <flfr AT stibo DOT com>
        * src/hunspell.h: fix Windows DLL support
        - this patch also reported by Zoltán Bartkó.

2008-01-30 Mark McClain <marc_mcclain AT users DOT sf DOT net>
        * src/hunspell.cxx: stem(): fix function call side effect
          for PPC platform (SF.net Bug 1882105).

2008-01-30 Németh László <nemeth at OOo>:
        * hunspell.cxx, csutil.cxx, hunspelldll.c: fix
          SF.et Bug 1851246, patch also by Ingo H. de Boer.

        * hunspell.h: fix SF.net Bug 1856572 (C prototype problem),
          patch by Mark de Does.

        * hunspell.pc.in: fix SF.net Bug 1857450 wrong prefix, reported
          by Mark de Does.

        * hunspell.pc.in: reset numbering scheme: libhunspell-1.2.
          Fix SF.net Bug 1857512 reported by Mark de Does,
          also by Rene Engelhard.

        * csutil.cxx: patches for ARM platform, signed_chars.dpatch
          by Rene Engelhard and arm_structure_alignment.dpatch by
          Steinar H. Gunderson <sesse@debian.org>

        * hunzip.*, hzip.c: new hzip compression format

        * tools/affixcompressor: affix compressor utility (similar to
          munch, but it generates affix table automatically), works
          with million-words dictionaries of agglutinative languages.

        * README: fix problems reported by Pham Ngoc Khanh.

        * csutil.cxx, suggestmgr: Warning-free in OOo builds.

        * hashmgr.*, csutil.*: fix protected memory problems with
          stored pointers on several not x86 platforms by
          store_pointer(), get_stored_pointer().

        * src/tools/hunspell.cxx: fix iconv support on Solaris platform.

        * tests/IJ.good: add missing test file

        * csutil.cxx: fix const char* related errors. Compiling bug
          with Visual C++ reported by Ryan VanderMeulen and Ingo H. de Boer.

2008-01-03 Caolan McNamara <cmc at OO.o>:
        * csutil.cxx: SF.net Bug 1863239, notrailingcomma patch and
          optimization of get_currect_cs().

2007-11-01 Németh László <nemeth at OOo>:
        * hunspell/*: new feature: morphological generation,
          also fix experimental morphological analysis and stemming.
        - new API functions and improved API:
            - analyze(word): (instead of morph()) morphological analysis
            - stem(word): stemming
            - stem(list): stemming based on the result of an analysis
            - generate(word, word2): morphological generation 
            - generate(word, list): morphological generation 
            - add(word): add word to the run-time dictionary (renamed put_word())
            - add_with_affix(word, word2): (renamed put_word_pattern()):
              add word to the run-time dictionary with affix flags of the
              second parameter: all affixed forms of the user words will be
              recognised by the spell checker. Especially useful for
              agglutinative languages.
	    - remove(word): remove word from the run-time dictionary (not
	      implemented)
        - see manual and hunspell/hunspell.hxx header and tests/morph.*
        * tests/morph.*: test data, example for morphological analysis,
          stemming and generation

        * tools/analyze, tools/chmorph: extended and new demo applications:
        - analyze (originally hunmorph): analyses and stems input words,
          generates word forms from input word pairs.
        - chmorph: morphological transformation filter

        * configure.ac, hunspell/makefile.am: set library version number.
          Bug reported by Rene Engelhard.

        * affentry.cxx, affixmgr.cxx: new pattern matching algorithm in
          condition checking of affix rules instead of the Dömölki-algorithm:
        - Unlimited condition length (instead of max. 8 characters).
        - Less memory consumption, especially useful for affix rich languages:
          5,4 MB memory savings with hu_HU dictionary.
        - Speed change depends from dictionaries and CPU caches: English spell
          checking is 4% faster on Linux words with en_US dictionary, Hungarian
          spell checking is 25% slower on most frequent words of Hungarian
          Webcorpus.

        * tests/sug.*, sugutf.*: updated test data (use "a" and "lot"
          dictionary items instead of "a lot".)

        * src/hunspell/hunspell.cxx: free(csconv) instead of delete csconv.
          Report and patch by Sylvain Paschein in Mozilla Issue 398268.

        * suggestmgr.cxx, tools/hunspell.cxx: bad spelling of "misspelled".
          Ubuntu Bug #134792, patch by Malcolm Parsons.

        * tests/base_utf.*: use Unicode apostrophe instead of 8-bit one.
        
        * hunspell.cxx, hashmgr.cxx: add(): use HashMgr::add()

2007-10-25 Pavel Janík <pjanik at OOo>:
	* hunspell/csutil.cxx: Fix type cast warnings on 64bit Linux in
	  printing of character positions in u8_u16(). OOo issue 82984.

2007-09-05 Németh László <nemeth at OOo>:
	* win_api/Hunspell.vproj, parsers/testparser.cxx,textparser.hxx:
	  warning fixes and removing unnecessary Windows project file.
	  Reported by Ingo H. de Boer.

	* hashmgr.*, {affixmgr,suggestmgr}.cxx: optimized data structure
	  for variable-count fields (only "ph" transliteration field in
	  this version, see next item). Also less memory consumption:
	  -13% (0.75 MB) with en_US dictionary, -6% (1 MB) with hu_HU.

	* suggestmgr.cxx: dictionary based phonetic suggestion for special
	  or foreign pronounciation (see also rule-based PHONE in manual).
	  Usage: tab separated field in dictionary lines, started with "ph:".
	  The field contains a phonetic transliteration of the word:

Marseille	ph:maarsayl
	* tests/phone.*: test data for dictionary and rule based phonetic
	  suggestion.

	* hunspell.cxx: fix potential bad memory access in allcap word
	  capitalization in suggest() (bug of previous version).

	* hunspell.cxx, atypes.hxx: set correct limit for UTF-8 encoded
	  input words (256 byte).

	* suggestmgr.cxx: improved REP suggestions with spaces: it works
	  without dictionary modification.
	  OOo issue 80147, reported by Davide Prina.
	* tests/rep.*: new test data: higher priority for "alot" -> "a lot",
	  and Italian suggestion "un'alunno" -> "un alunno".

	* affixmgr.cxx: fix Unicode ngram suggestions in expand_rootword().
	  (Suggestions with bad affixes.)
	  Bug reported by Vitaly Piryatinksy <piv dot v dot vitaly at gmail>.
	* tests/ngram_utf_fix.*: test based on Vitaly Piryatinksy's data.

	* suggestmgr.cxx: fix twowords() for last UTF-8 multibyte character.
	  (conditional jump or move depended on uninitialised value).

2007-08-29 Ingo H. de Boer <idb_winshell at SF.net>:
	* win_api/{hunspell,libhunspell, testparser}.vcproj: new project
	  files for the library and the executables.
	
	* Hunspell.rc, Hunspell.sln, config.h: updated versions.
	  Version number problem also reported by András Tímár.

2007-08-27 Németh László <nemeth at OOo>:
	* suggestmgr.hxx: put fixed version. Bug report by Ingo H. de Boer.

	* suggestmgr.cxx: remove variable-length local character array
	  reported by Ingo H. de Boer.

2007-08-27 Németh László <nemeth at OOo>:
	* suggestmgr.hxx: change bad time_t to clock_t in header, too.
	  Bug reports or patches by Ingo H. de Boer under SF.net
	  Bug ID 1781951, János Mohácsi and Gábor Zahemszky, András Tímár,
	  OMax3 at SF.net under SF.net Bug ID 1781592.

	* phonet.*: change variable-length local character array to
	  portable fixed size character array. Problem reported by
	  Ingo H. de Boer under SF.net Bug ID 1781951 and
	  Ryan VanderMeulen.

	* suggestmgr.cxx: remove debug message (also by
	  Ingo H. de Boer).

2007-08-26 Ingo H. de Boer <idb_winshell at SF.net>:
	* win_api/Hunspell.vcproj: updated version (with phonet.*)

2007-08-23 Németh László <nemeth at OOo>:
	* phonet.{c,h}xx, suggestmgr.cxx: PHONE parameter:
          pronounciation based suggestion using Björn Jacke's original Aspell
          phonetic transcription algorithm (http://aspell.net), relicensed
          under GPL/LGPL/MPL tri-license with the permission of the author.
          Usage: see manual.

	* affixmgr,suggestmgr.cxx: add KEY parameter for keyboard and
	  input method error related suggestions.
	  Example: KEY qwertyuiop|asdfghjkl|zxcvbnm

	* man/hunspell.4: description about PHONE and KEY suggestion parameters.

	* suggestmgr.cxx: enhancements for better suggestions:
	- Set ngram suggestions for badchar-type errors
	  and only two word and compound word suggestions, too.
        - Separate not compound and compound word
	  suggestions for MAP suggestion, too.
	- Double swap suggestions for short words.
	  For example: ahev -> have, hwihc -> which.
        - Better time limits using clock() instead of time()
          (tenths of a second resolution instead of second ones).
        - leftcommonsubstring() weigth function.

	* htype.hxx, hashmgr.cxx: blen (byte length) and clen (character
	  length) fields instead of wlen
	  
	* affixmgr.cxx: fix get_syllable() for bad Unicode inputs.
	
	* tests/suggestiontest/*: test environment for suggestions

2007-08-07 Martijn Wargers:
	* csutil.cxx: fix Mingw build error associated with ToUpper() call.
	  Report and patch in Mozilla Issue 391447.

2007-08-07 Robert Longson:
	* atypes.cxx: use empty inline function HUNSPELL_WARNING instead of
	  variadic macros to switch of Hunspell warnings.
	  Reported by Gavin Sharp in Mozilla Issue 391147.

2007-08-05 Ginn Chen:
	* hashmgr.cxx: Hunspell failed to compile on OpenSolaris (use stdio
          instead of csdio). Report and patch in Mozilla Issue 391040.

2007-07-25 Németh László <nemeth at OOo>:
	* parsers/*.cxx: Hunspell executable recognises and accepts URLs,
	  e-mail addresses, directory paths, reported by Jeppe Bundsgaard.
	* src/tools/hunspell.cxx: --check-url: new option of Hunspell program.
	  Use --check-url, if you want check URLs, e-mail addresses and paths.

	* parsers/textparser.cxx: strip colon at end of words for Finnish
	  and Swedish (colon may be in words in Finnish and Swedish).
	  Problem reported by Lars Aronsson.
	* tests/colons_in_words.*: test data

	* tests/digits_in_words.*: example for using digits in words
 	  (eg. 1-jährig, 112-jährig etc. in German), reported by Lars Aronsson.

	* hashmgr.cxx: Hunspell accepts allcaps forms of mixed case
	  words of personal dictionaries (+allcaps custom dictionary words with
	  allcaps affixes).
	  Sf.net Bug ID 1755272, reported by Ellis Miller.

	* hashmgr.cxx: fix small memory leaks with alias compressed
	  dictionaries (free flag vectors of affixed personal dictionary words
	  and flag vectors of hidden capitalized forms of mixed case and
	  allcaps words).

	* affixmgr.cxx: fix COMPOUNDRULE checking with affixed compounds.
	  Sf.net Bug ID 1706659, reported by Björn Jacke. Also fixing for
	  OOo Issue 76067 (crash-like deceleration for hexadecimal numbers
	  with long FFFFFF sequence using en_US dictionary).

	* tools/hunspell.cxx: add missing return to save_privdic().
	
	* man/hunspell.4: add information about affixation of personal words:
	"Personal dictionaries are simple word lists, but with optional
         word patterns for affixation, separated by a slash:

         foo
         Foo/Simpson

         In this example, "foo" and "Foo" are personal words, plus Foo
         will be recognised with affixes of Simpson (Foo's etc.)."

2007-07-18 Németh László <nemeth at OOo>:
	* src/win_api/: add missing resource files, reported by Ingo H. de Boer.

2007-07-16 Németh László <nemeth at OOo>:
	* hunspell.cxx: fix dot removing from UTF-8 encoded words in cleanword2()
	  (Capitalised words with dots, as "Something." were not recognised
	  using Unicode encoded dictionaries.)
	* tests/{base.*,base_utf.*}: extended and new test files for
	  dot removing and Unicode support.
	
	* tools/hunspell.cxx: fix Cygwin, OS X compatibility using platform
	  specifics iconv() header by ICONV_CONST macro of Autoconf.
	  Sf.net Bug ID 1746030, reported by Mike Tian-Jian Jiang.
	  Sf.net Bug ID 1753939, reported by Jean-Christophe Helary.

	* tools/hunspell.cxx: fix missing global path setting with -d option.

	* tests/test.sh: fix broken Valgrind checking (missing warnings
	  with VALGRIND=memcheck make check).

	* csutil.cxx: fix condition in u8_u16() to avoid invalid read
	  of not null-terminated character arrays (detected by Valgrind
	  in Hunspell executable: associated with 8-bit character table
	  conversion in tools/hunspell.cxx).

	* csutil.cxx: free_utf_tbl(): use utf_tbl_count-- instead of utf_tbl--.
	  Memory leak in Hunspell executable detected by Valgrind.
	  
	* hashmgr.cxx: add missing free_utf_tbl(), memory leak in Hunspell
	  executable detected by Valgrind.

	* hashmgr.cxx: load_tables(): fix memory error in spec. capitalization.
	  Use sizeof(unsigned short) instead of bad sizeof(unsigned short*).
	  Invalid memory read detected by Valgrind.

	* hashmgr.cxx: add_word(): fix memory error in spec. capitalization.
	  Update also affix array length of capitalized homonyms. Invalid
	  memory read detected by Valgrind.

	* hunspell.cxx: suggest(): fix invalid memory write and leak.
	  Bad realloc() and missing free() detected by Valgrind associated
          with suggestions for "something.The" type spelling errors.

	* {dictmgr,csutil,hashmgr,suggestmgr}.cxx: check memory allocation.
	  Sf.net Bug ID 1747507, based on the patch by Jose da Silva.

2007-07-13 Ingo H. de Boer <idb_winshell at SF.net>:
	* atypes.cxx: fix Visual C compatibility: Using
	"HUNSPELL_WARNING(a,b,...} {}" macro instead of empty "X(a,b...)".
	
	* hunspell.cxx: changes for Windows API.	
	* win_api/Hunspell.*: new resource files
	* win_api/hunspelldll.*: set optional Hunspell and Borland spec. codes
	Sf.net Bug ID 1753802, patch by Ingo H. de Boer.
	See also Sf.net Bug ID 1751406, patch by Mike Tian-Jian Jiang.

2007-07-09 Caolan McNamara <cmc at OO.o>:
	* {hunspell,hashmgr,affentry}.cxx: fix warnings of Coverity program
	  analyzer. Sf.net Bug ID, 1750219.

2007-07-06 Németh László <nemeth at OOo>:
	* atypes.cxx: warning-free swallowing of conditional warning messages
	  and their parameters using empty HUNSPELL_WARNING(a,b...) macro.
	* {affixmgr,atypes,csutil}.cxx: fix unused variable warnings
	  using WARNVAR macro for conditionally named variables.
	* hashmgr.cxx: fix unused variable warning in add_word() by cond. name
	* hunspell.cxx: fix shadowed declaration of captype var. in suggest()

2006-06-29 Caolan McNamara <cmc at OO.o>: 
	* hunspell.cxx: patch to fix possible memory leak in analyze() of
	  experimental morphological analyzer code. Sf.net Bug ID 1745263.

2007-06-29 Németh László <nemeth at OOo>:
improvements:
	* src/hunspell/hunspell.cxx: check bad capitalisation of Dutch letter IJ.
	- Sf.net Feature Request ID 1640985, reported by Frank Fesevur.
	- Solution: FORBIDDENWORD for capitalised word forms (need
	  an improved Dutch dictionary with forbidden words: Ijs/*, etc.).
	* tests/IJ.*: test data and example.

	* hashmgr.cxx, hunspell.cxx: check capitalization of special word forms
	- words with mixed capitalisation: OpenOffice.org - OPENOFFICE.ORG
	  Sf.net Bug ID 1398550, reported by Dmitri Gabinski.
	- allcap words and suffixes: UNICEF's - UNICEF'S
	- prefixes with apostrophe and proper names: Sant'Elia - SANT'ELIA
	  For Catalan, French and Italian languages.
	  Reported by Davide Prina in OOo Issue 68568.
	* tests/allcaps*: tests for OPENOFFICE.ORG, UNICEF'S capitalization.
	* tests/i68568*: tests for SANT'ELIA capitalization.

	* hunspell/hunspell.cxx: suggestion for missing sentence spacing:
	  something.The -> something. The

	* tools/hunspell.cxx: multiple character encoding support
	- -i option: custom input encoding
	  Sf.net Bug ID 1610866, reported by Thobias Schlemmer.
	  Sf.net Bug ID 1633413, reported by Dan Kenigsberg.
	  See also hunspell-1.1.5-encoding.patch of Fedora from Caolan Mc'Namara.
	* tests/*.test: add input encodings

	* tools/hunspell.cxx: use locale data for default dictionary names.
	  Sf.net Bug ID 1731630, report and patch from Bernhard Rosenkraenzer,
	  See also hunspell-1.1.4-defaultdictfromlang.patch of Fedora Linux
	  from Caolan McNamara.

	* tools/hunspell.cxx: fix 8-bit tokenization (letters without
	  casing, like ß or Hebrew characters now are handled well) 

	* tools/hunspell.cxx: dictionary search path
	- DICPATH environmental variable
	- -D option: show directory path of loaded dictionary
	- automatic detection of OpenOffice.org directories

fixes:
	* affixmgr.cxx: fault-tolerant patch for REP and other affix
	  table data problems. Problem with Hunspell and en_GB dictionary
	  reported by Thomas Lange in OOo Issue 76098 and
	  Stephan Bergmann in OOo Issue 76100.
	  Sf.net Bug ID 1698240, reported by Ingo H. de Boer.
	  
	* csutil.cxx: fix mkallcap_utf() for allcaps suggestion in UTF-8.

	* suggestmgr.cxx: fix bad movechar_utf() (missing strlen()).

	* hunspell.cxx: fix bad degree sign detection in Unicode
	  hu_HU environment.

	* hunspell/hunspell.cxx: free allocated memory of csconv in
	  ported Mozilla code.
	- Mozilla Bugzilla Bug 383564, report and Mozilla MySpell patch
	  by Andrew Geul. Reported by Ryan VanderMeulen for Hunspell.

	* suggestmgr.cxx: fix minor difference in Unicode suggestion
	  (ngram suggestion of allcaps words in Unicode).

	* hashmgr.cxx: close file handle after errors.
	  Sf.net Bug ID 1736286, reported by John Nisly.
 
	* configure.ac: syntax error (shell variable with spaces).
	  Sf.net Bug ID 1731625, reported by Bernhard Rosenkraenzer.

	* hunspell.cxx: check_word(): fix bad usage of info pointer.

	* hashmgr.cxx: fix de_DE related bug (accept words with leading dash).
	  Sf.net Bug ID 1696134, reported by Björn Jacke.

	* suggestmgr.cxx, tests/1695964.*: fix NEEDAFFIX homonym suggestion.
	  Sf.net Bug ID 1695964, reported by Björn Jacke.

	* tests/1463589*: capitalized ngram suggestion test data for
	  Sf.net Bug ID 1463589, reported by Frederik Fouvry.

	* csutil.cxx, affixmgr.cxx: fix possible heap error with
	  multiple instances of utf_tbl.
	  Sf.net Bug ID 1693875, reported by Ingo H. de Boer.

	* affixmgr.cxx, suggestmgr.cxx, license.hunspell: convert to ASCII.
	  Locale dependent compiling problems. Sf.net Bug ID 1694379, reported
	  by Mike Tian-Jian Jiang. OOo Issue 78018 reported by Thomas Lange.

	* tests/test.sh: compatibility issues
	- fix Valgrind support (check shared library instead of shell wrapper)
	- remove deprecated "tail +2" syntax
	- set 8-bit locale for testing (LC_ALL=C)

	* hunspell.hxx: remove license.* and config.h dependencies.
	- hunspell-1.1.5-badheader.patch from Caolan McNamara <cmc at OO.o>

2007-03-21 Németh László <nemeth at OOo>:
        * tools/Makefile.am, munch.h, unmunch.h: add missing munch.h and unmunch.h
          Reported by Björn Jacke and Khaled Hosny (sf.net Bug ID 1684144)
        * hunspell/hunspell.cxx, hunspell.hxx: fix --with-ui compliling error (add get_csconv())
          Reported by Khaled Hosny (sf.net Bug ID 1685010)

2007-03-19 Németh László <nemeth at OOo>:
        * csutil.cxx, hunspell/hunspell.cxx: Unicode non BMP area (>65K character range) support
          (except conditional patterns and strip characters of affix rules)
        * tests/utf8_nonbmp*: test data

        * src/hunspell/*: add Mozilla patches from David Einstein
        - run-time generated 8-bit character tables
        - other Mozilla related changes (see Mozilla Bugzilla Bug 319778)

        * csutil.cxx, affixmgr.cxx, hashmgr.cxx: optimized version of IGNORE feature
        - IGNORE works with affixes (except strip characters and affix conditions)
        * tests/ignore*: test data with latin characters
        * tests/ignoreutf*: Unicode test data with Arabic diacritics (Harakat)

        * src/hunspell/suggestmgr.cxx: new edit distance suggestion methods
        - capitalization: nasa -> NASA
        - long swap: permenant -> permanent
        - long mov.: Ghandi -> Gandhi
        - double two characters: vacacation -> vacation
        * tests/sug.*: test data

        * src/hunspell/affixmgr.cxx: space in REP strings (alot -> a lot)
          Note: Underline character signs the space in REP strings: REP alot a_lot, and
          put the expression with space ("a lot") into the dic file (see tests/sug).

        * hashmgr.cxx, affixmgr.cxx: ignore Unicode byte order mark (BOM sequence)
        * tests/utf8_bom*: test data

        * hunspell/*.cxx: OOo Issue 68903 - Make lingucomponent warning-free on wntmsci10
        - fix Hunspell related warning messages on Windows platform (except some assignment
          within conditional expressions). Reported and started by Stephan Bergmann.

        * hunspell/affixmgr.cxx: fix OOo Issue 66683 - hunspell dmake debug=x fails
        - Reported by Stephan Bergmann.

        * src/hunspell/hunspell.[ch]xx: thread safe API for Hunspell executable
          (removing prev*() functions, new spell(word, info, root) function)

        * configure.ac, src/hunspell/*: HUNSPELL_EXPERIMENTAL code
          --with-experimental configure option (conditional compiling of morphological analyser
          and stemmer tools)

        * configure.ac, src/hunspell/*: conditional Hunspell warning messages
          --with-warnings configure option

        * affixmgr.cxx: new, optimized parsing functions

        * affixmgr.cxx: fix homonym handling for German dictionary project,
          reported by Björn Jacke (sf.net Bug ID 1592880).
        * tests/1592880.*: test data by Björn Jacke

        * src/hunspell/affixmgr.cxx: fix CIRCUMFIX suggestion
          Bug reported by Erdal Ronahi.

        * hunspell.cxx: reverse root word output (complex prefixes)
          Bug reported by Munzir Taha.

        * tools/hunspell.cxx: fix Emacs compatibility, patch by marot at sf.net
        - no % command in PIPE mode (SourceForge BugTracker 1595607)
        - fix HUNSPELL_VERSION string

        * suggestmgr.[hc]xx: rename check() functions to checkword() (OOo Issue 68296)
          adopt MySpell patch by Bryan Petty (tierra at ooo) for Hunspell source

        * csutil.cxx, munch.c, unmunch.c: adopt relevant parts of the MinGW patch
          (OOo Issue 42504) by tonal at ooo

        * affigmgr.cxx: remove double candidate_check() call, reported by Bram Moolenaar

        * tests/test.sh: add LC_ALL="C" environment. Locale dependency of make check
          reported by Gentoo project.

        * src/tools/hunspell.cxx: UTF-8 highlighting fix for console UI
          (not solved: breaking long UTF-8 lines)

        * src/tools/unmunch.c: fix bad generation if strip is shorter than condition,
          reported by Davide Prina
        * src/tools/unmunch.h: increase 5000 -> 500000

        * src/tools/hunspell.cxx: fix memory error in suggestion (uninitialized parameter),
          Bug also reported by Björn Jacke in SourceForge Bug 1469957

        * csutil.cxx, affixmgr.cxx: fix Caolan McNamara's patch for non OOo environment

2006-11-11 Caolan McNamara <cmc at OO.o>: 
        * csutil.cxx, affixmgr.cxx: UTF-8 table patch (OOo Issue 71449)
          Description: memory optimization (OOo doesn't use the large UTF-8 table).

        * Makefile.am: shared library patch (Sourceforge ID 1610756)

        * hunspell.h, hunspell.cxx: C API patch (Sourceforge ID 1616353)

        * hunspell.pc: pkgconfig patch (Sourceforge ID 1639128)

2006-10-17 Ryan Jones <at Mozilla Bugzilla>:
        * affixmgr.cxx: missing fclose(affixlst) calls
          Reported by <gavins at ooo> in OOo Issue 70408

2007-07-11 Taha Zerrouki <taha at gawab>: 
        * affixmgr.cxx, hunspell.cxx, hashmgr.cxx, csutil.cxx: IGNORE feature to remove
          optional Arabic and other characters from input and dictionary words.
        * src/hunspell/langnum.hxx: add Arabic language number, lang_ar=96
        * tests/ignore.*: test data

2006-05-28 Miha Vrhovnik <mvrhov at users.sourceforge>:
        * src/win_api/*: C API for Windows DLLs
        - also Delphi text editor example (see on Hunspell Sourceforge page)

2006-05-18 Kevin F. Quinn <kevquinn at gentoo>:
        * utf_info.cxx: struct -> static struct
          Shared library patch also developed by Gentoo developers (Hanno Meyer-Thurow,
          Diego Pettenò, Kevin F. Quinn)

2006-02-02 Németh László <nemethl@gyorsposta.hu>:
        * src/hunspell/hunspell.cxx: suggest(): replace "fooBar" -> "foo bar" suggestions
          with "fooBar" ->"foo Bar" (missing spaces are typical OCR bugs).
          Bug reported by stowrob at OOo in Issue 58202.
        * src/hunspell/suggestmgr.cxx: twowords(): permit 1-character words.
          (restore MySpell's original behavior). Here: "aNew" -> "a New".
        * tests/i58202.*: test data

        * src/parsers/textparser.cxx: fix Unicode tokenization in is_wordchar()
          (extra word characters (WORDCHARS) didn't work on big-endian platforms).
          
        * src/hunspell/{csutil,affixmgr}.cxx: inline isSubset(), isRevSubset():
          little speed optimalization for languages with rich morphology.

        * src/tools/hunspell.cxx: fix bad --with-ui and --with-readline compiling
          when (N)curses is missing. Reported by Daniel Naber.

2006-01-19 Tor Lillqvist <tml@novell.com>
        * src/hunspell/csutil.cxx: mystrsep(): fix locale-dependent isspace() tokenization

2006-01-06 András Tímár <timar@fsf.hu>
        * src/hunspell/{hashmgr.hxx,hunspell.cxx}: fix Visual C++ compiling errors

2006-01-05 Németh László <nemethl@gyorsposta.hu>:
        * COPYING: set GPL/LGPL/MPL tri-license for Mozilla integration.
          Rationale: Mozilla source code contains an old MySpell version
          with GPL/LGPL/MPL tri-license. (MPL license is a copyleft license, similar
          to the LGPL, but it acts on file level.)
        * COPYING.LGPL: GNU Lesser General Public License 2.1 (LGPL)
        * COPYING.MPL: Mozilla Public License 1.1 (MPL)
        * license.hunspell, src/hunspell/license.hunspell: GPL/LGPL/MPL tri-license

        * src/hunspell/{affixmgr,hashmgr}.*: AF, AM alias definitions in affix file:
          compression of flag sets and morphological descriptions (see manual,
          and tests/alias* test files).
          Rationale: Alias compression is also good for loading time and memory
          efficiency, not only smaller resources.
        * src/tools/makealias: alias compression utility
          (usage: ./makealias file.dic file.aff)
        * tests/alias{,2,3}: AF, AM tests
        * man/hunspell.4: add AF, AM documentation
        * src/hunspell/affentry.cxx, atypes.hxx: add new opts bits (aeALIASM, aeALIASF)

        * tools/hunspell, src/parser/*, src/hunspell/*: Hunspell program
          tokenizes Unicode texts (only with UTF-8 encoded dictionaries).
          Missing Unicode tokenization reported by Björn Jacke, Egmont Koblinger, 
          Jess Body and others.
          Note: Curses interactive interface hasn't worked perfectly yet.
        * tests/*.tests: remove -1 parameters of Hunspell
        * tests/*.{good,wrong}: remove tabulators

        * src/hunspell/{hunspell,affixmgr}.cxx: BREAK option: break words at
          specified break points and checking word parts separately (see manual).
          Note: COMPOUNDRULE is better (or will be better) for handling dashes and
          other compound joining characters or character strings. Use BREAK, if you
          want check words with dashes or other joining characters and there is no time
          or possibility to describe precise compound rules with COMPOUNDRULE.
        * tests/break.*: BREAK example.

        * src/hunspell/{affixmgr,hunspell}.cxx: add CHECKSHARPS declaration instead
          of LANG de_DE definitions to handle German sharp s in both spelling and
          suggestion.
        * src/hunspell/hunspell.cxx: With CHECKSHARPS, uppercase words are valid
          with both lower sharp s (it's is optional for names in German legal texts)
          and SS (MÜßIG, MÜSSIG). Missing lower sharp s form reported by Björn Jacke. 
        * src/hunspell/hunspell.cxx: KEEPCASE flag on a sharp s word has a special
          meaning with CHECKSHARPS declaration: KEEPCASE permits capitalisation and SS upper 
          casing of a sharp s word (Müßig and MÜSSIG), but forbids the upper cased form 
          with lower sharp s character(s): *MÜßIG.
        * tests/germancompounding*: add CHECKSHARPS, remove LANG
        * tests/checksharps*: add CHECKSHARPS and KEEPCASE, remove LANG

        * src/hunspell/hunspell.cxx: improved suggestions:
        - suggestions for pressed Caps Lock problems: macARONI -> macaroni
        - suggestions for long shift problems: MAcaroni -> Macaroni, macaroni
        - suggestions for KEEPCASE words: KG -> kg
        * src/hunspell/csutil.cxx: fix mystrrep() function:
        - suggestions for lower sharp s in uppercased words: MÜßIG -> MÜSSIG
        * tests/checksharps{,utf}.sug: add tests for mystrrep() fix

        * src/hunspell/hashmgr.cxx: Now dictionary words can contain slashes 
          with the "\/" syntax. Problem reported by Frederik Fouvry.

        * src/hunspell/hunspell.cxx: fix bad duplicate filter in suggest().
          (Suggesting some capitalised compound words caused program crash
[--snip--]
