]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix 2011-01-31 change; patch supplied by acm was applied incorrectly. emacs-23.3
authorChong Yidong <cyd@stupidchicken.com>
Mon, 7 Mar 2011 20:05:53 +0000 (15:05 -0500)
committerChong Yidong <cyd@stupidchicken.com>
Mon, 7 Mar 2011 20:05:53 +0000 (15:05 -0500)
* lisp/progmodes/cc-cmds.el (c-beginning-of-statement): Fix 2011-01-31
change; patch supplied by Alan Mackenzie was applied incorrectly.

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

index 6d711568fea1d205d1a85c4128fe2d671fe8c759..1b8a7641b35d865c11c336028b6dd3c4f730f67b 100644 (file)
@@ -4,8 +4,8 @@
 
 2011-03-07  Chong Yidong  <cyd@stupidchicken.com>
 
-       * progmodes/cc-cmds.el (c-beginning-of-statement): Revert
-       2011-01-31 change.
+       * progmodes/cc-cmds.el (c-beginning-of-statement): Fix 2011-01-31
+       change; patch supplied by Alan Mackenzie was applied incorrectly.
 
 2011-02-26  Eli Zaretskii  <eliz@gnu.org>
 
index 4deb5ca6afe068ac5f7e978c6eec2043dff41983..bd047e894357555fae4aa9cb9f660ecfd273557a 100644 (file)
@@ -2458,13 +2458,15 @@ function does not require the declaration to contain a brace block."
          (goto-char last)
          (throw 'done '(nil . nil)))
 
-        ;; Stop if we encounter a preprocessor line.
-        ((and (not macro-end)
+        ;; Stop if we encounter a preprocessor line.  Continue if we
+        ;; hit a naked #
+        ((and c-opt-cpp-prefix
+              (not macro-end)
               (eq (char-after) ?#)
               (= (point) (c-point 'boi)))
-         (goto-char last)
-         ;(throw 'done (cons (eq (point) here) 'macro-boundary))) ; Changed 2003/3/26
-         (throw 'done '(t . macro-boundary)))
+         (if (= (point) here)          ; Not a macro, therefore naked #.
+             (forward-char)
+           (throw 'done '(t . macro-boundary))))
 
         ;; Stop after a ';', '}', or "};"
         ((looking-at ";\\|};?")
@@ -2663,14 +2665,19 @@ sentence motion in or near comments and multiline strings."
                ;; Are we about to move forward into or out of a
                ;; preprocessor command?
                (when (eq (cdr res) 'macro-boundary)
-                 (save-excursion
-                   (end-of-line)
-                   (setq macro-fence
-                         (and (not (eobp))
-                              (progn (c-skip-ws-forward)
-                                     (c-beginning-of-macro))
-                              (progn (c-end-of-macro)
-                                     (point))))))
+                 (setq macro-fence
+                       (save-excursion
+                         (if macro-fence
+                             (progn
+                               (end-of-line)
+                               (and (not (eobp))
+                                    (progn (c-skip-ws-forward)
+                                           (c-beginning-of-macro))
+                                    (progn (c-end-of-macro)
+                                           (point))))
+                           (and (not (eobp))
+                                (c-beginning-of-macro)
+                                (progn (c-end-of-macro) (point)))))))
                ;; Are we about to move forward into a literal?
                (when (memq (cdr res) '(macro-boundary literal))
                  (setq range (c-ascertain-following-literal)))