## Appendix F ChangeLog

### Changes from 0.60.5 to 0.60.6 (April 16, 2007)

- Compile fixes for Gcc 4.3.
- Updated to Libtool 2.2.2 and Automake 1.10.1
- Minor tweak to suggestion code which improved suggestion results in certain cases.
- Always line buffer stdout and stderr in the Aspell utility when there is the potential for it to be used interactively through a pipe.
- Removed debug output in `aspell munch-list`.
- Other minor updates and bug fixes.

### Changes from 0.60.4 to 0.60.5 (December 18, 2006)

- Compile fix for gcc 4.1
- Updated to Gettext 0.16.1, Libtool 1.5.22, Automake 1.10, Autoconf 2.61
- Documentation improvements, including an updated `man` page.
- Complain if more than one file is specified when checking files using the `aspell check` command, rather than ignoring the other files.
- Large number of bug fixes.

### Changes from 0.60.3 to 0.60.4 (October 19, 2005)

- Fixed a bug that caused Aspell to crash when checking certain Russian words, this bug likely affected other languages as well.
- Updated to Gettext 0.14.5 which is required for AMD64, also updated to to Libtool 1.5.20.
- Fixed an alignment bug which caused mmap to always fail when reading in dictionaries.
- Added note about how `make clean` will remove the HTML manuals.
- Added manual page for prezip-bin and enhanced word-list-compress manual page thanks to the work of Jose Da Silva.
- Other minor updates and bug fixes.

### Changes from 0.60.2 to 0.60.3 (June 28, 2005)

- Fixed bugs involving several of the C API functions.
- Fixed bug where ``ultra`' or ``fast`' mode would not return any suggestions when soundslike lookup was not used.
- Made a minor, yet significant, optimization to the suggestion code. This sped things up by an order of magnitude in some cases.
- Avoid using the slow ngram scan except when the `sug-mode` is ``slow`' or ``bad-speller`'.
- Fixed a bug in curses mode which caused word-wrap to not work correctly in some cases.
- Fixed a bug in pipe mode with a missing newline.
- Fixed the `spell` compatibility script.
- Several other minor bugs fixed.
- Made note about the change in behavior of the `-l` command line switch.
- Other manual update/fixes.
- Updated to Libtool 1.5.18, Automake 1.9.6, and Makeinfo 4.8.

### Changes from 0.60.1 to 0.60.2 (December 18, 2004)

- Added the `munch-list` command to the Aspell utility. The `munch` program in the `myspell/` directory will disappear in Aspell 0.61. The `munchlist` script will also likely disappear or be replaced when Aspell 0.61 is released since it doesn't work correctly anyway.
- Several important bug fixes some of which rendered some non-English languages unusable.
- Other minor changes.

### Changes from 0.60.1 to 0.60.1.1 (November 20, 2004)

- Fix bug involving checking of capitalized word when affix compression is used.
- Compile fixes.
- Added an option to disable using the “wide” curses version in case it causes compile problems.
- Minor manual updates
- Avoided including some unnecessary files in the distribution.

### Changes from 0.60 to 0.60.1 (November 7, 2004)

- Lots of compile fixes for various platforms.
- Miscellaneous bug fixes.
- Added Nroff filter thanks to Sergey Poznyakoff.
- The default filter mode when in pipe mode is now nroff for compatibility with Ispell.
- Added Texinfo filter.
- Added a section detailing the differences between Ispell and Aspell.
- Updated the section on thread safety.
- Other miscellaneous manual changes such as updating the To Do and Authors section.

### Changes from 0.50.5 to 0.60 (August 27, 2004)

