summaryrefslogtreecommitdiff
path: root/lisp/textmodes/ispell.el
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2017-01-07 13:02:50 +0200
committerEli Zaretskii <eliz@gnu.org>2017-01-07 13:02:50 +0200
commit50fd04cd4b831a166db30292c4dc0c24be8e6e9d (patch)
treee5285446bf5c316657ece533b51e397bca83abf4 /lisp/textmodes/ispell.el
parent512e9886be693f61f9d1932f19461bf4482fba51 (diff)
downloademacs-50fd04cd4b831a166db30292c4dc0c24be8e6e9d.tar.gz
Avoid infloop in 'ispell-region'
* lisp/textmodes/ispell.el (ispell-begin-skip-region-regexp): Protect against 'ispell-skip-region-alist' being nil. Reported by Ernest Adrogué <nfdisco@gmail.com>, see http://lists.gnu.org/archive/html/help-gnu-emacs/2017-01/msg00007.html.
Diffstat (limited to 'lisp/textmodes/ispell.el')
-rw-r--r--lisp/textmodes/ispell.el9
1 files changed, 8 insertions, 1 deletions
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)))
"\\|"))