Commit af7c5700 authored by Chong Yidong's avatar Chong Yidong
Browse files

Limit recursion depth of c-forward-<>-arglist-recur (Bug#7722).

* progmodes/cc-engine.el (c-forward-<>-arglist-recur): Set a limit
to the recursion depth.
parent 37d1c45d
2011-01-27 Chong Yidong <cyd@stupidchicken.com>
* progmodes/cc-engine.el (c-forward-<>-arglist-recur): Set a limit
to the recursion depth (Bug#7722).
2011-01-26 Roy Liu <carsomyr@gmail.com> (tiny change)
* term/ns-win.el (ns-find-file): Expand ns-input-file with
......
......@@ -4393,6 +4393,8 @@ comment at the start of cc-engine.el for more info."
(goto-char safe-pos)
t)))
(defvar c-forward-<>-arglist-recur-depth)
(defun c-forward-<>-arglist (all-types)
;; The point is assumed to be at a "<". Try to treat it as the open
;; paren of an angle bracket arglist and move forward to the
......@@ -4418,7 +4420,8 @@ comment at the start of cc-engine.el for more info."
;; If `c-record-type-identifiers' is set then activate
;; recording of any found types that constitute an argument in
;; the arglist.
(c-record-found-types (if c-record-type-identifiers t)))
(c-record-found-types (if c-record-type-identifiers t))
(c-forward-<>-arglist-recur--depth 0))
(if (catch 'angle-bracket-arglist-escape
(setq c-record-found-types
(c-forward-<>-arglist-recur all-types)))
......@@ -4434,6 +4437,14 @@ comment at the start of cc-engine.el for more info."
nil)))
(defun c-forward-<>-arglist-recur (all-types)
;; Temporary workaround for Bug#7722.
(when (boundp 'c-forward-<>-arglist-recur--depth)
(if (> c-forward-<>-arglist-recur--depth 200)
(error "Max recursion depth reached in <> arglist")
(setq c-forward-<>-arglist-recur--depth
(1+ c-forward-<>-arglist-recur--depth))))
;; Recursive part of `c-forward-<>-arglist'.
;;
;; This function might do hidden buffer changes.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment