Last Comment Bug 56301 - (spellchecker) connect a spellchecker engine for Mozilla
: connect a spellchecker engine for Mozilla
Please do not add comments unless you...
Product: Core
Classification: Components
Component: Editor (show other bugs)
: Trunk
: All All
: P3 enhancement with 86 votes (vote)
: ---
Assigned To: Mike Kaply [:mkaply]
: sujay
: Makoto Kato [:m_kato]
: 83469 86184 99309 106877 117646 127220 130313 131290 133572 140963 141128 144808 146240 146801 149004 170408 175421 178417 178666 178702 181554 183063 183423 193174 202794 207100 208677 211871 212980 214491 214495 (view as bug list)
Depends on: 129704 58615 124182 180346
Blocks: 69687 advocacybugs 119232 209075
  Show dependency treegraph
Reported: 2000-10-12 14:09 PDT by Ryan Cassin
Modified: 2008-07-31 10:14 PDT (History)
165 users (show)
asa: blocking1.4b-
asa: blocking1.4-
See Also:
Crash Signature:
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---

E-mail from Kevin Atkinson (author of Pspell/Aspell). (3.82 KB, text/plain)
2001-06-16 08:15 PDT, Aleksey Nogin
no flags Details
Gerv's Unofficial Mozilla Spell-checker FAQ (5.69 KB, text/html)
2001-11-12 01:39 PST, Andrea Monni
no flags Details
Gerv's Unofficial Mozilla Spell-checker FAQ (5.69 KB, text/html)
2001-11-12 01:39 PST, Andrea Monni
no flags Details
Proposed Spell checking engine interface (1.65 KB, text/plain)
2001-12-01 20:00 PST, David Einstein
no flags Details
As advertised, the personal dictionary. (2.28 KB, text/plain)
2001-12-01 20:11 PST, David Einstein
no flags Details
spellcheck.tar.gz (270.16 KB, application/octet-stream)
2001-12-16 21:26 PST, David Einstein
no flags Details
An updated spellchecker. (270.39 KB, application/octet-stream)
2001-12-17 16:09 PST, David Einstein
no flags Details
Towards makind it compile on Linux. (6.69 KB, patch)
2001-12-17 18:17 PST, Aleksey Nogin
no flags Details | Diff | Splinter Review
Changes to get it to compile on linux (21.92 KB, patch)
2001-12-17 20:51 PST, David Einstein
no flags Details | Diff | Splinter Review
A spellchecker that works on both linux and windows. (271.99 KB, application/octet-stream)
2001-12-18 10:16 PST, David Einstein
no flags Details
Changes to top-level make system (Linux) (5.74 KB, patch)
2001-12-19 09:56 PST, Aleksey Nogin
no flags Details | Diff | Splinter Review
patch fixing a small unintialized variable bug. (658 bytes, patch)
2001-12-19 15:27 PST, David Einstein
no flags Details | Diff | Splinter Review
A patch that should fix the crash. (375 bytes, patch)
2001-12-19 15:56 PST, David Einstein
no flags Details | Diff | Splinter Review
A new base for sources. (41.63 KB, application/octet-stream)
2001-12-19 18:18 PST, David Einstein
no flags Details
Patch to fix the listbox problem (771 bytes, patch)
2001-12-19 19:12 PST, David Einstein
no flags Details | Diff | Splinter Review
patch for multi-line #define and DOS/unix file format problem (1.45 KB, patch)
2001-12-20 14:42 PST, Jim Crumley
no flags Details | Diff | Splinter Review
Just to join the pieces together. (270.19 KB, application/x-tar)
2001-12-21 11:07 PST, Aleksey Nogin
no flags Details
win32myspell.xpi (250.42 KB, application/x-xpinstall)
2001-12-21 12:32 PST, David Einstein
no flags Details
The New Aspell is Now Usable as a Library (1.85 KB, text/plain)
2002-01-06 23:38 PST, Kevin Atkinson
no flags Details
win32myspell.xpi (251.73 KB, application/x-xpinstall)
2002-01-07 15:38 PST, David Einstein
no flags Details
spellcheck.tar.gz (271.34 KB, application/octet-stream)
2002-01-07 15:46 PST, David Einstein
no flags Details
Changes to top-level make system (Linux) (5.65 KB, patch)
2002-01-28 09:14 PST, Aleksey Nogin
no flags Details | Diff | Splinter Review
win32myspell.xpi (251.31 KB, application/x-xpinstall)
2002-01-31 13:52 PST, David Einstein
no flags Details
win32myspell.xpi (251.22 KB, application/x-xpinstall)
2002-02-06 08:08 PST, David Einstein
no flags Details
win32myspell.xpi (251.23 KB, application/x-xpinstall)
2002-02-06 16:34 PST, David Einstein
no flags Details
w32spellchecker_098.xpi (251.27 KB, application/x-xpinstall)
2002-02-08 06:42 PST, David Einstein
no flags Details
RedHat 7 RPMs of Mozilla with Spellchecker (307 bytes, text/html)
2002-02-16 08:59 PST, Aleksey Nogin
no flags Details
win32myspell.xpi (251.36 KB, application/x-xpinstall)
2002-02-26 08:48 PST, David Einstein
no flags Details
patch for Mac carbon build (20.51 KB, application/octet-stream)
2002-08-15 12:03 PDT, Allan Masri
no flags Details
installer for mac spellchecker (268.69 KB, application/octet-stream)
2002-08-15 14:15 PDT, Allan Masri
no flags Details
win32myspell (252.67 KB, application/x-xpinstall)
2002-11-14 17:34 PST, loadrunner
no flags Details
Kin's spellchecker review notes (14.02 KB, text/plain)
2003-06-25 17:20 PDT, kinmoz
no flags Details

Description Ryan Cassin 2000-10-12 14:09:12 PDT
The editor needs spell checking. It's a really nice feature that Mozilla still 
Comment 1 Ryan Cassin 2000-10-12 14:10:10 PDT
I'm working on this, and I plan on using ASpell (open source spell checker).

Accepting bug.
Comment 2 Ben Bucksch (:BenB) 2000-10-12 15:20:28 PDT
Go, Hurricane, go!

(And thanks to Netscape for opening the source to the spell checker UI.)
Comment 3 R.K.Aa. 2000-12-16 15:59:43 PST
63059 is a dup of bug 16409 - ""[RFE] invoke spell check in browser window"
16409 is a "helpwanted".

It seems this bug too (56301) is really a dup of 16409. Please mark as such if
you agree, and assign or adjust dependencies in accordance with bug 16409.
Comment 4 Ben Bucksch (:BenB) 2000-12-17 01:07:24 PST
> It seems this bug too (56301) is really a dup of 16409.

No, this bug is about the Editor (Composer), the other one about the browser
Comment 5 a_blip 2001-05-03 19:28:16 PDT
Shouldn't this have the "4xp" keyword?
Comment 6 chris hofmann 2001-05-08 21:25:13 PDT
is this done yet?  I see spell checker for the editor in a resent netscape
commercial build.   what needs to happen to get this bug wrapped up?
is there time to do it in the next week or so.  if not lets retarget
to a better/more accurate milestone.
Comment 7 kinmoz 2001-05-09 09:13:29 PDT
This bug is a request for an open source spellchecker implementation of the
nsISpellchecker interface.

This isn't referring to the proprietary spellchecker used in netscape commercial.

My guess is that this won't make it for Mozilla 0.9.1, right Ryan? How about
moving this to Mozilla 1.0.1? Or do you think you'll get it in before Mozilla 1.0?
Comment 8 Ryan Cassin 2001-05-09 12:22:41 PDT
I don't know if our current plan to use PSpell is practical, since it doesn't 
compile on Mac (it'd have to be ported). At any rate, this bug won't make it 
until at least Mozilla 1.0, and a more practical target is Mozilla 1.0.1

What do you folks think? Should I work on this to get it implemented even if it 
means just Linux and Windows users benefit?

Additionally, I'm not entirely sure that PSpell can be used in Mozilla?'s 
released under the LGPL and, last time I checked, the author has no plans to 
change the license to MPL.

A few things need to be ironed out before any serious work gets done in this 
department. Input is appreciated.
Comment 9 Peter Lubczynski 2001-05-09 12:34:38 PDT

Is there a port of PSpell for OS X? Perhaps just get it to work in the Carbon 
Fizilla build of Mozilla.
Comment 10 Ryan Cassin 2001-05-09 12:49:18 PDT
As far as I know, it only compiles under linux, unix, bsd, solaris, and windows 
(but cygwin must be used). It doesn't work under any MacOS environment, be it 
Classic or OS X.
Comment 11 Ryan Cassin 2001-05-09 13:01:17 PDT
I think we're fine if we use it in Mozilla, regardless of the fact that Pspell 
is under the LGPL. Looking at:
"Even though you the LGPL license gives you the right to use Pspell in your 
application without ever notifying me..."

And the author of PSpell seems to be aware that we plan to use his project in 
Mozilla on his site, See the "Where Pspell is 
Used" section. Mozilla is mentioned in "In the Planning stages"

So, even if we do have authorization from the author to use Pspell in Mozilla, 
is it a must to have the code MPL'd?
Comment 12 Peter Lubczynski 2001-05-09 13:14:19 PDT
OS X is a port of BSD. Where can I get the BSD source (link)? I'll try to build 
it on my Mac.
Comment 13 Ryan Cassin 2001-05-09 13:29:40 PDT

Good luck!
Comment 14 Peter Lubczynski 2001-05-09 13:45:43 PDT
Built nicly in OSX, just like on BSD. I'm assuming that if it built correctly 
(without errors) it should run okay?
Comment 15 Ryan Cassin 2001-05-09 14:09:51 PDT
Yeah, that's a safe assumption :) ...I'll get to work putting spell checking
into Mozilla then.

Thanks! :)
Comment 16 Peter Lubczynski 2001-05-09 14:24:33 PDT
I'd also like to add my two cents. I'm not quite sure how spelling is 
implemented now in Netscape 6, but it would be nice if misspelled words received 
a specific CSS style so that they could stand out in the document as they do in 
4.x with red dotted underlines. It would also be cool if text areas could do 
this..but aren't they just Ender objects anyway?
Comment 17 kinmoz 2001-05-09 14:34:40 PDT
I believe I have bugs on my list somewhere, that cover those 2 issues you mention.
Comment 18 Ryan Cassin 2001-05-09 15:16:36 PDT
See: RFE: Need realtime spellchecking mechanism
Comment 19 Ben Bucksch (:BenB) 2001-05-09 17:14:03 PDT
I'm not a license guy, but LGPL might be compatible with Mozilla. Check/post on
Comment 20 Kathleen Brade 2001-05-31 10:38:18 PDT
*** Bug 83469 has been marked as a duplicate of this bug. ***
Comment 21 Per-Olof Pettersson 2001-06-15 20:35:15 PDT
I really think we should use the C interface for pspell since the C++ interface 
has binary compatibility problems.
Comment 22 Boris Zbarsky [:bz] (still a bit busy) 2001-06-15 21:39:33 PDT
*** Bug 86184 has been marked as a duplicate of this bug. ***
Comment 23 Aleksey Nogin 2001-06-16 08:15:13 PDT
Created attachment 38744 [details]
E-mail from Kevin Atkinson (author of Pspell/Aspell).
Comment 24 Daniel Jensen 2001-08-28 17:28:02 PDT
No activity on this recently and a 1.0.1 target- I know the schedule's hurried
and everybody's overloaded, but I don't think we can ship a 1.0 product without
spell checking without getting mud in our faces. People need this feature badly
and many users aren't likely to migrate simply for this reason. Maybe you should
publish some sort of specification which the spell checker needs to conform to
for your interfacing needs and see if you can attract some opensource community
attention to it.
Comment 25 Brian Z 2001-08-28 18:36:41 PDT
I completely agree with Daniel.  As a professional, spell checking is something
I require.  Currently, I am writing my emails in word, and copying them into
mozilla to send them.  This really doesn't work too well as you might imagine,
especially since I have an older computer & running Mozilla and word at the same
time.  We've already taken enough media flack for our schedule (which is
rediculous if you ask me).  This is just another pr problem waiting.  Just
wanted to get my $0.02 in. 
Comment 26 Ben Bucksch (:BenB) 2001-08-28 20:52:44 PDT
media? pr? This is a development project. There are no end-users, and there is
supposed to be no press reporting about how well Mozilla works for end-users.