- Added support for Affix Compression. Affix compression stores the root word and then a list of prefixes and suffixes that the word can take, and thus saves a lot of space. The codebase comes from MySpell found in OpenOffice. It uses the same affix file that OpenOffice (and Mozilla) use. Affix compression will even work with soundslike lookup to a limited extent.
- Added support for accepting all input and printing all output in UTF-8 or some other encoding different from the one Aspell uses. This includes support for Unicode normalization. Aspell can now support any language with no more than 210 distinct characters, including different capitalizations and accents, even if there is not an existing 8-bit encoding that supports the language.
- Added support for loadable filters and customizable filter modes thanks to Christoph Hintermüller.
- Enhanced SGML filter to also support skipping sgml tags such as "script" blocks thanks to Tom Snyder.
- Added gettext support thanks to Sergey Poznyakoff
- Reworked the compiled dictionary format. Compiled dictionaries now take up less space (less than 80% for the English language) and creating them is significantly faster (over 4 times for the English language).
- Reworked suggestion code. It is significantly faster when dealing with short words (up to 10 times). Also added support for MySpell Replacement Tables and n-gram lookup. In addition, added basic support for compound words.
- Manual has has been converted to texinfo format thanks to the work of Chris Martin.
- Reworked the build system so that a single Makefile is used for most of the code.
- All data, by default, is now included in `libdir/aspell-0.60`. Also added a built time option to increment the major version number of the shared library. This should allow both Aspell version 0.50 and 0.60 to coexist. The major version number is not incremented by default as Aspell 0.60 is binary compatible with Aspell 0.50. See Binary Compatibility.
- The code to handle dictionaries has been rewritten. Because of this support for the dictionary option `strip-accents` has been removed. In addition the `ignore-accents` option is currently unimplemented.
- Lots of other minor changes due to massive overhaul of the source code.

### Changes from 0.50.4.1 to 0.50.5 (Feb 10, 2004)

- Reworked url filter which fixed several bugs and now accepts "bla.bla/kdkdl" as a url.
- Fixed bug in which the url filter was coming before all other filters when it was supposed to come after. This solved a number of problems where the url filter was interfering with other filters.
- Small bug fix in SGML filter.
- Added code page charsets, ie cp125?.dat.
- Added natural (split) keyboard data file as "split.kbd"
- Compile fixes for the upcoming Gcc 3.4
- Removed Solaris link hack as it was causing more problems than it fixes.
- Compile fixes for Sun WorkShop 6 compiler, but there may still be some problems, especially with linking.
- Included patch to help compile with Microsoft Visual C++ 6.
- Minor manual fixes.
- Updated the TODO section to reflect the current progress with the next major version of Aspell (0.51).
- Updated to Autoconf 2.59, Automake 1.82, and Libtool 1.5.2.

### Changes from 0.50.4 to 0.50.4.1 (Oct 11, 2003)

- Fixed major bug in pipe mode which caused the last character to be chopped off words before they were stored.
- Minor formating fixes in the manual.

### Changes from 0.50.3 to 0.50.4 (Sep 26, 2003)

- Minor changes in URL filter to avoid treating the double quote character as part of the URL, and to avoid treating words ending in more than one period as a URL.
- Document fixes in Aspell API
- Small compile fixes, including one for GCC 3.3
- Updated Win32 section since a port now exists thanks to Thorsten Maerz.
- Complain instead of doing nothing or aborting for unimplemented functions in Aspell utility.
- Portability bug fixes.
- Upgraded to Autoconf 2.57, Automake 1.7.7, Libtool 1.5 (no longer use CVS version of libtool).

### Changes from 0.50.2 to 0.50.3 (Nov 23, 2002)

- Hopefully fixed the Ispell alignment error problem when Aspell is used with ispell.el.
- Fixed a problem with personal dictionaries on NFS mounted home directories.
- Compiled libaspell-common directory into libaspell for now to avoid forcing applications to relink whenever a new Aspell version is out which was due to the use of the libtool '-release' flag.
- Fixed Makefiles so that Aspell can be built outside the source tree (i.e. with VPATH).
- Updated the section on compiling with Win32.
- Updated to Autoconf 2.56.

### Changes from 0.50.1 to 0.50.2 (Sep 28, 2002)

- Fixed a number of bugs in Ispell compatibility mode
- Fixed a number of bugs with the handling of replacement pairs
- Other miscellaneous bug fixes
- Additional Win32 portability fixes
- Added the Ukrainian KOI8-U charset.

### Changes from 0.50 to 0.50.1 (Aug 28, 2002)

