Things remaining to be done to ispell: - It might be nice to support multiple personal dictionaries. On the other hand, it's pretty easy to combine them with "cat". - A small amount of string space could be saved if buildhash would combine strings with common suffixes (e.g., "and" could be stored as a pointer to the tail of "bland"). - (Pace Willisson) Pace's latest version of ispell compresses common digrams to reduce the size of the hash file, and stores shorter words in the dictionary entry itself. (Since the digram compression also reduces word size, this is a big win). He also improved startup time, at a slight running-time penalty, by eliminating the mass conversion of string indexes to pointers and just using the indexes as such whenever a string is accessed. - The findaffix script takes ridiculous amounts of time and disk space. It desperately needs to be rewritten in C, which would also allow it to correctly support string characters and to suppress reporting of choices that are already in the affix file. - Some of the following ideas require more flag bits in the dictionary. Since there is only one bit remaining for most cases, I plan to use that bit as some sort of an indicator that more flag bits reside somewhere else. This will be a kludge, but it will save some space. Beware! Don't plan on using that last flag bit for something else. - (Ian Dall) For some applications, it can be handy to allow multiple dictionary hash files. This shouldn't be too hard, since there's already similar code to support the personal dictionary. - (Not mine, but I've lost the name of the originator.) Some misspellings are common, but corrections will not ever be found by ispell's algorithm. It would be nice to be able to explicitly specify misspelling/correction pairs for such words (e.g., "lite->light"). - Several people, notably Peter Mutsaers, have asked if the affix file format could be extended to allow limited variables, so that you could specify things like "[AEIOU][DNL] > \2ING" to handle words like "pad->padding". - Ispell should be smart enough to ignore hyphenation signs, such as the TeX \- hyphenation indicator. - Since there can be two personal dictionaries, there should be a way to specify which dictionary a new word ("I" command) should be inserted into. - For languages that form lots of compound words, such as German, munchlist should be smart enough to split compound words into their components when appropriate. - (Jeff Edmonds) The personal dictionary should be able to remove certain words from the master dictionary, so that obscure words like "wether" wouldn't mask favorite typos. - (Jeff Edmonds) It would be wonderful if ispell could correct inserted spaces such as "th e" for "the" or even "can not" for "cannot". - Since ispell has dictionaries available to it, it is conceivable that it could automatically determine the language of a particular file by choosing the dictionary that produced the fewest spelling errors on the first few lines. - It is long past the time when the ispell.1 manual page should have been broken up into components describing the various programs in the suite. - If the -C flag is disabled, ispell should (at least optionally) use the "??" form to suggestion possible compound formations. - The elisp interface should provide a way for ispell to return error messages to emacs, so that users don't get inexplicable failures when things like dictionary open failures happen.