diff options
author | Eli Zaretskii <eliz@gnu.org> | 2017-01-07 13:02:50 +0200 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2017-01-07 13:02:50 +0200 |
commit | 50fd04cd4b831a166db30292c4dc0c24be8e6e9d (patch) | |
tree | e5285446bf5c316657ece533b51e397bca83abf4 /lisp/textmodes/ispell.el | |
parent | 512e9886be693f61f9d1932f19461bf4482fba51 (diff) | |
download | emacs-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.el | 9 |
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))) "\\|")) |