CC Mode update to 5.30.10:
* cc-fonts.el (c-font-lock-declarators): Fixed bug where the point
could go past the limit in decoration level 2, thereby causing
errors during interactive fontification.
* cc-mode.el (c-make-inherited-keymap): Fixed cc-bytecomp bug when
the file is evaluated interactively.
* cc-engine.el (c-guess-basic-syntax): Handle operator
declarations somewhat better in C++.
* cc-styles.el, cc-mode.el (c-run-mode-hooks): New helper macro to
make use of run-mode-hooks' which has been added in Emacs 21.1.
(c-mode, c++-mode, objc-mode, java-mode, idl-mode, pike-mode,
awk-mode): Use it.
(make-local-hook): Suppress warning about obsoleteness.
* cc-engine.el, cc-align.el, cc-cmds.el
(c-append-backslashes-forward, c-delete-backslashes-forward,
c-find-decl-spots, c-semi&comma-no-newlines-before-nonblanks):
Compensate for return value from forward-line' when it has moved
but not to a different line due to eob.
* cc-engine.el (c-guess-basic-syntax): Fixed anchoring in
objc-method-intro' and objc-method-args-cont'.
2005-05-23 Alan Mackenzie <bug-cc-mode@gnu.org>
CC Mode update to 5.30.10:
* cc-mode.el, cc-engine.el, cc-align.el: Change the FSF's address
in the copyright statement. Incidentally, change "along with GNU
Emacs" to "along with this program" where it occurs.
* cc-mode.el: Add a fourth parameter t' to the awk-mode autoload,
so that it is interactive, hence can be found by M-x awk-mode
whilst cc-mode is yet to be loaded. Reported by Glenn Morris
<gmorris+emacs@ast.cam.ac.uk>.
* cc-awk.el: Add character classes (e.g. "[:alpha:]") into AWK
Mode's regexps.
2005-05-23 Kevin Ryde <user42@zip.com.au>:
* cc-align.el (c-lineup-argcont): Ignore conses for {} pairs from
c-parse-state, to avoid a lisp error (on bad code).
is at or near the limit of the comment. Fixed bug when the prefix
from `c-guess-fill-prefix' is longer than the text on the first line
of the comment when it's masked.
into two functions where `c-electric-delete-forward' always deletes
forward and `c-electric-delete' only contains the code
necessary for XEmacs to choose between backward and forward
deletion. `c-electric-delete-forward' is now bound to C-d to
get the electric behavior on that key too.
(c-fill-paragraph): Fixed bogus direct use of c-comment-prefix-regexp,
which caused an error when it's a list.
similar to the one in c-fill-paragraph to check the fill
prefix from the adaptive fill function for sanity.
(c-electric-brace): Fixed some bugs in the state
handling that caused class open lines to be recognized as
statement-conts in some cases.
(c-indent-new-comment-line): Keep the fill prefix
guessed by the adaptive fill function unless point is on the
first line of a block comment.
(c-indent-command): Obey c-syntactic-indentation.
(c-electric-brace, c-electric-slash,
c-electric-star, c-electric-semi&comma, c-electric-colon,
c-electric-lt-gt, c-electric-paren): Don't reindent old lines
when c-syntactic-indentation is nil.
(c-fill-paragraph): Keep one or two spaces
between the text and the block comment ender when it hangs,
depending on how many there are before the fill.
(c-indent-new-comment-line): Always break
multiline comments in multiline mode, regardless of
comment-multi-line.
nil when calling fill-paragraph, to avoid bogus recursion which
will signal an error.
(c-fill-paragraph): Always keep point in the same
relative position. Fill comment before point if there's nothing
else on the same line. Fill block comments after code a little
better. Try harder to find a good fill-prefix when point is on a
block comment ender line. Use c-Java-javadoc-paragraph-start in
block comments in Java mode. Leave block comment ender alone when
c-hanging-comment-ender-p is nil and point is on that line.
Detect paragraph-separate in multiparagraph comments. Fix for bug
that may strip the `*' off `*/' if fill-prefix ends with `*' and
c-hanging-comment-ender-p is t. Added filling of multiline string
literals. Always return t to disable filling in any unhandled
area, i.e. actual code where fill-paragraph only mess things up.
(c-end-of-statement): Do not move by sentence in strings.
(c-beginning-of-statement): Major rewrite.
(c-beginning-of-defun, c-indent-defun):
Use (c-point 'bod) instead of beginning-of-defun directly.
(c-beginning-of-defun, c-end-of-defun): New commands.
(c-beginning-of-statement): When moving forward by sentences, because
we're either inside or at the start of a comment, be sure to limit
movement to only within the extent of the comment.
(c-electric-colon): Don't insert newlines before or after scope
operators, regardless of the value of c-hanging-colons.
(c-electric-brace): namespace-open and namespace-close braces can hang.
(c-comment-line-break-function): When breaking a
line-oriented comment, copy the comment leader from the previous
line instead of hardcoding it to "// ". This ensures that
whitespace between the slashes and the text is preserved.
(c-electric-pound, c-electric-brace)
(c-electric-slash, c-electric-star, c-electric-semi&comma)
(c-electric-colon, c-electric-lt-gt, c-scope-operator)
(c-electric-backspace, c-electric-delete)
(c-indent-command, c-indent-exp, c-indent-defun)
(c-backslash-region, c-fill-paragraph): Add "*" to interactive spec.
(c-fill-paragraph): regexp-quote the
fill-prefix when search forward for the end of line oriented comments.
(c-backslash-region): Do not preserve the zmacs region (XEmacs).
Be slient if c-progress-interval
is nil.
(c-comment-line-break-function):
Fix for when comment starts at
comment-column and there is non-whitespace preceding this on the
current line.
Fixes in sentence movement to properly
handle M-e moving forward into a comment when looking at preceding
whitespace, and M-a moving backward into comment when looking at
following whitespace.
Uncommented the looking-at call in the
sentence-flag clause so that moving by forward-sentence when looking
at the beginning of a comment works again. A previous log message in
cc-mode.el indicates this was commented out "because
c-beginning-of-statement-1 should do the right thing", but clearly it
doesn't.
I don't know if this breaks something else, because I can't figure out
why it was commented out in the first place.
handle M-e moving forward into a comment when looking at preceding
whitespace, and M-a moving backward into comment when looking at
following whitespace.
(c-comment-line-break-function): Don't break line in the middle of a string.
don't have the variable comment-line-break-function.
(c-electric-slash): Make this work as the final slash in a */ block
oriented comment closing token.
(c-comment-line-break-function): New function for proposed
mode-specific comment-line-break-function variable.
(c-electric-backspace): Must get 'supercede property
values to work with delsel and pending-del.
(c-electric-brace): Fix ebola eradication consequence
in the preserve-p test.