Merc, Sounds like we're in violent agreement here. Figuring out good ways to take advantage of existing ispell dictionaries is a Good Thing for users, even though it gives developers fits. That's why we chose to clean up and integrate portions of the ispell code into AbiWord, so that we could leverage those dictionaries across all our supported platforms. The fact that you can have interactive spell-checking (squiggles, dictionaries, and popup corrections) running in real time off those dictionaries is quite an achievement. Even more so, because that code, and those dictionaries, are *brittle*. Darren Benham, Justin, and others have done battle with some ferocious problems (leaks, endian-ness, multiple languages, etc.) to get to where we are today. Even so, nobody's managed yet to figure out how to properly translate accented characters (from Unicode to whatever ispell expects) so that lookups will work in French, etc. For more details, see the relevant POW from last month: http://www.abisource.com/mailinglists/abiword-dev/99/October/0325.html I know you're interested in solving a larger issue -- providing spell services to lots of applications on your platform of choice -- and we'd love it if you or someone else could solve that problem for us. :-) In the mean time, we'll continue to work to make sure we have a single solution which Just Works on all our supported platforms. We'd also like to make sure that solution isn't too closely tied to AbiWord, so that we can reuse it for other apps in AbiSuite. We've got a ways to go on this. At the moment, our spelling APIs are more entwined with our app-specific logic than we'd like, but at least it works. As folks have time, we'd like to do a better job of isolating dictionary lookup services from the rest of the program behind a clean, small API. Once this is done, it should be much easier to swap out the hardwired ispell-based support for other alternatives, including: - piping out to ispell, where applicable - hooking into other platform-specific services, as available, or - some other XP solution which is cleaner or better. Note that we've already been implementing certain peripheral spell-related services (such as ignore lists, custom dictionaries, etc.) outside of the ispell codebase to make it easier to change dictionary engines later on as they become available. bottom line ----------- As always, the best way to change our minds about design decisions like this is to show us the source for another approach which works better than what we've currently got. Endless discussions over email can get very frustrating without necessarily resolving anything. Checking in the right patch is a *much* more satisfying resolution to any debate. :-) Paul
