summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Kangas <stefankangas@gmail.com>2020-08-26 21:53:17 +0200
committerStefan Kangas <stefankangas@gmail.com>2020-08-27 06:13:46 +0200
commit587a60cc0fb80e7be51707b75bc9e097714a250c (patch)
treec17a051d4f0bfdd3fe789eb1bb1041ce99e2fa2e
parente24a93d1000b713067fae7049de3a7e66ebbfe3f (diff)
downloademacs-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.el54
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)