> As a professional

If you are a professional, then you are welcome to code the spellchecker
support. Otherwise, please don't add comments about how important it is - we all
know that already. We need somebody to *do* it.
Comment 27 Cesc Noguera 2001-08-29 14:18:19 PDT
Just an extra thought. 

I am no software expert, so what I am saying could be completely wrong, but
there might be something useful. As many of you know the W3C produces a web
browser/editor called amaya, which is open source. Well amaya includes a
spellchecker and has spellchecker dictionaries for several languages. However I
don't know about the type of license amaya i.e. is it open source that could be
used in other programs like mozilla or is it a restricted open source?

In the case this were viable the spellchecks for languages other than english
can be found at
Comment 28 Daniel Jensen 2001-08-29 17:13:20 PDT
Amaya's license is at
and requires "Copyright © [$date-of-software] World Wide Web Consortium,
(Massachusetts Institute of Technology, Institut National de Recherche en
Informatique et en Automatique, Keio University). All Rights Reserved." to be inserted, their own license included,
and a listing of all changes made to the source- not something we can use.
Aspell/Pspell is, in my opinion as in that of most here, the way to go; it needs
porting, and I don't have the ability to do that (especially to Mac OS X) and
I'm wondering how we can best get the word out that the best Linux/Unix spell
checker needs porting and the ability to interface with our favorite lizard.

Ben, if you think that this is a developers only project, I'm afraid you're
quite mistaken. Taking a poll of all those who use Mozilla, even of just those
with Bugzilla accounts, would reveal that many end users are trying to use this
as their primary browser. And perhaps Brian's field of work is not spell checker
interface programming. Please try to be a little patient with him and the rest
of us- it won't benefit anyone to turn this into a flame war or shouting match.
Comment 29 timeless 2001-09-06 22:12:11 PDT
hrm, personally i started hacking on amaya's spellchecker and didn't find any 
serious license issues, I also know that we have other code in the tree which 
requires the same sort of notice as daniel jensen referenced [I think I own the 
bug to fix about to honor them ...]
Comment 30 Boris Zbarsky [:bz] (still a bit busy) 2001-09-11 17:38:14 PDT
*** Bug 99309 has been marked as a duplicate of this bug. ***
Comment 31 Henri Sivonen (:hsivonen) 2001-09-17 04:49:54 PDT
About Mac OS X: Apple provides a spell checking framework on OS X. (Bug 86886)
Comment 32 Greg K. 2001-09-22 16:58:34 PDT
Mac OS 9.x and earlier: the Word Services Apple Event suite provides a spelling
checking architecture. See Bug 67208.
Comment 33 Chris Dos 2001-10-26 08:00:33 PDT
Just a thought, but has anyone looked at the spell checker that comes with the
GPL'd Star Office?  I've always thought the Star Office spell checker to work
quite well.
Comment 34 timeless 2001-10-26 09:44:11 PDT
*confusion error* StarOffice is *NOT* GPL. OpenOffice is being developed under
an open source licensing policy. StarOffice is to OpenOffice as Netscape6 is to

AFAIK the SpellChecker is not open source for the same reasons netscape's isn't.
Comment 35 Mitchell Baker 2001-10-26 10:02:56 PDT
Too bad.  This would have been a great solution. 

Comment 36 Ben Johnson 2001-10-26 10:17:54 PDT
Open Office 638c DOES include a spell checker:

It is indicated that it was added by community members:

The Open Office License is GPL, LGPL, or SISSL (Sun Industry Standards
Source License).

I think I read the Star Office spellchecker was not owned by Sun and could not
be released to Open Office. The current one in Open Office was community
Comment 37 Ben Johnson 2001-10-26 10:25:12 PDT
Looks like the spell checker in Open Office is based on ispell/pspell and
"builds on almost any system":
Comment 38 timeless 2001-10-26 10:52:57 PDT
odd, i was almost positive ispell was *GPL.  it appears to be BSDL.

whatever, if anyone wants to work on a MPL compatible spellchecker feel free,
there's no one stopping you and will probably answer any
questions you may have.

Mitchell: is SISSL MPL compat? i can't remember
Comment 39 Mitchell Baker 2001-10-26 10:57:55 PDT
No, I odn't htink we want SISSL code in the mozilla tree.  But I cna try and
talk with the open office folks and see if we can find some answer.
Comment 40 Ian Zink 2001-10-26 17:33:18 PDT
From the FAQ:
   1. Which license does the project use? uses a dual license strategy for the source code. These
licenses are the GNU Lesser General Public License(LGPL) and the Sun Industry
Standards Source License (SISSL).

 The LGPL AND the SISSL. You get to choose. So this should still be a good
choice given LGPL can be made into GPL code.
Comment 41 Jonadab the Unsightly One (Nathan Eady) 2001-10-28 13:19:44 PST
There is also international ispell, which is under the University
of California license (a.k.a., Berkeley license), and has the
additional advantage of international support.  

However, is the Berkeley license compatible with MPL?
Comment 42 Damian Yerrick 2001-10-30 20:20:42 PST
Most software under a "Berkeley license" has been relicensed under the
BSD License, version 2, which has only three terms.  In summary:

1. Include the copyright notice, permission notice, and disclaimers in the
   source files that contain code under BSDL 2.
2. Include the copyright notice, permission notice, and disclaimers in the
   help file.
3. Don't claim that the author endorses your product.


The actual text of the license: (labeled General)

Most of Mozilla is licensed under the "Netscape JavaScript" license (disjunction
of (L)GPL and NPL).  I am not a lawyer, but I don't see any incompatibility
between BSDL 2 and NPL, and RMS says that BSDL 2 is compatible with GNU GPL 2.
However, BSDL 1 (the old four-clause version with clause 3 referring to
advertising) is incompatible with GNU GPL 2.

See also
Comment 43 timeless 2001-10-30 20:35:23 PST LGPL and GPL are both 100% unacceptable <period>. That's
why i asked about the other license.

[IANAL nor do I represent] BSDL is fine, we have code that uses it,
so does microsoft, so does linux.
Comment 44 Jeremy Sanders 2001-10-31 02:00:32 PST
Hang on, GTK+ has a LGPL licence, and Moz is linked against that. Why can't we
link against the LGPL pspell?
Comment 45 Chris Dolan 2001-10-31 06:13:44 PST
Please, people.  This is a bug reporting tool, not a bulletin board.  Discussion
belongs in the newsgroups.  Read before you post.


I want a spell checker as much (or more!) than any of you, but this isn't
getting us anywhere.
Comment 46 Keyser Sose 2001-10-31 17:29:22 PST
*** Bug 106877 has been marked as a duplicate of this bug. ***
Comment 47 Andrea Monni 2001-11-12 01:39:03 PST
Created attachment 57459 [details]
Gerv's Unofficial Mozilla Spell-checker FAQ
Comment 48 Andrea Monni 2001-11-12 01:39:51 PST
Created attachment 57460 [details]
Gerv's Unofficial Mozilla Spell-checker FAQ

I think this can be interesting for who check the bug for the first time.
Comment 49 Pascal Chevrel:pascalc 2001-11-12 08:24:55 PST
Shouldn't this bug belong to the MailNews product and not the Browser product ?
Comment 50 Jacek Piskozub 2001-11-12 09:14:34 PST
The Editor (called also Composer) is not part MailNews. It's the HTML editor. As
  both it and the MailNews compose window use spellcheckers, I believe the
component chosen is correct.

Comment 51 Pascal Chevrel:pascalc 2001-11-12 10:41:54 PST
Ok, to make it clearer : shouldn't this bug be categorised in the MailNews
product line AND the Composition component ? Just like most of the bugs related
to spellchecking (109127, 69687, 89296...) ?

Even if the Editor component is based on the browser, this is not a rendering
issue but a composition issue. If I wanted to vote for this bug, I would
definitely put the MailNews keyword in my query and I wouldn't find it (but I
would find some dups of this bug). Perhaps are we loosing useful votes for this
bug as well as a better exposure.

I might have a wrong reasonning when I think that spellchecking is directly
related to e-mail and remotely related to browsing and rendering issues. If so,
then I would suggest
moving the "Check spelling before sending" from the "Mail&News/Message
composition" pref pane to the "Composer" pane. Just to make the UI consistant ;-)

Comment 52 Ben Bucksch (:BenB) 2001-11-12 20:38:57 PST
Editor (aka Composer) bugs are tracked in the Browser component. Bugs are filed
where the code is (and which people work on it, consequently), not where people
look for them. There is no way to file one bug in 2 products.

Adding relnote keyword. He have hundreds of questions about it. Maybe a relnote
will help.

ALL: Please do no add comments unless you want to implement (code)
Comment 53 Ryan Cassin 2001-11-15 13:12:05 PST
I still plug away at this one, give it some time and I'll have it. Others remain 
welcome to try their hand at it though :)
Comment 54 David Einstein 2001-11-26 20:51:35 PST
I have managed to get a slightly mangled version of Kevin Hendricks' MySpell
mostly working in Mozilla.  Myspell is a simple straightforward spell checker
loosely based on ispell, and used by OpenOffice.  There is still a bunch of work
that I need to get done before it is anywhere near presentable.  I do have a
bunch of questions.

Where should the dictionaries, both system and presonal go?

How do multiple dictionaries work?  I can't get more than en-US into the combo
box. I can't see why. Yo no hablo javascript.

Right now the dictionary gets loaded each time you activate spell checking.  Is
there some way to make it load the hash table once and use it as necessary?

Are there threading issues I should worry about? I don't believe so, but...

Is there a way to get from an nsIFile to  an nsInputFileStream without
extracting the filename and making an nsFileSpec?

Is there any new documentation on the new string classes?  The spell checker is
still doing a fair amount of work on char*.  Convince me that using
nsAFlatCString is worth the additional typing.  

It appears that there is no way to access the unicode equivalents of isalpha,
isupper, islower, or even nonAscii versions of these. These are used, at least
in english for lookup, wordbreaking, and suggesting.  From what little I know of
other european languages, they would be useful there as well.  I can allow for
non european character sets, but I want to have some idea as to what sort of
word-breaking, suggestion making and whatever you call lowercasing capitalized
words algorithms are needed.  Or is this all something that is taken care of by
some localization library?
Comment 55 kinmoz 2001-11-27 13:53:00 PST
> Where should the dictionaries, both system and presonal go?

For the netscape implementation of the spellchecker, we put the spellchecker dll
and the dictionaries it relies on in the components/spellchecker directory. 
This has the benefit of allowing the spellchecker to be autoregistered the next
time mozilla is started, if it was not previously installed.

The user dictionary should be written out to the user's profile directory since
that is probably the only place you will have write access on most platforms.

> How do multiple dictionaries work?  I can't get more than en-US into the
> combo box. I can't see why. Yo no hablo javascript.

Are you returning more than one dictionary name from your implementation of the
nsISpellChecker GetDictionaryList() method?

If you are, you may have to put some dump() calls in the InitLanguageMenu()
function in mozilla/editor/ui/dialogs/content/EdSpellCheck.js to see what's
going on.

> Right now the dictionary gets loaded each time you activate spell checking.
> Is there some way to make it load the hash table once and use it as necessary?

> Are there threading issues I should worry about? I don't believe so, but...

There shouldn't be any threading issues.

> Is there a way to get from an nsIFile to  an nsInputFileStream without
> extracting the filename and making an nsFileSpec?

I think so, check out

it can create an input stream based on an nsIFile.

> Is there any new documentation on the new string classes?  The spellchecker
> is still doing a fair amount of work on char*.  Convince me that using
> nsAFlatCString is worth the additional typing.

The spellchecker code/interface was done several years ago (in march/april 1999)
before any of the XPIDL/JS string classes existed so that's why the interfaces
use PRUnichar*.

> It appears that there is no way to access the unicode equivalents of isalpha,
> isupper, islower, or even nonAscii versions of these. These are used, at least
> in english for lookup, wordbreaking, and suggesting.  From what little I know
> of other european languages, they would be useful there as well.  I can allow
> for non european character sets, but I want to have some idea as to what sort
> of word-breaking, suggestion making and whatever you call lowercasing
> capitalized words algorithms are needed.  Or is this all something that is
> taken care of by some localization library?

I know we have some of these utilities, for example, I know there's an
nsIWordBreaker and nsICaseConversion interface, which you can get a hold of
somehow via the document. might be able to help you with
these questions.

