]> git.eshelyaron.com Git - emacs.git/commitdiff
(c-neutralize-syntax-in-CPP): Fix coding bug.
authorAlan Mackenzie <acm@muc.de>
Sat, 1 Mar 2008 09:05:12 +0000 (09:05 +0000)
committerAlan Mackenzie <acm@muc.de>
Sat, 1 Mar 2008 09:05:12 +0000 (09:05 +0000)
lisp/progmodes/cc-mode.el

index db71bf334088eca1766b206413d451d7b54023d1..b122b392dd51b47e7ca5d9f4332653c85d706e34 100644 (file)
@@ -829,7 +829,7 @@ Note that the style variables are always made local to the buffer."
   ;; This function is the C/C++/ObjC value of `c-before-font-lock-function'.
   ;;
   ;; This function might do invisible changes.
-  (c-save-buffer-state (limits mbeg beg end)
+  (c-save-buffer-state (limits mbeg+1 beg end)
     ;; First calculate the region, possibly to be extended.
     (setq beg (min begg c-old-BOM))
     (goto-char endd)
@@ -841,15 +841,14 @@ Note that the style variables are always made local to the buffer."
     (c-clear-char-property-with-value beg end 'syntax-table '(1))
 
     (goto-char beg)
-    ;; If we're inside a string/comment, go to its end.
-    (if (setq limits (c-literal-limits))
-       (goto-char (cdr limits)))
-
-    (while (search-forward-regexp c-anchored-cpp-prefix end t)
-      (when (c-beginning-of-macro)    ; Guard against being in a string/comment.
-       (setq mbeg (point))
+    (while (and (< (point) end)
+               (search-forward-regexp c-anchored-cpp-prefix end t))
+      ;; If we've found a "#" inside a string/comment, ignore it.
+      (if (setq limits (c-literal-limits))
+         (goto-char (cdr limits))
+       (setq mbeg+1 (point))
        (c-end-of-macro)          ; Do we need to go forward 1 char here?  No!
-       (c-neutralize-CPP-line mbeg (point)))))) ; We might still be in a comment - this is OK.
+       (c-neutralize-CPP-line mbeg+1 (point))))))
 
 (defun c-before-change (beg end)
   ;; Function to be put on `before-change-function'.  Primarily, this calls