# HG changeset patch # User Alan Mackenzie # Date 1267443102 0 # Node ID 0b830883578aacca2219b2c105ed0d71ff709f8f # Parent adb459b371a37de1da385829e4166c0ec92e3d35 Fix bug #5649: 23.1.92; Indentation problems in C mode. diff -r adb459b371a3 -r 0b830883578a lisp/ChangeLog --- 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 + + * 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 * menu-bar.el (menu-bar-manuals-menu): Fix typo. diff -r adb459b371a3 -r 0b830883578a lisp/progmodes/cc-engine.el --- 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))