summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Mackenzie <acm@muc.de>2019-05-06 17:36:28 +0000
committerAlan Mackenzie <acm@muc.de>2019-05-06 17:36:28 +0000
commit77b1148b5164c71c4ba673173eed2a37918d4f78 (patch)
treebc37220b5beb2c9f3dd96ea55f089a3e28d8e2fb
parent63091313490beee4c5ed9767195c2a3df98f0332 (diff)
downloademacs-77b1148b5164c71c4ba673173eed2a37918d4f78.tar.gz
c-beginning-of-statement-1: Handle syntactic WS macros properly.
* lisp/progmodes/cc-engine.el (c-beginning-of-statement-1): The variable before-sws-pos should record the position of a closing paren/brace/bracket before moving backwards over a sexp. When there is a syntactic WS macro between the starting point and the closing p/b/b, setq before-sws-pos again after moving backward over the macro.
-rw-r--r--lisp/progmodes/cc-engine.el3
1 files changed, 3 insertions, 0 deletions
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el
index 7e6a46ea6e0..a2762ca2097 100644
--- a/lisp/progmodes/cc-engine.el
+++ b/lisp/progmodes/cc-engine.el
@@ -1143,6 +1143,9 @@ comment at the start of cc-engine.el for more info."
;; Have we moved into a macro?
((and (not macro-start)
(c-beginning-of-macro))
+ (save-excursion
+ (c-backward-syntactic-ws)
+ (setq before-sws-pos (point)))
;; Have we crossed a statement boundary? If not,
;; keep going back until we find one or a "real" sexp.
(and