changeset 107305:0b830883578a

Fix bug #5649: 23.1.92; Indentation problems in C mode.
author Alan Mackenzie <acm@muc.de>
date Mon, 01 Mar 2010 11:31:42 +0000
parents adb459b371a3
children e2efddfebd89 372a2c256194
files lisp/ChangeLog lisp/progmodes/cc-engine.el
diffstat 2 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Mon Mar 01 01:15:04 2010 -0800
+++ b/lisp/ChangeLog	Mon Mar 01 11:31:42 2010 +0000
@@ -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.
--- a/lisp/progmodes/cc-engine.el	Mon Mar 01 01:15:04 2010 -0800
+++ b/lisp/progmodes/cc-engine.el	Mon Mar 01 11:31:42 2010 +0000
@@ -2641,7 +2641,8 @@
 	;; (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))