- A rather large number of portability fixes for non GNU/Linux platforms.
- Fixed pkglibdir and pkgdatadir in configure.
- Reintroduced some configure options from Aspell .33.7 included dict-dir, data-dir, curses, curses-include, win32-relocatable.
- Fixed Aspell so it will now compile with -O3 when using gcc.
- Updated note on Win32 support.
- Other minor manual improvements.
- Portability fixes in dictionary files
- Official dictionary package for the Slovak language.

### Changes from .33.7.1 to 0.50 (Aug 23, 2002)

- A complete overhaul of the source code which included merging Pspell into Aspell.
- Changed the way dictionaries and languages are handled.
- Added Dvorak keymap.
- Added the ability to list the available dictionaries
- Improved the spell checking interface a bit.
- Added support for using the Ispell keymapping when checking files.
- Complete rewrite of the filter interface. It should now be fairly easy to add new filters to Aspell.
- Added some preliminary developer documentation.
- Lots of other changes due to the massive overhaul of the source code.

### Changes from .33.7 to .33.7.1 (Aug 20, 2001)

- Minor manual fixes.
- Compile fix for Gcc 3.0 and Solaris.

### Changes from .33.6.3 to .33.7 (Aug 2, 2001)

- Updates to Autoconf 2.50 and switched to the HEAD branch of libtools.
- Fixed a bug which caused Aspell to crash when typo-analysis was not used such as when sug-mode is fast or bad spellers.
- Added support for typo-analysis even when a soundslike was not used.
- Fixed a bug which causes extended charters to display incorrectly on some platforms
- Compile fixes so that it will compile with Gcc 3.0.
- Compile fixed which should allow Aspell to compile with Egcs 1.1. I have not been able to actually test it though. Please let me know at kevina@users.sourceforge.net if you have tried with Egcs 1.1.
- Compile and configuration script fixes so that USE_FILE_INO will properly be defined and Aspell will compile correctly when it is defined.
- More ANSI C++ compliance fixes.

### Changes from .33.6.2 to .33.6.3 (June 3, 2001)

- Fixed a build problem in the manual/ directory by including manual-text and manual-html in the distribution.

### Changes from .33.6.1 to .33.6.2 (June 3, 2001)

- Compile fix so that Aspell will work correctly when not installed in /usr/local.
- Avoided regenerating the manual unless configured with enable-maintainer-mode.
- Added the missing documentation files in the scowl directory.

### Changes from .33.6 to .33.6.1 (May 29, 2001)

- Fixed a formating problem with the manual involving <.
- Added a note about creating pwli files.
- Removed the space after between the -L and the directory name in the pspell-module/Makefile which caused problems on some platforms.
- Added the configure option AM_MAINTAINER_MODE to avoid enabling rules which often causes generated build files to be rebuilt with the wrong version of Libtool by default. I don't know why I didn't think to do this a long time ago.

### Changes from .33.5 to .33.6 (May 18, 2001)

- Fixed a minor bug where some words would have random compound tags attached to them.
- Fixed a compile problem on many platforms where fileno is defined as a macro.
- Updated the description for a few of Aspell's options.
- Removed the note of Aspell not being able to run when compiled with the upcoming Gcc 3.0 compiler as things seam to work now.
- Added a note about Aspell not being able to compile with Egcs 1.1.
- Added hack to deal with Libtool's interdependencies problem. See bug #416981 for Pspell for more info.

### Changes from .33 to .33.5 (April 5, 2001)

- dump master correctly detects which dictionary and language to use based on the `LANG` environment variable.
- Fixed a problem on Win32 which involves path names that began with <Drive Letter>:.
- Bug fixes and enhancements so that Aspell can once again run under MinGW. You can even use the new full screen interface if Aspell is compiled with PDCurses.
- Some major modifications to make Aspell more C++ compliant in order to get Aspell to compile under the upcoming Gcc 3.0 compiler. This included only using STL features found in the standard version of C++. (Which means Aspell will no longer require using the SGI version of the STL) This should also make compiling C++ under non-gcc compilers a lot simpler. Please note that Aspell still has some problems with the upcoming Gcc 3.0 compiler.
- Minor changes to remove some -Wall warnings.
- Added a hack so that Aspell would properly compile as a shared library under Solaris.
- Added a few important missing words to the English word list.

### Changes from .32.6 to .33 (January 28, 2001)

