diff options
author | Stefan Kangas <stefankangas@gmail.com> | 2020-08-26 21:53:17 +0200 |
---|---|---|
committer | Stefan Kangas <stefankangas@gmail.com> | 2020-08-27 06:13:46 +0200 |
commit | 587a60cc0fb80e7be51707b75bc9e097714a250c (patch) | |
tree | c17a051d4f0bfdd3fe789eb1bb1041ce99e2fa2e | |
parent | e24a93d1000b713067fae7049de3a7e66ebbfe3f (diff) | |
download | emacs-587a60cc0fb80e7be51707b75bc9e097714a250c.tar.gz emacs-587a60cc0fb80e7be51707b75bc9e097714a250c.tar.bz2 emacs-587a60cc0fb80e7be51707b75bc9e097714a250c.zip |
Signal error on Hunspell installation problem
* lisp/textmodes/ispell.el (ispell-find-hunspell-dictionaries):
Signal user-error when Hunspell warns that it "Can't open affix or
dictionary files", and propagate this message. (Bug#25825)
-rw-r--r-- | lisp/textmodes/ispell.el | 54 |
1 files changed, 32 insertions, 22 deletions
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el index 6eaa0582aa2..86452ff1e87 100644 --- a/lisp/textmodes/ispell.el +++ b/lisp/textmodes/ispell.el @@ -1096,28 +1096,38 @@ to dictionaries found, and will remove aliases from the list in `ispell-dicts-name2locale-equivs-alist' if an explicit dictionary from that list was found." (let ((hunspell-found-dicts - (split-string - (with-temp-buffer - (ispell-call-process ispell-program-name - null-device - t - nil - "-D" - ;; Use -a to prevent Hunspell from - ;; trying to initialize its - ;; curses/termcap UI, which causes it - ;; to crash or fail to start in some - ;; MS-Windows ports. - "-a" - ;; Hunspell 1.7.0 (and later?) won't - ;; show LOADED DICTIONARY unless - ;; there's at least one file argument - ;; on the command line. So we feed - ;; it with the null device. - null-device) - (buffer-string)) - "[\n\r]+" - t)) + (seq-filter + (lambda (str) + (when (string-match + ;; Hunspell gives this error when there is some + ;; installation problem, for example if $LANG is unset. + (concat "^Can't open affix or dictionary files " + "for dictionary named \"default\".$") + str) + (user-error "Hunspell error (is $LANG unset?): %s" str)) + (file-name-absolute-p str)) + (split-string + (with-temp-buffer + (ispell-call-process ispell-program-name + null-device + t + nil + "-D" + ;; Use -a to prevent Hunspell from + ;; trying to initialize its + ;; curses/termcap UI, which causes it + ;; to crash or fail to start in some + ;; MS-Windows ports. + "-a" + ;; Hunspell 1.7.0 (and later?) won't + ;; show LOADED DICTIONARY unless + ;; there's at least one file argument + ;; on the command line. So we feed + ;; it with the null device. + null-device) + (buffer-string)) + "[\n\r]+" + t))) hunspell-default-dict hunspell-default-dict-entry hunspell-multi-dict) |