Commit e3af763f authored by Alan Mackenzie's avatar Alan Mackenzie
Browse files

Bind open-paren-in-column-0-is-defun-start to nil at some entry points.

* progmodes/cc-engine.el (c-invalidate-state-cache-1)
(c-parse-state-1, c-guess-basic-syntax):  Bind it here.
* progmodes/cc-mode.el (c-before-change, c-after-change)
(c-font-lock-fontify-region): Bind it here.
parent 4ff6d92d
2014-01-19 Alan Mackenzie <acm@muc.de>
Bind open-paren-in-column-0-is-defun-start to nil at some entry
points.
* progmodes/cc-engine.el (c-invalidate-state-cache-1)
(c-parse-state-1, c-guess-basic-syntax): Bind it here.
* progmodes/cc-mode.el (c-before-change, c-after-change)
(c-font-lock-fontify-region): Bind it here.
2014-01-19 Martin Rudalics <rudalics@gmx.at>
* term.el (term-window-width): Call window-text-width instead of
......
......@@ -3183,7 +3183,8 @@ comment at the start of cc-engine.el for more info."
;; Truncate `c-state-cache' and set `c-state-cache-good-pos' to a value
;; below `here'. To maintain its consistency, we may need to insert a new
;; brace pair.
(let ((here-bol (c-point 'bol here))
(let (open-paren-in-column-0-is-defun-start
(here-bol (c-point 'bol here))
too-high-pa ; recorded {/(/[ next above here, or nil.
dropped-cons ; was the last removed element a brace pair?
pa)
......@@ -3254,6 +3255,7 @@ comment at the start of cc-engine.el for more info."
;; This function might do hidden buffer changes.
(let* ((here (point))
(here-bopl (c-point 'bopl))
open-paren-in-column-0-is-defun-start
strategy ; 'forward, 'backward etc..
;; Candidate positions to start scanning from:
cache-pos ; highest position below HERE already existing in
......@@ -9370,7 +9372,8 @@ comment at the start of cc-engine.el for more info."
(c-save-buffer-state
((indent-point (point))
(case-fold-search nil)
;; A whole ugly bunch of various temporary variables. Have
open-paren-in-column-0-is-defun-start
;; A whole ugly bunch of various temporary variables. Have
;; to declare them here since it's not possible to declare
;; a variable with only the scope of a cond test and the
;; following result clauses, and most of this function is a
......
......@@ -1032,15 +1032,16 @@ Note that the style variables are always made local to the buffer."
(list type marked-id
type-pos term-pos
(buffer-substring-no-properties type-pos term-pos)
(buffer-substring-no-properties beg end)))))))
(if c-get-state-before-change-functions
(mapc (lambda (fn)
(funcall fn beg end))
c-get-state-before-change-functions))
)))
;; The following must be done here rather than in `c-after-change' because
;; newly inserted parens would foul up the invalidation algorithm.
(buffer-substring-no-properties beg end)))))))
(if c-get-state-before-change-functions
(let (open-paren-in-column-0-is-defun-start)
(mapc (lambda (fn)
(funcall fn beg end))
c-get-state-before-change-functions)))
)))
;; The following must be done here rather than in `c-after-change' because
;; newly inserted parens would foul up the invalidation algorithm.
(c-invalidate-state-cache beg))
(defvar c-in-after-change-fontification nil)
......@@ -1062,7 +1063,7 @@ Note that the style variables are always made local to the buffer."
;; This calls the language variable c-before-font-lock-functions, if non nil.
;; This typically sets `syntax-table' properties.
(c-save-buffer-state (case-fold-search)
(c-save-buffer-state (case-fold-search open-paren-in-column-0-is-defun-start)
;; When `combine-after-change-calls' is used we might get calls
;; with regions outside the current narrowing. This has been
;; observed in Emacs 20.7.
......@@ -1178,7 +1179,8 @@ Note that the style variables are always made local to the buffer."
;;
;; Type a space in the first blank line, and the fontification of the next
;; line was fouled up by context fontification.
(let ((new-beg beg) (new-end end) new-region case-fold-search)
(let ((new-beg beg) (new-end end) new-region case-fold-search
open-paren-in-column-0-is-defun-start)
(if c-in-after-change-fontification
(setq c-in-after-change-fontification nil)
(save-restriction
......
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