- Added a new new curses based interface to replace the dumb terminal interface everyone has been bitching about.
- Added the ability to give higher priority to words such as "the" instead of "teh" which are likely to be due to typos.
- Reorganized the manual so that it is hopefully easier to follow.
- Ability to automatically select the best dictionary to use based on the setting of the `LANG` environment variable.
- Expanded the medium dictionary size to include more words which included the original words found in Ispell and eliminated the large size for now.
- Added three special variant add-on dictionaries.
- Switched to the multi-language branch of the CVS version of libtool.

### Changes from .32.5 to .32.6 (Nov 8, 2000)

- Fixed a bug where Aspell would crash when reading-in accented characters on some platforms. This fixed bug # 112435.
- Fixed some other bugs so that it will run under Win32 under CygWin. Unfortunately it still won't run properly under Mingw.
- Fixed the mmap test in configure so that it won't fail on some platforms that use munmap(char *, int) instead of munmap(void *, int).
- Upgraded to the latest CVS version of libtool which fixed the problem with using GNU Make under Solaris.
- Added an option to copy files instead of using symbolic links for the special multi dictionary files.

### Changes from .32.1 to .32.5 (August 18, 2000)

- Changed my email from kevinatk at home com to kevina at users sourceforge net please make a note of the new email address.
- Added an option to control if the personal replacement dictionary is saved when the save_all_wls method is called.
- Brought back the ability to dump the master word list even in the case of the special multi lists.
- Added a large number of hacker related words and some other slang terms to the medium size word list.
- Added an ispell and spell compatibility script for systems which don't have Ispell installed. They are located in the scripts/ directory and are not installed by default.
- Manual fixes.
- Added a note on not using GNU Make on Solaris.

### Changes from .32 to .32.1 (August 5, 2000)

- Minor compile fixes for recent gcc snapshot.
- Fixed naming of pwli files.
- Fixed a bug when Aspell will crash when used with certain single letter flags. This bug was most noticeable when used with Emacs.
- Word list changes, see SCOWL Readme.
- Other miscellaneous changes.

### Changes from .31.1 to .32 (July 23, 2000)

- Added support for optionally doing without the soundslike data.
- Greatly reduced the amount of memory used when creating word lists.
- Added support for ignoring accents when coming up with suggestions.
- Added support for local-data-dir which is searched before data-dir.
- Added support for specifying which words may be used in compounds and where they may be used.
- Added support for having more than one main word list as well as a special multi word list files which will allow multiple word lists to be treated as one.
- Aspell now uses a completely new word list.
- The apostrophe (') is no longer considered part of the word when it as at the end of the word such as in ``dogs'`'.

### Changes from .31 to .31.1 (June 18, 2000)

- Fixed a bug where Aspell would not create a complete dictionary file on some platforms when the data is 8-bit.
- Added a workaround so Aspell will work with ispell.el 3.3.
- Minor compile fixes so it would compile better with the very latest gcc (CVS Version).
- Removed note about compiling in Win32 as I was now able to get it to work.

### Changes from .30.1 to .31 (June 11, 2000)

- Added support for spell checking run together words.
- Added an option to produce a list of misspelled words from standard input.
- More robust error reporting when reading in language data files.
- Fixed a bug that would cause Aspell to crash if the special line was not defined in the language data file.
- Updated Pspell Module.
- Minor bug fixes.
- Added cross references in “The Aspell Utility Chapter” for easier use.

### Changes from .30 to .30.1 (April 29, 2000)

- Ported Aspell to Win32 platforms.
- Portability fixes which may help Aspell compile on other platforms.
- Aspell will no longer fail if for some reason the mmap fails, instead it will just read the file in as normal and free the memory when done.
- Minor changes in the format of the main word list as a result of the changes, the old format should still work in most cases.
- Fixed a bug where Aspell was ignoring the extension of file names such as .html or .tex when checking files.
- Fixed a bug where Aspell will go into an infinite loop when creating the main word list from a word list which has duplicates in it.
- Minor changes to the manual for better clarity.

### Changes from .29.1 to .30 (April 2, 2000)

- Fixed many of the capitalization bugs found in previous versions of Aspell.
- Changed the format of the main word list yet again.
- Fixed a bug so that `aspell check` will work on the PowerPC.
- Added ability to change configuration options in the middle of a session.
- Added words from /usr/dict/words found on most Linux systems as well as a bunch of commonly used abbreviations to the word list.
- Fixed a bug where Aspell would dump core after reporting certain errors when compiled with gcc 2.95 or higher. This involved reworking the Exception heritage to get around a bug in gcc 2.95.
- Added a few more commands to the list of default commands the TeX filter knows about.
- Aspell will now check if a word only contains valid characters before adding it to any dictionaries. This might mean that you have to manually delete a few words from your personal word list.
- Added option to ignore case when checking a document.
- Adjusted the parameters of the normal suggest mode to so that significantly less far fetched results are returned in cases such as tomatoe, which went from 100 suggestions down to 32, at the expense of getting slightly lower results (less than 1%),
- Improved the edit distance algorithm for slightly faster results.
- Removed the ``$$m`' command in pipe mode, you should now use ``$$cs mode,mode`' to set the mode and $$cr mode to find out the current mode.
- Reworked parts of Aspell to use Pspell services to avoid duplicating code.
- Added a module for the newly released Pspell. It will get installed with the rest of Aspell.
- Miscellaneous other bug fixes.

### Changes from .29 to .29.1 (Feb 18, 2000)

- Improved the TeX filter so that it will accept '@' at the beginning of a command name and ignored trailing '*'s. It also now has better defaults for which parameters to skip.
- Reworked the main dictionary so that it can be memory mapped in. This decreases startup time and allows multiple Aspell processes to use the same memory for the main word list. This also also made Aspell 64 bit clean so that it should work on an alpha now.
- Fix so that Aspell could compile on platforms that gnu is not yet available for.
- Fixed issue with flock so it would compile on FreeBSD.
- Minor changes in the code to make it more C++ compliant although I am sure there will still be problems when using some other compiler other than gcc or egcs.
- Added some comments to the header files to better document a few of the classes.

### Changes from .28.3 to .29 (Feb 6, 2000)

- Fixed a bug in the pipe mode with lines that start with ``^$$`'.
- Added support for ignoring all words less than or equal to a specified length
- New soundslike code based thanks to the contribution of Björn Jacke. It now gets all of its data from a table making it easier for other people to add soundslike code for their native language. He also converted the metaphone algorithm to table form, eliminating the need for the old metaphone code.
- Major redesign of the suggestion code for better results.
- Changed the format of the personal word lists. In most cases it should be converted automatically.
- Changed the format of the main word list.
- Name space cleanup for more consistent naming. I now use name spaces which means that gcc 2.8.* and egcs 1.0.* will no longer cut it.
- Used file locks when reading and saving the personal dictionaries so that it truly multiprocesses safely.
- Added rudimentary filter support.
- Reworked the configuration system once again. However, the changes to the end user who does not directly use my library should be minimal.
- Rewrote my code that handles parsing command line parameters so that it no longer used popt as it was causing too many problems and didn't integrate well with my new configuration system.
- Fixed pipe mode so that it will properly ignore lines starting with '~' for better Ispell compatibility.
- Aspell now has a new home page at http://aspell.sourceforge.net/. Please make note of the new URL.
- Miscellaneous manual fixes and clarifications.

### Changes from .28.2.1 to .28.3 (Nov 20, 1999)

- Fixed a bug that caused Aspell to crash when spell checking words over 60 characters long.
- Reworked aspell check so that
  1. You no longer have to hit enter when making a choice.
  2. It will now overwrite the original file instead of creating a new file. An optional backup can be made by using the -b option.
- Fixed a few bugs in data.cc.

### Changes from .28.2 to .28.2.1 (Aug 25, 1999)

- Fixed the version number for the shared library.
- Fixed a problem with undefined references when linking to the shared library.

### Changes from .28.1 to .28.2 (Aug 25, 1999)

- Fixed a bunch of bugs in the language and configuration classes.
- Minor changes in the code so that it could compile with the new gcc 2.95(.1).
- Changed the output of `dump config` so that default values are given the value `<default>`. This means that the output can be used to create a configuration file.
- Added notes on using Aspell with VIM.

### Changes from .28 to .28.1 (July 27, 1999)

- Removed some debug output
- Changed notes on compiling with gcc 2.8.* as I managed to get it to compile on my school account
- Avoided including stdexcept in `const_string.hh` so that I could get Aspell to compile on my school account with gcc 2.8.1.

### Changes from .27.2 to .28 (July 25, 1999)

Provided an iterator for the replacement classes.
- Added support for dumping and creating and merging the personal and replacement word lists.
- Changed the Aspell utility command line a bit, it now used popt.
- Totally reworked Aspell configuration system. Now Aspell could get configuration from any of 5 sources: the command line, the environment variable `ASPELL_CONF`, the personal configuration file, the global configuration file, and finally the compiled-in defaults.
- Totally reworked the language class in preparation for my new language code. See http://aspell.sourceforge.net/international/ for more information of what I have in store.
- Added some options to the configure script: –enable-dict-dir=DIR, –enable-doc-dir=DIR, –enable-debug, and –enable-opt
- Removed some old header files.
- Reorganized the directory structure a bit
- Made the text version of the manual pages slightly easier to read
- Used the ``\url`' command for urls for better formating of the printed version.

### Changes from .27.1 to .27.2 (Mar 1, 1999)

- Fixed a major bug that caused Aspell to dump core when used without any arguments
- Fixed another major bug that caused Aspell to do nothing when used in interactive mode.
- Added an option to exit in Aspell's interactive mode.
- Removed some old documentation files from the distribution.
- Minor changes to the the section on using Aspell with egcs.
- Minor changes to remove -Wall warnings.

### Changes from .27 to .27.1 (Feb 24, 1999)

- Fixed a minor compile problem.
- Updated the section on using Aspell with egcs to it. It was now more clear why the patch was necessary.

### Changes from .26.2 to .27 (Feb 22, 1999)

- Totally reworked the C++ library which means you may need to change some things in your code.
- Added support for detachable and multiple personal dictionaries in the C++ class library.
- The C++ class library now throws exceptions.
- Reworked Aspell ability to learn from users misspellings a bit so that it now has a memory. For more information see Notes on Storing Replacement Pairs.
- Upgraded autoconf to version 2.13 and automake to version 1.4 for better portability.
- Fixed the configuration so the `make dist` will work. From now on Aspell will be distributed with `make dist`.
- Added support to skip over URL's, email addresses and host names.
- Added support for dumping the master and personal word list. You can now also merge a personal word list. Type aspell -help for help on using this feature.
- Reorganized the source code.
- Started using proper version numbers for the shared library.
- Fixed a bug that caused Aspell to crash when adding certain replacement pairs.
- Fixed the problem with duplicate lines when exiting pipe mode for good.

### Changed from .26.1 to .26.2 (Jan 3, 1998)

- Fixed another compile problem. Hopefully this time it will really compile OK on other peoples machines.

### Changed from .26 to .26.1 (Jan 3, 1998)

- Fixed a small compile problem in `as_data.cc`.

### Changed from .25.1 to .26 (Jan 3, 1999)

- Fixed a bug that caused duplicate items to be displayed in the suggestion list for good. (If it still does it please send me email.)
- Added the ability for Aspell to learn form the users misspellings.
- Library Interface changes. Still more to come ....
- Is now multiprocess safe. When a personal dictionary (or replacement list) is saved it will now first update the list against the dictionary on disk in case another process modified it.
- Fixed the bug that caused duplicate output when used non interactively in pipe mode.
- Dropped support for gcc 2.7.2 as the C++ compiler.
- Updated the How Aspell Works (Aspell Suggestion Strategy.)
- Added support for the `ASPELL_DATA_DIR` environment variable.

### Changes from .25 to .25.1 (Dec 10, 1998)

- Fixed the version number so that Aspell reports the correct version number.
- Changed the note on gcc 2.7.2 compilers to make it clear that only the C++ compiler cannot be gcc 2.7.2, it is OK if the C compiler is gcc 2.7.2.
- Updated the TODO list and reorganized it a bit.
- Fixed the directory so that all the documentation will get installed in `${prefix}/doc/aspell` instead of half of it in `${prefix}/doc/aspell` and half of it in `${prefix}/doc/kspell`.

### Changes from .24 to .25 (Nov 23, 1998)

- Total rework of how the main word list is stored. Start up time decreased to about 1/3 of what it was in .24 and memory usage decreased to about 2/3. (When used with the provided word list on a Linux system).

  Also the format and default locations of the main word list data files changed in the process and the data is now machine dependent. The personal word list format, however, stayed the same.

- Changed the scoring method to produce slightly better results with words like the vs. teh. And other simpler misspellings where two letters are swapped.
- Fixed the very unpredictable behavior of the ``*`', ``&`', ``@`' commands in the pipe mode.
- Added documentations for Aspell pipe mode (also known as `ispell -a` compatibility mode)
- Added a bunch of Aspell specific extensions to the pipe mode and documented them.
- Documented the `to_soundslike` and `soundslike` methods for the `aspell` class.
- Changed the scoring method to produce better results for words like fone vs phone and other words that have a spelling that doesn't directly relate to how the word sounds by using the phoneme equivalent of the word in the scoring of it.
- Added the `to_phoneme` and `have_phoneme` methods to the `SC_Language` class.
- Added the `to_phoneme` method to the `aspell` class.
- Added the framework for being able to learn from the users misspelling. Right now it just keeps a log of replacements.
- Redid `stl_rope-30.diff`. For some reason the version of patch on my system refused it.
- Rewrite of the “Using as a replacement for Ispell” section and added the `run-with-aspell` utility as a replacement of the old method of mapping Ispell to Aspell.
- Fixed a bug that caused duplicate words to appear in the suggestion list.

### Changes from .23 to .24 (Nov 8, 1998)

- Fixed my code so that it can once again compile with g++ 2.7.2.
- Rewrote the How It Works chapter.
- Rewrote the Requirement section and added notes on compiling with g++ 2.7.2.
- Added a To Do chapter.
- Added a Glossary and References chapter.
- Other minor documentation improvements.
- Internal code documentation improvements.

### Changes from .22.1 to .23 (Oct 31, 1998)

- Minor documentation fixes.
- Changed the scoring strategy for words with 3 or less letters. This cut the number of words returned for these roughly in half.
- Expanded the word list to also include american.0 and american.1 from the Ispell distribution. It now includes english.0, english.1, american.0 and american.1 from the directory `languages/english` provided with Ispell 3.1.20.
- Added a link to the location of the latest Ispell.el in the documentation.
- Started a C interface and added some rough documentation for it.

### Changes from .22 to .22.1 (Oct 27, 1998)

- Minor bug fixes. I was deleting arrays with delete rather than delete[]. I was suprised that this had not created a problem.
- Added a simple test program to test for a memory leak present on some systems. (Only debian slink at the moment.) See the file memleak-test.cc for more info.

### Changes from .21 to .22 (Oct 26, 1998)

- Major redesign of the scoring method. It now uses absolute distances rather than relative scores for more consistent results. See `suggest.cc` for more info.
- Suggest code rewritten in several places, however the core process stayed the same.
- The `suggest_ultra` method temporarily does nothing. It should be working again by the next release.

### Changes from .20 to .21 (Oct 13, 1998)

- Added documentation for aspell::Error
- Changed the library name from `libspell` to `libaspell`. It should never have been `libspell` in the first place. Sorry for the incompatibility.
- Added `as_error.hh` to the list of files copied to the include directory so that you can actually use the library outside of the source dir.
- Fixed bug that caused a segmentation fault with words where the only suggestions was inserting a space or hyphen such as in ledgerline.
- Added the score method to `aspell`.
- Changed the scoring method to deal with word when the user uses "f" in place of "ph" a lot better.

### Changes from .11 to .20 (Oct 10, 1998)

- Name change. Everything that was Kspell is now Aspell. Sorry, the name Kspell was already used by KDE and I didn't want to cause any confusion.
- Fixed a bug that causes a segmentation fault when the `HOME` environment variable doesn't exist.

### Changes from .10 to .11 (Sep 12, 1998)

- Overhaul of the SC_Language class
- Added documentation for international support
- Added documentation for the C++ library
- Other minor bug fixes.