aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorAlan Mackenzie2016-06-29 20:17:39 +0000
committerAlan Mackenzie2016-06-29 20:17:39 +0000
commit681d3f1f582d9b549f41ef1eacff42abb98f878d (patch)
treee67927c1fd6a97f2d7e245fe6097049c916c2fa4 /doc
parent4a2a1eba09e5bbc37b853733708feae17f1425f5 (diff)
downloademacs-681d3f1f582d9b549f41ef1eacff42abb98f878d.tar.gz
emacs-681d3f1f582d9b549f41ef1eacff42abb98f878d.zip
Fix C-M-a in a C function finding the start of a macro preceding it.
Also amend some pertinent documentation. This fixes bug #23818. * lisp/progmodes/cc-engine.el (c-beginning-of-decl-1): Also check for a virtual semicolon at a place where we check for other types of statement ends. * lisp/progmodes/cc-vars.el (c-macro-nacmes-with-semicolon): Remove from the doc string the bit saying that the variable is a prototype and liable to change. * doc/misc/cc-mode.texi (Macros with ;): Enhance, stating that configuring macros with semicolon can prevent C-M-a missing the beginning of defun.
Diffstat (limited to 'doc')
-rw-r--r--doc/misc/cc-mode.texi6
1 files changed, 4 insertions, 2 deletions
diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi
index 82f8cbc2e33..f311ec8a3a5 100644
--- a/doc/misc/cc-mode.texi
+++ b/doc/misc/cc-mode.texi
@@ -6727,9 +6727,11 @@ Macros which needn't (or mustn't) be followed by a semicolon when you
6727invoke them, @dfn{macros with semicolons}, are very common. These can 6727invoke them, @dfn{macros with semicolons}, are very common. These can
6728cause @ccmode{} to parse the next line wrongly as a 6728cause @ccmode{} to parse the next line wrongly as a
6729@code{statement-cont} (@pxref{Function Symbols}) and thus mis-indent 6729@code{statement-cont} (@pxref{Function Symbols}) and thus mis-indent
6730it. 6730it. At the top level, a macro invocation before a defun start can
6731cause, for example, @code{c-beginning-of-defun} (@kbd{C-M-a}) not to
6732find the correct start of the current function.
6731 6733
6732You can prevent this by specifying which macros have semicolons. It 6734You can prevent these by specifying which macros have semicolons. It
6733doesn't matter whether or not such a macro has a parameter list: 6735doesn't matter whether or not such a macro has a parameter list:
6734 6736
6735@defopt c-macro-names-with-semicolon 6737@defopt c-macro-names-with-semicolon