Add 2010 to copyright years.
[bpt/emacs.git] / doc / misc / cc-mode.texi
index f4d65ed..6b72c69 100644 (file)
@@ -160,26 +160,19 @@ CC Mode
 This manual is for CC Mode in Emacs.
 
 Copyright @copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-2003, 2004, 2005, 2006, 2007  Free Software Foundation, Inc.
+2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010  Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.2 or
-any later version published by the Free Software Foundation; with the
-Invariant Sections being ``The GNU Manifesto'', ``Distribution'' and
-``GNU GENERAL PUBLIC LICENSE'', with the Front-Cover texts being ``A GNU
-Manual'', and with the Back-Cover Texts as in (a) below.  A copy of the
-license is included in the section entitled ``GNU Free Documentation
-License'' in the Emacs manual.
-
-(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
-this GNU Manual, like GNU software.  Copies published by the Free
-Software Foundation raise funds for GNU development.''
-
-This document is part of a collection distributed under the GNU Free
-Documentation License.  If you want to distribute this document
-separately from the collection, you can do so by adding a copy of the
-license to the document, as described in section 6 of the license.
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover texts being ``A GNU Manual'',
+and with the Back-Cover Texts as in (a) below.  A copy of the license
+is included in the section entitled ``GNU Free Documentation License''.
+
+(a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
+modify this GNU manual.  Buying copies from the FSF supports it in
+developing GNU and promoting software freedom.''
 @end quotation
 @end copying
 
@@ -218,10 +211,13 @@ from
 @comment This appears only in the Info file, not the printed manual.
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
+@summarycontents
+@contents
+
 @node    Top, Introduction, (dir), (dir)
 @comment node-name, next, previous, up
 
-@ifinfo
+@ifnottex
 @top @ccmode{}
 
 @ccmode{} is a GNU Emacs mode for editing files containing C, C++,
@@ -230,7 +226,9 @@ and AWK code.  It provides syntax-based indentation, font locking, and
 has several handy commands and some minor modes to make the editing
 easier.  It does not provide tools to look up and navigate between
 functions, classes etc - there are other packages for that.
-@end ifinfo
+
+@insertcopying
+@end ifnottex
 
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -487,8 +485,8 @@ work just fine right out of the box.  Note however that you might not
 have the latest @ccmode{} release and might want to upgrade your copy
 (see below).
 
-You should probably start by skimming through the entire chapter
-@ref{Commands} to get an overview of @ccmode{}'s capabilities.
+You should probably start by skimming through the entire Commands chapter
+(@pxref{Commands}) to get an overview of @ccmode{}'s capabilities.
 
 After trying out some commands, you may dislike some aspects of
 @ccmode{}'s default configuration.  Here is an outline of how to
@@ -1228,7 +1226,7 @@ reindenting the line.  This reindentation saves you from having to
 reindent a line manually after typing, say, a @samp{@}}.  A few
 keywords, such as @code{else}, also trigger electric action.
 
-You can inhibit the electric behaviour described here by disabling
+You can inhibit the electric behavior described here by disabling
 electric minor mode (@pxref{Minor Modes}).
 
 Common to all these keys is that they only behave electrically when
@@ -1281,7 +1279,7 @@ whitespace before it).
 Additionally, you can configure @ccmode{} so that typing a slash at
 the start of a line within a block comment will terminate the
 comment.  You don't need to have electric minor mode enabled to get
-this behaviour.  @xref{Clean-ups}.
+this behavior.  @xref{Clean-ups}.
 
 In AWK mode, @samp{*} and @samp{/} do not delimit comments and are not
 electric.
@@ -2188,9 +2186,10 @@ that takes precedence is the one that appears latest in this list:
 @item
 @table @asis
 @item Style
+@itemx File Style@footnote{In earlier versions of @ccmode{}, a File Style setting took precedence over any other setting apart from a File Local Variable setting.}
 @itemx Top-level command or ``customization interface''
 @itemx Hook
-@itemx File Style
+@itemx File Local Variable setting
 @end table
 @end itemize
 
@@ -2277,11 +2276,18 @@ in your @file{.emacs} file:
 See @ref{Styles} for fuller details on using @ccmode{} styles and how
 to create them.
 
