- The electric @kbd{#} key reindents the line if it appears to be the
-beginning of a preprocessor directive. This happens when the value of
-@code{c-electric-pound-behavior} is @code{(alignleft)}. You can turn
-this feature off by setting @code{c-electric-pound-behavior} to
-@code{nil}.
-
- The variable @code{c-hanging-braces-alist} controls the insertion of
-newlines before and after inserted braces. It is an association list
-with elements of the following form: @code{(@var{syntactic-symbol}
-. @var{nl-list})}. Most of the syntactic symbols that appear in
-@code{c-offsets-alist} are meaningful here as well.
-
- The list @var{nl-list} may contain either of the symbols
-@code{before} or @code{after}, or both; or it may be @code{nil}. When a
-brace is inserted, the syntactic context it defines is looked up in
-@code{c-hanging-braces-alist}; if it is found, the @var{nl-list} is used
-to determine where newlines are inserted: either before the brace,
-after, or both. If not found, the default is to insert a newline both
-before and after braces.
-
- The variable @code{c-hanging-colons-alist} controls the insertion of
-newlines before and after inserted colons. It is an association list
-with elements of the following form: @code{(@var{syntactic-symbol}
-. @var{nl-list})}. The list @var{nl-list} may contain either of the
-symbols @code{before} or @code{after}, or both; or it may be @code{nil}.
-
- When a colon is inserted, the syntactic symbol it defines is looked
-up in this list, and if found, the @var{nl-list} is used to determine
-where newlines are inserted: either before the brace, after, or both.
-If the syntactic symbol is not found in this list, no newlines are
-inserted.
-
- Electric characters can also delete newlines automatically when the
-auto-newline feature is enabled. This feature makes auto-newline more
-acceptable, by deleting the newlines in the most common cases where you
-do not want them. Emacs can recognize several cases in which deleting a
-newline might be desirable; by setting the variable
-@code{c-cleanup-list}, you can specify @emph{which} of these cases that
-should happen. The variable's value is a list of symbols, each
-describing one case for possible deletion of a newline. Here are the
-meaningful symbols, and their meanings:
-
-@table @code
-@item brace-catch-brace
-Clean up @samp{@} catch (@var{condition}) @{} constructs by placing the
-entire construct on a single line. The clean-up occurs when you type
-the @samp{@{}, if there is nothing between the braces aside from
-@code{catch} and @var{condition}.
-
-@item brace-else-brace
-Clean up @samp{@} else @{} constructs by placing the entire construct on
-a single line. The clean-up occurs when you type the @samp{@{} after
-the @code{else}, but only if there is nothing but white space between
-the braces and the @code{else}.
-
-@item brace-elseif-brace
-Clean up @samp{@} else if (@dots{}) @{} constructs by placing the entire
-construct on a single line. The clean-up occurs when you type the
-@samp{@{}, if there is nothing but white space between the @samp{@}} and
-@samp{@{} aside from the keywords and the @code{if}-condition.
-
-@item empty-defun-braces
-Clean up empty defun braces by placing the braces on the same
-line. Clean-up occurs when you type the closing brace.
-
-@item defun-close-semi
-Clean up the semicolon after a @code{struct} or similar type
-declaration, by placing the semicolon on the same line as the closing
-brace. Clean-up occurs when you type the semicolon.
-
-@item list-close-comma
-Clean up commas following braces in array and aggregate
-initializers. Clean-up occurs when you type the comma.
-
-@item scope-operator
-Clean up double colons which may designate a C++ scope operator, by
-placing the colons together. Clean-up occurs when you type the second
-colon, but only when the two colons are separated by nothing but
-whitespace.
-@end table