diff options
author | Alan Mackenzie <acm@muc.de> | 2020-02-10 21:20:12 +0000 |
---|---|---|
committer | Alan Mackenzie <acm@muc.de> | 2020-02-10 21:20:12 +0000 |
commit | ad5e350ab764f3a420d29f24ab3222f671b2e8c0 (patch) | |
tree | 6b94248be6fc1053ec5873944cc8827453801cfd /lisp/progmodes/cc-langs.el | |
parent | 06c302d425fc2093130479b8aed7da4507d43331 (diff) | |
download | emacs-ad5e350ab764f3a420d29f24ab3222f671b2e8c0.tar.gz emacs-ad5e350ab764f3a420d29f24ab3222f671b2e8c0.tar.bz2 emacs-ad5e350ab764f3a420d29f24ab3222f671b2e8c0.zip |
c-end-of-macro: Handle block coment lines with unescaped NLs correctly
* lisp/progmodes/cc-langs.el (c-last-open-c-comment-start-on-line-re): Make
obsolete, and supersede by ...
(c-open-c-comment-on-logical-line-re): New language variable.
* lisp/progmodes/cc-engine.el (c-end-of-macro): Inside macros, handle
multiline block comments whose line ends are not escaped correctly.
Diffstat (limited to 'lisp/progmodes/cc-langs.el')
-rw-r--r-- | lisp/progmodes/cc-langs.el | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el index 8d0ade70f36..667561719cb 100644 --- a/lisp/progmodes/cc-langs.el +++ b/lisp/progmodes/cc-langs.el @@ -1707,7 +1707,10 @@ ender." (c-lang-const c-last-c-comment-end-on-line-re)) (c-lang-defconst c-last-open-c-comment-start-on-line-re - "Regexp which matches the last block comment start on the + "Do NOT use this constant any more. Instead use +`c-open-c-comment-on-logical-line-re' (2020-02-10). + +Regexp which matches the last block comment start on the current ine, if any, or nil in those languages without block comments. When a match is found, submatch 1 contains the comment starter." @@ -1715,6 +1718,20 @@ starter." awk nil) (c-lang-defvar c-last-open-c-comment-start-on-line-re (c-lang-const c-last-open-c-comment-start-on-line-re)) +(make-obsolete-variable 'c-last-open-c-comment-start-on-line-re + 'c-open-c-comment-on-logical-line-re + "5.35") + +(c-lang-defconst c-open-c-comment-on-logical-line-re + "Regexp which matches an open block comment on the current logical line. +It is intended for searching backwards from the end of a line. +Such a search will stop at the first encountered non-escaped +newline or open block comment. If the comment is found, submatch +1 contains the comment starter." +t "[^\\\n][\r\n]\\|\\(/\\*\\)\\([^*]\\|\\*+\\([^*/]\\|$\\)\\)*$" +awk nil) +(c-lang-defvar c-open-c-comment-on-logical-line-re + (c-lang-const c-open-c-comment-on-logical-line-re)) (c-lang-defconst c-literal-start-regexp ;; Regexp to match the start of comments and string literals. |