From 50fd04cd4b831a166db30292c4dc0c24be8e6e9d Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 7 Jan 2017 13:02:50 +0200 Subject: [PATCH] Avoid infloop in 'ispell-region' MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * lisp/textmodes/ispell.el (ispell-begin-skip-region-regexp): Protect against 'ispell-skip-region-alist' being nil. Reported by Ernest Adrogué , see http://lists.gnu.org/archive/html/help-gnu-emacs/2017-01/msg00007.html. --- lisp/textmodes/ispell.el | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el index 27ee5d372fd..9747bd6cc12 100644 --- a/lisp/textmodes/ispell.el +++ b/lisp/textmodes/ispell.el @@ -3133,7 +3133,14 @@ Must be called after `ispell-buffer-local-parsing' due to dependence on mode." (if (string= "" comment-end) "^" (regexp-quote comment-end))) (if (and (null ispell-check-comments) comment-start) (regexp-quote comment-start)) - (ispell-begin-skip-region ispell-skip-region-alist) + ;; If they set ispell-skip-region-alist to nil, mapconcat + ;; will produce an empty string, which will then match + ;; anything without moving point, something + ;; ispell-skip-region doesn't expect. Perhaps we should be + ;; more defensive and delq "" above as well, in addition to + ;; deleting nil elements. + (if ispell-skip-region-alist + (ispell-begin-skip-region ispell-skip-region-alist)) (ispell--make-filename-or-URL-re))) "\\|")) -- 2.11.4.GIT