I should also mention that I've been thinking that we need to simplify the
spellchecker API, and push the responsibility for wordbreaking, selecting,
scrolling, and replacement out to the app/caller.

The new spellchecker api I'm thinking of would be simple and just contain a
CheckWord() method as well as the existing methods for manipulating and getting
info about the dictionaries used by the implementation, with the addtion,
perhaps, of allowing the word to be looked up in multiple dictionaries at once.

In any case removing the reliance on TextServices, not having to manage
selection and replacement, etc, would greatly simplify the implementation of new
spellchecker backends for mozilla.
Comment 56 David Einstein 2001-11-27 17:56:48 PST
>> Is there any new documentation on the new string classes?  The spellchecker
>> is still doing a fair amount of work on char*.  Convince me that using
>> nsAFlatCString is worth the additional typing.

>The spellchecker code/interface was done several years ago (in march/april 1999)
>before any of the XPIDL/JS string classes existed so that's why the interfaces
>use PRUnichar*.

Inside the spell checker itself everything (right now [*]) is assumed to be in 8
bit character strings. Spell checking and suggesting basicaly consists of doing
grisly but simple things to these strings and checking if the result ends up in
a hash table.  What I want to know is if there are good reasons for me to expend
the extra work to use the string classes vs plain old pointer mangling.

[*]  I know how to allow multibyte character dictionaries, but we really want to
allow languages that fit into 8 bits to stay that way.

>The new spellchecker api I'm thinking of would be simple and just contain a
>CheckWord() method as well as the existing methods for manipulating and getting
>info about the dictionaries used by the implementation, with the addtion,
>perhaps, of allowing the word to be looked up in multiple dictionaries at once.

Here I wholeheartedly agree.  I am trying to keep the interface to the spell
checking engine simple and direct for a number of reasons, the major one of
which is so it will be easy for someone to replace the engine (even the author
of myspell thinks that Aspell does a better job, it's just a whole lot more
complicated,) but also because I suspect that non european languages may use
some different algorithms, and we may need to spell check with multiple engines,
and not just multiple dictionaries.

All this is far in the future.  Right now I would rather have a slightly
inelegant implementation that at least does a fair job of spell checking USian,
but doesnt sneer too badly at the rest of the world and work from there.

Comment 57 David Einstein 2001-11-27 18:08:38 PST
One more thing.
>For the netscape implementation of the spellchecker, we put the spellchecker dll
>and the dictionaries it relies on in the components/spellchecker directory. 
>This has the benefit of allowing the spellchecker to be autoregistered the next
>time mozilla is started, if it was not previously installed.

If I put the dictionary in the components/spellchecker directory, how do I find it?
I can get NS_APP_DEFAULTS_50_DIR, then cross out 'defaults' and pencil
'components/spellchecker' in in crayon, but there should be a better way.  

The profiles directory I can find.
Comment 58 timeless 2001-11-27 18:34:03 PST
components should be found somehow using:

kin: the new api sounds good, i ran into the same sorts of problems w/ my impl. 
because of all the string stuff i ended up rewriting a lot of the code (and 
didn't finish, leaving the code in an indeterminate state).
Comment 59 David Einstein 2001-12-01 20:00:50 PST
Created attachment 60059 [details]
Proposed Spell checking engine interface

This is what I see as the api of the spell checking engine, at least it is what
I am coding to.  I have split off the Personal dictionary into a seperate
Comment 60 David Einstein 2001-12-01 20:11:44 PST
Created attachment 60061 [details]
As advertised, the personal dictionary.

As you can probably see the interface to this is somewhat wider than is
I want to be able to store past spelling errors, to improve the probability
that the first suggestion is what is desired.
I have added a language attriute in because eventually we will probably want to
allow users to restrict personal entries to specific languages.  I'm not
entirely sure how this should work.  I welcome suggestions, especially from
multilingual people.
Of course the initial implementation will have these as stubs.
Comment 61 Peter Lairo 2001-12-03 02:24:27 PST
RE. Multilingual Spell Checking:

Users could create a "user word list" of custom words. There should be a user
word list (UWL) file for each language. Hence, you could have "CustDict_EN.uwl"
for English, "CustDict_DE.uwl" for German, etc (the regular/default word lists
could be "Dict_EN.spl").

The tricky part is having the spell checker know which language is being
checked. Ideally, the document could be marked as "language XX" (a default would
be cool). Then the spell checker and appropriate UWL would be used/updated. Even
better would be the ability to mark text portions *within a document* as
"language YY". That way a message could contain multiple languages and the spell
checker would seamlessly check the whole document and automatically check the
correct language. This is quite common in non-monolinguistic cultures (i.e.,
almost everywhere but the US). Of course the markings for where a language
starts and stops would exist only while the message is being composed (or part
of the template during creation).
Comment 62 Per-Olof Pettersson 2001-12-03 04:37:59 PST
You could set the default language for spellchecking to be the same as for
webpages ie en_US. And then use last used language.
Comment 63 Kevin Atkinson 2001-12-14 06:53:57 PST
I just wanted to let you know that I have started a major rewrite of
Aspell/Pspell dubbed "The New Aspell".  More information can be found
at  One of the major goals of this rewrite is to
make Aspell/Pspell a lot simpler and more straightforward to use.  I
consider the Pspell attempt a failed attempt at greater portability
because it made things too complicated and most everyone just used it to
get at Aspell.

I would appreciate it if you would work with me to make the new Aspell
meet your needs as I really hope that the result of the merge will be
one cross-platform spell checker than everyone can use.

PS: Aspell will compile on Mac Os X just fine.  If gcc is used Aspell
should compile anywhere.  Not using gcc can cause problems but I am
slowly working on it.
Comment 64 David Einstein 2001-12-16 21:26:03 PST
Created attachment 61924 [details]

This is a simple spell checker.  If you untar it into
/mozilla/extensions/spellcheck it should build on windows.  I would appreciate
help getting the unix/mac makefiles working.
I also would like any comments on the architecture, coding style, etc.
The american dictionary is included, and I believe that German and Portugese
are available, with more to come. (I need to implement word compounding to
handle german noun soup though.)
This should work on any machine that mozilla works on.	The major problem is
the time it takes to load the hash table. Advice is desired.
In a few weeks when the new Aspell interface exists I intend on making a thin
XPCOM binding to it, and then writing some glue code to map Aspell's bindings
to Mozilla's so that people who have aspell can use it with mozilla.
Comment 65 David Einstein 2001-12-17 16:09:41 PST
Created attachment 62035 [details]
An updated spellchecker.

Sorry to bother everyone, but the previous version had a serious buffer overrun
if you spellchecked words with over 100 characters.
I'm looking into making an .xpi
Comment 66 Aleksey Nogin 2001-12-17 18:17:18 PST
Created attachment 62059 [details] [diff] [review]
Towards makind it compile on Linux.

I made an effort to get attachment 62035 [details] to compile on Linux. This patch has
some changes I had to apply - both to top-level configure scripts and to
spellchecker files from the attachment 62035 [details]. I failed to push through all the
way since it turned out I need sources fresher than Dec 3 17:10 to get
NS_NewUTF8ConverterStream which spellchecker uses. I may try it later, but do
not wait for me :-)
Comment 67 David Einstein 2001-12-17 20:51:26 PST
Created attachment 62069 [details] [diff] [review]
Changes to get it to compile on linux

This lets it compile on linux.	However, it builds a 0 length
thereby giving

GetFactory(/home/einstein/mozilla/dist/bin/components/ Load
FAILED with error: /home/einstein/mozilla/dist/bin/components/
cannot open shared object file: No such file or directory

when you try to run it.
I suspect that some combination of my code fixes and Aleksey's Makefiles should
get things working.
I apologize for all the signed/unsigned and const/nonconst problems VC++
emitted nary a peep.
Comment 68 David Einstein 2001-12-18 10:16:46 PST
Created attachment 62101 [details]
A spellchecker that works on both linux and windows.

Ok, with much thanks to Aleksey, it now dcompiles and runs on linux.  I have
not extensively tested it here, I'm running on a k6 133 and a debug build is a
bit sluggish, but it does discover misspelled words and make plausible
Note you'll need Aleksey's patches to the base make and config files.
Comment 69 Aleksey Nogin 2001-12-19 09:56:32 PST
Created attachment 62214 [details] [diff] [review]
Changes to top-level make system (Linux)

With these changes I was able to compile it on Linux and even build RedHat RPMs
with spellchecker included (as a separate RPM).
Comment 70 Aleksey Nogin 2001-12-19 10:07:52 PST
I tried using this spellchecker on RedHat Linux 7.2, here are the problems I had:
1) It checks even URLs and e-mail addresses in the text. It would be nice if it
knew to ignore URLs and e-mail addresses.
2) When I pressed "Recheck" after checking the whole message, Mozilla died.

Still, it's very nice to have at least some spellchecker in Mozilla, even if it
is not perfect yet. It would be really nice if it would make it into 1.0
Comment 71 David Einstein 2001-12-19 12:12:25 PST
Any more detailed info on the crash?  IWOMM, but I think I see some potential
problems around rechecking, and I'll look into them tonight.  
Skipping things like email addresses and url's should not be difficult, I'm more
afraid of not checking something that I should check than checking things that I
shouldn't be. Are there any Regular Expression utilities in the moz infrasturcture?
Comment 72 Aleksey Nogin 2001-12-19 13:30:12 PST
> Any more detailed info on the crash?
So far I failed to reproduce it.
> Skipping things like email addresses and url's should not be difficult, I'm more
> afraid of not checking something that I should check than checking things that I
> shouldn't be.
How about doing it in a way that would simplify turning it into a preference
later (or doing it as a no-UI preference form the beginning)? This way we can
later give people a chance to make their own choices in this trade-off.

I saw another problem, not sure whether it's your code or what's already in
Mozilla - the list of hints was bigger than the box it's ought to be in and part
of it was occupying the same space as the "language" menu in a weird way - see
screenshot at

P.S. Thanks a lot for working on this, it is so nice to finally have a

Comment 73 Peter Lairo 2001-12-19 13:50:59 PST
RE screenshot in comment #71:

I think it would be much better if the ignore/ignore all and change/change all
were vertically ordered instead of side-by-side. For some reason, i think that
makes it easier/quicker to identify and read.

Could you make it look like this:

+- Check Spelling ---------------------------------+
|                                                  |
| Suggestions:                                     |
| +--------------+                                 |
| |              |  [   Change   ]  [   Ignore   ] |  <-- these buttons
| |              |  [ Change All ]  [ Ignore All ] |  <-- and these
| |              |                                 |

That way, the user could mainly focus on the top two (most visible/discoverable)
buttons. Also, the buttons just look better grouped that way. :)
Comment 74 David Einstein 2001-12-19 15:27:27 PST
Created attachment 62256 [details] [diff] [review]
patch fixing a small unintialized variable bug.

A small bug that Aleksey found
Comment 75 David Einstein 2001-12-19 15:56:52 PST
Created attachment 62264 [details] [diff] [review]
A patch that should fix the crash.

Ok the crash is happening because the dialog is setting the language to "".  I
should make the checker behave better in those situations, but this should
help. I hope.
The code in the dialog has been there for quite a while.  I make no claims as
to understanding how it works  I know that the list box displays more elements
than it has space for, and that the language selection combo box is screwy.  I
would appreciate any help from those who understand javascript and XUL.
My priorities for the future are
1) Stabilizing this code, so that it at least doesn't crash Moz.
2) Widen the low level XPCOM interfaces so that other spell checking engines
can be used, possibly simultaneously.  This is important for a number of
reasons. First there are better, much better spell checkers out there. Second,
many systems, KDE and Gnome at least, provide system wide spell checkers. 
Using these spell checkers will allow users to keep their personal dictionaries
and spell checker preferences in one place, and I have been convinced that this
is a good thing.  I think that these spellcheckers can be used without using
their UI elements. Finally, it will allow people to write their own spell
checkers for mozilla, having very little mozilla knowledge.
3) Attempt to attack those spellcheck related bugs which will cause widening of
XPCOM interfaces. For example bug 51550 or bug 58612. As the interfaces are
congealing rapidly in the race to 1.0 this may or not be possible.  I would
also really like to be able to spellcheck textboxes right now.
4) Add small features to the current spell checker. Skipping email adresses,
URLs and roman numerals falls into this category, as do bugs 6547 and 91131.
Comment 76 David Einstein 2001-12-19 18:18:50 PST
Created attachment 62288 [details]
A new base for sources.

