From: Alan Mackenzie Date: Tue, 16 Aug 2011 20:10:40 +0000 (+0000) Subject: progmodes/cc-engine.el (c-state-cache-non-literal-place): Correct to X-Git-Tag: emacs-pretest-24.0.90~104^2~124^2~29 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=9c4aeabf550b825ddfd501b49d5df0c31ab6b446;p=emacs.git progmodes/cc-engine.el (c-state-cache-non-literal-place): Correct to avoid the insides of macros. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 70d34fb7117..a18344766f5 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2011-08-16 Alan Mackenzie + + * progmodes/cc-engine.el (c-state-cache-non-literal-place): + Correct, to avoid the inside of macros. + 2011-08-16 Richard Stallman * epa-mail.el: Handle GnuPG group definitions. diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el index 0236a2be296..0d88f85d263 100644 --- a/lisp/progmodes/cc-engine.el +++ b/lisp/progmodes/cc-engine.el @@ -2130,13 +2130,17 @@ comment at the start of cc-engine.el for more info." pos)) (defsubst c-state-cache-non-literal-place (pos state) - ;; Return a position outside of a string/comment at or before POS. + ;; Return a position outside of a string/comment/macro at or before POS. ;; STATE is the parse-partial-sexp state at POS. - (if (or (nth 3 state) ; in a string? - (nth 4 state)) ; in a comment? - (nth 8 state) - pos)) - + (let ((res (if (or (nth 3 state) ; in a string? + (nth 4 state)) ; in a comment? + (nth 8 state) + pos))) + (save-excursion + (goto-char res) + (if (c-beginning-of-macro) + (point) + res)))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Stuff to do with point-min, and coping with any literal there.