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)
This commit is contained in:
Stefan Kangas 2020-08-26 21:53:17 +02:00
parent e24a93d100
commit 587a60cc0f

View file

@ -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)