1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00

Merge changes from emacs-23 branch

This commit is contained in:
Chong Yidong 2011-01-31 18:54:50 -05:00
commit 14beddf471
26 changed files with 414 additions and 231 deletions

View file

@ -2440,13 +2440,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 ";\\|};?")
@ -2560,14 +2562,21 @@ be more \"DWIM:ey\"."
(c-backward-syntactic-ws))
(or (bobp) (c-after-statement-terminator-p)))))))
;; Are we about to move backwards into or out of a
;; preprocessor command? If so, locate it's beginning.
;; preprocessor command? If so, locate its beginning.
(when (eq (cdr res) 'macro-boundary)
(save-excursion
(beginning-of-line)
(setq macro-fence
(and (not (bobp))
(progn (c-skip-ws-backward) (c-beginning-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 backwards into a literal?
(when (memq (cdr res) '(macro-boundary literal))
(setq range (c-ascertain-preceding-literal)))