Frequently Asked Questions
**************************

     *Q.* *How do I re-indent the whole file?*

     *A.* Visit the file and hit `C-x h' to mark the whole buffer. Then
     hit `ESC C-\'.

     *Q.* *How do I re-indent the entire function?  `ESC C-x' doesn't
     work.*

     *A.* `ESC C-x' is reserved for future Emacs use.  To re-indent the
     entire function hit `C-c C-q'.

     *Q.* *How do I re-indent the current block?*

     *A.* First move to the brace which opens the block with `ESC C-u',
     then re-indent that expression with `ESC C-q'.

     *Q.* *Why doesn't the `RET' key indent the new line?*

     *A.* Emacs' convention is that `RET' just adds a newline, and that
     `C-j' adds a newline and indents it.  You can make `RET' do this
     too by adding this to your `c-mode-common-hook':

          (define-key c-mode-base-map "\C-m" 'newline-and-indent)

     This is a very common question.  If you want this to be the default
     behavior, don't lobby me, lobby RMS!  :-)

     *Q.* *I put `(c-set-offset 'substatement-open 0)' in my `.emacs'
     file but I get an error saying that `c-set-offset''s function
     definition is void.*

     *A.* This means that CC Mode wasn't loaded into your Emacs session
     by the time the `c-set-offset' call was reached, mostly likely
     because CC Mode is being autoloaded.  Instead of putting the
     `c-set-offset' line in your top-level `.emacs' file, put it in
     your `c-mode-common-hook', or simply add the following to the top
     of your `.emacs' file:

          (require 'cc-mode)

     *Q.* *I put `(setq c-basic-offset 4)' in my `.emacs' file, but
     code still gets indented to 2 spaces.*

     *A.* This setting is getting captured in the `user' style, but the
     `gnu' style is the default.  You should also add a setting of
     `c-default-style' to your `.emacs' file, like so:

          (setq c-default-style '((other . "user")))
          (setq c-basic-offset 4)

     *Q.* *My style settings works in all the CC Mode language modes
     except for Java, where I still get e.g. 4 column indentation.*

     *A.* Java mode switches to the `java' style by default for
     historical reasons.  You can override it by putting an association
     list on `c-default-style':

          (setq c-default-style '((other . "my-style")))

     The `other' symbol says that CC Mode should use "my-style" in all
     modes not explicitly listed.  Since there's nothing else on the
     list this causes "my-style" to be used in every mode.

     *Q.* *How do I make strings, comments, keywords, and other
     constructs appear in different colors, or in bold face, etc.?*

     *A.* "Syntax Colorization" is a standard Emacs feature, controlled
     by `font-lock-mode'.  CC Mode does not contain font-lock
     definitions for any of its supported languages.

     *Q.* *`M-a' and `M-e' used to move over entire balanced brace
     lists, but now they move into blocks.  How do I get the old
     behavior back?*

     *A.* Use `C-M-f' and `C-M-b' to move over balanced brace blocks.
     Use `M-a' and `M-e' to move by statements, which will also move
     into blocks.

     *Q.* *Whenever I try to indent a line or type an "electric" key
     such as `;', `{', or `}', I get an error that look like this:
     `Invalid function: (macro . #[...'. What gives?*

     *A.* This is a common error when CC Mode hasn't been compiled
     correctly, especially under Emacs 19.34(1). If you are using the
     standalone CC Mode distribution, try recompiling it according to
     the instructions in the `README' file.


   ---------- Footnotes ----------

   (1) Technically, it's because some macros wasn't defined during the
compilation, so the byte compiler put in function calls instead of the
macro expansions. Later, when the interpreter tries to call the macros
as functions, it shows this (somewhat cryptic) error message.