CC Mode: in certain font lock loops, check point is not beyond limit.

* /lisp/progmodes/cc-fonts.el (c-font-lock-enum-body)
(autodoc-font-lock-line-markup): As part of the `while' condition, check that
the previous iteration of the loop hasn't moved point past `limit', thus
obviating "wrong side of point" errors in re-search-forward, etc.
This commit is contained in:
Alan Mackenzie 2019-04-30 13:20:22 +00:00
parent c61bbb4c8e
commit 2885372168

View file

@ -1549,7 +1549,8 @@ casts and declarations are fontified. Used on level 2 and higher."
;; font-lock-keyword-face. It always returns NIL to inhibit this and
;; prevent a repeat invocation. See elisp/lispref page "Search-based
;; Fontification".
(while (search-forward-regexp c-enum-clause-introduction-re limit t)
(while (and (< (point) limit)
(search-forward-regexp c-enum-clause-introduction-re limit t))
(when (save-excursion
(backward-char)
(c-backward-over-enum-header))
@ -2850,7 +2851,8 @@ need for `pike-font-lock-extra-types'.")
"\\)\\)\\s *\\)@[A-Za-z_-]+\\(\\s \\|$\\)"))
(markup-faces (list c-doc-markup-face-name c-doc-face-name)))
(while (re-search-forward line-re limit t)
(while (and (< (point) limit)
(re-search-forward line-re limit t))
(goto-char (match-end 1))
(if (looking-at autodoc-decl-keywords)