@setfilename ../../info/ccmode
@settitle CC Mode Manual
+@documentencoding UTF-8
@footnotestyle end
@c The following four macros generate the filenames and titles of the
@copying
This manual is for CC Mode in Emacs.
-Copyright @copyright{} 1995--2013 Free Software Foundation, Inc.
+Copyright @copyright{} 1995--2014 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
@dircategory Emacs editing modes
@direntry
* CC Mode: (ccmode). Emacs mode for editing C, C++, Objective-C,
- Java, Pike, AWK, and CORBA IDL code.
+ Java, Pike, AWK, and CORBA IDL code.
@end direntry
@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@end itemize
@table @asis
-@item @kbd{C-j} (@code{newline-and-indent})
-@kindex C-j
-@findex newline-and-indent
-Inserts a newline and indents the new blank line, ready to start
-typing. This is a standard (X)Emacs command.
-
@item @kbd{C-M-q} (@code{c-indent-exp})
@kindex C-M-q
@findex c-indent-exp
configure @ccmode{} so that it starts up with your favorite
combination of them (@pxref{Sample Init File}). By default, when
you initialize a buffer, electric mode and syntactic-indentation mode
-are enabled but the other two modes are disabled.
+are enabled but the other three modes are disabled.
@ccmode{} displays the current state of the first four of these minor
modes on the modeline by appending letters to the major mode's name,
please contact @email{bug-cc-mode@@gnu.org}.
Line-up functions are passed a single argument, the syntactic
-element (see below). The return value is a @code{c-offsets-alist}
-offset specification: for example, an integer, a symbol such as
-@code{+}, a vector, @code{nil}@footnote{Returning @code{nil} is useful
-when the offset specification for a syntactic element is a list
-containing the line-up function (@pxref{c-offsets-alist}).}, or even
-another line-up function. Full details of these are in
-@ref{c-offsets-alist}.
+element (see below). At the time of the call, point will be somewhere
+on the line being indented. The return value is a
+@code{c-offsets-alist} offset specification: for example, an integer,
+a symbol such as @code{+}, a vector, @code{nil}@footnote{Returning
+@code{nil} is useful when the offset specification for a syntactic
+element is a list containing the line-up function
+(@pxref{c-offsets-alist}).}, or even another line-up function. Full
+details of these are in @ref{c-offsets-alist}.
Line-up functions must not move point or change the content of the
buffer (except temporarily). They are however allowed to do
@item
@kindex RET
@kindex C-j
-@emph{Why doesn't the @kbd{RET} key indent the new line?}
+@emph{Why does/doesn't the @kbd{RET} key indent the new line?}
+
+Emacs's convention used to be that @kbd{RET} just adds a newline, and that
+@kbd{C-j} adds a newline and indents it. In Emacs-24.4, this convention was
+reversed.
-Emacs's convention is that @kbd{RET} just adds a newline, and that
-@kbd{C-j} adds a newline and indents it. You can make @kbd{RET} do this
-too by adding this to your @code{c-initialization-hook}:
+If you use an older Emacs and you want @kbd{RET} do this
+too, add this to your @code{c-initialization-hook}:
@example
(define-key c-mode-base-map "\C-m" 'c-context-line-break)
@end example
-@xref{Getting Started}. This is a very common question. If you want
-this to be the default behavior, don't lobby us, lobby RMS@! @t{:-)}
+@xref{Getting Started}. This was a very common question.
@item
@emph{How do I stop my code jumping all over the place when I type?}