]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix error handling in 'ispell-init-process'
authorIan W <ian@wahbe.com>
Sat, 4 Sep 2021 03:53:24 +0000 (20:53 -0700)
committerEli Zaretskii <eliz@gnu.org>
Sun, 5 Sep 2021 07:25:22 +0000 (10:25 +0300)
* lisp/textmodes/ispell.el (ispell-init-process): When Ispell
initialization reports an error, call 'ispell-accept-output' only
if the Ispell process is still alive.  (Bug#50370)

Copyright-paperwork-exempt: yes

lisp/textmodes/ispell.el

index c2f6b35df8993673eaf5a863ab3ee186157606aa..3b9f1d35129836705ae68873b2339259bb31cbac 100644 (file)
@@ -2923,7 +2923,14 @@ Keeps argument list for future Ispell invocations for no async support."
             ;; But first wait to see if some more output is going to arrive.
             ;; Otherwise we get cool errors like "Can't open ".
             (sleep-for 1)
-            (ispell-accept-output 3)
+             ;; Only call `ispell-accept-output' if the Ispell process
+             ;; is alive, to avoid showing an unhelpful error message
+             ;; about a missing process, instead of the error which
+             ;; reports why the Ispell process died.
+            (when (if ispell-async-processp
+                         (process-live-p ispell-process)
+                       ispell-process)
+               (ispell-accept-output 3))
             (error "%s" (mapconcat #'identity ispell-filter "\n"))))
       (setq ispell-filter nil)         ; Discard version ID line
       (let ((extended-char-mode (ispell-get-extended-character-mode)))