summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Mackenzie <acm@muc.de>2010-03-01 11:31:42 +0000
committerAlan Mackenzie <acm@muc.de>2010-03-01 11:31:42 +0000
commitdd21b6216dea34d95fad1860ad1c0b2a0735b867 (patch)
tree914ebf5dcc3ee038ab7873a0689ff302f3a10ff0
parenta7434f011037fcc6945f4eb3228368e9cf65d49d (diff)
downloademacs-dd21b6216dea34d95fad1860ad1c0b2a0735b867.tar.gz
Fix bug #5649: 23.1.92; Indentation problems in C mode.
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/progmodes/cc-engine.el3
2 files changed, 7 insertions, 1 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index f69df07cf2c..725377aba95 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2010-03-01 Alan Mackenzie <bug-cc-mode@gnu.org>
+
+ * cc-engine.el (c-remove-stale-state-cache): Take account of when
+ `good-pos' is in the same macro as `here'. Fixes bug 5649.
+
2010-02-28 Katsumi Yamaoka <yamaoka@jpl.org>
* menu-bar.el (menu-bar-manuals-menu): Fix typo.
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el
index 336e2c39262..4797cd4a8ca 100644
--- a/lisp/progmodes/cc-engine.el
+++ b/lisp/progmodes/cc-engine.el
@@ -2641,7 +2641,8 @@ comment at the start of cc-engine.el for more info."
;; (car c-state-cache). There can be no open parens/braces/brackets
;; between `good-pos'/`good-pos-actual-macro-start' and (point-max),
;; due to the interface spec to this function.
- (setq pos (if good-pos-actual-macro-end
+ (setq pos (if (and good-pos-actual-macro-end
+ (> in-macro-start good-pos-actual-macro-start))
(1+ good-pos-actual-macro-end) ; get outside the macro as
; marked by a `category' text property.
good-pos))