I apologize for the reversed, unlabeled patches.  I now have this locally in
and so will be able to make saner patches in the future.
I believe that this fixes Aleksey's crash as well (an embarrassing bug).
Sorry for all the trouble.
Comment 77 David Einstein 2001-12-19 18:21:30 PST
Oh, That previous attachement is a tar.gz of the sources only.  Get the
dictionaries from one of the other tar.gz's. Sorry.
Comment 78 David Einstein 2001-12-19 19:12:43 PST
Created attachment 62299 [details] [diff] [review]
Patch to fix the listbox problem

This is a patch to editor/ui/dialogs/content/EdSpellCheck.xul that fixes the 
suggestion listbox problem.  The list box should be a few pixels taller, but
I'm not sure how to achieve that.
Comment 79 Aleksey Nogin 2001-12-19 22:00:04 PST
David, would it make sense to file the EdSpellCheck.xul part as a separate bug?
Do you know what exactly the problem there? Am I right assuming that it's not
specific to your spellchecker implementation and would affect other
implementations (such as Netscape's internal implementation)?

CC'ing who was the last to modify that file and that line.
Comment 80 Ben Bucksch (:BenB) 2001-12-19 22:39:56 PST
David Einstein,

> Skipping things like email addresses and url's should not be difficult,
> I'm more afraid of not checking something that I should check than
> checking things that I shouldn't be.

(i.e. you skip "URLs" which are none?)

The URL-skipping could be implemented on the Mozilla-side of the interface,
because Mozilla knows best what a URL is and all spellcheckers will need to skip
URLs. (OTOH, A-/Pspell will need to skip URLs in all apps.)

There is the TXT->HTML converter, which has a reliable URL recognizer. I could
write you a function that takes a string and returns the bounds (indices) of the
first URL (or similar), if you need it.

> Are there any Regular Expression utilities in the moz infrasturcture?

Yes and no.

Yes, there is a regexp facility in JS, but unfortunately, there is no convient
C++ interface (you'd have to set up a JS context and invoke the internal regexp
functions, I think).
Comment 81 David Einstein 2001-12-20 07:00:18 PST
  I'm not sure at this point whether filing a seperate bug makes sense at this
point.  Once I figure out how to make some .xpi files so that testing can be
more widespread and the spell checker looks somewhat solid then filing a
seperate bug makes sense.  Besides, the thrill of spamming all these people
annot be underestimated.
>There is the TXT->HTML converter, which has a reliable URL recognizer. I could
>write you a function that takes a string and returns the bounds (indices) of the
>first URL (or similar), if you need it.

That'd be great! If you could work it into mozEnglishWordUtils::FindNextWord
that would be fantastic. The FindNext word implementation is really rudimentary
right now.
I have tried to keep things structured in such a way so that we have the choice
of how much or how little of a spell checker's interface we want to use.   

Comment 82 Peter Lairo 2001-12-20 10:02:42 PST
Please consider letting the spellchecker NOT skip e-mail address. That is a
useful method for making sure that an e-mail address way written correctly. If
it is, then the user can add it to their custom dictonary and never be bother by
that address again (if he types it correctly); if the e-mail address is typed
incorrectly, then it would be a pitty if the recipient sent e-mails to an
invalid/incorrect address and perhaps never noticed it :(

Please let spellchecker *NOT* skip e-mail addresses.
Comment 83 David Einstein 2001-12-20 11:32:36 PST
Any skipping of things will certainly be controllable by preferences.  One of
the reasons that I left the word splitter so simple was that I did not want to
skip things that people wanted to check. Of course the other reason was laziness.  

Even if you do not want to skip email adresses, you probably want the whole
thing recognized as one 'word'. 
Comment 84 Jim Crumley 2001-12-20 14:39:28 PST
I had some problems building this spellchecker for Sparc Solaris 7 with gcc 2.95.2.

I got errors like the following from mozSpellI18NManager.h and

In file included from mozSpellCheckerFactory.cpp:44:
mozSpellI18NManager.h:47: parse error before `{'

I tracked the bug to multi-line #defines in the .h files.  The problem came in
because the files were DOS format text files (new line and carriage return)
instead of unix style (newline only).  For some reason gcc could ignore the
difference in other places, but not in multi-line #defines.

Anyway, cvs might take care of the problem transparently when this gets into the
tree.  Or is there some other way of handling this file format problem? 
Regardless, there
are a couple of ways of working around this for anyone else who runs into the
problem. First, manually change the offending files to unix format.  Or use the
patch I'll attach in a minute (which I hacked up before I figured the cause of
the problem) which turns the multi-line #defines into long line #defines.
Comment 85 Jim Crumley 2001-12-20 14:42:02 PST
Created attachment 62427 [details] [diff] [review]
patch for multi-line #define and DOS/unix file format problem
Comment 86 Aleksey Nogin 2001-12-21 11:07:21 PST
Created attachment 62536 [details]
Just to join the pieces together.

This tar ball includes the contents of attachment 62288 [details] plus the dictionary
directory of attachment 62101 [details], with all the files with Unix line termination.

The RPMs of Mozilla (recent 0.9.7 branch build) with the spellcheker are
available from
(should work at least on RedHat Linux 7.1 and 7.2).
Comment 87 David Einstein 2001-12-21 12:32:32 PST
Created attachment 62548 [details]

This is an xpi file that should install the spellchecker in a recent w32
You will need to restart mozilla after loading it to get the spellchecker to
I have a problem with the cursor not resetting properly at the end of the
install, but I had the same problem with the netscape spellchecker xpi.
I will try to get a linux xpi built but that will probably not be soon.
NOTE: This probably goes without saying but this is alpha quality software, and
even if it wasn't it still would have absolutely positively no warranty. Use at
your own risk. Dont blame me if your computer turns into a heap of gelatinous
Comment 88 David Einstein 2001-12-21 22:28:45 PST
Note: To install the xpi you will have to save it locally with a .xpi extension
and then open it.  There is a small bug in the XP Installer that prevents
loading it from a bugzilla attachment.  Soory for any inconvenience that this
may have caused.
Comment 89 Peter Lairo 2001-12-22 13:23:22 PST
The install of attachment #62548 [details] works as you described (download, then drag
onto browser). But man, does the spellchecker cause mozilla to crash *often* -
whew. Nice work though. :) woohoo

BTW. When the checker reaches my last name (Lairo) it suggests "Lairo o" (with a
space!). What's with that? Maybe you could add my last name to the dictionary? ;)
Comment 90 David Einstein 2001-12-22 14:15:09 PST
You should be able to add your name to the personal dictionary. That is what it
is for.
I dont get 'Lairo o', I do get 'Lair o' both of which are recoginized as valid
english words.  Improving the suggestion algorithm is
Can you find a reproducable crash.  I have not found Moz to be appreciably less
stable with the spell checker, but then I haven't been running without it.
I really am concerned.  If you could post some talkback ID's we could get the
Netscape people to get stack traces.  A reproducible crash would be better.
Comment 91 Peter Lairo 2001-12-22 14:28:56 PST
Talkback IDs: TB804128X, TB804073Q

Reproduce:    compose, pase some text, load speller, click "Edit..."

After i rebooted my PC , it no longer crashes, tho - sorry.

I'm using build 2001-12-20, win98.

PS. RE comment #89 - I mistyped. I meant *it suggests "Lair o"*. Is that a valid
word? It's really *two* words! [OT] What is a "Lair"? [/OT]

PPS. Would you please consider rearranging the "Change" and "Ignore" buttons as
per my suggestion in comment #73?
Comment 92 timeless 2001-12-22 21:11:37 PST
a lair is like a cave.

can we please not complain about the spellchecker ui in this bug? everyone here 
knows how to file new bugs, please do so for things which are not specific to 
implementing a spellchecker backend.
Comment 93 Ben Ruppel 2001-12-23 00:50:45 PST
After installing the spellchecker with a win32 build from December 22, mozilla
freezes when I try to click on my newsgroup server in the folder pane.  No
talkback is sent because it freezes up good and I have to use task manager to
end it.
Comment 94 Karl Scriba 2002-01-01 15:48:14 PST
*** Bug 117646 has been marked as a duplicate of this bug. ***
Comment 95 Peter Lairo 2002-01-05 14:04:53 PST
The spellchecker seems to work fine on win98. Any chance of it getting into the
trunk for more widespread testing. Also, MANY users will appreciate this
much-requested feature :)

If not soon; any approx ETA?
Comment 96 Kevin Atkinson 2002-01-06 23:38:48 PST
Created attachment 63782 [details]
The New Aspell is Now Usable as a Library

This was posted to the aspell-announce mailing list.  Would those interested in
following the development of the new Aspell please subscribe to by going to
Comment 97 Ben Ruppel 2002-01-07 01:15:37 PST
Unfortunately, it seems that the win32myspell.xpi file no longer installs
correctly as of January 6th nightlies.  Upon restarting after installing the
file, I get an error dialog with this message:
Title: XPCOM:EventReceiver: mozilla.exe - Entry Point Not Found
Message: The procedure entry point ?ToLowerCase@nsString@@QAEXXZ could not be
located in the dynamic link library xpcom.dll.

I was kind of hoping the spellchecker would get checked into the trunk soon; it
seems to work great for me and I have had no crashes.  Is there a status on
that?  In any case, the contributors so far rock!  I'd also like to note that my
previous report of crashing caused by the spellchecker was a mistake.
Comment 98 David Einstein 2002-01-07 06:39:20 PST
I'll try to make a new .xpi tonight.  I have a slightly better idea of what
could be improved with the last one.

I should have a new interface capable of handling multiple spell checkers,
hopefully integrated with aspell possibly by next week.
In doing this, I would like to widen the nsISpellChecker and
nsIEditorSpellChecker interfaces. What is the policy on doing this?
Comment 99 David Einstein 2002-01-07 15:38:21 PST
Created attachment 63881 [details]

This works on my machine, it has not been heavily tested though.  On my win2000

machine you no longer need to restart mozilla after installing.
Comment 100 David Einstein 2002-01-07 15:46:27 PST
Created attachment 63885 [details]

Code updated to use I18N code for capitalization, not nsString.  Sorry about
Comment 101 Ben Ruppel 2002-01-09 20:39:11 PST
I've just come up with a problem.  I have "spell check before sending message"
turned on in my preferences.  So I write up a message, hit send, and
spellchecker pops up.  Then I notice that I wrote a word incorrectly.  It's
spelled right, but I would like to edit the letter.  So I'm sitting here with
the spellchecker open and doing its business, and I'm looking at this word that
I'd really like to change, but the only way for me to do so is to hit "done" in
the spellchecker and really quickly hit Cancel on the normal "message sending"
dialog.  If my connection/pc is too fast, the message will be sent because I
won't have time to his the Cancel button.  

This seems like a real shame.  It would be great to be able to cancel the send
from the spellchecker UI, but it seems like this might be asking too much. Thoughts?
Comment 102 Quinn Yost (mythdraug) 2002-01-09 20:52:11 PST
Ben:  What you describe is bug 52679 (moved to bugscape 3581).  

QA: Should bug 52679 be reopened dependant on this bug?
Comment 103 David Einstein 2002-01-10 09:03:39 PST
Personally I would prefer that all the issues with spellcheck on send be
thrashed out in one bug.  As Bug 86296 is still active that seems like a good
place to do it.
If a workable spec can be produced for the semantics of spellcheck on send that
does not produce objections from the mozilla or netscape people, I would be glad
to implement it.
Comment 104 Aleksey Nogin 2002-01-10 14:53:21 PST
Comment on attachment 62536 [details]
Just to join the pieces together.

Obsoleted by the attachment 63885 [details]
Comment 105 Aleksey Nogin 2002-01-13 16:13:22 PST
RedHat RPMs of Mozilla 0.9.7 release with the latest spellchecker (from
attachment 63885 [details]), listbox patch (attachment 62299 [details] [diff] [review]) and yet another small patch
(attachment 40536 [details] [diff] [review] from bug 86116) can be found at

They should work on RedHat 7.2 and are likely to work on 7.1. Not sure about
other versions of RedHat and other distros.
Comment 106 Aleksey Nogin 2002-01-13 19:24:59 PST
I can reliably crash the spellchecker with Mozilla 0.9.7 on Linux.

To reproduce:
1) Compose a message using english and cyrillic words
2) Set Charset to KOI8-R
3) Press send

Moilla always crashes right after that.

For some reason I can not get anything useful from gdb

Comment 107 David Einstein 2002-01-14 06:23:03 PST
Thank you Aleksey.  
I think that I know what your crash is. Laziness again, I'll bet.  I should have
a fix tonight, or maybe tomorrow.
Comment 108 Aleksey Nogin 2002-01-14 20:15:28 PST
More on this crash:
- Step 2 is unnecessary - it will crash if I type any cyrillics in the message,
no charset change necessary
- It will crash from both "send" and "Check" buttons
- The best I was able to get out of gdb is:

(gdb) bt
#0  0x41d7ba60 in NSGetModule () from /usr/lib/mozilla/components/
#1  0x41d7a26e in NSGetModule () from /usr/lib/mozilla/components/
#2  0x41d79f81 in NSGetModule () from /usr/lib/mozilla/components/
#3  0x41d68a9d in NSGetModule ()
   from /usr/lib/mozilla/components/
#4  0x41d68976 in NSGetModule ()
   from /usr/lib/mozilla/components/
#5  0x41d47120 in png_pass_dsp_mask ()
   from /usr/lib/mozilla/components/
#6  0x401710b2 in XPTC_InvokeByIndex () from /usr/lib/
[... the other 92 frames omited ...]
Comment 109 David Einstein 2002-01-15 06:58:35 PST
OK, I think that I have fixed Aleksey's bug.  The source is now at  I will soon put the .xpi's there as well so that
installation can become a one-step process.
I'm sorry for the lack of speed, but I'm somewhat busy
Comment 110 Aleksey Nogin 2002-01-25 20:15:43 PST
I've been running the latest version from for a while
now and its looking really good. I would say it's definitely ready to be
included in 0.9.9.

I've also filed the following RFE's: "<name> wrote:" quotation line should
not be checked Quoted text should not be checked. Spellchecker does not know how to
deal with all-caps words.

(I filed them with and not since it's not clear when this
code might be included into Mozilla).
Comment 111 Dan Kies 2002-01-26 10:20:43 PST
David's win32myspell.xpi spell checker consistently crashes on win32 build
2002012503 whenever clicking the Spell button in Composer or when clicking the
Send button, if the auto check spelling feature is enabled.

I tried sending a Talkback report, but the Feedback Agent consistently says it
cannot connect to

Detailed error message follows:

MOZILLA caused an invalid page fault in
module MSVCRT.DLL at 0167:78002f3e.
EAX=0064c7d4 CS=0167 EIP=78002f3e EFLGS=00010206
EBX=039aa82c SS=016f ESP=0064c7c0 EBP=0064c7e0
ECX=0000003f DS=016f ESI=ffffffff FS=4257
EDX=00000002 ES=016f EDI=0000003f GS=0000
Bytes at CS:EIP:
8a 01 41 84 c0 74 3e f7 c1 03 00 00 00 75 f1 05 
Stack dump:
60fd27c6 0000003f 0064c888 039aa82c 00000004 0000003f 00000000 00000000 0064c960
60fd2768 0000003f ffffffff 039aa800 021c236f 0000003f 60fd2f18 
Comment 112 Marcus Augustus Alzona 2002-01-26 15:30:23 PST
I've also found that the win32myspell.xpi crashes when running (either when
clicking spell or when sending when spell checking is on) on all 20020125/26
builds on win2k.
Comment 113 David Einstein 2002-01-27 12:31:57 PST
Ok, I am on the road keeping the world safe for my continued employment until
the middle of next week.  Some interface has obviusly changed in a recent build,
probably in i18n.  I will look at it Thursday, but if someone else can build the
spell checker and figure out where it is breaking before then I'd certainly
appreciate it.
Comment 114 Alan S. Jones 2002-01-27 18:35:48 PST
Will we be able to get all the spell checker code including what was passed on 
to us into the tri licnece of MPL/GPL/LGPL?

That would be best for all involved.
Comment 115 Aleksey Nogin 2002-01-27 18:38:36 PST
Comment on attachment 62299 [details] [diff] [review]
Patch to fix the listbox problem

This listbox problem is now fixed - see bug 112951
Comment 116 Aleksey Nogin 2002-01-28 09:14:46 PST
Created attachment 66755 [details] [diff] [review]
Changes to top-level make system (Linux)

Updated the configure and patch to apply cleanly to the current
Comment 117 Aleksey Nogin 2002-01-28 09:19:56 PST
I've compiled BuildId 2002012619 on RedHat Linux (get the RPMs at ) with the latest
spellchecker from and it works fine without any
crashes. So indeed I would guess that the problem of the win32 .xpi crashing
could be solved by recompiling it...

Comment 118 David Einstein 2002-01-31 13:52:38 PST
Created attachment 67305 [details]

I recompiled the dll's and it seems to work with 2002013103.  There is also a
fix making it possible to spellcheck words taht are in all caps.  I'll put this
xpi on mozdev sometime tomorrow, which should make a one step install possible.
Comment 119 Ashley Bischoff (blog at 2002-02-01 10:04:18 PST
David: It appears that attachment 67305 [details] crashes win32 build 2002020103 :(.
Comment 120 Peter Lairo 2002-02-05 06:35:20 PST
Attachment 67305 [details] crashes for me too (build 2002-02-04, winNT & win98) - bummer.

I have also been unable to *download* the xpi file for later use - any hints?

I'll use the speller in attachment 63881 [details] for now (hope it works...).
Comment 121 David Einstein 2002-02-05 06:48:16 PST
I don't know why you cannot download the new spell checker.  

The problems with the recent ones is that the Mozilla string classes are in a
bit of a flux, (possibly even fluxed up).  Hopefully this will settle down in
the push for 0.99. 
Comment 122 Peter Lairo 2002-02-05 07:08:43 PST
I finally got it to download. It offers to save "attachment.cgi" (which I then
renamed to "win32myspell.xpi"). This is a major bug in bugzilla. :(
Comment 123 David Einstein 2002-02-06 08:08:54 PST
Created attachment 68142 [details]

This works with build 2002020603 (on my machine, this morning, etc...) The
string classes seem to be sttling.
Comment 124 Aleksey Nogin 2002-02-06 08:37:33 PST
RedHat RPMs of Mozilla 0.9.8 with spellchecker ar available at (source RPM is at )
Comment 125 eberry 2002-02-06 10:57:15 PST
The latest win32 attachment crashes when I do this in 2002-02-06-03:
Default/New Profile
File, New, Message
Click in the message body
Click Spell checker toolbar button
Click Edit Personal Dictionary in the dialog
Before any new dialog shows up, Moz crashes
Talkback IDs: TB2589198X, TB2589085W

This build has improved somewhat, though.  Before, It would crash spell checking 
the empty message for me. :)
Comment 126 David Einstein 2002-02-06 12:12:58 PST
   As soon as I finish rebuilding Moz I will update the xpi.  This bug has been
around for a while.
Comment 127 David Einstein 2002-02-06 16:34:53 PST
Created attachment 68219 [details]

Ok this fixes the crash on editing a nonexistent Personal Dictionary.

Aleksey: If you rebuild for 0.98 from the sources on Mozdev you will need to
back out the change on line 190 of myspAffixmgr.cpp, or the spellchecker will
behave strangely.
Comment 128 Aleksey Nogin 2002-02-06 16:44:22 PST
Thanks, my 0.9.8 RPMs were built with the previous code and work perfectly.
Comment 129 David Einstein 2002-02-08 06:42:49 PST
Created attachment 68537 [details]

This is a spellchecker that should work with 0.98.  Do not use it with a recent
nightly unless you enjoy wierd xpcom errors.
Comment 130 Ilan Finci 2002-02-11 01:09:18 PST
Sorry for such a question, but I couldn't figure this out.
I want to compile the spellchecker and test it. I've checked out the sources of
Mozilla and the spellchecker, but I don't know how to combine the 2 of them. 
Where should I put the spellchecker sources inside the mozilla source tree? How
do I make the general make compile it?
Or do I have to compile it seperatly?

I use linux (SuSE 7.1 if it makes any difference).

Comment 131 David Einstein 2002-02-11 06:29:19 PST
To get the spellchecker to compile, get the latest sources from into the /mozilla/extensions/spellcheck directory, get
Aleksey's changes to the to level buld system, then do the ./configure and make
as usual.
Comment 132 David Einstein 2002-02-12 13:05:28 PST
For those of you interested in perpetrating unamerican activities, here are some
instructiona on spellchecking other languages.

Get a dictionary from
and unzip it into the components myspell dirctory.

Rename the files to change the underscore to a minus, for example change
en_GB.aff to en-GB.aff and en_GB.dic to en-GB.dic .  Do _both_ files. 

On the first line of the .aff file change ISO8859-1 to ISO-8859-1

restart mozilla.

Most of the major [*] western european languages are available, and it looks
like Russian is coming soon.  

I will probably not be distibuting any dictionaries other than the en-US, but I
will attempt to make the installation of other dictionaries simpler.

[*]  If your patriotic spirit is rankled by the implied classification, give
Kevin a dictionary.  
Comment 133 Mike Shaver (:shaver -- probably not reading bugmail closely) 2002-02-15 10:23:24 PST
(I'm ignoring the status whiteboard's command, because I am naughty and
unpleasant to be with.)

First of all, this looks like a _great_ extension.  I've only scanned the code,
but it seems to be well put-together, nicely modular (yay!) and generally smells
of flowers and honey.  So, from that perspective, and the obvious user demand,
it'd be great to have for 1.0.

My concern is that there's a fair bit of code here, and our review resources
(especially super-review) are already strained.  I'm not sure what to do, to be
honest.  For now, I'm taking it off my list of orphaned-with-patch bugs, with a
heavy heart.  If we can get a solid review from some righteous volunteer, there
should still be time.  Otherwise, there's always the XPI!
Comment 134 nnooiissee 2002-02-15 10:44:36 PST
Will this work with Mac OS Classic/X?
Comment 135 Aleksey Nogin 2002-02-16 08:59:10 PST
Created attachment 69858 [details]
RedHat 7 RPMs of Mozilla with Spellchecker

I have RPMs of 0.9.8 as well as a few recent trunk RPMs
Comment 136 David Einstein 2002-02-18 20:55:22 PST
I have made some major changes to the code on mozdev so that the spell checker
works, or will eventuall work better with non english languages.  I would
appreciate it if those of you who build your own play with it for a week or so,
and if there are no major complaints I will make an xpi for the hoi polloi.
Comment 137 Malcolm Ferguson 2002-02-18 21:08:52 PST
Sorry if this is a rather basic question, but you could somebody provide some
instructions for building under Windows please?  As I understand it, Aleksey's
 patch only works for Linux.  In fact, I managed to build it under Linux, but
that doesn't help me much as I don't spend much time there.  I'm new to this
source tree, and my brain has been addled by too much Developer Studio and its
graphical build environment leaving me having makefile comprehension problems -
can somebody tell me how to change the makefile rules, or whatever it takes?  I
am "interested in perpetrating unamerican activities", although only with en_GB.
 Apologies if this question is inappropriate as a comment, but I saw somebody
else ask too.
Comment 138 David Einstein 2002-02-19 06:38:56 PST
Instructions for building on windows.

1) Get the latest sources from

2) put the sources in the mosilla/extensions/spellcheck directory.  (For
reference, just so you grab the correct section of the mozdev tree, this
directory will contain

3 Add spellcheck to the DIRS variable in mozilla/extensions/

4 cd to mozilla/extensions/spellcheck and do a 
nmake -f
Comment 139 Aleksey Nogin 2002-02-19 11:16:47 PST
I've compiled RedHat 7.x RPMs of this morning's build with the latest
spellchecker. Browse my Mozilla RPMs at (clicking on
attachment 69858 [details] will take you there as well) or download directly from

P.S. Haven't really tested the most recent changes yet (and I am still waiting
for ru_RU dicts to appear on
Comment 140 Ilan Finci 2002-02-20 00:31:21 PST
I have a problem with the personal dictionary - for some reason it do not
remember words I add. It did remember few, but for most words it simply keep
asking about them everytime I open mozilla and compose a mail. If I compose more
them one mail at the same session of mozilla, then words I add are remembered
after the first time I add them. This hold only till I close mozilla.

Where is the personal dictionary saved?
Comment 141 David Einstein 2002-02-20 06:39:56 PST
The personal dictionary is stored in persdict.dat.
The personal dictionary is (or at least should be) written to disk on Mozilla
shutdown. What kind of machine are you using?
Comment 142 Ilan Finci 2002-02-20 06:48:54 PST
I work on Linux machine.
I've rechecked it, and looked at the dictionary file. Now it worked (and I
didn't change a thing). I guess I was doing something wrong (or maybe mozilla
crached the other times I've tried).

Why isn't the dictionary written every time a word is added, or at least every
time a spell session is ended?
Comment 143 Ashley Bischoff (blog at 2002-02-20 08:47:54 PST
Ilan: Or, maybe you're running into 826?

("Persistent personal-dictionary through build updates")
Comment 144 Quinn Yost (mythdraug) 2002-02-22 06:13:50 PST
*** Bug 127220 has been marked as a duplicate of this bug. ***
Comment 145 andree 2002-02-24 06:04:36 PST

I just tried w32spellchecker_098.xpi on Win95. Spellchecking in US English seems
to be working fine. However, I was more after en_GB and de_DE, so I gave the
files provided by OpenOffice a go. I put them into the myspell directory and
replaced '_' with '-' in the filenames. Unfortunately, it didn't work. The new
languages can be selected in the spellchecker dialog but US English is always
used. I removed the en-US files from the myspell directory which led to all
words being accepted as correct. Also I tried to cheat and just renamed the
de-DE.* files into en-US.* which didn't work either.

It would be fantastic if other languages could be used as well for the spellchecker.

As a wishlist thing, it would be next to unreal if OpenOffice, Mozilla and
Evolution could use the same dictionaries.
Comment 146 David Einstein 2002-02-24 12:51:47 PST
Yes, I think that the language handling in the old xpi's.  You can switch
languages by choosing the language, exiting mozilla, and re-entering.  The
recent sources have these bugs fixed.  I will make a new xpi availble for the
recent dailies soon, once I add a pref for saving the personal dictionary after
each session.  Thank you for your patience.
Comment 147 andree 2002-02-25 05:11:15 PST
Ok, Malcolm Ferguson <> pointed out to me that he had
to replace 'SET ISO8859-1' with 'SET ISO-8859-1' (i.e. add '-' between 'ISO' and
'8859') in en-GB.aff to get things to work.

This does indeed work for en_GB which is great! en_DE proved immune to this
procedure, though.


PS: David, thanks a lot for working on this!
Comment 148 David Einstein 2002-02-26 08:48:18 PST
Created attachment 71495 [details]

This is yet another win32xpi.  It should work with a recent nightly, and with
luck 0.99.

Non en-US languages should be better supported.  You should be able to switch
languages on the fly, though I'm not sure why you would want to do that.  The
only modification to the OO dictionaries that is needed is to change the
underscore in the filenames to hyphens, and this is not mandatory, it just lets
mozilla automatically recognize the language and country for the combo box

A pref "spellchecker.savePDEverySession" has been added.  If it is true, then
the personal dictionary will be saved after each spell checking session.

I thank you all for your support.  If you have issues with the spellchecker
feel free to report them to Your comments are
Comment 149 Andrea Monni 2002-02-27 03:20:13 PST
In <a href="">#148</a>
David Einstein wrote:

> Non en-US languages should be better supported.  You should be able to switch
> languages on the fly, though I'm not sure why you would want to do that.

If somebody, like me, writes often in two or more languages. About 50% of my
emails are in english and the rest are in italian and being able to quickly
switch from one to the other is a real plus for me. I don't know wheter the
other mailers allow to do that so easily, if they don't this would a real point
of Mozilla against the competitors.
Comment 150 David Einstein 2002-03-01 12:07:56 PST
I have just posted a new windows .xpi at
This fixes a bug with spell checking non ISO-8859-1 languages.

Using mozdev should make life easier on all of us, using the attachement is a
horrid kludge.  Plus I can count you :)

Out of curiousity, has anyone built this on anything other than Windows, Linux,
or Solaris?  Reports of success, or detailed reports of failure would be
Comment 151 Matthias Versen [:Matti] 2002-03-12 11:11:06 PST
*** Bug 130313 has been marked as a duplicate of this bug. ***
Comment 152 Gabor Liptak 2002-03-15 16:02:35 PST
*** Bug 131290 has been marked as a duplicate of this bug. ***
Comment 153 Colin Blake 2002-03-18 10:25:51 PST
FYI - I just downloaded the code and built it in my 099 tree on OpenVMS. One
small compile problem. In mozAffixMod.cpp the first arg is of type "const char
*const" while in the header file its prototyped as "const char *". My compiler
didn't like that. But I fixed that and linked it, copied the files to my
installation tree, it worked!
Comment 154 Colin Blake 2002-03-18 10:41:50 PST
In comment 153 I meant to say "the first arg of addMod..."
Comment 155 Steve 2002-03-25 14:42:51 PST
Just a quick question, before I install and help test this.
Is this another one of those add ons like calendar that will
have to be reinstall every time I put in a new browser (once a week)


Mozilla 0.9.9+
Mozilla/5.0 (Windows; U; Win 9x 4.90; en-US; rv:0.9.9+) Gecko/20020323

SVG-Mathml zips.

Comment 156 Ashley Bischoff (blog at 2002-03-25 15:01:29 PST
Steve: Yes, it is.
Comment 157 Steve 2002-03-26 07:10:31 PST
Hi  Alex "Rembrandt" Bischøff 
Okay, got one installed and downloaded a backup.
 An xpi for post 0.99 nightlies.

First thing, after clicking on Download More in the language box, it lead to a
blank browser window, 

Expected result was to go to either:

Was wanting to put in German also.

First impression, works fine but I not sure if it is catching the added
words. I'll have to test it a little more.
Comment 158 Ashley Bischoff (blog at 2002-03-26 08:49:35 PST
Steve: I'm not actually the Spellchecker maintainer, merely a satisfied user :). 

So, if you have any questions about installing or using Spellchecker, please see or e-mail David about it (
Comment 159 Alex Bishop 2002-03-26 23:15:25 PST
*** Bug 133572 has been marked as a duplicate of this bug. ***
Comment 160 Andrea Monni 2002-04-12 08:19:15 PDT
Google has released a web API package which allows to use Google functions from
stand-alone applications. Among the various possible Google functions usable
from the API there's the spellchecker one, I was wondering wheter it was
possible to implement the infamous Mozilla spellchecker using this API.
Comment 161 Matthew Miller 2002-04-12 08:33:40 PDT
Cute, but no. First, that'd require you to be connected (and have good
connectivity to Google) for it to work. Second, everyone would have to create a
personal-use account. And third, it's limited to 1000 queries a day.
Comment 162 Ilan Finci 2002-04-23 03:09:44 PDT
I've tried to add the spellcheker to the 1.0RC1 source tree and compile. 
The patch that is posted fails for configure and, but this is
easily fixed manually.

When I use the spellchecker to correct a word in a mail message, mozilla craches
immidiatly when pressing the "replace" button.
Comment 163 Aleksey Nogin 2002-04-23 05:19:26 PDT
Comment on attachment 63885 [details]

This is really old, please use the sources from instead.
Comment 164 Matthias Versen [:Matti] 2002-04-29 10:45:21 PDT
*** Bug 140963 has been marked as a duplicate of this bug. ***
Comment 165 R.K.Aa. 2002-04-30 01:25:07 PDT
*** Bug 141128 has been marked as a duplicate of this bug. ***
Comment 166 gavin long 2002-05-15 12:52:14 PDT
*** Bug 144808 has been marked as a duplicate of this bug. ***
Comment 167 sujay 2002-05-23 10:18:54 PDT
*** Bug 146240 has been marked as a duplicate of this bug. ***
Comment 168 sujay 2002-05-24 10:53:30 PDT
*** Bug 146801 has been marked as a duplicate of this bug. ***
Comment 169 Philip Nemec 2002-05-24 15:52:14 PDT
Current builds (at least 2002052408 and RC3) no longer work with the .xpi files
on mozdev.  The ones I tried were:

Comment 170 Ashley Bischoff (blog at 2002-05-24 20:57:55 PDT
Philip: Right, that's a bug in the Spellchecker XPI:

In fact, the XPI hasn't worked with the nightlies for the past two weeks :(.
Comment 171 Quinn Yost (mythdraug) 2002-06-04 06:50:20 PDT
*** Bug 149004 has been marked as a duplicate of this bug. ***
Comment 172 Steve 2002-06-04 09:51:56 PDT
Hi All 
Mozilla 1.0.0+
Mozilla/5.0 (Windows; U; Win 9x 4.90; en-US; rv:1.0.0+) Gecko/20020603
and M1 RC3

It seemms to bea working okay noow
It seems to be working okay now

The above was a copied from an email using spellchecker. The newest for Rc3 is
also working fine in a newer trunk, as stated above.

I even have added a German Dic and it works also.
Comment 173 Pratik 2002-06-07 08:20:13 PDT
Now that 1.0 is out, when is this code going to land in the main trunk?
Comment 174 Ben Bucksch (:BenB) 2002-06-11 15:43:38 PDT
I created an installation page for Beonex Communicator - it should also work for
Mozilla 1.0. I also created XPI packages for some popular language dictionaries,
for "2-click-install".

The spellchecker itself there is copied from mozdev and Win32 only, because
there's no Linux xpi on mozdev (that I could find), only Redhat RPMs, which are
not of much use for me. Maybe I'll compile it myself later.

Feel free to link to the page (no bandwidth problems expected, thanks to
ibiblio), copy it or the packages, assuming proper credit.

Comment 175 Joel Nelson (don't send email) 2002-06-12 11:21:55 PDT
Will this spellchecker be compatible with Mozilla on Mac OS X?
Comment 176 Carl Schrader 2002-07-01 13:34:32 PDT
Any idea when the spellchecker will land in the Mozilla tree? The current method
is a problem at best. I find it difficult to test the latest nightlies when the
spellchecker keeps getting hosed. I don't have the resources to compile the CVS
versions of the spellchecker so that leaves me with sticking with an earlier
build or no spellchecker...
Comment 177 Brook Harty 2002-07-29 20:12:14 PDT
Just checking, any idea on when a new release will be out that works on mozilla 1.1 daily builds?
Comment 178 Steve 2002-07-30 00:16:14 PDT
The last one from here;
is working for me on

Mozilla 1.1b
Mozilla/5.0 (Windows; U; Win 9x 4.90; en-US; rv:1.1b) Gecko/20020722
Comment 179 Anton Krugliakov 2002-08-08 12:27:47 PDT
All works on NightBuild 2002080807
But what about using several dictionaries at same time ?
If i select to use for example Russian lang. it ask me about all english words
to correct them ... this is a little annoying.
Comment 180 Ashley Bischoff (blog at 2002-08-08 12:49:21 PDT
Anton: It may be more fruitful to report feature-requests at the Spellchecker
XPI's website:
Comment 181 Allan Masri 2002-08-15 12:03:58 PDT
Created attachment 95432 [details]
patch for Mac carbon build

I'm adding an attachment for Mac spellchecker. Attachment is a bin archive that
contains the following:

--spellcheckIDL.xml : xml version of MetroWerks project that generates headers
for mac spellchecker
--spellcheck.xml : ditto for generating spellchecker.shlb
--myspell.xml : ditto for generating myspell.shlb
--MANIFEST_IDL : text file to be placed in directory that contains IDLs
--add to : text file of instructions to be added to Mac
perl build script
--mozCStr2CStrHashtable.cpp : source file containing two changed lines
necessary for myspell.shlb to link. Lines 68 & 86, both with comments; should
not affect other builds
Comment 182 Allan Masri 2002-08-15 14:15:45 PDT
Created attachment 95448 [details]
installer for mac spellchecker

xpi file includes install.js, 3 libs, and 2 dictionary files. Mac carbon build.
tested on Mac OS X and 9.x and it works.
Comment 183 kinmoz 2002-08-26 10:18:14 PDT
Just wanted to mention in case some of you haven't heard ... aspell just became
an official gnu package:
Comment 184 Ilan Finci 2002-08-27 03:42:35 PDT
Is the spellchecker going to be integrated to the source tree soon? 
We already have Mozilla 1.1 which doesn't include it, while the target milestone
was mozilla 1.0.1
Comment 185 Jacek Piskozub 2002-08-27 03:48:43 PDT
Ilan: Mozilla 1.0.1 is on a different branch that 1.1. Hence the funny fact,
that 1.1 has already been released while 1.0.1 has only a RC2 release.

Which does not mean that the bug will be resolved before 1.0.1. Certainly not,
as the 1.0 branch does not accept anything risky. Actually, the target should be
changed to something on the trunk (like 1.2 alpha or 1.2 beta) rather than the
1.0 branch (meaning not 1.02 or 1.03 etc.)
Comment 186 Tim Phipps 2002-08-30 03:31:11 PDT
Well, 1.1 is released and 1.2 will be frozen in four days time. I'd suggest
assigning the target to 1.3 or landing the patch _now_.

Comment 187 ahulse 2002-08-30 05:30:31 PDT
Please land the patch! The two key features Mozilla is missing to be considered
seriously are a spell checker and a calander/task manager. Let's get at least
one of these into 1.2.
Comment 188 ahulse 2002-08-30 05:32:17 PDT
Please land the patch! The two key features Mozilla is missing to be considered
seriously are a spell checker and a calander/task manager. Let's get at least
one of these into 1.2.
Comment 189 Ken Snider 2002-08-30 19:14:25 PDT
Updated keywords to get it on the radar for Moz 1.2.

Also, comment #185 is right - this would go in the trunk, not 1.0.1 - setting
the target to reflect this fact.
Comment 190 Joel Nelson (don't send email) 2002-09-17 20:41:27 PDT
Can this still be added for 1.2 beta?  Nominating for nsbeta1.
Comment 191 Carl Schrader 2002-09-17 20:51:29 PDT
What is holding this patch up??
Comment 192 Aleksey Nogin 2002-09-17 20:56:09 PDT
Nothing is holding it up, except that the code needs to be reviewed (the latest
code should be available at

P.S. I am not sure whether nsbeta nomination in meanigful since Netscape already
has its own closed-source spellchecker (that's probably more mature that what
we've got so far).
Comment 193 Steve Wardell 2002-09-17 21:47:42 PDT
So would the next stage be to get the module owner of Composer
(Editor/Composer), which is Akkana Peck (, involved? Should
the patch be posted in here or is it alright to have it on mozdev?
Comment 194 Christian :Biesinger (don't email me, ping me on IRC) 2002-09-18 03:32:01 PDT
I, at least, would like to see a patch here, or if on mozdev, at least as a
.diff. I am not sure if a diff is available on mozdev...

or does spellchecker only consist of new files?
Comment 195 Ashley Bischoff (blog at 2002-09-18 07:02:01 PDT
Regarding comment #192, one possibly hold-up is that the Spellchecker is
currently broken with the nightly builds. See also mozdev bug 2034:
Comment 196 Carl Schrader 2002-09-18 07:46:01 PDT
Yeah, it's basically been hosed since 1.1.. that's why I keep hoping that it 
will make it into the tree so that it gets more attention..
Comment 197 Ben Bucksch (:BenB) 2002-09-18 09:00:38 PDT
The code consists mainly out of new files. In addition to being in the mozdev
CVS, it is also in the Beonex Communicator branch, which lives in the CVS. BEONEX_0_8_BRANCH (based on Moz1.0 branch), BEONEX_0_9_BRANCH
(based on Moz1.1 branch), directory extensions/spellcheck/. Spellchecker in 0.8
works fine (apart from a few crashers), 0.9 is untested.
Comment 198 David Einstein 2002-09-18 09:12:29 PDT
The current spellchecker does not work unless you are willing to compile it
yourself.  It appears that Mozilla is going through a bit of a flux, small 
interface changes, nsAVLtree dissappearing etc.  My past experience has
indicated that it is not worth my while to attempt to track these changes
until things settle down.
That said, if the powers that be are willing to integrate it, I would be more than
glad to bring it compliance with the modern mozilla.
Comment 199 GA 2002-09-18 09:32:07 PDT
note from experience:  I'm using current RC3 release of spell-checker with
v1.0.1 release (#2002082606).   The Spell-checker was _very_ unstable until I
selected a default language of "English/United States".   Upon my install, the
checker did not have a default language.  After select, it's been quite stable
(30-50 emails/day .. english).
Comment 200 Matthias Versen [:Matti] 2002-09-23 17:58:02 PDT
*** Bug 170408 has been marked as a duplicate of this bug. ***
Comment 201 Mike Kaply [:mkaply] 2002-09-25 15:55:30 PDT
We (IBM) want this.

So I'll take the banner here.

If we can get the code to a current level. I will take the lead to have my team
review it
Comment 202 John Dobbins 2002-09-25 17:04:30 PDT
I Have downloaded the source for the spellchecker and integrated it with the
Mozilla 1.1 Source. I no problems with building Mozilla 1.1 with the
spellchecker code added to the source, so the code isn't too out of date.

Would it be possible to check this into the tree, but leave it out of the
nightly builds for now, like Calendar. This would give people the option of
Building Mozilla with the Spellchecker, and would make it easier to find any
problems that may be in the latest code.
Comment 203 Ashley Bischoff (blog at 2002-09-25 20:21:08 PDT
Michael: You can find the current spellchecker-XPI (and its source) here:

However, that code hasn't cooperated with the Mozilal nightlies since about
August 30th:
Comment 204 Aleksey Nogin 2002-09-29 21:20:44 PDT
Comment on attachment 66755 [details] [diff] [review]
Changes to top-level make system (Linux)

The patch to top-level make files now lives on mozdev spellchecker CVS:
Comment 205 Akkana Peck 2002-10-11 11:28:19 PDT
Please be aware: as part of ongoing removal of the deprecated editorshell class,
I have a patch in bug 168999 which splits the implementation of
nsIEditorSpellCheck out of nsEditorShell into its own class (nsEditorSpellCheck,
which lives in libcomposer and is created via CreateInstance rather than a QI on
the editorshell).  We are hoping to land this soon, before 1.2beta goes out.

I don't think this will break anything in the mozdev spellchecker -- I didn't
have to change anything in the ns spellchecker -- but I'm not sure how to test
the mozdev spellchecker.  Timeless has pointed me to a comment in bug 142182,
and I've done cvs update -d -rBEONEX_0_9_BRANCH extensions/spellcheck, but I'm
not sure how to get the right mozAVLTree code that extensions/spellcheck needs.
 If someone can post current build instructions, I'd like to test this; or,
failing that, can someone who does have the spellchecker building please test
the patch in bug 168999 and ensure that it doesn't break anything?  Thanks!
Comment 206 Ashley Bischoff (blog at 2002-10-11 14:13:26 PDT
Akkana: Err, isn't the mozdev spellchecker already broken? (comment #203)
Comment 207 Aleksey Nogin 2002-10-11 14:22:45 PDT
> isn't the mozdev spellchecker already broken

No, that was fixed couple of weeks ago.
Comment 208 David Einstein 2002-10-11 14:25:45 PDT
It is sort of broken.  The cvs code should build, the spell checker works on my
machine :-)  There are know error handling problems which I hope to get to soon.
I doubt that Akkana has broken anything drasticaly, and will try to make things
right this weekend.  I thank her profusely for notifying me that things will break.
Now if I can only keep the cvs server from losing interest while
updating my mozilla sources.
Comment 209 Derwood 2002-10-11 14:31:52 PDT
where's the latest installer on mozdev?  spellcheck's been busted for me for
weeks with no updated installer available for nightly builds.
Comment 210 Akkana Peck 2002-10-11 15:05:04 PDT
I pulled the spellchecker from mozdev CVS and built it (without the patch, since
the patch didn't apply) and ran it with my nsEditorSpellChecker changes.  Basic
spell checking works, but Recheck Document crashes in mozAVLTree code (which I
doubt is related to my changes).  I'm going to go ahead with the editor changes
(assuming I get approval), and will keep on top of this bug to make sure I
didn't break anything once the AVLTree stuff gets sorted out.
Comment 211 Boris Zbarsky [:bz] (still a bit busy) 2002-10-19 11:50:25 PDT
*** Bug 175421 has been marked as a duplicate of this bug. ***
Comment 212 Dusty Deryck 2002-10-26 22:39:18 PDT
I downloaded and istalled spellchk.xpi from Netscape.  It worked well in Mozilla
1.1.  It does NOY work in 1.2a or b.  Can anyone tell my why ...and how to get a
spellcheck that works with mail client in Mozilla 1.2b?  Thanks.
Comment 213 Ashley Bischoff (blog at 2002-10-26 23:30:49 PDT
Dusty: Normally, you'd just download the Spellchecker.xpi from, but that hasn't worked since late August.
(comment #203).

For people without a compiler (which is most of us), I know of no spellcheckers
that are available for 1.2 or the nightlies.
Comment 214 Mike Kaply [:mkaply] 2002-10-28 08:14:59 PST
First comments from reviewing:

67:: Why is "mPersonalDictionary->Save()" commented out?
**:: No spaces after commas, especially in function calls;
     makes reading code difficult

65:: Both "en" and non-english languages return mozEnglishWordUtils
Comment 215 Todd 2002-11-01 15:34:22 PST
Hi All,

    I just had to upgrade a customer's (small) business from 1.1 to 
1.2b to solve a problem with one of their web sites.  Worked
great, except "no spell checker".   You can only imagine the amount
of embarrassment this caused.   

    Spell Checker needs to be added to the general tree as soon as
practical and remain there in all new releases.  That being said,
I am added myself to the Cc: list.

   Thanks for letting me grumble.

Many thanks,
Comment 216 Mike Kaply [:mkaply] 2002-11-01 15:41:49 PST
More comments from review:


Provide an explanation for 
kFirstDirSize = 8

in SetDictionary and GetLanguage

There really can't be like a de dictionary? en is the only two char dictionary?

Isn't *aDictionary = '\0' a failing case as well?


explain FIXME

explain complainloudly
Comment 217 Torben 2002-11-05 05:19:54 PST
*** Bug 178417 has been marked as a duplicate of this bug. ***
Comment 218 Bryce Mozilla Nesbitt 2002-11-06 08:52:21 PST
I've given up in frustration trying to install on Linux. So, in effect, I've
lost the ability to have a spellchecker.  And I can't update my clients either
without the same fear.

The spellchecker itself is great -- if there is anyone willing to work on
installation & version-matching issues, many many more people could take
advantage of it.
Comment 219 Pratik 2002-11-06 09:34:36 PST

recent nightly + spellchecker from netscape 7 = works great!

so don't break sweat trying to get the mozdev spellchecker working. Enjoy the
netscape spellchecker until they break it again. fyi, it works only on Linux,
doesn't work on Windows.
Comment 220 Matthias Versen [:Matti] 2002-11-06 11:19:58 PST
*** Bug 178666 has been marked as a duplicate of this bug. ***
Comment 221 Andrea Monni 2002-11-07 02:25:02 PST
The target milestone should be updated and, hopefully, to a realistic one: it's
been slipping since when I started looking at this bug (more than 18 months).
Comment 222 loadrunner 2002-11-14 16:54:57 PST
Recompiled version (for 1.2 and trunk builds) is available on MozillaCafe:

Comment 223 Jacek Piskozub 2002-11-14 17:29:45 PST
Login and password are required to download the file :-(
Comment 224 loadrunner 2002-11-14 17:34:16 PST
Created attachment 106306 [details]

fresh binary for 1.2 and trunk builds
Comment 225 Christopher Blizzard (:blizzard) 2002-11-15 08:29:27 PST
Isn't this the bug that would allow the spellchecker to get checked into the
tree?  Why isn't that happening?
Comment 226 jhp (no longer active) 2002-11-15 09:51:40 PST
Blizzard:  See comment #214 and comment #216.  We (Kaply, myself, and J. Blanco)
reviewed the spellchecker code and had some questions for the original
developers.  We were hoping to have these answered prior to the code being
checked into the tree, but we have yet to hear from the developer (David
Einstein).  So, what is our next course of action?
Comment 227 rods (gone) 2002-11-15 10:37:42 PST
I am very close to having the new interfaces working, just one or two more
issues before a review is needed.
Comment 228 Christopher Blizzard (:blizzard) 2002-11-15 12:04:23 PST
Wait, what?  New interfaces?  Where has all this secret work been done?
Comment 229 Jim 2002-11-15 15:35:34 PST
I have only one wish so far.  Can the Hot Key for the spell checker activation
be changed from Ctrl-K to F7.  I have gotten very used to OpenOffice and I like
the F7 key for the spell checker.  This also seems to be a fairly common
standard (F7 as the Hot Key for spell check).
Comment 230 GA 2002-11-15 15:42:33 PST
Hello -- primary request focus is keyboard shortcuts and/or "hotkeys" should
_not_ be hard-coded and customizable by end-user.  -GA
Comment 231 Christian :Biesinger (don't email me, ping me on IRC) 2002-11-15 16:02:55 PST
F7 is already taken, hit it and you will see.

blizzard: that interface work seems to be done in bug 180346 and bug 129704
Comment 232 Brook Harty 2002-11-17 02:33:04 PST
Can someone please compile a version for the 1.3a nightly builds for win32.
Comment 233 Todd 2002-11-17 15:16:18 PST
Hi Brook,

   If you meant 1.2a, check out comment #224

Comment 234 rods (gone) 2002-11-19 06:59:33 PST
I know David is aware, but I just put up a patch for that provides the new
SpellCheck interfaces and the new "glue" code for enabling external
spellcheckers to work with Mozilla.

This work is pending reviews, but should be very close to what will be checked in. 

Currently the "glue" is part of Netscape's commercial tree and is closely tied
to our "internal" spellchecker. This patch breaks that apart and moves the more
"generic" glue code over into the public tree. See Bug 180346
Comment 235 Todd 2002-11-21 19:12:11 PST
Hi All,
    OH NO!  The spellchecker download on comment 222 & 224 no longer
works with on w2k-p, sp3.  :-(   Last one I got it
to work with was

Comment 236 Michael Baffoni 2002-11-21 20:13:04 PST
Works for me on 20021121 (from zip, not exe), win2k, sp3.  Clean installs, not
copied over prior versions.  I reinstall spellcheck each time I download the
nightly....  Actually, I'm posting from 20021118, winxp, sp1.
Comment 237 Todd 2002-11-21 20:50:08 PST
Hi All,

  On Michael's (eMailed) recommendation to me, I renamed my Mozilla directory 
to Mozilla.000 and reinstalled.  I then copied my searchplugins and plugins 
into the new Mozilla directory, reloaded comment 224 of the spell checker, and it
worked.  :-)

Comment 238 Derwood 2002-11-21 20:54:25 PST
Note that the component plug-in changed names.  The old one was spellcheck.dll
while the new is spellchk.dll, you may have had the older one in there causing
Comment 239 Matthias Versen [:Matti] 2002-11-22 15:26:35 PST
*** Bug 181554 has been marked as a duplicate of this bug. ***
Comment 240 Sander 2002-12-02 13:16:46 PST
*** Bug 183063 has been marked as a duplicate of this bug. ***
Comment 241 Torben 2002-12-04 07:14:10 PST
*** Bug 183423 has been marked as a duplicate of this bug. ***
Comment 242 Michael Baffoni 2002-12-11 15:19:31 PST
The spellchecker pretty consistently crashes the latest mozilla nightly (zip)
when spell check is run.  My build info is:Mozilla/5.0 (Windows; U; Windows NT
5.0; en-US; rv:1.3a) Gecko/20021211 .  I'm running MozSpell_1.2f_w32.xpi .
Comment 243 Derwood 2002-12-11 17:43:01 PST
Agree.  I had to rollback to 202121004 (win32).
Comment 244 (away - not reading bugmail) 2002-12-11 20:48:13 PST
Thanks for pointing this out! It's crashing in editor.dll, in 
nsTextServicesDocument::GetCurrentTextBlock. I'll have a look at it tonight.
Comment 245 Aleksey Nogin 2002-12-11 21:55:52 PST
Are you using an old binary, or a recompiled one? I am pretty sure that bug
173046 commit would have changed things sufficiently to break backwards
compatibility with spellchecker binaries.
Comment 246 jean-max Reymond 2002-12-11 23:38:07 PST
same troubles with Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.3a)
Gecko/20021211 and the spellchecker 1.3a nightly from the install page.
Comment 247 Aleksey Nogin 2002-12-11 23:55:43 PST
Please do not add comments of the form "old spellchecker binary does not work
with a new Mozilla binary" - they have nothing to do with Mozilla, and only
means that there is a need for spellchecker volunteers to compile fresh
binaries. Those complaints belong on the mozdev Bugzilla and mozdev mailing list.

> ... and the spellchecker 1.3a nightly from the install page

there is no such thing - there are spellchecker binaries for 1.2/1.2.1 that
happen to also work with 1.3a nightlies. As soon as 1.3a branched off and the
1.3b cycle started, the bug 173046 code was checked in and (I believe) the
binary compatibility was broken.

In short, recompile the spellchecker yourself or wait until somebody does it for
Comment 248 Gus Scheidt 2002-12-13 14:02:40 PST
There is now a new spellchecker 1.3a binary (for Windows only right now) on the installation page.  In addition, all of the other
Windows binaries have been updated (working on new binaries for other platforms)
with some bug fixes.

Hopefully the new spell checking interface work will land in the Mozilla tree
soon so that things will become easier.
Comment 249 Jim Dunn 2003-01-06 11:54:02 PST
*** Bug 178702 has been marked as a duplicate of this bug. ***
Comment 250 unknown_kev_cat 2003-01-06 17:05:41 PST
Hey, before we finish this off, i think we should also add a grammar checking
interface too. it should be almost the same interface as the spell chacker but
it should be seperate enough to be able to use one person's spell checker and
annother one's  grammar checker, rather than forcing them to be the same
component. also for the interface aware of the markup it should atomaticly
ignore/switch grammer/spell checkers (at user preference) for those tags that
label their contents as a language other than the default. Of course if a person
has a spell checker installed for EN it should be used on all the dialects such
as EN-US, but a spell checker set up for EN-US should not nessisarily be usede
for EN (user preference) and certainly not used for EN-UK etc.
Comment 251 Pratik 2003-02-13 10:20:43 PST
*** Bug 193174 has been marked as a duplicate of this bug. ***
Comment 252 jg 2003-04-04 05:47:06 PST

Is this the correct place to point out that messenger subjects are not
spellchecked?  If not, could someone either report it to who needs to know, or
email me please? I'm not on this bug...


Comment 253 timeless 2003-04-21 08:40:50 PDT
*** Bug 202794 has been marked as a duplicate of this bug. ***
Comment 254 Samir Gehani 2003-04-30 17:02:07 PDT
adt: nsbeta1-
Comment 255 David Crick 2003-06-05 06:34:12 PDT
As I can see no sign of the spellchecker on the 1.4 RC1
Mail toolbar, does this mean it won't make it (compiled)
into the 1.4 Final release? :(

No doubt there'll be a release to work with
1.4, but it would have been nice to see it integrated.
Comment 256 Joel Nelson (don't send email) 2003-06-05 07:49:20 PDT
No, this will not be in 1.4.   It is marked as nsbeta1- indicating it will not
be in the next Netscape release, which is to be based on the 1.4 branch.    As
far as  a version being available -- the Mac OS X build for 1.4b
still hasn't been released and we are already on to 1.4 release candidate 1.
Comment 257 Christian :Biesinger (don't email me, ping me on IRC) 2003-06-05 09:17:50 PDT
that is not quite correct... nsbeta1- just means that netscape employees will
probably not work on this bug (afaik); but if someone else were to get this
checked in on the 1.4 branch, it would end up in a netscape release.
Comment 258 Joel Nelson (don't send email) 2003-06-05 09:35:37 PDT
Thank you for the clarification. :-)
Comment 259 Ken Snider 2003-06-05 09:47:25 PDT
Given that the API is supposedly static now, perhaps we can get this in 1.4 final?
Comment 260 Simon Spiegel 2003-06-05 10:18:40 PDT
I don't think that this going to happen (spellchecker in 1.4 that is), but
Thunderbird already features a spellchecker, so it seems that with 1.5 this bug
will be finally fixed.
Comment 261 2003-06-05 10:21:24 PDT
I'm sorry for the delays, but I haven't had time to work on this. I hope to be 
able to land the spell checker on the 1.4 branch, but the code has to go 
through an approval process and I wanted to see, if we could salvage some of 
Rod Spears' work as well. He was working on landing Netscape's spell checker 
glue code.

I don't think that Netscape would be interested in this spell checker; they 
would probably turn the extension off in their build process.
Comment 262 timeless 2003-06-06 10:35:04 PDT
1.4 is supposed to be a long lived useful stable branch, so getting a
spellchecker into it is important.

it appears that thunderbird is indeed using the spellchecker in question so i
have to wonder why the people who used it there haven't helped land it on trunk.
Comment 263 Matthias Versen [:Matti] 2003-06-07 16:28:32 PDT
*** Bug 208677 has been marked as a duplicate of this bug. ***
Comment 264 Christopher Blizzard (:blizzard) 2003-06-09 08:03:16 PDT
Stop over-optimizing.  I don't know about the mail/news guys but I would suggest
that we get the spellchecker in now and worry about interface changes later.
Comment 265 Jo Hermans 2003-06-11 12:14:57 PDT
*** Bug 209075 has been marked as a duplicate of this bug. ***
Comment 266 Robert Accettura [:raccettura] 2003-06-19 14:01:43 PDT
I take it this isn't going to make 1.4 :-(

It's a shame.  This far, and still no spell checker.
Comment 267 Carl Schrader 2003-06-19 14:10:10 PDT
Switch to Thunderbird, spellcheck is in and working good for the most part..
Comment 268 Derwood 2003-06-19 14:15:36 PDT
Yes there is.  Go get it.
Comment 269 kinmoz 2003-06-25 17:20:20 PDT
Created attachment 126504 [details]
Kin's spellchecker review notes

Here are the review notes I took while looking at the current set of sources
for spellchecker. There are some potential leaks, some cases where
we are checking the wrong pointer for null, and perhaps the need for more error
checking during allocation of memory, but nothing major that I have noticed
that should prevent this from landing in the mozilla/extensions directory.

As long as drivers give approval, I'm willing to give an
for the landing as long as the issues pointed out in these notes get addressed
either before or after the landing.
Comment 270 Joel Nelson (don't send email) 2003-06-26 08:25:08 PDT
There is still no Mac OS X spellchecker available (since 1.4a).
Comment 271 Jo Hermans 2003-07-06 11:36:01 PDT
*** Bug 211871 has been marked as a duplicate of this bug. ***
Comment 272 Josh Birnbaum 2003-07-17 09:19:52 PDT
*** Bug 212980 has been marked as a duplicate of this bug. ***
Comment 273 Mike Kaply [:mkaply] 2003-07-24 14:44:43 PDT

Spellchecker is in but not turned on.

I need to incorporate kin's review comments.
Comment 274 Scott MacGregor 2003-07-24 21:44:03 PDT
Mike, thanks a lot for landing this in mozilla. I was also in the process of
landing it in the near future and am happy to see this happen. Question, when I
started looking into doing this, I did some research on the license for the
myspell engine. After discussions with staff, we decided the myspell
stuff needed to go into mozilla\other-licenses. I didn't see this as part of the
checkin. Did you find something else out about the licensing issue? That's one
of the main reason why I had not gotten around to landing this. 
Comment 275 Boris Zbarsky [:bz] (still a bit busy) 2003-07-30 11:29:39 PDT
*** Bug 214491 has been marked as a duplicate of this bug. ***
Comment 276 Oliver Klee 2003-07-30 13:34:56 PDT
*** Bug 214495 has been marked as a duplicate of this bug. ***
Comment 277 Steve Wardell 2003-07-30 20:05:49 PDT
Should this be marked fixed as the spell checker is now enabled in default builds?
Comment 278 David G King 2003-07-31 14:48:11 PDT
Marking Fixed, although Comment #274 might change that (or cause a new bug).
Comment 279 Bruce Wolfe 2003-08-05 16:09:14 PDT
I have both v1.5a and 1.4.  Both do not have Spell Check enabled in Preferences

Please advise.
Comment 280 Steve Wardell 2003-08-05 16:23:02 PDT
This was not checked in until after the release of v1.5a. If you download a
current nightly build, they will have the spellchecker.
Comment 281 Stephen Donner [:stephend] 2003-09-15 23:47:57 PDT
*** Bug 207100 has been marked as a duplicate of this bug. ***

Note You need to log in before you can comment on or make changes to this bug.