+@item File Local Variable setting
+A @dfn{file local variable setting} is a setting which applies to an
+individual source file.  You put this in a @dfn{local variables list},
+a special block at the end of the source file (@pxref{Specifying File
+Variables,,, @emacsman{}}).
+
 @item File Styles
 A @dfn{file style} is a rarely used variant of the ``style'' mechanism
-described above, which applies to an individual source file.  To use
-it, you set certain Emacs local variables in a special block at the
-end of the source file.  @xref{File Styles}.
+described above, which applies to an individual source file.
+@xref{File Styles}.  You use this by setting certain special variables
+in a local variables list (@pxref{Specifying File Variables,,,
+@emacsman{}}).
 
 @item Hooks with Styles
 For ultimate flexibility, you can use hooks and styles together.  For
@@ -2604,7 +2610,7 @@ except in Java and AWK modes where it's @code{java} and @code{awk}.
 
 Remember that if you set a style variable with the Customization
 interface or at the top level of your @file{.emacs} file before the
-style system is initialised (@pxref{Config Basics}), this setting will
+style system is initialized (@pxref{Config Basics}), this setting will
 override the one that the style system would have given the variable.
 
 To set a buffer's style interactively, use the command @kbd{C-c .}
@@ -2784,13 +2790,11 @@ made local to that buffer, even if
 variable is virtually always non-@code{nil} anyhow, you're unlikely to
 notice this effect.}.
 
-If you set any variables, including style variables, by the file local
-variables mechanism, these settings take priority over all other
-settings, even those in your mode hooks (@pxref{CC Hooks}).  If you
-use @code{c-file-style} or @code{c-file-offsets} and also explicitly
-set a style variable in a local variable block, the explicit setting
-will take priority.
-
+If you set any variable by the file local variables mechanism, that
+setting takes priority over all other settings, even those in your
+mode hooks (@pxref{CC Hooks}).  Any individual setting of a variable
+will override one made through @code{c-file-style} or
+@code{c-file-offsets}.
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 @node    Custom Filling and Breaking, Custom Auto-newlines, Config Basics, Top
 @comment node-name, next, previous, up
@@ -2834,7 +2838,7 @@ looked up in the alist to get the regexp for the language, and if it
 isn't found then the special symbol @samp{other} is looked up instead.
 
 When a comment line gets divided by @kbd{M-j} or the like, @ccmode{}
-inserts the comment line prefix from a neighbouring line at the start
+inserts the comment line prefix from a neighboring line at the start
 of the new line.  The default value of c-comment-prefix-regexp is
 @samp{//+\\|\\**}, which matches C++ style line comments like
 
@@ -5865,7 +5869,7 @@ foo (xyz, aaa + bbb + ccc
 Only continuation lines like this are touched, @code{nil} is returned on
 lines which are the start of an argument.
 
-Within a gcc @code{asm} block, @code{:} is recognised as an argument
+Within a gcc @code{asm} block, @code{:} is recognized as an argument
 separator, but of course only between operand specifications, not in the
 expressions for the operands.
 
@@ -6458,7 +6462,7 @@ functions to this hook, not remove them.  @xref{Style Variables}.
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 Normally, the lines in a multi-line macro are indented relative to
-each other as though they were code.  You can suppress this behaviour
+each other as though they were code.  You can suppress this behavior
 by setting the following user option:
 
 @defopt c-syntactic-indentation-in-macros
@@ -6759,6 +6763,14 @@ it and font-locks it OK.  Templates used in expressions, and nested
 templates do not fare so well.  Sometimes a workaround is to refontify
 the expression after typing the closing @samp{>}.
 
+@item
+In a @dfn{k&r region} (the part of an old-fashioned C function
+declaration which specifies the types of its parameters, coming
+between the parameter list and the opening brace), there should be at
+most 20 top-level parenthesis and bracket pairs.  This limit has been
+imposed for performance reasons.  If it is violated, the source file
+might be incorrectly indented or fontified.
+
 @item
 On loading @ccmode{}, sometimes this error message appears:
 
@@ -6985,12 +6997,6 @@ Since most @ccmode{} variables are prepended with the string
 @comment Epilogue.
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-@iftex
-@page
-@summarycontents
-@contents
-@end iftex
-
 @bye
 
 @ignore