Fix 2011-01-31 change; patch supplied by acm was applied incorrectly.

* lisp/progmodes/cc-cmds.el (c-beginning-of-statement): Fix 2011-01-31
change; patch supplied by Alan Mackenzie was applied incorrectly.
This commit is contained in:
Chong Yidong 2011-03-07 15:05:53 -05:00
parent c6678f2916
commit 1df1040bf8
2 changed files with 22 additions and 15 deletions

View 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>

View 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)))