]> git.eshelyaron.com Git - emacs.git/commitdiff
progmodes/cc-engine.el (c-state-cache-non-literal-place): Correct to
authorAlan Mackenzie <acm@muc.de>
Tue, 16 Aug 2011 20:10:40 +0000 (20:10 +0000)
committerAlan Mackenzie <acm@muc.de>
Tue, 16 Aug 2011 20:10:40 +0000 (20:10 +0000)
avoid the insides of macros.

lisp/ChangeLog
lisp/progmodes/cc-engine.el

index 70d34fb7117e41b5f5ec79bdb2a1531c45fb8993..a18344766f5645bc517f4d96274522d16feeef74 100644 (file)
@@ -1,3 +1,8 @@
+2011-08-16  Alan Mackenzie  <acm@muc.de>
+
+       * progmodes/cc-engine.el (c-state-cache-non-literal-place):
+       Correct, to avoid the inside of macros.
+
 2011-08-16  Richard Stallman  <rms@gnu.org>
 
        * epa-mail.el: Handle GnuPG group definitions.
index 0236a2be296b5072dd25eb47a957e94e5e699f42..0d88f85d263e8b1d44f93c4825e80b5679312df1 100644 (file)
@@ -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.