* bug#19229: ispell-phaf: No matching entry for ...
@ 2014-11-30 18:25 Alexander Shukaev
2014-11-30 19:50 ` bug#19229: A workaround for hunspell Chris Zheng
` (2 more replies)
0 siblings, 3 replies; 23+ messages in thread
From: Alexander Shukaev @ 2014-11-30 18:25 UTC (permalink / raw)
To: 19229
[-- Attachment #1: Type: text/plain, Size: 1017 bytes --]
Wasted the whole day on trying to make Hunspell work with Emacs on Windows
and still out of luck.
(setq ispell-program-name (executable-find "hunspell"))
(setq ispell-dictionary "en_US")
(require 'ispell)
This is the most basic configuration that should definitely work.
$ hunspell -D
> SEARCH PATH:
> .;C:/Tools/x64/MSYS2/mingw64/bin/;C:/Tools/x64/MSYS2/mingw64/share/hunspell;C:/Tools/x64/MSYS2/mingw64/share/myspell;C:/Tools/x64/MSYS2/mingw64/share/myspell/dicts;%USERPROFILE%\/Application
> Data/OpenOffice.org
> 2/user/wordbook;C:/Tools/x64/MSYS2/mingw64/share/hunspell;C:/Tools/x64/MSYS2/mingw64/share/myspell;C:/Tools/x64/MSYS2/mingw64/share/myspell/dicts
> AVAILABLE DICTIONARIES (path is not mandatory for -d option):
> LOADED DICTIONARY:
> C:/Tools/x64/MSYS2/mingw64/share/hunspell/en_US.aff
> C:/Tools/x64/MSYS2/mingw64/share/hunspell/en_US.dic
> Hunspell 1.3.3
I keep getting:
ispell-phaf: No matching entry for ...
and it's no surprise because `ispell-hunspell-dict-paths-alist' is `nil'.
Why?
[-- Attachment #2: Type: text/html, Size: 1719 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#19229: A workaround for hunspell 2014-11-30 18:25 bug#19229: ispell-phaf: No matching entry for Alexander Shukaev @ 2014-11-30 19:50 ` Chris Zheng 2014-12-01 16:26 ` Eli Zaretskii 2014-11-30 21:15 ` bug#19229: ispell-phaf: No matching entry for Eli Zaretskii 2015-05-20 18:53 ` bug#19229: ispell on Windows Alan Third 2 siblings, 1 reply; 23+ messages in thread From: Chris Zheng @ 2014-11-30 19:50 UTC (permalink / raw) To: 19229; +Cc: haroogan Hi Alexander, I think I have wasted more time than you. :( I have a way to workaround this problem. See the below diff. I don't know whether this affect *nix users, so it just stays in my init files. *** a Mon Dec 1 03:40:31 2014 --- b Mon Dec 1 03:40:31 2014 *************** *** 27,33 **** (error "ispell-fhd: Default dict already defined as %s. Not using %s.\n" hunspell-default-dict dict) (setq affix-file dict) ! (setq hunspell-default-dict (list basename affix-file))) (if (and (not (assoc basename ispell-hunspell-dict-paths-alist)) (file-exists-p affix-file)) ;; Entry has an associated .aff file and no previous value. --- 27,35 ---- (error "ispell-fhd: Default dict already defined as %s. Not using %s.\n" hunspell-default-dict dict) (setq affix-file dict) ! (setq hunspell-default-dict (list basename affix-file)) ! (add-to-list 'ispell-hunspell-dict-paths-alist ! (list basename affix-file))) (if (and (not (assoc basename ispell-hunspell-dict-paths-alist)) (file-exists-p affix-file)) ;; Entry has an associated .aff file and no previous value. ^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#19229: A workaround for hunspell 2014-11-30 19:50 ` bug#19229: A workaround for hunspell Chris Zheng @ 2014-12-01 16:26 ` Eli Zaretskii 0 siblings, 0 replies; 23+ messages in thread From: Eli Zaretskii @ 2014-12-01 16:26 UTC (permalink / raw) To: Chris Zheng; +Cc: haroogan, 19229 > Date: Mon, 01 Dec 2014 03:50:50 +0800 > From: Chris Zheng <chriszheng99@gmail.com> > Cc: haroogan@gmail.com > > I think I have wasted more time than you. :( I have a way to > workaround this problem. See the below diff. I don't know whether > this affect *nix users, so it just stays in my init files. > > *** a Mon Dec 1 03:40:31 2014 > --- b Mon Dec 1 03:40:31 2014 > *************** > *** 27,33 **** > (error "ispell-fhd: Default dict already defined as %s. Not using %s.\n" > hunspell-default-dict dict) > (setq affix-file dict) > ! (setq hunspell-default-dict (list basename affix-file))) > (if (and (not (assoc basename ispell-hunspell-dict-paths-alist)) > (file-exists-p affix-file)) > ;; Entry has an associated .aff file and no previous value. > --- 27,35 ---- > (error "ispell-fhd: Default dict already defined as %s. Not using %s.\n" > hunspell-default-dict dict) > (setq affix-file dict) > ! (setq hunspell-default-dict (list basename affix-file)) > ! (add-to-list 'ispell-hunspell-dict-paths-alist > ! (list basename affix-file))) > (if (and (not (assoc basename ispell-hunspell-dict-paths-alist)) > (file-exists-p affix-file)) > ;; Entry has an associated .aff file and no previous value. Please see my comments. If what I wrote there still doesn't work for you, please describe the details of the failure. (Are you also using the MSYS2 port of Hunspell 1.3.3? if so, please try the ezwinports port instead.) ^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#19229: ispell-phaf: No matching entry for ... 2014-11-30 18:25 bug#19229: ispell-phaf: No matching entry for Alexander Shukaev 2014-11-30 19:50 ` bug#19229: A workaround for hunspell Chris Zheng @ 2014-11-30 21:15 ` Eli Zaretskii 2014-11-30 21:55 ` Alexander Shukaev 2015-05-20 18:53 ` bug#19229: ispell on Windows Alan Third 2 siblings, 1 reply; 23+ messages in thread From: Eli Zaretskii @ 2014-11-30 21:15 UTC (permalink / raw) To: Alexander Shukaev; +Cc: 19229 > Date: Sun, 30 Nov 2014 19:25:45 +0100 > From: Alexander Shukaev <haroogan@gmail.com> > > Wasted the whole day on trying to make Hunspell work with Emacs on Windows and > still out of luck. Works for me out of the box, FWIW. > (setq ispell-program-name (executable-find "hunspell")) > > (setq ispell-dictionary "en_US") > > > (require 'ispell) > > This is the most basic configuration that should definitely work. > > $ hunspell -D > SEARCH PATH: > .;C:/Tools/x64/MSYS2/mingw64/bin/;C:/Tools/x64/MSYS2/mingw64/share/hunspell;C:/Tools/x64/MSYS2/mingw64/share/myspell;C:/Tools/x64/MSYS2/mingw64/share/myspell/dicts;%USERPROFILE%\/Application > Data/OpenOffice.org > 2/user/wordbook;C:/Tools/x64/MSYS2/mingw64/share/hunspell;C:/Tools/x64/MSYS2/mingw64/share/myspell;C:/Tools/x64/MSYS2/mingw64/share/myspell/dicts > > AVAILABLE DICTIONARIES (path is not mandatory for -d option): ^^^^^^^^^^^^^^^^^^^^^^ Why is this list empty? > LOADED DICTIONARY: > C:/Tools/x64/MSYS2/mingw64/share/hunspell/en_US.aff > C:/Tools/x64/MSYS2/mingw64/share/hunspell/en_US.dic > Hunspell 1.3.3 > > I keep getting: > > ispell-phaf: No matching entry for ... > > and it's no surprise because `ispell-hunspell-dict-paths-alist' is `nil'. Why? Maybe your Hunspell port is broken? Can you try this one: http://sourceforge.net/projects/ezwinports/files/hunspell-1.3.2-3-w32-bin.zip/download Here's what I get from -D with that port: SEARCH PATH: .;;C:\Hunspell\;D:\usr\eli\.openoffice.org\3\user\wordbook;D:\usr\bin\..\share\hunspell;C:\Program files\OpenOffice.org 2.4\share\dict\ooo\;C:\Program files\OpenOffice.org 2.3\share\dict\ooo\;C:\Program files\OpenOffice.org 2.2\share\dict\ooo\;C:\Program files\OpenOffice.org 2.1\share\dict\ooo\;C:\Program files\OpenOffice.org 2.0\share\dict\ooo\ AVAILABLE DICTIONARIES (path is not mandatory for -d option): D:\usr\bin\..\share\hunspell\american D:\usr\bin\..\share\hunspell\default D:\usr\bin\..\share\hunspell\de_AT D:\usr\bin\..\share\hunspell\de_CH D:\usr\bin\..\share\hunspell\de_DE D:\usr\bin\..\share\hunspell\de_DE_frami D:\usr\bin\..\share\hunspell\ENU D:\usr\bin\..\share\hunspell\en_GB D:\usr\bin\..\share\hunspell\en_MED D:\usr\bin\..\share\hunspell\en_US D:\usr\bin\..\share\hunspell\he_IL D:\usr\bin\..\share\hunspell\russian D:\usr\bin\..\share\hunspell\ru_RU D:\usr\bin\..\share\hunspell\sv_SE LOADED DICTIONARY: D:\usr\bin\..\share\hunspell\default.aff D:\usr\bin\..\share\hunspell\default.dic Hunspell 1.3.2 and my ispell-hunspell-dict-paths-alist is definitely not empty, it is filled by the dictionaries listed in the AVAILABLE DICTIONARIES section. ^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#19229: ispell-phaf: No matching entry for ... 2014-11-30 21:15 ` bug#19229: ispell-phaf: No matching entry for Eli Zaretskii @ 2014-11-30 21:55 ` Alexander Shukaev 2014-12-01 16:24 ` Eli Zaretskii 0 siblings, 1 reply; 23+ messages in thread From: Alexander Shukaev @ 2014-11-30 21:55 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 19229 [-- Attachment #1: Type: text/plain, Size: 3797 bytes --] Thanks a lot for the tip. I don't know what was wrong with MSYS2 version of hunspell, but this one works with the following minimal configuration: (setq ispell-program-name (executable-find "hunspell")) (setq ispell-local-dictionary "en_US") (setq ispell-local-dictionary-alist '(("en_US" "[[:alpha:]]" "[^[:alpha:]]" "[']" nil nil nil utf-8))) Nevertheless, I can still see ispell-phaf: No matching entry for nil So it still tries to call `ispell-parse-hunspell-affix-file' with `nil' for the first time, and only then calls it with "en_US" in my case. Secondly, I think that relying on "hunspell -D" so stubbornly that `ispell-parse-hunspell-affix-file' blocks all further usage of ispell.el with hunspell if `ispell-hunspell-dict-paths-alist' is just dumb. Here are a few reasons: 1. Not all distributions of hunspell even supply "share/hunspell/*" stuff with them; 2. Some users don't use dictionaries from "share/hunspell/*" because they might get either more updated dictionaries themselves and/or already have customized personal dictionaries. For instance, #2 is exactly what I was planning to do: (let ((dictionaries-dir (expand-file-name "dictionaries" user-emacs-directory))) (make-directory dictionaries-dir t) (setq ispell-local-dictionary "en_US") (setq ispell-local-dictionary-alist '((nil "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-d" "en_US" "-p" dictionaries-dir) nil utf-8) ("en_US" "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-d" "en_US" "-p" dictionaries-dir) nil utf-8) ("german" "[[:alpha:]]" "[^[:alpha:]]" "[']" t ("-d" "de_DE_frami" "-p" dictionaries-dir) "~tex" utf-8) ("russian" "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-d" "ru_RU" "-p" dictionaries-dir) nil utf-8))))) and in this case I obviously don't care at all whether hunspell has anything in "share/hunspell/*" or not. So why would I be forcefully blocked to use it with some weird error from `ispell-parse-hunspell-affix-file'? How about redesign? [-- Attachment #2: Type: text/html, Size: 8878 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#19229: ispell-phaf: No matching entry for ... 2014-11-30 21:55 ` Alexander Shukaev @ 2014-12-01 16:24 ` Eli Zaretskii 2014-12-01 17:15 ` Alexander Shukaev 0 siblings, 1 reply; 23+ messages in thread From: Eli Zaretskii @ 2014-12-01 16:24 UTC (permalink / raw) To: Alexander Shukaev; +Cc: 19229 > Date: Sun, 30 Nov 2014 22:55:17 +0100 > From: Alexander Shukaev <haroogan@gmail.com> > Cc: 19229@debbugs.gnu.org > > Thanks a lot for the tip. > > I don't know what was wrong with MSYS2 version of hunspell, but this one works with the following minimal configuration: > > (setq ispell-program-name (executable-find "hunspell")) > (setq ispell-local-dictionary "en_US") > (setq ispell-local-dictionary-alist '(("en_US" > "[[:alpha:]]" > "[^[:alpha:]]" > "[']" > nil > nil > nil > utf-8))) I think you don't need most of this, see below. > Nevertheless, I can still see > > ispell-phaf: No matching entry for nil I don't see it on my system. With "emacs -Q", all I need is to evaluate (setq ispell-program-name (executable-find "hunspell")) After that, "M-x ispell-buffer RET" works as expected, and I see no error messages about ispell-phaf in *Messages*. Does that work for you? > So it still tries to call `ispell-parse-hunspell-affix-file' with `nil' for the first time, and only then calls it with "en_US" in my case. But your above minimal configuration is not how Hunspell should be set up with Emacs 24.4 and later. First, it is best to set up the default dictionary to be for the language you spellcheck the most. If that's US English, then just copy en_US.* files to the corresponding default.* files, and that's it. If the default dictionary is not what you want, you should only need this one additional line to switch globally to another one: (ispell-change-dictionary "en_US" t) (Of course, "en_US" can be replaced with any other language.) With this one line in addition to setting ispell-program-name I get a working spelling in US English, and no error messages in "emacs -Q". Does this work for you? > Secondly, I think that relying on "hunspell -D" so stubbornly that `ispell-parse-hunspell-affix-file' blocks all further usage of ispell.el with hunspell if `ispell-hunspell-dict-paths-alist' is just dumb. I don't think so. The code in ispell.el that queries the speller about the available dictionaries is IMO a very useful feature because asking the speller about dictionaries is the most reliable way of detecting which ones are available and what languages/encodings they support. Without that, Emacs must rely on the user to manually set up ispell-local-dictionary-alist, which is error prone and cumbersome (e.g., how do you tell which dictionary needs what encoding?). With the original Ispell program, ispell-local-dictionary-alist was a must, but modern spellers, like aspell and hunspell, can be queried about the dictionaries, which makes your ispell-local-dictionary-alist customization above entirely unnecessary. > Not all distributions of hunspell even supply "share/hunspell/*" stuff with them; Then those distributions are simply broken: Hunspell isn't worth anything without at least one dictionary. It's OK to provide dictionaries in a separate archive, but not having them around at all is bad news for Windows users who download Hunspell, because finding these dictionaries and figuring out how to install the various RPMs you find out there is not for the faint at heart. > Some users don't use dictionaries from "share/hunspell/*" because they might get either more updated dictionaries themselves and/or already have customized personal dictionaries. If the dictionaries are installed in a location different from the default share/hunspell/ directory, the user should set the DICPATH environment variable to point to the directories with the dictionaries, and "hunspell -D" will still report them. See "man hunspell" for more details. > For instance, #2 is exactly what I was planning to do: > > (let ((dictionaries-dir (expand-file-name "dictionaries" > user-emacs-directory))) > (make-directory dictionaries-dir t) > (setq ispell-local-dictionary "en_US") > (setq ispell-local-dictionary-alist '((nil > "[[:alpha:]]" > "[^[:alpha:]]" > "[']" > nil > ("-d" "en_US" > "-p" dictionaries-dir) > nil > utf-8) > ("en_US" > "[[:alpha:]]" > "[^[:alpha:]]" > "[']" > nil > ("-d" "en_US" > "-p" dictionaries-dir) > nil > utf-8) > ("german" > "[[:alpha:]]" > "[^[:alpha:]]" > "[']" > t > ("-d" "de_DE_frami" > "-p" dictionaries-dir) > "~tex" > utf-8) > ("russian" > "[[:alpha:]]" > "[^[:alpha:]]" > "[']" > nil > ("-d" "ru_RU" > "-p" dictionaries-dir) > nil > utf-8))))) > > > and in this case I obviously don't care at all whether hunspell has anything in "share/hunspell/*" or not. So why would I be forcefully blocked to use it with some weird error from `ispell-parse-hunspell-affix-file'? I don't see why you would need such an elaborate manual setup. (Btw, the -p switch is not for telling Hunspell where to find the dictionaries, it's for telling it where are your _personal_ dictionaries.) You are reinventing the wheel, fighting an uphill battle against Hunspell and ispell.el while at that, and then complain that it's hard. Just set DICPATH in the environment and be done, it's much simpler. Play by the rules, and everything should "just work" (barring bugs). IOW, ispell.el's handling of Hunspell is based on the assumption that the user has a working Hunspell installation with dictionaries that the speller can find without any fancy command-line switches. I think this is a sound assumption, and it does work for everyone else. It will work for you as well, if you just install and configure Hunspell properly, see above. You can still tweak the installation and setup, of course -- this is Emacs! -- but at least for your particular setup it's unneeded, AFAICT; the defaults should work just fine. > How about redesign? Do you still think it's needed? ^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#19229: ispell-phaf: No matching entry for ... 2014-12-01 16:24 ` Eli Zaretskii @ 2014-12-01 17:15 ` Alexander Shukaev 0 siblings, 0 replies; 23+ messages in thread From: Alexander Shukaev @ 2014-12-01 17:15 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 19229 [-- Attachment #1: Type: text/plain, Size: 215 bytes --] Thank you for detailed answer, Eli. I haven't tested it all yet, but I will report as soon as I do. Do you still think it's needed? > If it will work exactly as you say, then of course not! ;) Regards, Alexander [-- Attachment #2: Type: text/html, Size: 577 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#19229: ispell on Windows 2014-11-30 18:25 bug#19229: ispell-phaf: No matching entry for Alexander Shukaev 2014-11-30 19:50 ` bug#19229: A workaround for hunspell Chris Zheng 2014-11-30 21:15 ` bug#19229: ispell-phaf: No matching entry for Eli Zaretskii @ 2015-05-20 18:53 ` Alan Third 2015-05-20 19:21 ` Eli Zaretskii 2 siblings, 1 reply; 23+ messages in thread From: Alan Third @ 2015-05-20 18:53 UTC (permalink / raw) To: 19229 I've been fighting with hunspell on Windows too and I finally got a solution that works for me from http://emacs.stackexchange.com/questions/5756/call-process-and-hunspell-in-emacs-24-4. Ultimately it's the LANG environment variable, or in the case of Windows the lack of it. I found that with LANG set to "en_GB" I didn't need any other configuration to get hunspell working. I didn't even need to tell emacs to use hunspell. Irritatingly OS X sets LANG to "en_GB.UTF-8", which seems to break ispell too. Setting it as just plain "en_GB" fixes it there too. It appears the new version of ispell in 24.4+ is very heavily dependent on LANG to the extent that explicitly setting ispell-dictionary won't over-ride it. -- Alan Third ^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#19229: ispell on Windows 2015-05-20 18:53 ` bug#19229: ispell on Windows Alan Third @ 2015-05-20 19:21 ` Eli Zaretskii 2015-05-20 20:34 ` Alan Third 0 siblings, 1 reply; 23+ messages in thread From: Eli Zaretskii @ 2015-05-20 19:21 UTC (permalink / raw) To: Alan Third; +Cc: 19229 > Date: Wed, 20 May 2015 19:53:22 +0100 > From: Alan Third <alan@idiocy.org> > > Ultimately it's the LANG environment variable, or in the case of > Windows the lack of it. I found that with LANG set to "en_GB" I didn't > need any other configuration to get hunspell working. I didn't even > need to tell emacs to use hunspell. I advise against that "solution", because this value of LANG might confuse other Windows programs if they are invoked by Emacs, and even Emacs itself, where its features depend on the locale. Windows short names of locales are different from Posix names; in particular they have 3 letters instead of 2. Most native Windows programs will not understand the value such as "en_GB". Instead, I suggest to copy en_GB.* dictionary files that Hunspell uses to corresponding ENG.* files. Alternatively, say something like this in your ~/.emacs: (ispell-change-dictionary "en_GB" t) which re-invokes Hunspell with the en_GB dictionary without messing with your LANG variable. > It appears the new version of ispell in 24.4+ is very heavily > dependent on LANG to the extent that explicitly setting > ispell-dictionary won't over-ride it. The value of LANG specifies the default dictionary to load, but that's all. ^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#19229: ispell on Windows 2015-05-20 19:21 ` Eli Zaretskii @ 2015-05-20 20:34 ` Alan Third 2015-05-21 2:41 ` Eli Zaretskii 0 siblings, 1 reply; 23+ messages in thread From: Alan Third @ 2015-05-20 20:34 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 19229 On 20 May 2015 at 20:21, Eli Zaretskii <eliz@gnu.org> wrote: > I advise against that "solution", because this value of LANG might > confuse other Windows programs if they are invoked by Emacs, and even > Emacs itself, where its features depend on the locale. Seems fair. > Instead, I suggest to copy en_GB.* dictionary files that Hunspell uses > to corresponding ENG.* files. Doesn't work in OS X, but I'll give it a go in Windows tomorrow. Annoyingly hunspell on it's own is perfectly capable of choosing the right dictionary, and if I use aspell instead of hunspell I just need to set: (setq ispell-dictionary "en_GB") in my init.el and it works without any further issues. On OS X at least, I'll have to wait until tomorrow to try aspell in Windows. If I can get it working, my memory is that it's awkward which is the reason why I was trying hunspell. Well, that and the rumour that hunspell can handle UTF-8 apostrophes when aspell can't. > Alternatively, say something like this in your ~/.emacs: > > (ispell-change-dictionary "en_GB" t) > > which re-invokes Hunspell with the en_GB dictionary without messing > with your LANG variable. Unfortunately this doesn't work, I get our old friend: ispell-phaf: No matching entry for nil. And if I run it a second time I get: (error "Undefined dictionary: en_GB") I don't really understand why because at this stage ispell-hunspell-dict-paths-alist is set to (on OS X, but I found the same thing on Windows): (("british" "/Library/Spelling/en_GB.aff") ("en_GB" "/Library/Spelling/en_GB.aff")) so clearly the hunspell auto-configuration stuff is working, but something somewhere isn't joining up. I've given up on spell checking in emacs several times in the past and this is the closest I've ever got to getting it working across all the platforms I'm using. -- Alan Third ^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#19229: ispell on Windows 2015-05-20 20:34 ` Alan Third @ 2015-05-21 2:41 ` Eli Zaretskii 2015-05-21 8:16 ` Alan Third 0 siblings, 1 reply; 23+ messages in thread From: Eli Zaretskii @ 2015-05-21 2:41 UTC (permalink / raw) To: Alan Third; +Cc: 19229 > Date: Wed, 20 May 2015 21:34:51 +0100 > From: Alan Third <alan@idiocy.org> > Cc: 19229@debbugs.gnu.org > > > Instead, I suggest to copy en_GB.* dictionary files that Hunspell uses > > to corresponding ENG.* files. > > Doesn't work in OS X, but I'll give it a go in Windows tomorrow. OS X should support the original names, like en_GB, and it should have its locale set to that already. > > Alternatively, say something like this in your ~/.emacs: > > > > (ispell-change-dictionary "en_GB" t) > > > > which re-invokes Hunspell with the en_GB dictionary without messing > > with your LANG variable. > > Unfortunately this doesn't work, I get our old friend: > > ispell-phaf: No matching entry for nil. Where did you get your Hunspell binary for Windows? The above works for me, so I suspect your Hunspell is subtly broken. > And if I run it a second time I get: > > (error "Undefined dictionary: en_GB") Does that happen in "emacs -Q" as well? If not, have another look at your Hunspell- and ispell-related customizations. > I've given up on spell checking in emacs several times in the past and > this is the closest I've ever got to getting it working across all the > platforms I'm using. On Posix platforms (including OS X), the locale setting should do that. On Windows, use one of the 2 methods I suggested, they do work provided that Hunspell has its known bugs fixed. ^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#19229: ispell on Windows 2015-05-21 2:41 ` Eli Zaretskii @ 2015-05-21 8:16 ` Alan Third 2015-05-21 16:23 ` Eli Zaretskii 0 siblings, 1 reply; 23+ messages in thread From: Alan Third @ 2015-05-21 8:16 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 19229 On 21 May 2015 at 03:41, Eli Zaretskii <eliz@gnu.org> wrote: >> Date: Wed, 20 May 2015 21:34:51 +0100 >> From: Alan Third <alan@idiocy.org> >> Cc: 19229@debbugs.gnu.org >> >> > Instead, I suggest to copy en_GB.* dictionary files that Hunspell uses >> > to corresponding ENG.* files. >> >> Doesn't work in OS X, but I'll give it a go in Windows tomorrow. This works in windows! Once this is done I can then use ispell-change-dictionary to change the dictionary to anything I want. Presumably, then, the problem I'm seeing is that ispell+hunspell falls over if the dictionary initially set by emacs doesn't exist. Is there a way to force ispell+hunspell to use a different dictionary from the start other than changing the LANG variable? Thanks! -- Alan Third On 21 May 2015 at 03:41, Eli Zaretskii <eliz@gnu.org> wrote: >> Date: Wed, 20 May 2015 21:34:51 +0100 >> From: Alan Third <alan@idiocy.org> >> Cc: 19229@debbugs.gnu.org >> >> > Instead, I suggest to copy en_GB.* dictionary files that Hunspell uses >> > to corresponding ENG.* files. >> >> Doesn't work in OS X, but I'll give it a go in Windows tomorrow. > > OS X should support the original names, like en_GB, and it should have > its locale set to that already. > >> > Alternatively, say something like this in your ~/.emacs: >> > >> > (ispell-change-dictionary "en_GB" t) >> > >> > which re-invokes Hunspell with the en_GB dictionary without messing >> > with your LANG variable. >> >> Unfortunately this doesn't work, I get our old friend: >> >> ispell-phaf: No matching entry for nil. > > Where did you get your Hunspell binary for Windows? The above works > for me, so I suspect your Hunspell is subtly broken. > >> And if I run it a second time I get: >> >> (error "Undefined dictionary: en_GB") > > Does that happen in "emacs -Q" as well? If not, have another look at > your Hunspell- and ispell-related customizations. > >> I've given up on spell checking in emacs several times in the past and >> this is the closest I've ever got to getting it working across all the >> platforms I'm using. > > On Posix platforms (including OS X), the locale setting should do > that. On Windows, use one of the 2 methods I suggested, they do work > provided that Hunspell has its known bugs fixed. -- Alan Third ^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#19229: ispell on Windows 2015-05-21 8:16 ` Alan Third @ 2015-05-21 16:23 ` Eli Zaretskii 2015-05-21 20:19 ` Alan Third 0 siblings, 1 reply; 23+ messages in thread From: Eli Zaretskii @ 2015-05-21 16:23 UTC (permalink / raw) To: Alan Third; +Cc: 19229 > Date: Thu, 21 May 2015 09:16:00 +0100 > From: Alan Third <alan@idiocy.org> > Cc: 19229@debbugs.gnu.org > > >> > Instead, I suggest to copy en_GB.* dictionary files that Hunspell uses > >> > to corresponding ENG.* files. > >> > >> Doesn't work in OS X, but I'll give it a go in Windows tomorrow. > > This works in windows! Once this is done I can then use > ispell-change-dictionary to change the dictionary to anything I want. > Presumably, then, the problem I'm seeing is that ispell+hunspell falls > over if the dictionary initially set by emacs doesn't exist. Could be, but see below: using LANG is a fallback. > Is there a way to force ispell+hunspell to use a different dictionary > from the start other than changing the LANG variable? There are several ways of doing that. First, you can customize the variable ispell-dictionary to name the dictionary (without the .aff or .dic extensions, just the stem of the basename, as in "en_GB"). You can set this in your ~/.emacs. This will cause ispell.el to invoke Hunspell with the appropriate -d command-line option. Alternatively, you can set the environment variable DICTIONARY to name the dictionary, as in "set DICTIONARY=en_GB". This environment variable is documented in the Hunspell man page. If neither -d is used nor DICTIONARY variable is found in the environment, Hunspell checks LC_ALL, LC_MESSAGES, and LANG variables, in that order. LANG is already set by Emacs when it starts; you could theoretically use one of the other two, but I don't recommend that, again because they have specific meaning for locale-sensitive APIs, and so other programs might react to them in ways you won't like. ^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#19229: ispell on Windows 2015-05-21 16:23 ` Eli Zaretskii @ 2015-05-21 20:19 ` Alan Third 2015-05-22 6:53 ` Eli Zaretskii 0 siblings, 1 reply; 23+ messages in thread From: Alan Third @ 2015-05-21 20:19 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 19229 On 21 May 2015 at 17:23, Eli Zaretskii <eliz@gnu.org> wrote: >> Date: Thu, 21 May 2015 09:16:00 +0100 >> From: Alan Third <alan@idiocy.org> >> Cc: 19229@debbugs.gnu.org >> >> This works in windows! Once this is done I can then use >> ispell-change-dictionary to change the dictionary to anything I want. >> Presumably, then, the problem I'm seeing is that ispell+hunspell falls >> over if the dictionary initially set by emacs doesn't exist. OK, I was completely wrong here. >> Is there a way to force ispell+hunspell to use a different dictionary >> from the start other than changing the LANG variable? > > There are several ways of doing that. > > First, you can customize the variable ispell-dictionary to name the > dictionary (without the .aff or .dic extensions, just the stem of the > basename, as in "en_GB"). You can set this in your ~/.emacs. This > will cause ispell.el to invoke Hunspell with the appropriate -d > command-line option. This doesn't work. I've done some digging in ispell.el and I think I know what's going on. The function ispell-find-hunspell-dictionaries parses the output of `hunspell -D` looking for *hunspell's* default dictionary. If you don't have any of the variables you mentioned set then hunspell doesn't give a default. Specifically, it looks for a line that ends ".aff" then uses that line in an argument for ispell-parse-hunspell-affix-file, which fails if it's nil, which in my case it is. Because that function errors, ispell-find-hunspell-dictionaries stops processing and therefore never builds ispell-hunspell-dictionary-alist, which seems to be a pretty vital variable. While that doesn't seem like very good behaviour to me, I don't know if you'd classify it as a bug. > Alternatively, you can set the environment variable DICTIONARY to name > the dictionary, as in "set DICTIONARY=en_GB". This environment > variable is documented in the Hunspell man page. I suspect that, in the short term at least, setting this in my init.el is the best solution. This will work transparently in both Windows and OS X. (There doesn't seem to be any simple way of setting environment variables for "GUI" programs in recent versions of OS X. I have to set PATH in my init.el too.) Thanks! -- Alan Third ^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#19229: ispell on Windows 2015-05-21 20:19 ` Alan Third @ 2015-05-22 6:53 ` Eli Zaretskii 2015-05-22 18:57 ` Alan Third 0 siblings, 1 reply; 23+ messages in thread From: Eli Zaretskii @ 2015-05-22 6:53 UTC (permalink / raw) To: Alan Third; +Cc: 19229 > Date: Thu, 21 May 2015 21:19:19 +0100 > From: Alan Third <alan@idiocy.org> > Cc: 19229@debbugs.gnu.org > > On 21 May 2015 at 17:23, Eli Zaretskii <eliz@gnu.org> wrote: > >> Date: Thu, 21 May 2015 09:16:00 +0100 > >> From: Alan Third <alan@idiocy.org> > >> Cc: 19229@debbugs.gnu.org > >> > >> This works in windows! Once this is done I can then use > >> ispell-change-dictionary to change the dictionary to anything I want. > >> Presumably, then, the problem I'm seeing is that ispell+hunspell falls > >> over if the dictionary initially set by emacs doesn't exist. > > OK, I was completely wrong here. In what way? > >> Is there a way to force ispell+hunspell to use a different dictionary > >> from the start other than changing the LANG variable? > > > > There are several ways of doing that. > > > > First, you can customize the variable ispell-dictionary to name the > > dictionary (without the .aff or .dic extensions, just the stem of the > > basename, as in "en_GB"). You can set this in your ~/.emacs. This > > will cause ispell.el to invoke Hunspell with the appropriate -d > > command-line option. > > This doesn't work. I've done some digging in ispell.el and I think I > know what's going on. > > The function ispell-find-hunspell-dictionaries parses the output of > `hunspell -D` looking for *hunspell's* default dictionary. If you > don't have any of the variables you mentioned set then hunspell > doesn't give a default. What does your Hunspell say when you invoke it with -D? Mine says this: SEARCH PATH: .;;C:\Hunspell\;D:\usr\eli\.openoffice.org\3\user\wordbook;D:\usr\bin\..\share\hunspell;C:\Program files\OpenOffice.org 2.4\share\dict\ooo\;C:\Program files\OpenOffice.org 2.3\share\dict\ooo\;C:\Program files\OpenOffice.org 2.2\share\dict\ooo\;C:\Program files\OpenOffice.org 2.1\share\dict\ooo\;C:\Program files\OpenOffice.org 2.0\share\dict\ooo\ AVAILABLE DICTIONARIES (path is not mandatory for -d option): D:\usr\bin\..\share\hunspell\american D:\usr\bin\..\share\hunspell\default D:\usr\bin\..\share\hunspell\de_AT D:\usr\bin\..\share\hunspell\de_CH D:\usr\bin\..\share\hunspell\de_DE D:\usr\bin\..\share\hunspell\de_DE_frami D:\usr\bin\..\share\hunspell\ENU D:\usr\bin\..\share\hunspell\en_GB D:\usr\bin\..\share\hunspell\en_MED D:\usr\bin\..\share\hunspell\en_US D:\usr\bin\..\share\hunspell\he_IL D:\usr\bin\..\share\hunspell\russian D:\usr\bin\..\share\hunspell\ru_RU D:\usr\bin\..\share\hunspell\sv_SE LOADED DICTIONARY: D:\usr\bin\..\share\hunspell\default.aff D:\usr\bin\..\share\hunspell\default.dic Hunspell 1.3.2 Note that the default dictionary it loaded, as announced near the end. Once again, I ask where you got your Hunspell binary. In the binary distribution here: http://sourceforge.net/projects/ezwinports/files/hunspell-1.3.2-3-w32-bin.zip/download which is what I use, there's the "default" dictionary, in the form of 2 files: default.dic and default.aff. Do you have them in your share/hunspell/ directory? If not, just copy your "usual" dictionary files into those names (or toss your Hunspell installation and use mine instead ;-). > Specifically, it looks for a line that ends ".aff" then uses that line > in an argument for ispell-parse-hunspell-affix-file, which fails if > it's nil, which in my case it is. Because that function errors, > ispell-find-hunspell-dictionaries stops processing and therefore never > builds ispell-hunspell-dictionary-alist, which seems to be a pretty > vital variable. > > While that doesn't seem like very good behaviour to me, I don't know > if you'd classify it as a bug. I see no bug here. It works for me. I think your Hunspell installation is misconfigured, that's all. ^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#19229: ispell on Windows 2015-05-22 6:53 ` Eli Zaretskii @ 2015-05-22 18:57 ` Alan Third 2015-05-22 19:22 ` Eli Zaretskii 0 siblings, 1 reply; 23+ messages in thread From: Alan Third @ 2015-05-22 18:57 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 19229 On 22 May 2015 at 07:53, Eli Zaretskii <eliz@gnu.org> wrote: >> Date: Thu, 21 May 2015 21:19:19 +0100 >> From: Alan Third <alan@idiocy.org> >> Cc: 19229@debbugs.gnu.org >> >> On 21 May 2015 at 17:23, Eli Zaretskii <eliz@gnu.org> wrote: >> >> Date: Thu, 21 May 2015 09:16:00 +0100 >> >> From: Alan Third <alan@idiocy.org> >> >> Cc: 19229@debbugs.gnu.org >> >> >> >> This works in windows! Once this is done I can then use >> >> ispell-change-dictionary to change the dictionary to anything I want. >> >> Presumably, then, the problem I'm seeing is that ispell+hunspell falls >> >> over if the dictionary initially set by emacs doesn't exist. >> >> OK, I was completely wrong here. > > In what way? Well, it seems the above is right on Windows but wrong on OS X. On Windows it tries to set the dictionary to "ENG", because that's what emacs puts in LANG, but on OS X it never gets as far as setting a dictionary because there's nothing at all in LANG and emacs doesn't automatically set it. What confuses this on OS X is that when you run hunspell from the command line LANG *IS* set and so it works, but from within emacs (run from the GUI) LANG *ISN'T* set so it fails. >> > First, you can customize the variable ispell-dictionary to name the >> > dictionary (without the .aff or .dic extensions, just the stem of the >> > basename, as in "en_GB"). You can set this in your ~/.emacs. This >> > will cause ispell.el to invoke Hunspell with the appropriate -d >> > command-line option. >> >> This doesn't work. I've done some digging in ispell.el and I think I >> know what's going on. >> >> The function ispell-find-hunspell-dictionaries parses the output of >> `hunspell -D` looking for *hunspell's* default dictionary. If you >> don't have any of the variables you mentioned set then hunspell >> doesn't give a default. > > What does your Hunspell say when you invoke it with -D? Mine says > this: > <snip> > > Note that the default dictionary it loaded, as announced near the end. On Windows from within emacs: SEARCH PATH: .;;C:\Hunspell\;c:/users/thirda\.openoffice.org\3\user\wordbook;c:\Users\thirda\local\bin\..\share\hunspell;C:\Program files\OpenOffice.org 2.4\share\dict\ooo\;C:\Program files\OpenOffice.org 2.3\share\dict\ooo\;C:\Program files\OpenOffice.org 2.2\share\dict\ooo\;C:\Program files\OpenOffice.org 2.1\share\dict\ooo\;C:\Program files\OpenOffice.org 2.0\share\dict\ooo\ AVAILABLE DICTIONARIES (path is not mandatory for -d option): c:\Users\thirda\local\bin\..\share\hunspell\default c:\Users\thirda\local\bin\..\share\hunspell\en_GB c:\Users\thirda\local\bin\..\share\hunspell\en_US Can't open affix or dictionary files for dictionary named "ENG". Creating an "ENG" dictionary fixes this. On OS X from within emacs: SEARCH PATH: .::/usr/share/hunspell:/usr/share/myspell:/usr/share/myspell/dicts:/Library/Spelling:/Users/alan/.openoffice.org/3/user/wordbook::/Users/alan/.openoffice.org2/user/wordbook::/Users/alan/.openoffice.org2.0/user/wordbook::/Users/alan/Library/Spelling:/opt/openoffice.org/basis3.0/share/dict/ooo:/usr/lib/openoffice.org/basis3.0/share/dict/ooo:/opt/openoffice.org2.4/share/dict/ooo:/usr/lib/openoffice.org2.4/share/dict/ooo:/opt/openoffice.org2.3/share/dict/ooo:/usr/lib/openoffice.org2.3/share/dict/ooo:/opt/openoffice.org2.2/share/dict/ooo:/usr/lib/openoffice.org2.2/share/dict/ooo:/opt/openoffice.org2.1/share/dict/ooo:/usr/lib/openoffice.org2.1/share/dict/ooo:/opt/openoffice.org2.0/share/dict/ooo:/usr/lib/openoffice.org2.0/share/dict/ooo AVAILABLE DICTIONARIES (path is not mandatory for -d option): /Library/Spelling/en_GB Can't open affix or dictionary files for dictionary named "default". Creating an ENG dictionary doesn't help here because: (getenv "LANG") returns nil. > Once again, I ask where you got your Hunspell binary. In the binary > distribution here: > > http://sourceforge.net/projects/ezwinports/files/hunspell-1.3.2-3-w32-bin.zip/download That's the one I'm using on Windows. On OS X I'm using the one from "homebrew", which seems to be up to date. And I've just worked out where I need to put a default dictionary to get it to work: /usr/share/myspell. >> Specifically, it looks for a line that ends ".aff" then uses that line >> in an argument for ispell-parse-hunspell-affix-file, which fails if >> it's nil, which in my case it is. Because that function errors, >> ispell-find-hunspell-dictionaries stops processing and therefore never >> builds ispell-hunspell-dictionary-alist, which seems to be a pretty >> vital variable. >> >> While that doesn't seem like very good behaviour to me, I don't know >> if you'd classify it as a bug. > > I see no bug here. It works for me. I think your Hunspell > installation is misconfigured, that's all. That's why I wasn't sure if you'd think it was a bug. :) I tried wrapping the call to ispell-parse-hunspell-affix-file in an if that checks whether hunspell-default-dict is set and the error messages went away. Then I could use ispell-dictionary or ispell-change-dictionary to set the one I wanted, just like with aspell. I assume that ispell-parse-hunspell-affix-file is called whenever you change dictionary, so this shouldn't break anything. Whatever, I'll try writing up what I've learnt on emacswiki.org since all the information on the internet seems to be somewhat out of date and unhelpful. Thanks! -- Alan Third ^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#19229: ispell on Windows 2015-05-22 18:57 ` Alan Third @ 2015-05-22 19:22 ` Eli Zaretskii 2015-05-22 19:55 ` Alan Third 0 siblings, 1 reply; 23+ messages in thread From: Eli Zaretskii @ 2015-05-22 19:22 UTC (permalink / raw) To: Alan Third; +Cc: 19229 > Date: Fri, 22 May 2015 19:57:17 +0100 > From: Alan Third <alan@idiocy.org> > Cc: 19229@debbugs.gnu.org > > On 22 May 2015 at 07:53, Eli Zaretskii <eliz@gnu.org> wrote: > >> Date: Thu, 21 May 2015 21:19:19 +0100 > >> From: Alan Third <alan@idiocy.org> > >> Cc: 19229@debbugs.gnu.org > >> > >> On 21 May 2015 at 17:23, Eli Zaretskii <eliz@gnu.org> wrote: > >> >> Date: Thu, 21 May 2015 09:16:00 +0100 > >> >> From: Alan Third <alan@idiocy.org> > >> >> Cc: 19229@debbugs.gnu.org > >> >> > >> >> This works in windows! Once this is done I can then use > >> >> ispell-change-dictionary to change the dictionary to anything I want. > >> >> Presumably, then, the problem I'm seeing is that ispell+hunspell falls > >> >> over if the dictionary initially set by emacs doesn't exist. > >> > >> OK, I was completely wrong here. > > > > In what way? > > Well, it seems the above is right on Windows but wrong on OS X. On > Windows it tries to set the dictionary to "ENG", because that's what > emacs puts in LANG, but on OS X it never gets as far as setting a > dictionary because there's nothing at all in LANG and emacs doesn't > automatically set it. What about LC_ALL and LC_MESSAGES, do they specify anything on OS X? > What confuses this on OS X is that when you run hunspell from the > command line LANG *IS* set and so it works, but from within emacs (run > from the GUI) LANG *ISN'T* set so it fails. Ah, so this is somehow related to the shell environment not being propagated to Emacs. IOW, an OS X specific issue that has nothing to do with ispell.el or Hunspell. I'm sure there's a way to have these defined in Emacs, I just cannot help you with that, as I don't know anything about OS X setup. > >> > First, you can customize the variable ispell-dictionary to name the > >> > dictionary (without the .aff or .dic extensions, just the stem of the > >> > basename, as in "en_GB"). You can set this in your ~/.emacs. This > >> > will cause ispell.el to invoke Hunspell with the appropriate -d > >> > command-line option. > >> > >> This doesn't work. I've done some digging in ispell.el and I think I > >> know what's going on. > >> > >> The function ispell-find-hunspell-dictionaries parses the output of > >> `hunspell -D` looking for *hunspell's* default dictionary. If you > >> don't have any of the variables you mentioned set then hunspell > >> doesn't give a default. > > > > What does your Hunspell say when you invoke it with -D? Mine says > > this: > > > <snip> > > > > Note that the default dictionary it loaded, as announced near the end. > > On Windows from within emacs: > > SEARCH PATH: > .;;C:\Hunspell\;c:/users/thirda\.openoffice.org\3\user\wordbook;c:\Users\thirda\local\bin\..\share\hunspell;C:\Program > files\OpenOffice.org 2.4\share\dict\ooo\;C:\Program > files\OpenOffice.org 2.3\share\dict\ooo\;C:\Program > files\OpenOffice.org 2.2\share\dict\ooo\;C:\Program > files\OpenOffice.org 2.1\share\dict\ooo\;C:\Program > files\OpenOffice.org 2.0\share\dict\ooo\ > AVAILABLE DICTIONARIES (path is not mandatory for -d option): > c:\Users\thirda\local\bin\..\share\hunspell\default > c:\Users\thirda\local\bin\..\share\hunspell\en_GB > c:\Users\thirda\local\bin\..\share\hunspell\en_US > Can't open affix or dictionary files for dictionary named "ENG". > > Creating an "ENG" dictionary fixes this. See, you don't have the "default" dictionary. > On OS X from within emacs: > > SEARCH PATH: > .::/usr/share/hunspell:/usr/share/myspell:/usr/share/myspell/dicts:/Library/Spelling:/Users/alan/.openoffice.org/3/user/wordbook::/Users/alan/.openoffice.org2/user/wordbook::/Users/alan/.openoffice.org2.0/user/wordbook::/Users/alan/Library/Spelling:/opt/openoffice.org/basis3.0/share/dict/ooo:/usr/lib/openoffice.org/basis3.0/share/dict/ooo:/opt/openoffice.org2.4/share/dict/ooo:/usr/lib/openoffice.org2.4/share/dict/ooo:/opt/openoffice.org2.3/share/dict/ooo:/usr/lib/openoffice.org2.3/share/dict/ooo:/opt/openoffice.org2.2/share/dict/ooo:/usr/lib/openoffice.org2.2/share/dict/ooo:/opt/openoffice.org2.1/share/dict/ooo:/usr/lib/openoffice.org2.1/share/dict/ooo:/opt/openoffice.org2.0/share/dict/ooo:/usr/lib/openoffice.org2.0/share/dict/ooo > AVAILABLE DICTIONARIES (path is not mandatory for -d option): > /Library/Spelling/en_GB > Can't open affix or dictionary files for dictionary named "default". And the same here. > Creating an ENG dictionary doesn't help here because: > > (getenv "LANG") > > returns nil. Create "default" instead, and I think it will work. > > Once again, I ask where you got your Hunspell binary. In the binary > > distribution here: > > > > http://sourceforge.net/projects/ezwinports/files/hunspell-1.3.2-3-w32-bin.zip/download > > That's the one I'm using on Windows. That one has the "default" dictionary, but you don't. How come? > And I've just worked out where I need to put a default dictionary to > get it to work: /usr/share/myspell. On what OS? On Windows it should be in share/hunspell/. > That's why I wasn't sure if you'd think it was a bug. :) Did you try to create default.aff and default.dic, as I suggested? I think that's your problem. ^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#19229: ispell on Windows 2015-05-22 19:22 ` Eli Zaretskii @ 2015-05-22 19:55 ` Alan Third 2015-05-22 20:08 ` Eli Zaretskii ` (2 more replies) 0 siblings, 3 replies; 23+ messages in thread From: Alan Third @ 2015-05-22 19:55 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 19229 On 22 May 2015 at 20:22, Eli Zaretskii <eliz@gnu.org> wrote: >> Date: Fri, 22 May 2015 19:57:17 +0100 >> From: Alan Third <alan@idiocy.org> >> Cc: 19229@debbugs.gnu.org >> >> What confuses this on OS X is that when you run hunspell from the >> command line LANG *IS* set and so it works, but from within emacs (run >> from the GUI) LANG *ISN'T* set so it fails. > > Ah, so this is somehow related to the shell environment not being > propagated to Emacs. IOW, an OS X specific issue that has nothing to > do with ispell.el or Hunspell. I'm sure there's a way to have these > defined in Emacs, I just cannot help you with that, as I don't know > anything about OS X setup. No, I wouldn't expect you to. It seems to be something of a known problem as Apple removed the ability to set global environment variables a few versions ago. Sorry for confusing matters with this. >> On Windows from within emacs: >> >> SEARCH PATH: >> .;;C:\Hunspell\;c:/users/thirda\.openoffice.org\3\user\wordbook;c:\Users\thirda\local\bin\..\share\hunspell;C:\Program >> files\OpenOffice.org 2.4\share\dict\ooo\;C:\Program >> files\OpenOffice.org 2.3\share\dict\ooo\;C:\Program >> files\OpenOffice.org 2.2\share\dict\ooo\;C:\Program >> files\OpenOffice.org 2.1\share\dict\ooo\;C:\Program >> files\OpenOffice.org 2.0\share\dict\ooo\ >> AVAILABLE DICTIONARIES (path is not mandatory for -d option): >> c:\Users\thirda\local\bin\..\share\hunspell\default >> c:\Users\thirda\local\bin\..\share\hunspell\en_GB >> c:\Users\thirda\local\bin\..\share\hunspell\en_US >> Can't open affix or dictionary files for dictionary named "ENG". >> >> Creating an "ENG" dictionary fixes this. > > See, you don't have the "default" dictionary. Look again, I do. Emacs has set LANG to "ENG" so hunspell is ignoring "default". And, again, copying en_GB to ENG solves it. I can deal with this. >> And I've just worked out where I need to put a default dictionary to >> get it to work: /usr/share/myspell. > > On what OS? On Windows it should be in share/hunspell/. Sorry, on OS X. I feel that the way ispell handles a misconfigured hunspell is, at the moment, not very helpful. I can provide a patch that I believe makes it fail more gracefully, but I'm getting the feeling it's behaviour that's not wanted. Shall we call it quits? Thanks and apologies for any frustration caused. -- Alan Third ^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#19229: ispell on Windows 2015-05-22 19:55 ` Alan Third @ 2015-05-22 20:08 ` Eli Zaretskii 2015-05-22 21:46 ` Jan D. 2020-09-07 21:55 ` Lars Ingebrigtsen 2 siblings, 0 replies; 23+ messages in thread From: Eli Zaretskii @ 2015-05-22 20:08 UTC (permalink / raw) To: Alan Third; +Cc: 19229 > Date: Fri, 22 May 2015 20:55:52 +0100 > From: Alan Third <alan@idiocy.org> > Cc: 19229@debbugs.gnu.org > > >> SEARCH PATH: > >> .;;C:\Hunspell\;c:/users/thirda\.openoffice.org\3\user\wordbook;c:\Users\thirda\local\bin\..\share\hunspell;C:\Program > >> files\OpenOffice.org 2.4\share\dict\ooo\;C:\Program > >> files\OpenOffice.org 2.3\share\dict\ooo\;C:\Program > >> files\OpenOffice.org 2.2\share\dict\ooo\;C:\Program > >> files\OpenOffice.org 2.1\share\dict\ooo\;C:\Program > >> files\OpenOffice.org 2.0\share\dict\ooo\ > >> AVAILABLE DICTIONARIES (path is not mandatory for -d option): > >> c:\Users\thirda\local\bin\..\share\hunspell\default > >> c:\Users\thirda\local\bin\..\share\hunspell\en_GB > >> c:\Users\thirda\local\bin\..\share\hunspell\en_US > >> Can't open affix or dictionary files for dictionary named "ENG". > >> > >> Creating an "ENG" dictionary fixes this. > > > > See, you don't have the "default" dictionary. > > Look again, I do. Oops, sorry. > Emacs has set LANG to "ENG" so hunspell is ignoring "default". That's OK, and is not a problem. You need "default" for when Emacs invokes Hunspell with "-d default", and also for invoking it from the shell. > And, again, copying en_GB to ENG solves it. I can deal with this. Right, but then I don't understand why the other methods I mentioned didn't work for you. They do for me. But perhaps it is not important anymore. > Shall we call it quits? Probably. ^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#19229: ispell on Windows 2015-05-22 19:55 ` Alan Third 2015-05-22 20:08 ` Eli Zaretskii @ 2015-05-22 21:46 ` Jan D. 2020-09-07 21:55 ` Lars Ingebrigtsen 2 siblings, 0 replies; 23+ messages in thread From: Jan D. @ 2015-05-22 21:46 UTC (permalink / raw) To: Alan Third; +Cc: 19229@debbugs.gnu.org > 22 maj 2015 kl. 21:55 skrev Alan Third <alan@idiocy.org>: > No, I wouldn't expect you to. It seems to be something of a known > problem as Apple removed the ability to set global environment > variables a few versions ago. Use launchctl setenv. Jan D. ^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#19229: ispell on Windows 2015-05-22 19:55 ` Alan Third 2015-05-22 20:08 ` Eli Zaretskii 2015-05-22 21:46 ` Jan D. @ 2020-09-07 21:55 ` Lars Ingebrigtsen 2020-09-07 22:08 ` Alan Third 2 siblings, 1 reply; 23+ messages in thread From: Lars Ingebrigtsen @ 2020-09-07 21:55 UTC (permalink / raw) To: Alan Third; +Cc: 19229 Alan Third <alan@idiocy.org> writes: > I feel that the way ispell handles a misconfigured hunspell is, at the > moment, not very helpful. I can provide a patch that I believe makes > it fail more gracefully, but I'm getting the feeling it's behaviour > that's not wanted. > > Shall we call it quits? Reading this thread, it seems like hunspell doesn't work out of the box on some systems in Emacs. If Alan has a fix that improves the user experience here, that would surely be useful? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#19229: ispell on Windows 2020-09-07 21:55 ` Lars Ingebrigtsen @ 2020-09-07 22:08 ` Alan Third 2020-09-08 10:12 ` Lars Ingebrigtsen 0 siblings, 1 reply; 23+ messages in thread From: Alan Third @ 2020-09-07 22:08 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: 19229 On Mon, Sep 07, 2020 at 11:55:44PM +0200, Lars Ingebrigtsen wrote: > Alan Third <alan@idiocy.org> writes: > > > I feel that the way ispell handles a misconfigured hunspell is, at the > > moment, not very helpful. I can provide a patch that I believe makes > > it fail more gracefully, but I'm getting the feeling it's behaviour > > that's not wanted. > > > > Shall we call it quits? > > Reading this thread, it seems like hunspell doesn't work out of the box > on some systems in Emacs. If Alan has a fix that improves the > user experience here, that would surely be useful? Oh, this was so long ago I've no idea what my fix was any more. I'd assumed this bug report had been closed. -- Alan Third ^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#19229: ispell on Windows 2020-09-07 22:08 ` Alan Third @ 2020-09-08 10:12 ` Lars Ingebrigtsen 0 siblings, 0 replies; 23+ messages in thread From: Lars Ingebrigtsen @ 2020-09-08 10:12 UTC (permalink / raw) To: Alan Third; +Cc: 19229 Alan Third <alan@idiocy.org> writes: >> Reading this thread, it seems like hunspell doesn't work out of the box >> on some systems in Emacs. If Alan has a fix that improves the >> user experience here, that would surely be useful? > > Oh, this was so long ago I've no idea what my fix was any more. I'd > assumed this bug report had been closed. OK; then it seems unlikely we'll make further progress in this bug report, and I'm closing it. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2020-09-08 10:12 UTC | newest] Thread overview: 23+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-11-30 18:25 bug#19229: ispell-phaf: No matching entry for Alexander Shukaev 2014-11-30 19:50 ` bug#19229: A workaround for hunspell Chris Zheng 2014-12-01 16:26 ` Eli Zaretskii 2014-11-30 21:15 ` bug#19229: ispell-phaf: No matching entry for Eli Zaretskii 2014-11-30 21:55 ` Alexander Shukaev 2014-12-01 16:24 ` Eli Zaretskii 2014-12-01 17:15 ` Alexander Shukaev 2015-05-20 18:53 ` bug#19229: ispell on Windows Alan Third 2015-05-20 19:21 ` Eli Zaretskii 2015-05-20 20:34 ` Alan Third 2015-05-21 2:41 ` Eli Zaretskii 2015-05-21 8:16 ` Alan Third 2015-05-21 16:23 ` Eli Zaretskii 2015-05-21 20:19 ` Alan Third 2015-05-22 6:53 ` Eli Zaretskii 2015-05-22 18:57 ` Alan Third 2015-05-22 19:22 ` Eli Zaretskii 2015-05-22 19:55 ` Alan Third 2015-05-22 20:08 ` Eli Zaretskii 2015-05-22 21:46 ` Jan D. 2020-09-07 21:55 ` Lars Ingebrigtsen 2020-09-07 22:08 ` Alan Third 2020-09-08 10:12 ` Lars Ingebrigtsen
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).