Anonymous avatar Anonymous committed 5dd01f6

CC Mode 5.30.

Comments (0)

Files changed (26)

ANNOUNCEMENT

-Release Announcement
-CC Mode Version 5.28
-Martin Stjernholm
-<mailto:bug-cc-mode@gnu.org>
-
-This message announces the availability of a new version of CC Mode, a
-GNU Emacs mode for editing C (ANSI and K&R), C++, Objective-C, Java,
-CORBA's IDL, and Pike code.
-
-A list of user visible changes is detailed in the NEWS file and in the
-URL listed below.  More information, including links to download the
-source, are available on the CC Mode web page:
-
-    <http://cc-mode.sourceforge.net/>
-
-There is also a link to the CC Mode announcement mailing list, a
-moderated list that you can join to get future release announcements.
-Please see this page for more information on this mailing list:
-
-    <http://lists.sourceforge.net/mailman/listinfo/cc-mode-announce>
-
-Send email correspondence to
-
-    bug-cc-mode@gnu.org
-
-Note that the old address, cc-mode-help@python.org is still active,
-but its use is discouraged.
-
-For a list of changes please see
-
-    <http://cc-mode.sourceforge.net/changes-528.php>
-2003-04-02  Norbert Koch  <viteno@xemacs.org>
-
-	* Makefile (VERSION): XEmacs package 1.33 released.
-
-2003-04-01  Steve Youngs  <youngs@xemacs.org>
-
-	* Makefile (ELCS): Don't build cc-make.el or cc-mode-19.el.
-	Rename both to *.upstream.
-	(PRELOADS): Add cc-bytecomp.el.
-
-2003-03-09  Ben Wing  <ben@xemacs.org>
-
-	* Makefile:
-	Delete explicit compile:: and binkit: rules.
-	Don't add custom-load.elc to the list of generated elc's.
-	Use STANDARD_DOCS instead of explicitly giving the targets
-	and dependencies.
-	Move the include of XEmacs.rules to the end of the file.
-
-2003-01-13  Rendhalver [Peter Brown]  <rendhalver@xemacs.org>
-
-	* Makefile (VERSION): XEmacs package 1.32 released.
-
-2003-01-06  Ville Skytt�  <scop@xemacs.org>
-
-	* cc-mode.el: Make auto-mode-alist modifications autoload-only.
-
-2002-11-29  Ben Wing  <ben@xemacs.org>
-
-	* .cvsignore: Remove files now handled automatically by CVS.
-	* Makefile: Use `compile' instead of hard-coded `all'.
-
-2002-10-15  Ville Skytt�  <scop@xemacs.org>
-
-	* Makefile (srckit): Remove.
-
-2002-10-14  Ville Skytt�  <scop@xemacs.org>
-
-	* Makefile (MANUAL): Removed (unused).
-
-2002-10-07  Rendhalver [Peter Brown]  <rendhalver@xemacs.org>
-
-	* Makefile (VERSION): XEmacs package 1.31 released.
-
-2002-09-30  Ville Skytt�  <scop@xemacs.org>
-
-	* cc-mode.el: Add autoloaded auto-mode-alist associations.
-
-2002-09-06  Rendhalver [Peter Brown]  <rendhalver@xemacs.org>
-
-	* Makefile (VERSION): XEmacs package 1.30 released.
-
-2002-08-31  Ville Skytt�  <scop@xemacs.org>
-
-	* cc-engine.el (c-parse-state): Fix problem in finding
-	out the parenthesis state around the indentation position.
-	Patch from Martin Stjernholm (author).
-
-2002-08-02  Rendhalver [Peter Brown]  <rendhalver@xemacs.org>
-
-	* Makefile (VERSION): XEmacs package 1.29 released.
-
-2002-08-01  Ville Skytt�  <scop@xemacs.org>
-
-	* cc-engine.el (c-beginning-of-member-init-list):
-	Apply patch from Martin Stjernholm submitted by Neal D. Becker,
-	Martin's comments: CC Mode 5.28 has a bug that causes it to
-	confuse < and > in such initialization lists with template
-	parentheses.  The following patch corrects that.
-
-2002-07-16  Adrian Aichner  <adrian@xemacs.org>
-
-	* .cvsignore: Add generated .info* and .html files.
-
-2002-05-09  Steve Youngs  <youngs@xemacs.org>
-
-	* Makefile (VERSION): XEmacs package 1.28 released.
-
-2002-05-08  Steve Youngs  <youngs@xemacs.org>
-
-	* Makefile (PRELOADS): No need to push the current directory into
-	the load-path.
-
-2002-01-13  Steve Youngs  <youngs@xemacs.org>
-
-	* package-info.in (provides): Update to include all provides.
-
-2002-01-07  Adrian Aichner  <adrian@xemacs.org>
-
-	* Makefile (HTML_FILES): New.
-	* Makefile (HTML_DEP): New.
-
-2001-08-13  Enrico Scholz  <enrico.scholz@informatik.tu-chemnitz.de>
-
-	* cc-cmds.el (c-fill-paragraph): Use 'c-current-comment-prefix'.
-
-2001-05-11  Martin Stjernholm  <bug-cc-mode@gnu.org>
-
-	* cc-langs.el (c-switch-label-key): Regexp fix.
-
-2001-02-24  Ben Wing  <ben@xemacs.org>
-
-	* Makefile (MANUAL):
-	Conditionalize extra MS Windows quoting on
-	XEMACS_NATIVE_NT_NEEDS_EXTRA_QUOTING, since it breaks things under
-	newer Cygwins.
-
-2001-02-28  Steve Youngs  <youngs@xemacs.org>
-
-	* Makefile (REQUIRES): Add mail-lib.
-	(ELCS): Add missing .elc files.
-
-	* Import cc-mode 5.28.
-
-2000-11-07  Martin Buchholz <martin@xemacs.org>
-
-	* cc-mode.texi: Doc fix.
-
-2000-10-05  Martin Buchholz  <martin@xemacs.org>
-
-	* *: Mega typo fix.
-
-2000-07-26  Ben Wing  <ben@xemacs.org>
-
-	* Makefile (PRELOADS): correct command-line quoting for MS Windows
-	native.
-
-2000-07-10  Andreas Jaeger  <aj@suse.de>
-
-	Release 5.27 downloaded from http://cc-mode.sourceforge.net/.
-
-1998-12-30  Martin Buchholz  <martin@xemacs.org>
-
-	* Makefile (MAINTAINER): The preferred address is bug-cc-mode@gnu.org
+2003-07-03  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* Patch release 5.30.1.
+
+	* cc-fonts.el (c-font-lock-complex-decl-prepare,
+	c-font-lock-declarators, c-font-lock-declarations,
+	c-complex-decl-matchers, c-basic-matchers-after): Use a text
+	property to mark the items in in declarator lists to handle
+	refontification inside multiline declarations better.
+
+2003-07-02  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-fonts.el (c-font-lock-declarations): Recognize a construct
+	like "a * b = c;" as a declaration.
+
+	* cc-menus.el (cc-imenu-init): Do not set
+	`imenu-create-index-function' if the second argument is left out.
+	This bug broke the imenu support in C, C++ and Java modes.
+
+2003-06-30  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-forward-type): Fixed bugs in promotion of
+	concatenated types.
+
+	* cc-fonts.el (c-font-lock-declarations): Tuning to avoid that
+	some kinds of macro expressions followed by blocks are recognized
+	as declarations.
+
+	* cc-mode.el (c-basic-common-init): Turn on `c-type-decl-end-used'
+	whenever access keys are in use.
+
+	* cc-fonts.el (c-complex-decl-matchers): Put the `c-decl-end'
+	property on access keys to improve interactive refontification of
+	the following declarations.
+
+	* cc-fonts.el (c-font-lock-declarations): Do not recognize a paren
+	followed by a decl suffix as a declaration so easily.
+
+	* cc-fonts.el (c-font-lock-declarations): Tuned fontification of
+	K&R style declarations.
+
+2003-06-19  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* Release 5.30.
+
+	* cc-engine.el, cc-align.el (c-add-stmt-syntax, c-lineup-arglist,
+	c-lineup-arglist-close-under-paren): Fixes to cope with special
+	brace lists in Pike.
+
+2003-06-19  Alan Mackenzie  <bug-cc-mode@gnu.org>
+
+	* cc-mode.el: awk-mode: Call c-awk-after-change to ensure
+	syntax-table props at loading.
+
+	* cc-fonts.el: Put (cc-require-when-compile 'cc-awk) to eliminate
+	compile-time errors.
+
+2003-06-18  Alan Mackenzie  <bug-cc-mode@gnu.org>
+
+	* cc-awk.el, cc-engine.el: Added code to analyze AWK top-level
+	forms properly (c-guess-basic-syntax CASE 5P),
+	c-awk-backward-syntactic-ws.
+
+2003-06-17  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-fix.el: cc-mode-19.el has been renamed to cc-fix.el since it
+	now contains compatibility stuff for later versions than (X)Emacs
+	19.
+
+2003-06-17  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-langs.el (c-paren-nontype-kwds): New language constant.
+
+	(c-other-decl-kwds, c-postfix-decl-spec-kwds): Added compiler
+	specific declspec keywords: __attribute__ for gcc and __declspec
+	for msvc.
+
+	* cc-fonts.el (c-font-lock-declarations, c-complex-decl-matchers):
+	Support specifiers in a couple more contexts to cope with msvc
+	'__declspec'.
+
+	* cc-engine.el (c-forward-keyword-clause): Support
+	`c-paren-nontype-kwds'.
+
+2003-06-16  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-langs.el (c-primary-expr-regexp): Don't match a bare period
+	as a float.
+
+2003-06-16  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-bytecomp.el (cc-bytecomp-setup-environment): Do not cover
+	functions that have been bound.
+
+	(cc-external-require): New macro to use for requiring external
+	packages, to handle the environment correctly.
+
+	* cc-defs.el, cc-fix.el, cc-fonts.el, cc-mode.el: Replaced
+	external require's with `cc-external-require'.
+
+2003-06-15  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-beginning-of-member-init-list,
+	c-guess-basic-syntax): Fixes in handling of bitfields.
+
+2003-06-13  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-langs.el (comment-end): Put a space in front of the comment
+	ender in C, as it was before the move from cc-mode.el.
+
+2003-06-11  Alan Mackenzie  <bug-cc-mode@gnu.org>
+
+	* cc-fonts.el: Do not load cc-awk.elc or awk-font-lock-keywords
+	unless there is an AWK Mode buffer.
+
+2003-06-10  Alan Mackenzie  <bug-cc-mode@gnu.org>
+
+	* cc-awk.el: New file that implements AWK support, superseding the
+	old separate derived mode in awk-mode.el.
+
+	* cc-vars.el, cc-mode-19.el, cc-langs.el, cc-mode.el, cc-defs.el,
+	cc-engine.el, cc-fonts.el: Changes for the new AWK support.
+
+2003-06-05  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el, cc-langs.el (c-decl-block-key,
+	c-search-uplist-for-classkey): Check that the modifier is followed
+	by "{" in Pike before considering it to start a class-like block.
+
+2003-05-30  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-mode.el (c-initialize-cc-mode): Added some compatibility to
+	make this function behave somewhat more as documented for derived
+	modes.  It's still not enough to make the old AWK mode behave
+	reasonably, but it's been like this a long time now so fixing it
+	more might cause trouble elsewhere. :P
+
+2003-05-29  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-fonts.el (c-remove-font-lock-face): New macro to remove a
+	font lock face properly (especially in XEmacs).
+
+	* cc-bytecomp.el (cc-bytecomp-obsolete-fun): Added the same kludge
+	as in `cc-bytecomp-obsolete-var' to avoid a confused compiler
+	warning.
+
+	* cc-engine.el (c-forward-type): Fixed a bug in the handling of
+	concatenated types when the component types are known.
+
+	* cc-fonts.el (c-constant-face-name): Added face name variable to
+	avoid the use of `font-lock-constant-face' for constants in
+	emacsen that doesn't have it.
+
+2003-05-25  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-styles.el, cc-vars.el, cc-cmds.el: Fixes for the syntactic
+	symbols for module and composition blocks.
+
+2003-05-17  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-mode.el (c-basic-common-init): Use
+	`open-paren-in-column-0-is-defun-start' if it exists and works.
+
+	* cc-vars.el (c-emacs-features): Added `col-0-paren' to detect
+	when `open-paren-in-column-0-is-defun-start' exists and actually
+	works.
+
+2003-05-07  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-align.el (c-lineup-argcont, c-lineup-gcc-asm-reg): Don't
+	quote nil in docstrings.
+
+2003-04-14  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-vars.el, cc-langs.el (c-primitive-type-kwds,
+	c-font-lock-extra-types): "complex" and "imaginary" aren't
+	keywords in C99, only macros that expand to the keywords
+	"_Complex" and "_Imaginary", so make the former a bit less
+	hardcoded by putting it on `c-font-lock-extra-types' instead.
+	There are also "bool" and "_Bool" that work the same way.
+
+	(c-constant-kwds): "false" and "true" are standard constant macros
+	in C99.
+
+2003-04-09  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-menus.el, cc-langs.el, cc-engine.el, cc-fonts.el, cc-cmds.el:
+	Fixed various regexps to use POSIX char classes when that is
+	supported.
+
+	* cc-defs.el (c-alpha, c-alnum, c-digit, c-upper, c-lower): New
+	constants to make it easier to create regexps that use POSIX char
+	classes in emacsen that support them.
+
+2003-04-07  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-vars.el (c-emacs-features): Detect in the regexp engine
+	understands POSIX char classes.
+
+2003-04-05  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-mode.el (c-after-change): Added kludge for bug where this
+	function sometimes gets positions outside the buffer range.
+
+2003-03-30  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-beginning-of-member-init-list): Better handling
+	of paretheses in unexpected places.
+
+	* cc-engine.el (c-forward-<>-arglist-recur): Fixed a regexp match
+	order problem that could cause empty template args on the form
+	"<>" to be missed.
+
+2003-03-23  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-parse-state): Added kludge to avoid an infinite
+	loop when Emacs' open-paren-in-column-zero rule kicks in and
+	causes the sexp functions to misbehave.
+
+2003-03-06  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-beginning-of-member-init-list): Fixed bug when
+	C++-like code is encountered in non-C++ mode.
+
+2003-03-02  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-defs.el (c-make-keywords-re): Added option to specify the
+	language to look up `c-nonsymbol-key' in.
+
+2003-02-24  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el, cc-engine.el (c-auto-newline-analysis): New
+	dynamically bound variable to turn off the
+	topmost-intro-cont/statement-cont kludge for brace lists during
+	the analysis for the auto newline feature.  This fixes some cases
+	where the setting for `brace-list-open' on
+	`c-hanging-braces-alist' didn't have any effect.
+
+2003-02-23  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-langs.el (c-literal-start-regexp): Yet another language
+	variable.
+
+	* cc-fonts.el (c-font-lock-doc-comments,
+	c-find-invalid-doc-markup, javadoc-font-lock-keywords): Fixed
+	fontification of the markup in Javadoc comments.
+
+        * cc-engine.el: Fixes in face handling to cope with doc comments.
+
+	(c-find-decl-spots): More failsafe skipping of comments and
+	strings that only have been partially fontified.
+
+	* cc-defs.el (c-got-face-at): New subst to test faces at positions
+	easier.
+
+	* cc-defs.el (c-safe-scan-lists): New wrapper macro to avoid the
+	warnings with too many args to `scan-lists' in Emacs.
+
+2003-02-22  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-syntactic-skip-backward): New function to make
+	syntactic searches in the backward direction easier.
+
+	(c-beginning-of-statement-1): Optimized skipping over large paren
+	sexps somewhat.
+
+	(c-safe-position): Removed the odd macro handling which was
+	centered around the point instead of the passed position.
+
+2003-02-16  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-in-knr-argdecl): Do not trip up on
+	initialization expressions.
+
+	* cc-align.el (c-lineup-arglist, c-lineup-close-paren,
+	c-lineup-arglist-close-under-paren): Tuned the "macro block"
+	heuristics to work better in nested arglist situations.
+
+2003-02-10  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-styles.el (c-set-offset): Don't find a default syntactic
+	element through syntactic analysis if called outside a CC Mode
+	buffer.
+
+2003-02-09  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-mode.el (c-basic-common-init): Install `c-fill-paragraph' on
+	`fill-paragraph-function'.  Although it's not the normal way to
+	call it in a CC Mode buffer it makes a direct call to
+	`fill-paragraph' work better.
+
+2003-01-28  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-vars.el, cc-mode.el (c-require-final-newline): Made this
+	variable an alist to specify a value for each language.  The
+	default value causes `require-final-newline' to be set to t only
+	in languages where the standard requires a final newline.
+
+2003-01-25  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-mode.el, cc-vars.el (c-require-final-newline): Added a
+	variable to make the initialization of `require-final-newline'
+	more configurable.
+
+	* cc-vars.el (c-mode-common-hook): Do not change the format string
+	to "CC Mode Common Hook" since that causes confusion (although it
+	is a more accurate name).
+
+2003-01-20  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-fonts.el (javadoc-font-lock-keywords,
+	autodoc-font-lock-keywords): Support for Javadoc and Pike Autodoc
+	doc comments.
+
+	* cc-vars.el (c-doc-comment-style): New variable to control the
+	fontification of documentation comments on top of the normal mode
+	font lock.
+
+2003-01-14  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-langs.el, cc-fonts.el (c-primary-expr-regexp,
+	c-font-lock-declarations): Avoid false recognition of parens as
+	casts when they are followed by an operator that is both prefix
+	and infix.
+
+2003-01-07  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-guess-fill-prefix): Tuned the heuristics of when
+	to use `c-block-comment-prefix' for an unclosed block comment.
+
+2002-12-22  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el, cc-langs.el (c-nonsymbol-sexp-kwds,
+	c-forward-keyword-clause): Handle keywords like "extern" that can
+	be followed by e.g. a string literal.
+
+	* cc-defs.el (c-make-keywords-re): Make a regexp correctly with
+	one submatch when adorn is set and the list is empty.
+
+2002-12-14  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-fonts.el (c-font-lock-declarations): Fixed a search that
+	could go far past the relevant region and cause slowness.  Do not
+	limit the declaration detection to the fontified region since that
+	can cause misfontification in multiline declarations.
+
+	* cc-engine.el (c-find-decl-spots): Added limit argument to handle
+	declarations spanning the fontification limit better.
+
+2002-12-10  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-in-literal, c-literal-limits,
+	c-literal-limits-fast, c-beginning-of-inheritance-list): Use the
+	paren cache instead of the impaired ad hoc in
+	`beginning-of-defun', so that these functions doesn't trip up on
+	"{" in the first column inside strings or comments.
+
+2002-12-06  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-vars.el (c-hanging-braces-alist): Added `statement-cont' and
+	made it auto newline free by default.
+
+	* cc-cmds.el (c-electric-brace): Added `statement-cont' to the
+	list of syntactic symbols to consider for auto newlines since it
+	can be used for in-statement brace lists.
+
+	* cc-vars.el (c-emacs-features): There's no need to have this
+	constant autoloaded.
+
+2002-12-04  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-fonts.el (c-font-lock-declarations): Use
+	`c-recognize-typeless-decls' to avoid fontifying some macro
+	constructs as declarations in languages where a preceding type is
+	mandatory.
+
+        * cc-langs.el (c-recognize-typeless-decls): New language variable.
+
+2002-11-30  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-align.el (c-lineup-close-paren): Use `c-syntactic-eol' when
+	checking if the open paren ends its line.
+
+	* cc-langs.el (c-syntactic-eol): Handle a line continuation
+	backslash.
+
+2002-11-26  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-align.el (c-snug-do-while): Compatibility fix for changed
+	structure in `c-syntactic-context'.
+
+2002-11-25  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-parse-state): Filter angle bracket arglist
+	parens in a better way than disabling the syntax table properties
+	completely.
+
+	* cc-fonts.el (c-cpp-matchers): Handle line continuations in cpp
+	expressions. Do not fontify symbols after #ifdef etc as variables
+	since that isn't consistent with how the face is used elsewhere
+	(i.e. only for the definition of the symbol).
+
+2002-11-24  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-mode.el: Added autoload directives for the interface
+	functions in cc-langs.
+
+2002-11-19  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-fonts.el (c-font-lock-declarations): Added a property to
+	handle refontication in multiline declaration arglists better.
+
+	(c-font-lock-<>-arglists): Fix to handle recursive template
+	arglists better.  (As a side effect this will make fontification
+	work better in older emacsen too.)
+
+	* cc-engine.el (c-forward-<>-arglist,
+	c-remove-<>-arglist-properties): Use a common text property
+	`c-type' for all sorts of CC Mode char classification, to avoid
+	cases when then same char is given conflicting types.
+
+	(c-forward-<>-arglist): New reparse argument to control that
+	aspect explicitly.
+
+	(c-forward-name, c-forward-type): Changes in the handling of
+	recursive template arglists.  Fixes to cope with the new 'known
+	type classification.
+
+2002-11-16  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-mode.el (c-basic-common-init): Added the new char property
+	`c-type' to `text-property-default-nonsticky'.
+
+	* cc-defs.el (c-put-char-property, c-get-char-property,
+	c-clear-char-property, c-clear-char-properties): Generalized
+	`c-put-char-syntax' and `c-get-char-syntax' to handle any
+	property.
+
+	* cc-bytecomp.el (cc-bytecomp-defun): Fixed bug that caused
+	existing function definitions to be overridden by phonies when the
+	bytecomp environment is restored.
+
+2002-11-15  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-mask-paragraph): Masking is necessary in normal
+	code too to avoid getting a fill prefix from a nearby comment.
+	Changed the name from `c-mask-comment' to a more accurate one.
+
+	* cc-defs.el, cc-mode.el: Changed the auto-load-alist strategy to
+	not add entries on package load, to be defensive in the case that
+	autoloads are updated in older emacsen.  The bug that would occur
+	in that case would probably be rather nasty for the average user.
+
+2002-11-14  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-fonts.el (c-font-lock-declarations): Fine tuning of the
+	decision tree that tells declarations from expressions to produce
+	better results in some ambiguous cases.
+
+	* cc-fonts.el (c-font-lock-syntactic-face-function): Removed since
+	it doesn't give the control we want.
+
+	(c-font-lock-invalid-string): Replacement for
+	`c-font-lock-syntactic-face-function' that puts the error face on
+	the string opener only, to avoid the annoying excessive use of the
+	error face while a string literal is being written.
+
+        (c-basic-matchers-before): Use `c-font-lock-invalid-string'.
+
+	* cc-engine.el (c-string-syntax, c-string-limit-regexp): Added
+	constants to use when handling string limits, since not all old
+	emacsen react well to the "|" syntax class.
+
+	(c-literal-limits, c-literal-limits-fast, c-literal-type): Use
+	`c-string-syntax' and `c-string-limit-regexp'.  Replaced some
+	hardcoded comment start regexps with `c-comment-start-regexp'.
+
+2002-11-08  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-mode.el: Added an association for pike-mode on
+	`intepreter-mode-alist'.
+
+2002-11-04  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-mode.el: Add the `auto-mode-alist' entries to the end instead
+	of the start of the list, to avoid overriding user additions that
+	are made before this file is loaded when the entries don't
+	correspond to any already on `auto-mode-alist'.
+
+	This is done through the third append argument to
+	`auto-mode-alist'.  That doesn't exist in older (X)Emacsen, so the
+	function is adviced in cc-defs.  However, that advice doesn't help
+	if the autoloads are updated in an old (X)Emacs with this version
+	of CC Mode, but I believe it's unlikely that anyone does that when
+	CC Mode isn't distributed with with it.
+
+	* cc-defs.el (add-to-list): Added advice to get the optional third
+	append argument in older (X)Emacsen.
+
+	* cc-langs.el (c-keywords-obarray): Kludge for strange bug in
+	Emacs that gives so odd errors that I frankly don't even muster to
+	begin trying to narrow it down.  If someone is so inclined,
+	restore the commented code, byte compile, and try to open a C++
+	file or something in font lock mode.
+
+2002-11-03  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-langs.el: Updated the IDL support from the specs.  This also
+	adds the keywords for the variants PSDL and CIDL.  (This is mostly
+	done from reading the grammars only; very lightly tested.)
+
+        * cc-langs.el (c-type-list-kwds): Added "new" in Java.
+
+	* cc-fonts.el: Made sure that `parse-sexp-lookup-properties' is
+	properly insulated from clobbering by the font-lock package at all
+	relevant entry points.
+
+2002-11-01  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-langs.el (c-opt-after-id-concat-key): New language constant
+	to make the recognition of identifier qualifiers more flexible.
+	Recognize the identifier before ".*" as a qualifier in Java.
+
+	(c-identifier-key): Recognize "::*" inside identifiers in C++.
+	Recognize identifiers ending with ".*" in Java for the sake of
+	import directives.
+
+	(c-type-list-kwds, c-ref-list-kwds): Recognize "import" and
+	"package" declarations in Java.
+
+	* cc-vars.el (c-doc-face, c-doc-marker-face, c-doc-markup-face):
+	Removed since they aren't used (and probably won't be).
+
+	* cc-langs.el (c-ref-list-kwds): New language constant to specify
+	keywords followed by references.
+
+	(c-last-identifier-range): New variable to avoid going back to
+	search for the identifier to font lock after a call to
+	`c-forward-name'.
+
+	(c-type-prefix-kwds, c-type-list-kwds): Fixed classification of
+	"@interface" etc in Objective-C.
+
+	* cc-engine.el (c-forward-keyword-clause): Fixed handling of
+	keyword prefixes in `c-type-list-kwds' and
+	`c-colon-type-list-kwds' clauses.
+
+	(c-keyword-sym, c-keyword-member): New functions to lookup and
+	categorize keywords.
+
+	(c-forward-keyword-clause): New function to move over a keyword
+	and its associated clause according to `c-<>-arglist-kwds' etc.
+
+	* cc-langs.el (c-typeless-decl-kwds, c-type-list-kwds,
+	c-colon-type-list-kwds, c-colon-type-list-re, c-paren-type-kwds):
+	New language constants and variables to generalize the recognition
+	of various language constructs.
+
+	(c-keywords): Did away with the list of `*-kwds' constants.  It's
+	now built through macro expansion.
+
+	(c-keywords-obarray): New language variable which contains each
+	keyword as a symbol, to make fast reverse lookup of keywords to
+	the `*-kwds' lists they come from.
+
+2002-10-31  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-defs.el (c-lang-defconst-eval-immediately): Added macro to be
+	able to do direct evaluation in `c-lang-defconst' forms.
+
+	* cc-engine.el (c-syntactic-re-search-forward): Fixed a bug which
+	could cause the point to end up outside the containing sexp if
+	PAREN-LEVEL was used.
+
+	* cc-engine.el, cc-fonts.el, cc-langs.el: Generalized the C++
+	template arglist support to handle angle bracket arglists in any
+	language.
+
+	(c-recognize-<>-arglists, c-<>-arglist-kwds,
+	c-opt-<>-arglist-start): New language variables to control angle
+	bracket arglists.
+
+	(c-opt-type-suffix-key): Use `c-recognize-<>-arglists' in
+	Objective-C instead of matching a protocol reference list as a
+	type suffix.
+
+2002-10-30  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-align.el (c-gnu-impose-minimum): Fixed a missing
+	`save-excursion' that caused the point to jump around.
+
+2002-10-26  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+        * cc-mode.el, cc-menus.el (objc-mode, cc-imenu-init): Fixed
+	initialization bug that has made the Objective-C support
+	inoperational since 5.26.
+
+	(cc-imenu-objc-generic-expression): Updated submatch indices due
+	to changes in `cc-imenu-c++-generic-expression'.
+
+	(cc-imenu-objc-function): Don't add an empty "C" menu since imenu
+	doesn't like that.
+
+2002-10-25  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-align.el (c-lineup-arglist,
+	c-lineup-arglist-close-under-paren, c-lineup-close-paren): Added
+	DWIM to the functions that line up at or after the arglist open
+	paren to avoid that if there are brace blocks inside, e.g. when a
+	macro contains a code block.
+
+2002-10-24  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-vars.el (objc-font-lock-extra-types): Changed default to
+	treat identifiers starting with capital letters as types,
+	according to Objective-C naming conventions.  The types previously
+	on the list is part of the language and therefore on
+	`c-primitive-type-kwds' instead.
+
+	* cc-fonts.el: Fixed font locking in Objective-C.  Be more careful
+	about returning nil from functions used directly as font-lock
+	matchers.
+
+	* cc-mode.el (c-font-lock-init): Made the syntax table
+	modification element of `font-lock-defaults' parameterized over
+	the languages.
+
+	* cc-langs.el: Updated the Objective-C constants according to the
+	language spec.  The "@" chars that start directives are now
+	considered part of the keywords to make things easier.
+
+2002-10-23  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-defs.el:
+	(c-(up|down)-list-(forward|backward)): Made the position optional
+	and added docstrings.
+
+	(c-go-(up|down)-list-(forward|backward)): Added variants of the
+	above that move point and return successfulness instead.
+
+2002-10-21  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-fonts.el (c-font-lock-<>-arglists): New function to fontify
+	all occurrences of template arglists in C++.
+
+	* cc-engine.el (c-disallow-comma-in-<>-arglists): New variable to
+	be able to avoid false recognition of template arglists in some
+	cases.
+
+2002-10-20  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-fonts.el, cc-langs.el (c-decl-prefix-re,
+	c-font-lock-declarations): Match template open brackets to get a
+	declaration in the first template argument.
+
+	(c-complex-decl-matchers): Fontify the second type in a "class X =
+	Y" expression in C++.
+
+2002-10-19  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-forward-<>-arglist): Broke out the recursive
+	part to a new function to improve efficiency when a nested
+	template arglist search turns out to be futile.
+
+2002-10-13  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-menus.el (cc-imenu-java-generic-expression): Improved to
+	avoid false matches on e.g. "else if (foo)".
+
+2002-10-11  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-forward-token-2, c-backward-token-2): New
+        functions that work like the -1 variants but that handles
+        multicharacter operator tokens.
+
+	* cc-engine.el (c-inside-bracelist-p, c-guess-basic-syntax): Did
+	away with the hardcoded regexps to recognize "typedef" declaration
+	prefixes, "extern" and "namespace" blocks, "enum"-style brace list
+	declarations and Java-style array initializers with "new".
+
+	* cc-langs.el (c-brace-list-decl-kwds, c-brace-list-key,
+	c-inexpr-brace-list-kwds, c-opt-inexpr-brace-list-key): New
+	language constants and variables to parameterize some more of the
+	hardcoded regexps in cc-engine.
+
+2002-10-10  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-align.el (c-lineup-cascaded-calls): Do not allow cascaded
+	call lists containing both "->" and ".".
+
+2002-10-09  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+        * cc-align.el, cc-cmds.el, cc-defs.el, cc-engine.el, cc-fonts.el,
+	cc-langs.el, cc-mode.el, cc-styles.el: New language variable
+	system to make it easier to set up optimized language variables
+	and to extend them in third party derived modes.  cc-langs is no
+	longer required at runtime.
+
+	* cc-mode.el (c-basic-common-init): No longer initializes the
+	language variables.  It's necessary that the caller does that
+	directly since the evaluated values for them now get compiled in
+	directly.
+
+	(c-font-lock-init, c-common-init): Separated the font-lock
+	initialization from `c-common-init'.
+
+	* cc-mode.el (c-define-abbrev-table): Do not override an existing
+	abbrev table.
+
+	(c-Java-defun-prompt-regexp): Moved here from cc-langs since
+	cc-langs isn't always loaded at runtime.
+
+	* cc-langs.el (c-make-init-lang-vars-fun, c-init-language-vars):
+	Changed to allow language variable initialization from derived
+	modes.
+
+        (c-mode-menu): New language variable for the mode menu.
+
+	(c-make-mode-syntax-table, c-mode-syntax-table,
+	make-c++-template-syntax-table): New language variables for syntax
+	tables.  The code that initializes them has been moved to cc-mode
+	to make it possible to avoid loading cc-langs at runtime.
+
+	* cc-engine.el, cc-langs.el (c-hungry-delete-key, c-auto-newline,
+	c-auto-hungry-string): Moved these state variables from cc-langs
+	to cc-engine to make it possible to avoid loading cc-langs at
+	runtime.
+
+	* cc-defs.el (c-lang-defconst, c-lang-const): Moved from cc-langs
+	and rewritten to make the language constant system usable from
+	derived modes.
+
+	(c-add-language): New function intended for use from derived modes
+	that add new C-like languages.
+
+	* cc-defs.el, cc-vars.el (c-buffer-is-cc-mode): Moved from cc-vars
+	to cc-defs to define it during compilation.
+
+	* cc-bytecomp.el (cc-require-when-compile): New support macro for
+	compile time `require's.
+
+2002-10-08  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+        * cc-defs.el, cc-mode.el (c-version): Moved from cc-mode to
+        cc-defs to make it accessible to the other components.
+
+	* cc-engine.el (c-forward-token-1, c-backward-token-1):
+	Compatibility fix for emacsen that doesn't understand generic
+	string delimiters.
+
+	* cc-vars.el (c-emacs-features): Added detection of generic string
+	and comment delimiters.
+
+	* cc-defs.el, cc-langs.el (c-make-keywords-re): Changed interface
+	to make it more extensible.
+
+	* cc-langs.el, cc-defs.el (c-regexp-opt, c-regexp-opt-depth,
+	c-make-keywords-re): Moved from cc-langs to cc-defs since they are
+	generally useful.
+
+	* cc-bytecomp.el, cc-defs.el (cc-eval-when-compile): Moved from
+	cc-bytecomp to cc-defs to allow use at runtime.
+
+2002-10-04  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-bytecomp.el (cc-eval-when-compile): Workaround for a bug with
+	nested `eval-when-compile' in XEmacs 21.
+
+2002-09-27  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-mode.el: Added autoloaded forms to install the appropriate
+	file suffixes on `auto-mode-alist'.  Necessary in XEmacs 21.5, and
+	it can be useful elsewhere too.
+
+2002-09-23  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-align.el (c-lineup-cascaded-calls): Handle "." too, for use
+	in Java.
+
+	* cc-engine.el (c-forward-sws, c-backward-sws): Do not handle cpp
+	directives in languages that doesn't have any.
+
+2002-09-22  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-langs.el (c-operators): Added a high level description of all
+	operators, along with their precedence and associativity.
+
+	* cc-align.el (c-lineup-multi-inher): Fixed bug where the position
+	of the point and not the beginning of the line was used to
+	calculate the indentation.
+
+2002-09-18  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-defs.el, cc-engine.el (c-backward-single-comment,
+	c-backward-comments): Added kludge for the bug in
+	`forward-comment' in most (X)Emacs versions where it moves back
+	over the "*/" of a block comment if there's no matching "/*".
+	This has become more important now since it can cause incorrect
+	caching by `c-backward-sws'.
+
+2002-09-16  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-hungry-backspace, c-hungry-delete-forward): New
+	functions to do hungry deletion regardless of hungry-delete mode.
+	Contributed by Kevin Ryde.
+
+	* cc-engine.el (c-forward-sws, c-backward-sws,
+	c-invalidate-sws-region): Use text properties to cache regions
+	with complex syntactic whitespace.  This helps a lot in improving
+	responsiveness when there are lots of comments and cpp directives
+	before point.
+
+2002-09-14  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-guess.el, cc-langs.el, cc-menus.el, cc-mode.el, cc-styles.el,
+	cc-vars.el, cc-engine.el, cc-fonts.el, cc-cmds.el, cc-defs.el:
+	Introduced a classification of functions into those that make
+	"hidden buffer changes" and those who don't.  This is prompted by
+	the increasing use of text properties for various things, to
+	correctly cover the silly buffer modifications that is caused by
+	text property changes.
+
+	(c-save-buffer-state): New macro that's put around any code that
+	can manipulate text properties.
+
+2002-09-13  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-mode.el (c-basic-common-init): Setup
+	`text-property-default-nonsticky' to avoid messing with the
+	rear-nonsticky property on each character in Emacs 21.
+
+	* cc-defs.el (c-clear-char-syntax, c-put-char-syntax): Macros that
+	sets and removes the syntax-table property on a single character
+	and makes the property nonsticky in both directions in a suitable
+	way for each (X)Emacs flavor.
+
+	* cc-vars.el, cc-defs.el, cc-engine.el, cc-mode.el: Use
+	`lookup-syntax-properties' in XEmacs to control whether the
+	syntax-table property has any effect or not.
+
+	(c-parse-sexp-lookup-properties): New macro that expands to either
+	`parse-sexp-lookup-properties' or `lookup-syntax-properties'.
+
+2002-09-12  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-defs.el, cc-engine.el, cc-fonts.el: Put the faces into the
+	buffer in the same way as the font-lock package does.  This fixes
+	a compatibility problem with XEmacs which sets an extra font-lock
+	property.
+
+	* cc-fonts.el (c-put-font-lock-face): A macro that finds out the
+	right way to put font lock faces at compile time.  We're
+	definitely not byte code portable between Emacs and XEmacs now.
+
+	* cc-engine.el (c-forward-sws, c-backward-sws): Implemented a
+	cache for the last large skipped over syntactic whitespace.  This
+	also has most effect after many macros.
+
+	* cc-engine.el, cc-defs.el (c-forward-syntactic-ws,
+	c-backward-syntactic-ws): Utilize the limit better when one is
+	passed.  These are now macros to avoid a little overhead when no
+	limit is given.
+
+	(c-forward-sws, c-backward-sws): New functions called by the
+	macros above to do the unbounded search.
+
+	* cc-fonts.el (c-font-lock-declarations): Implemented a cache for
+	the first backward search for a preceding `c-decl-prefix-re'
+	match.  This typically speeds up interactive refontification a lot
+	on the top level of macro heavy header files.
+
+2002-09-10  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-vars.el (c-emacs-features): Added check for syntax text
+	properties.
+
+	* cc-mode.el (c-basic-common-init): Turn on
+	`parse-sexp-lookup-properties' if it's supported.  Define the
+	variable in any case since it's used at runtime to check on this.
+
+        * cc-langs.el (c-identifier-key): Support C++ destructor names.
+
+	(c-identifier-start, c-op-token-regexp, c-type-modifier-kwds,
+	c-opt-type-modifier-key, c-opt-type-component-key,
+	c-typedef-specifier-kwds, c-typedef-specifier-key,
+	c-paren-stmt-kwds, c-paren-stmt-key, c-syntactic-ws-start): A
+	bunch of new language constants and variables to support the
+	improved handling of names and types.
+
+	* cc-fonts.el (c-font-lock-declarators, c-font-lock-declarations):
+	Handle C++ template declarations and template references.  Fontify
+	complex types and names more accurately by delegating it to
+	`c-forward-type' and `c-forward-name'.  Fontify the identifiers in
+	typedef declarations as types.
+
+	* cc-engine.el (c-forward-<>-arglist): New function to move
+	forward over a C++ template arglist.  It also marks the '<' and
+	'>' chars with paren syntax using the syntax-table property, to
+	speed up later calls in emacsen that support syntax text
+	properties (Emacs >= 20 and (undocumented) XEmacs 21).
+
+	This also has the very interesting effect that if font locking is
+	used with decoration level 3 or higher in these emacsen then
+	template arglists will behave just like paren sexps with the
+	various sexp movement commands.
+
+	(c-forward-name): New function to move over a name.  Simple in
+	most languages except C++ where a name can contain template
+	arglists and therefore almost arbitrary expressions.
+
+        (c-on-identifier): Fix for Pike operator identifiers.
+
+	(c-simple-skip-symbol-backward, c-syntactic-content,
+	c-remove-<>-paren-properties): New helper functions.
+
+	* cc-defs.el: (c-clear-char-syntax, c-mark-paren-open,
+	c-mark-paren-close): New support functions to handle syntactic
+	properties on C++ template arglist brackets.
+
+        (c-put-type-face, c-put-reference-face): Helpers to put faces on
+	regions, since there are a bit of that inside `c-forward-name' etc
+	in cc-engine.el.
+
+	* cc-engine.el, cc-fonts.el, cc-langs.el: Fixed the names on a
+	number of regexp language variables to conform to the nomenclature
+	and shortened some names.
+
+	* cc-align.el, cc-cmds.el, cc-fonts.el, cc-engine.el
+	(c-syntactic-re-search-forward): Removed the COUNT argument since
+	it's never used.  Added an argument to tell which subexpression
+	whose end should be tested for syntactic relevance.  Using this
+	also removes some optimizations, so that it's possible to use a
+	look behind subexpression that matches the end of a literal or a
+	close paren when PAREN-LEVEL is used.
+
+	(c-guess-continued-construct): Don't match <<= or >>= for the
+	stream-op syntactic element.
+
+	* cc-defs.el (c-paren-re, c-identifier-re): Removed these helper
+	macros since better and more correct tools are now available in
+	cc-langs.el.
+
+2002-09-07  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-align.el (c-lineup-string-cont): New lineup function to line
+	up string literals that will be concatenated.
+
+2002-09-05  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-langs.el (c-populate-syntax-table): XEmacs classifies the
+	hard space character as a symbol character but it's better to let
+	it be in the punctuation class so that it's always highlighted
+	with the inverted invalid face.  It can perhaps be argued that
+	that character is allowed in identifiers in some languages
+	(haven't checked), but using it would still be extremely
+	confusing.
+
+2002-09-04  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-beginning-of-statement-1): Fixed a case when a
+	labeled substatement caused incorrect association of the following
+	continuation clause.
+
+	* cc-engine.el (c-syntactic-re-search-forward): Handle the case
+	when the syntactic match position is in the middle of a comment
+	starter.
+
+	(c-guess-continued-construct): Analyze the "K&R region" of a
+	function nested inside a function as func-decl-cont and not
+	statement-cont.  New case E.  Also cleaned up case C (stream-op
+	recognition) a bit.
+
+	* cc-engine.el (c-parse-state, c-check-state-cache): Moved the
+	check on `c-state-cache-start' from `c-check-state-cache' to
+	`c-parse-state' so that the state cache isn't zapped if
+	`c-check-state-cache' but not `c-parse-state' is called during a
+	temporary narrowing.  This fixes a performance problem that could
+	occur when `fill-paragraph' is used in font lock mode on a comment
+	at the end of a large class or function.
+
+        (c-state-cache-start): Fixed buffer localness.
+
+2002-09-03  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-langs.el: Updates from the C99 standard (or actually from the
+	latest web accessible draft of it).
+
+2002-09-02  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-langs.el: Updated the keywords and operator tokens from the
+	latest C++ and Java standards.  Some other multichar token
+	corrections.
+
+2002-09-01  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el, cc-engine.el, cc-vars.el (c-syntactic-context,
+	c-syntactic-element): Do not bind any values to these variables
+	globally since they should always be dynamically bound.  This
+	makes it much easier to debug cases when they've gotten global
+	values somehow.
+
+2002-08-31  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-langs.el (c-regexp-opt): Fix to work around the non-greedy
+	behavior that the regexp engine sometimes exposes.  This bug only
+	shows in (X)Emacs 19 where there's no regexp-opt package.
+
+	* cc-engine.el (c-syntactic-re-search-forward): Added a feature to
+	filter out matches in the middle of tokens.  Changed the comment
+	to a docstring since I consider this function generally useful.
+
+        * cc-defs.el (c-mode-symbol): Broke out a part of `c-mode-var'.
+
+	* cc-align.el (c-lineup-cascaded-calls, c-lineup-gcc-asm-reg):
+	Cope with that `c-most-enclosing-brace' might return nil.
+
+2002-08-30  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-found-types, c-clear-found-types, c-add-type,
+	c-check-type, c-add-complex-type, c-list-found-types,
+	c-forward-type): Added a sort of symbol table for types: If a name
+	is recognized as a type in a declaration it's added in an obarray
+	to be able to recognize it in other ambiguous declarations.
+
+	(c-remove-ws): New helper function to canonicalize fully qualified
+	identifiers for `c-found-types'.
+
+	* cc-defs.el (c-mode-var): New defsubst to access mode prefixed
+	variables uniformly.
+
+2002-08-23  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-align.el (c-lineup-arglist-close-under-paren): Work correctly
+	with nested arglist-cont-nonempty symbols.
+
+	(c-lineup-arglist-operators): New lineup function to line up infix
+	operators under the open paren of the surrounding sexp.
+
+2002-08-20  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-forward-syntactic-ws): Fixed a bug that could
+	cause an infinite loop if something that looks like a macro begins
+	in the middle of a line.
+
+	(c-parse-state): Fixed a bug that could cause `c-state-cache' to
+	contain two conses in sequence when there's an unbalanced open
+	paren in a macro.
+
+2002-08-16  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-defs.el (c-face-name-p): A defsubst to recognize the name of
+	a face in a way that works also in XEmacs.
+
+	* cc-engine.el (c-forward-type): New function to move past a type
+	spec.
+
+	* cc-engine.el (c-syntactic-re-search-forward): Fixed behavior
+	when the limit is reached inside a comment, string, or a macro.
+
+	* cc-align.el, cc-cmds.el, cc-engine.el (c-forward-single-comment,
+	c-forward-comments, c-backward-single-comment,
+	c-backward-comments): New replacements for `c-forward-comment'
+	that wraps `forward-comment' more efficiently in each of the four
+	different cases it's actually used.  These replacements also
+	treats line continuations as whitespace.
+
+	(c-forward-comment): Removed.  The four different cases above are
+	basically different, so it's better to make them into separate
+	functions than choose between them at runtime using the argument.
+
+2002-08-11  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-align.el (c-gnu-impose-minimum): Fixed bug due to the new
+	placement of cpp-macro and comment-intro in the syntactic context,
+	as pointed out by Kevin Ryde.  Changed the method that decides
+	whether point is inside a top-level construct to one that doesn't
+	depend on the set of syntactic elements so much.
+
+	* cc-defs.el (c-point): Use the functions
+	`line-beginning-position' and `line-end-position' in emacsen that
+        have them (currently Emacs 20 and later).
+
+2002-07-27  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-mask-comment): Fixed a bug that sometimes caused
+	code after a closed block comment to be taken into account when
+	the fill prefix is calculated.
+
+2002-07-25  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-align.el (c-lineup-arglist, c-lineup-argcont, c-lineup-math,
+	c-lineup-cascaded-calls, c-lineup-gcc-asm-reg): Fixes to cope
+	correctly with nested arglists for the lineups that can be used
+	with arglist-cont-nonempty.
+
+2002-07-24  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-add-stmt-syntax, c-guess-basic-syntax): Changed
+	the anchor position of arglist-cont-nonempty and arglist-close so
+	that a relative indentation like + can be used with consistent
+	results.  Prior to this, the indentation engine more or less
+	assumed that arglist-cont-nonempty always used `c-lineup-arglist'.
+	Those two syntax symbols also get the opening paren as an extra
+	position, to make it possible for `c-lineup-arglist' to continue
+	to do a proper job.
+
+	* cc-engine.el (c-get-syntactic-indentation): A vector with an
+	absolute indentation column now only overrides the indentation for
+	surrounding structures, i.e. those whose syntactic elements are
+	earlier in the `c-syntactic-context' list, but not nested ones.
+	This so that e.g. `c-lineup-arglist' can reliably line up with the
+	first argument but still allow relative indentation changes for
+	nested things, e.g. the arglist-close of a nested argument list.
+	This change means that the order in `c-syntactic-context' has
+	become more essential.
+
+	(c-guess-basic-syntax): Changes to make the nesting order of the
+	returned syntax list correct.
+
+	Compatibility note: This change means that `c-lineup-dont-change'
+        now (again) isn't absolutely sure to keep the current indentation.
+	However, I believe that most people use it for comments, macros
+	and string literals, and since those are nested innermost it won't
+	matter.
+
+2002-06-17  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-align.el, cc-defs.el, cc-engine.el, cc-vars.el
+	(c-guess-basic-syntax, c-calc-offset, c-get-syntactic-indentation,
+	c-syntactic-context): Extended the representation of the syntactic
+	context: Previously it was a list containing cons cells of the
+	found syntactic symbols and their relpos values.  Now each element
+	is instead a list containing the syntactic symbol in the first
+	element and the relpos (if any) in the second.  After that there
+	might be more elements, depending on the syntactic symbol.  The
+	line-up functions get these additional elements as extra
+	arguments.
+
+	This change is slightly incompatible.  Although the calling
+	convention for line-up functions is strictly extended, the format
+	of the `c-syntactic-context' variable has changed slightly.  It's
+	believed that this incompatibility is minor, though; not a single
+	line-up function distributed with CC Mode needed to be changed,
+	for instance.
+
+2002-06-08  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-styles.el (c-set-style, c-set-style-1): Added another state
+	for the `dont-override' flag where it only keeps globally set
+	variables.
+
+2002-06-07  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-mode.el (c-postprocess-file-styles): Do nothing except in CC
+	Mode modes.
+
+2002-06-02  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+        * cc-vars.el, cc-fonts.el, cc-langs.el, cc-mode.el: Added font
+        lock support.
+
+	* cc-engine.el (c-beginning-of-syntax): New function to be used
+	for font-lock-beginning-of-syntax-function.  It uses the state
+	cache to quickly find a good position.
+
+	* cc-defs.el (c-major-mode-is): Allow a list of modes.  Made it a
+	macro ensure that it's optimized to either eq or memq for constant
+	arguments.
+
+	* cc-mode.el (c-common-init): Did away with the hardcoded setting
+	of `comment-column'; it's a user variable that we have no business
+	meddling with.  Since the default value for it is 32 in all
+	supported (X)Emacs versions, it's also safe from a compatibility
+	perspective.
+
+	* cc-mode.el (c-basic-common-init): New function that contains
+	only the syntax and line breaking/filling initialization.  It's
+        intended for use by other modes that embed CC Mode.
+
+2002-05-25  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-add-stmt-syntax): Fixed some cases of wrong
+	anchoring, e.g. for else-if compounds.
+
+2002-05-01  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-guess-basic-syntax): Fixed anchor position for
+	defun-open in K&R style functions.
+
+        * cc-engine.el (c-in-knr-argdecl): Don't trip up on macros.
+
+	(c-search-decl-header-end): Handle C++ template arguments more
+	correctly.
+
+	(c-beginning-of-decl-1): Fix when the declaration is first in a
+	macro.
+
+2002-04-30  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-beginning-of-decl-1): Better way to handle
+	protection labels, one which doesn't get confused by inherit
+	colons.
+
+	(c-end-of-decl-1): Don't treat functions that have "class" or
+	"struct" in the return type as classes or structs.
+
+2002-04-27  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-langs.el (c-make-keywords-re): Fixed the keyword adornment so
+	that it works when a keyword ends with "_".
+
+2002-04-24  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-mask-comment): More fixes when used from
+	`c-do-auto-fill' and point 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.
+
+2002-04-23  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-mask-comment): Fixed bug where point was moved to
+	the following line when it was at the first line of a block
+	comment where comment-start-skip matched to eol.
+
+Mon Apr 22 2002  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* Release 5.29 (Test version; this is not a real release.)
+
+	* cc-engine.el: Incorporated change made in Emacs: Don't
+	assume point-min == 1 when counting lines.
+
+	* cc-mode.el: Incorporated changes made in Emacs:
+
+	(c-define-abbrev-table): New function to pass the SYSTEM-FLAG
+	to `define-abbrev' in a way that works in emacsen that doesn't
+	support it.
+
+	(c-mode-abbrev-table, c++-mode-abbrev-table,
+	objc-mode-abbrev-table, java-mode-abbrev-table,
+	pike-mode-abbrev-table): Mark all the predefined abbrevs as
+	"system" abbrevs.
+
+	(c-submit-bug-report): Make sure that the arguments to
+	`insert' are strings.
+
+Sun Apr 21 2002  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-align.el, cc-engine.el, cc-styles.el, cc-vars.el
+	(c-guess-basic-syntax, c-lineup-topmost-intro-cont): Find
+	correct anchor for statement-cont in top level constructs.
+	Analyze variable initializations in top level constructs as
+	topmost-intro-cont instead of statement-cont.  That is an
+	incompatible change but it gives better consistency.  The new
+	lineup function c-lineup-topmost-intro-cont' compensates for
+	it and is now put on topmost-intro-cont by default.
+
+	* cc-align.el, cc-engine.el, cc-langs.el (c-lineup-argcont):
+	Lineup function contributed by Kevin Ryde.
+
+	(c-in-gcc-asm-p): Function to recognize asm statements.
+	Contributed by Kevin Ryde.
+
+	(c-opt-asm-stmt-key): New language variable to recognize the
+	beginning of asm statements.
+
+Sat Apr 20 2002  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-guess-basic-syntax): Detect variable
+	declarations after class and struct declarations correctly.
+	Fixed limit error when finding the anchor for
+	template-args-cont and topmost-intro-cont.
+
+Fri Apr 05 2002  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-beginning-of-defun, c-declaration-limits):
+	Find the "line oriented" declaration start too, just like the
+	"line oriented" end is found.
+
+Thu Apr 04 2002  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-vars.el (c-offsets-alist): A more sane default for
+	`inexpr-statement'.  This is not compatible, though.  I think
+	the benefit of a good default style outweights that in this
+	case.  Besides, `inexpr-statement' is not very common.
+
+Mon Apr 01 2002  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-electric-delete-forward): Fixed silly bug that
+	caused it to delete backwards in hungry delete mode.  (It's
+	amazing that this bug hasn't been reported.)
+
+	* cc-cmds.el (c-declaration-limits, c-mark-function):
+	Extracted the code to get the declaration limits from
+	`c-mark-function' to a new `c-declaration-limits'.
+
+	(c-indent-defun): Use the same method to get the limits of the
+	declaration or macro as `c-mark-function'.
+
+	* cc-engine.el (c-beginning-of-decl-1): Handle brace list
+	initializers correctly (but costly; it ought to be integrated
+	into `c-beginning-of-statement-1').
+
+Sun Mar 31 2002  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el, cc-engine.el (c-beginning-of-defun,
+	c-end-of-defun, c-mark-function): Rewritten to detect the
+	declaration limits better.  Now handles K&R argdecls, class
+	definitions followed by variables etc.
+
+	(c-in-knr-argdecl): Broke out the K&R argdecl test in
+	`c-beginning-of-decl-1' to this new function.
+
+	(c-end-of-statement-1, c-end-of-decl-1): Replaced
+	`c-end-of-statement-1' with `c-end-of-decl-1', which correctly
+	handles declarations that continue after the block.
+
+	* cc-engine.el (c-syntactic-re-search-forward): Added an
+	option to restrict matching to the top level of the current
+	paren sexp.
+
+	* cc-langs.el (c-opt-block-decls-with-vars-key): New regexp to
+	recognize declarations that continue after the block.
+
+	(c-syntactic-eol): New regexp to match a "syntactic" eol.
+
+Sat Mar 30 2002  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-guess-basic-syntax): Fixed a bug that often
+	caused the backward limit to be lost at the top level.  This
+	improves performance a bit.
+
+	* cc-engine.el (c-syntactic-re-search-forward): New function
+	that works like `re-search-forward' but only returns matches
+	in syntactically significant text.
+
+	* cc-engine.el: Fixed a faster and more accurate way to
+	recognize K&R argdecls.
+
+	(c-beginning-of-decl-1): New function that put point at the
+	beginning of the declaration.  It handles K&R argdecl blocks.
+
+	(c-guess-basic-syntax): Replaced the `knr-argdecl' recognition
+	code with one that doesn't depend on the current indentation.
+	The anchor position for `knr-argdecl' has also changed, but in
+	a way that is unlikely to cause compatibility problems.
+
+Mon Mar 25 2002  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-defs.el, cc-engine.el (c-forward-comment):
+	`forward-comment' in XEmacs skips over line continuations in
+	the backward direction.  Correct for that.  Also made this a
+	defun since it has grown too large now to be a defsubst.
+
+	* cc-langs.el: More convenient and decentralized setup of the
+	language specific variables.  The regexp-opt mangling is also
+	done at compile time now.
+
+Tue Mar 19 2002  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-indent-line-or-region): Call `c-indent-line'
+	directly instead of through `indent-according-to-mode' so that
+	this function always indents syntactically.
+
+	* cc-engine.el (c-guess-basic-syntax): Fixed a bug where a
+	class beginning with a nested class could cause an infinite
+	loop (the state outside the narrowed out class is never used
+	now).
+
+Sun Mar 17 2002  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-align.el, cc-cmds.el, cc-engine.el, cc-vars.el: Fixes so
+	that the context sensitive analysis inside macros is
+	restricted to the bodies of #define's; other things, like #if
+	expressions, never have anything in common with their
+	surroundings.  The old `cpp-macro-cont' syntax is now used in
+	situations where the syntactic analysis isn't applicable, and
+	a new syntactic element `cpp-define-intro' is used to add
+	indentation in #define bodies.
+
+	(c-lineup-cpp-define): New name for `c-lineup-macro-cont' to
+	better reflect its use.
+
+	* cc-engine.el (c-guess-basic-syntax): Ignore line
+	continuation backslashes in the detection of
+	`arglist-cont-nonempty'.
+
+	* cc-align.el: Use the vector form in the return value in all
+	cases where lineup functions return absolute columns.
+
+Sat Mar 16 2002  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-add-stmt-syntax, c-guess-basic-syntax):
+	Anchor `brace-list-intro' and `brace-list-close' better for
+	brace lists nested inside expressions.
+
+	* cc-engine.el, cc-langs.el, cc-mode.el, cc-styles.el: Cleaned
+	up the various language specific variables and their
+	initialization.  The keyword regexps are now lists that are
+	combined with regexp-opt.  Some variables have changed names
+	to fit better with the naming convention.
+
+	* cc-defs.el, cc-vars.el (c-buffer-is-cc-mode): The value is
+	the mode symbol of the original CC Mode mode.
+
+	(c-major-mode-is): Compare against the buffer local variable
+	`c-buffer-is-cc-mode', which is faster than using
+	`derived-mode-class'.
+
+Sun Mar 10 2002  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-forward-syntactic-ws,
+	c-backward-syntactic-ws, c-forward-token-1,
+	c-backward-token-1, c-in-literal, c-literal-limits,
+	c-collect-line-comments, c-literal-type, c-on-identifier,
+	c-guess-basic-syntax): These functions are now considered part
+	of the "CC Mode API" and may be used by other code.  That's
+	signified by making their documentation into docstrings.
+
+	(c-whack-state, c-hack-state, c-skip-case-statement-forward):
+	Removed these internal functions since they aren't used.
+
+	(c-forward-to-cpp-expression): Classified this function as
+	internal.
+
+Thu Mar 07 2002  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-langs.el (c-ObjC-class-key, c-Java-class-key): Simplified
+	these regexps; the class keywords they contain ought to be
+	enough to avoid false matches, so checking for following
+	identifiers etc is just unnecessary (and might also fail for
+	oddly formatted code).
+
+Fri Feb 08 2002  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el, cc-cmds.el (c-forward-comment-lc): New
+	function that behaves like `c-forward-comment', with the
+	exception that line continuations are treated as whitespace.
+
+	(c-beginning-of-statement): Use `c-forward-comment-lc', to
+	work correctly in macros and other places where line
+	continuations should be treated as whitespace.
+
+	* cc-engine.el (c-guess-basic-syntax): Analyze a normal label
+	in a switch block as a case label, to get consistent lineup
+	with the case labels.
+
+	* cc-engine.el (c-backward-syntactic-ws): Fixed bug in
+	skipping over a macro that ends with an empty line.
+
+	* cc-styles.el: Require cc-align since styles added with
+	`c-add-style' often contains references to functions defined
+	there, and so the `c-valid-offset' check might otherwise
+	complain on them.
+
+Sun Jan 20 2002  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-align.el, cc-mode.texi, cc-vars.el: Added two new lineup
+	functions:
+
+	(c-lineup-knr-region-comment): A new lineup function to get
+	(what most people think is) better indentation of comments in
+	the "K&R region" between the function header and its body.
+
+	(c-lineup-gcc-asm-reg): New lineup function for better
+	indentation inside gcc asm blocks.  Contributed by Kevin Ryde.
+
+	(c-offsets-alist): Use `c-lineup-gcc-asm-reg' and
+	`c-lineup-knr-region-comment' in the default offset
+	configuration, since these two functions have little impact
+	outside their intended use, and they generally do the right
+	thing when they kick in.
+
+	* cc-engine.el (c-guess-continued-construct,
+	c-guess-basic-syntax): Handle nested functions in all
+	languages, not just Pike.  In C and C++ there's a gcc
+	extension for this, and it also gives better treatment of
+	macros that are followed by blocks.
+
+	* cc-langs.el (c-symbol-key): Made this variable mode
+	specific, to handle Pike special symbols like `== better.
+
+Sat Jan 19 2002  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el, cc-engine.el, cc-vars.el
+	(c-report-syntactic-errors): A new variable to control the
+	syntactic error messages.  It defaults to off; since CC Mode
+	ignores most syntactic errors it might as well ignore them all
+	for the sake of consistency.
+
+Sat Jan 05 2002  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-mode.texi: Updated the Limitations and Known Bugs
+	section.  Various small fixes.
+
+Thu Nov 29 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-looking-at-inexpr-block): Optimization.  Can
+	give a noticeable speedup if there's a large preceding
+	function or class body.
+
+Sun Nov 25 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-align.el, cc-cmds.el: Use more efficient and correct
+	insertion functions in many places.  Always inherit text
+	properties correctly if the text is permanent.  Also do it for
+	speed in temporary insertions, since I figure it's less work
+	to continue the surrounding text properties than to break
+	them.
+
+	* cc-styles.el (c-read-offset): Unbind SPC in the completion
+	to make it easier to enter lists.
+
+Wed Nov 21 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-beginning-of-defun): Fixed bug where
+	c-state-cache was clobbered.
+
+	* cc-cmds.el, cc-engine.el (c-calculate-state): Moved from
+	cc-cmds.el to cc-engine.el due to dependency.
+
+Mon Oct 22 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-parse-state): Ignore unbalanced open parens
+	in macros (if point isn't in the same one).
+
+Sat Oct 13 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-context-open-line): New function that is the
+	`open-line' equivalent to `c-context-line-break'.
+
+	* cc-mode.el (c-mode-base-map): Compatibility fix for Emacs 21
+	since `indent-new-comment-line' has been changed to
+	`comment-indent-new-line' there.
+
+Sun Oct 07 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el, cc-langs.el (c-stmt-delim-chars,
+	c-stmt-delim-chars-with-comma): New variables containing the
+	character sets used to recognize statement/declaration
+	boundaries.  These variables might help to support languages
+	like javascript and awk, where newlines sometimes delimits
+	statements.
+
+	(c-crosses-statement-barrier-p): Use `c-stmt-delim-chars' as
+	the set of statement delimiting characters, to allow it to be
+	changed dynamically and per-mode.
+
+Sat Oct 06 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-looking-at-bos, c-looking-at-inexpr-block,
+	c-add-stmt-syntax, c-guess-basic-syntax): Treat blocks
+	directly inside function calls like "bare" statements inside
+	function calls, and not like in-expression statements.  This
+	to make indentation of such blocks consistent with other
+	statements inside macro calls.
+
+	* cc-engine.el (c-guess-basic-syntax): Made arglist-cont
+	anchor correctly in arglists that contain statements.
+
+	* cc-engine.el (c-guess-basic-syntax): Fixed consistent
+	anchoring of defun-block-intro in defuns in code blocks (can
+	only occur in Pike).
+
+	* cc-engine.el (c-looking-at-inexpr-block,
+	c-looking-at-inexpr-block-backward): Changed the arguments to
+	require containing sexps and paren state, for better
+	efficiency.
+
+Fri Oct 05 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el, cc-engine.el, cc-vars.el: Improved anchoring of
+	statement and handling of labels in front of substatements.
+
+	(c-guess-continued-construct, c-guess-basic-syntax): Improved
+	and unified anchoring at statements.  Statements beginning
+	with comments or labels are now avoided, by going out of
+	blocks and containing statements if necessary.  This nesting
+	handling also fixes the case when there's a statement after a
+	block open brace.  Added the syntactic symbol
+	`substatement-label'.
+
+	(c-electric-colon): Map the new `substatement-label' to
+	`label' when consulting `c-hanging-colons-alist'.
+
+	(c-offsets-alist): Added substatement-label.  Updated the
+	comments for the new anchoring positions at statements.
+
+	* cc-engine.el (c-guess-basic-syntax): Use more sane anchor
+	points for knr-argdecl-intro and access-label.  They used to
+	refer to some point on the same line, a bug which was
+	neutralized by a kludge in `c-get-syntactic-indentation' which
+	ignored such anchor points.
+
+	(c-get-syntactic-indentation): Removed the kludge that was
+	necessary due to buggy anchor points.
+
+	* cc-engine.el (c-guess-basic-syntax): Do not check the
+	absence of a comma before arglist-close (case 7A) in any
+	language, since there's nothing better to do that case anyway.
+	Added special case to make in-expression statements be
+	recognized as normal arglist-cont if we're directly in a macro
+	arglist, for consistency with other "bare" statements.
+
+	* cc-engine.el (c-looking-at-bos): Added optional limit arg
+	for backward searches.
+
+	* cc-engine.el (c-looking-at-inexpr-block): Anchor gcc
+	in-expression statements at the surrounding open parenthesis.
+	Treat a class body as an in-expression class if it's used in
+	an object clone expression in Pike.
+
+	* cc-engine.el (c-get-offset, c-get-syntactic-indentation):
+	Allow several anchor positions in the list of syntactic
+	symbols.  Only the first is used as the base for the offset
+	calculation.
+
+Tue Oct 02 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-indent-defun): Indent the current macro if
+	inside one at the top level.  Do not throw an error if used at
+	the top level outside a macro.
+
+	* cc-cmds.el (c-backslash-region): Do tab width alignment only
+	if the backslashes can't be aligned with surrounding
+	backslashes.
+
+	* cc-engine.el (c-end-of-macro): New function.
+
+	* cc-engine.el (c-least-enclosing-brace): Rewritten to not be
+	destructive.
+
+Sat Sep 29 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-context-line-break): Only do a macro line
+	break when point is inside the content of it; if it's in the
+	cpp keyword a normal line break is done.
+
+	* cc-engine.el (c-guess-basic-syntax): Do not add
+	cpp-macro-cont inside the argument list to a #define.
+
+Thu Sep 27 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-defs.el (c-forward-comment): Implemented a kludge to
+	avoid the problem most forward-comment incarnations have with
+	`\' together with comment parsing.
+
+Wed Sep 26 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-check-state-cache): Fixed bug which could
+	cause the state returned by `c-parse-state' to lack a closed
+	paren element.  That in turn could result in very long
+	searches, since it's common that they start from the last
+	preceding close brace.
+
+Tue Sep 25 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-beginning-of-statement-1): Do not treat
+	else-if as a single continuation, since that'd make it hard to
+	get the right anchor point when there's a line break between
+	the two keywords.  This change causes else-clause to be
+	anchored on the closest preceding else-if and not always on
+	the starting if, but that doesn't affect the indentation for
+	any reasonably sane style.  Also introduced a noerror flag.
+
+	(c-beginning-of-closest-statement): Removed;
+	c-beginning-of-statement-1 now avoids the problem this one
+	solved.
+
+	* cc-engine.el (c-guess-continued-construct,
+	c-guess-basic-syntax): Better and more uniform anchor points
+	for 'statement-cont and 'substatement.  The effect is
+	noticeable mostly when there's a label on the same line as the
+	beginning of the statement, or when there are more stuff
+	before the start of the statement.
+
+	* cc-engine.el (c-looking-at-inexpr-block): Added flag to
+	disable looking at the type of the surrounding paren since
+	that confuses c-beginning-of-statement-1 and a couple of other
+	places.
+
+	* cc-engine.el (c-guess-basic-syntax): Avoid stepping to the
+	previous statement in case 18.  Improvements in recognition of
+	statement blocks on the top level.
+
+Sun Sep 23 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-beginning-of-statement-1,
+	c-crosses-statement-barrier-p): Rewritten to get a well
+	defined and documented behavior.  This fixes some tricky cases
+	in recognition of do-while constructs.
+
+	(c-backward-to-start-of-do, c-backward-to-start-of-if):
+	Removed; use c-beginning-of-statement-1 instead.
+
+	(c-guess-continued-construct, c-guess-basic-syntax): Various
+	fixes to not depend on the bugs previously in
+	c-beginning-of-statement-1.  Cleanups in cases 18 and 17 to
+	use the new behavior of c-beginning-of-statement-1 better.
+	Fixed recognition of catch blocks inside macros.
+
+	* cc-engine.el (c-backward-syntactic-ws): Fixed bug in
+	skipping over a macro.
+
+	* cc-langs.el (c-label-kwds): New variable to contain the
+	appropriate c-*-label-kwds value.
+
+	* cc-vars.el (defcustom-c-stylevar): Fixed value evaluation
+	bug that caused the widget for c-block-comment-prefix to bug
+	out.
+
+Fri Sep 21 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-guess-basic-syntax): Improved recognition of
+	statements: They are now recognized in contexts where they
+	normally can't occur, e.g. on the top level or in function
+	call arguments.  This is mainly useful to recognize statements
+	in macros at the top level, and in arguments to macros.  The
+	cases has been moved around quite a bit, and case 10 has been
+	copied to case 18.  (The cases has not been renumbered because
+	of this.)
+
+	(c-guess-continued-construct): New function which has the
+	rules which are common between cases 10 and 18.
+
+	* cc-engine.el (c-beginning-of-statement-1,
+	c-backward-to-start-of-do, c-backward-to-start-of-if): Fixes
+	so that they really obey the passed limits.
+
+	(c-safe-position): Return nil if the state doesn't contain a
+	suitable position.
+
+	(c-guess-basic-syntax): Fixes some too short limits in calls
+	to c-beginning-of-statement-1.  Some fixes for top level
+	analysis in ObjC mode.
+
+	* cc-engine.el (c-beginning-of-statement-1): Fixed bug in
+	do-while statements where the body is not a block.
+
+	* cc-styles.el (c-set-style): Reset c-special-indent-hook to
+	its global value if in override mode.  Fixes problem where
+	functions on that hook remained after style switch.
+
+	* cc-engine.el (c-evaluate-offset, c-get-offset): Use
+	c-benign-error to report the c-strict-syntax-p error.
+
+Thu Sep 20 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-align.el, cc-defs.el, cc-cmds.el, cc-engine.el,
+	cc-vars.el: Several fixes to treat macros as code and not
+	literals and to handle line continuations transparently.
+
+	(c-skip-ws-forward, c-skip-ws-backward): New macros to skip
+	through whitespace and line continuations, but not comments
+	and macros.
+
+	(c-in-literal): No longer recognizes macros as literals by
+	default. An extra flag argument is required to do that.
+
+	(c-macro-start, c-query-macro-start,
+	c-query-and-set-macro-start): Added a cache for the macro
+	start position.
+
+	(c-forward-syntactic-ws, c-backward-syntactic-ws): Fixes for
+	more speed when limits are given.  Workaround for bad behavior
+	in forward-comment in some emacsen when it hits a buffer limit
+	with a large repeat count.
+
+	(c-lineup-macro-cont): Improved behavior when
+	c-syntactic-indentation-in-macros is nil.
+
+	(c-syntactic-indentation-in-macros, c-backslash-max-column,
+	c-auto-align-backslashes): New customization variables to
+	control macro handling.
+
+	* cc-menus.el (cc-imenu-c++-generic-expression): Fixes to
+	handle line continuations.
+
+	* cc-defs.el, cc-styles.el (c-get-style-variables,
+	c-set-offset): Report style errors with message and ding
+	instead of error signal.  This to avoid interrupted mode init
+	if there's some style problem.
+
+	(c-benign-error): New macro to report errors that doesn't need
+	to interrupt the operation.
+
+	* cc-defs.el (c-point): Added eonl and eopl positions.
+
+Tue Sep 18 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-electric-brace, c-indent-region): Removed most
+	of the c-state-cache fiddling, since the global state cache
+	now handles this.
+
+	* cc-engine.el (c-guess-basic-syntax): Fixed bug when there's
+	an open paren at the very first char of the visible buffer
+	region.
+
+	* cc-engine.el (c-parse-state, c-check-state-cache): Cache the
+	state globally and invalidate it below every buffer change
+	with the new after change function `c-check-state-cache'.
+	This gives a considerable performance boost when editing large
+	functions or classes.
+
+	* cc-engine.el (c-whack-state-after): Slight optimization.
+
+Sun Sep 16 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el, cc-langs.el, cc-align.el: Improvements to
+	syntactic analysis inside macros:
+
+	(c-block-stmt-1-kwds, c-block-stmt-2-kwds): New variables used
+	by `c-guess-basic-syntax'.
+
+	(c-parse-state): Fixed bug with braces inside macros when
+	using cached state info.
+
+	(c-forward-to-cpp-expression): New function to aid in
+	syntactic analysis inside macros.
+
+	(c-beginning-of-statement-1, c-backward-syntactic-ws): Fixes
+	to work better inside macros.
+
+	(c-forward-syntactic-ws): Whitespace between the # and the
+	command should be allowed in preprocessor directives.
+
+	(c-lineup-macro-cont): New lineup function to get context
+	sensitive indentation inside macros.
+
+	(c-offsets-alist): Made `c-lineup-macro-cont' the default for
+	cpp-macro-cont.
+
+Sat Sep 15 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-beginning-of-statement-1,
+	c-forward-syntactic-ws): Fixes to handle continued lines.
+
+	(c-backward-to-start-of-if, c-guess-basic-syntax): Do
+	syntactic analysis inside macros.
+
+Sat Sep 08 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-indent-region): Did a speedup made possible by
+	the more flexible state cache.
+
+	* cc-engine.el (c-parse-state, c-whack-state-before,
+	c-whack-state-after, c-hack-state,
+	c-narrow-out-enclosing-class, c-guess-basic-syntax): Improved
+	the state cache system.  It now can use partial info from an
+	old cached state to calculate a new one at a different
+	position.  Removed some kludges to avoid the state cache.  The
+	new functions `c-whack-state-before' and `c-whack-state-after'
+	replace the now obsolete `c-whack-state'.
+
+	* cc-engine.el (c-beginning-of-statement-1): Optimized backing
+	through a macro.  This can speed things up quite a bit when
+	there are long macros before point.
+
+	(c-beginning-of-macro): Do not ignore the limit.
+
+Sun Sep 02 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-electric-continued-statement): Fixed a bug
+	where the keyword wasn't reindented correctly if followed by
+	another keyword or identifier.
+
+	* cc-engine.el (c-parse-state): Ignore closed brace pairs that
+	are in macros.  Fixes some cases where e.g. the second of two
+	"do { } while (0)" macros after each other indented
+	differently.
+
+Fri Aug 31 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-beginning-of-macro, c-forward-syntactic-ws):
+	Recognize "#!" as a preprocessor directive when it begins a
+	line, to allow for script interpreter lines like
+	"#!/usr/bin/pike" at the beginning of the file.
+
+Thu Aug 30 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-looking-at-inexpr-block): Recognize brace
+	blocks inside a parenthesis expression as inexpr-statement.
+	Useful when writing statements as macro arguments.
+
+Sat Aug 25 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-fill-paragraph, c-do-auto-fill,
+	c-mask-comment): Broke out the comment masking code from
+	`c-fill-paragraph' to a new function `c-mask-comment', to be
+	able to do the same thing in `c-do-auto-fill'.  This should
+	make auto-fill-mode behave better.
+
+Mon Aug 20 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-electric-brace, c-electric-paren): Check
+	`executing-macro' to avoid blinking parens when macros are
+	executed.
+
+	* cc-mode.el, cc-styles.el (c-setup-filladapt): Moved from
+	cc-mode.el to cc-styles.el for consistency with
+	`c-setup-paragraph-variables' (which was placed there due to
+	the dependency from `c-set-style').
+
+	* cc-styles.el, cc-vars.el: Fixed bug with incomplete
+	initialization from the style variable fallbacks if there
+	already is a style called "user" defined when CC Mode starts
+	up for the first time.
+
+Fri Aug 17 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el, cc-vars.el (c-comment-indent,
+	c-indent-comment-alist): Added new variable
+	`c-indent-comment-alist' to allow better control over
+	`c-comment-indent'.
+
+Tue Aug 14 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-align.el (c-lineup-C-comments): Try to match both
+	`comment-start-skip' and the comment prefix on the current
+	line with the comment starter, so that we line up comments
+	which matches `c-comment-prefix-regexp' on the first line
+	(after the `/') without the need to make `comment-start-skip'
+	match whatever `c-comment-prefix-regexp' matches.
+
+	* cc-mode.el, cc-styles.el (c-common-init, c-set-style-1,
+	c-setup-paragraph-variables): Moved the variable
+	initialization based on `c-comment-prefix-regexp' to a new
+	function `c-setup-paragraph-variables', which is now used both
+	at mode init and when a style that sets
+	`c-comment-prefix-regexp' is activated.
+
+Sat Aug 11 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-beginning-of-member-init-list): Better
+	handling of C++ template args to avoid confusion with `<' and
+	`>' used as operators in member init expressions.
+
+Wed Jul 25 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-most-enclosing-brace,
+	c-least-enclosing-brace): Added optional second arg to limit
+	the search to before a certain point.
+
+	* cc-engine.el (c-guess-basic-syntax): Fixed bug which could
+	cause incorrect analysis if a cached state is used (usually
+	only happens when an electric key reindents a line).
+
+Tue Jul 24 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-defs.el (c-forward-comment): More idiosyncrasy
+	insulation.  This time for XEmacs 21.
+
+	* cc-engine.el, cc-langs.el: Improved handling of inheritance
+	lists:
+
+	(c-beginning-of-inheritance-list): Rewritten to use a more
+	syntactically correct method that doesn't get confused by
+	badly placed linebreaks and comments.
+
+	(c-guess-basic-syntax): Several fixes to the handling of
+	inheritance lists in combination with templates.  'inher-intro
+	is now anchored on the start of the class declaration and not
+	the indentation of the current line.  Switched places on cases
+	5D.3 and 5D.4 and made them use more syntactically correct
+	methods.
+
+	(c-inher-key): Removed since the code in
+	`c-guess-basic-syntax' now uses token-based search.
+
+	* cc-cmds.el, cc-mode.el (c-mode-menu): Added a submenu to
+	access some toggles.
+
+	(c-toggle-syntactic-indentation): New function to toggle the
+	variable `c-syntactic-indentation'.
+
+	* cc-styles.el (c-set-style): Improved the error message for
+	incorrect offsets a bit.
+
+Mon Jul 23 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-indent-exp): Don't require that the sexp
+	follows point immediately, instead find the closest following
+	open paren that ends on another line.
+
+Sat Jul 21 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-align.el (c-lineup-cascaded-calls): New indentation function.
+
+	* cc-engine.el (c-beginning-of-macro): Bugfix for directives
+	with whitespace between the '#' and the name.
+
+	* cc-mode.texi: Rearranged the indentation functions in
+	alphabetic order.  Documented c-lineup-cascaded-calls.
+
+Fri Jul 20 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-forward-syntactic-ws,
+	c-backward-syntactic-ws): Handle line continuations as
+	whitespace.  Don't move past a macro if that'd take us past
+	the limit.
+
+Wed Jul 11 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-beginning-of-macro, c-forward-syntactic-ws):
+	Multiline strings begin with `#"' in Pike, and that shouldn't
+	be confused with a preprocessor directive.
+
+Mon Jul 09 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el: Extended the kludge to interoperate with the
+	delsel and pending-del packages wrt to the new function
+	`c-electric-delete-forward'.
+
+Fri Jul 06 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-indent-exp): Keep the indentation of the block
+	itself, i.e. only indent the contents in it.
+
+	* cc-styles.el (c-set-style): Use the default argument to
+	completing-read instead of initial-contents, if the function
+	is recent enough to support it.
+
+Mon Jun 11 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-mode.el (c-mode-help-address): Removed
+	bug-gnu-emacs@gnu.org from the receiver list for bug reports.
+	I've almost never seen a bug reported this way that should go
+	to that list, but it's rather common that the reports concern
+	the combination CC Mode and XEmacs instead.
+
+Sun Jun 10 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-electric-paren): Fixed bug when both
+	brace-elseif-brace and brace-catch-brace are active and
+	there's a "else if"-block before the catch block.
+
+	* cc-menus.el (cc-imenu-c++-generic-expression): Detect
+	function headers that span lines.
+
+Sat May 12 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-electric-brace, c-electric-semi&comma,
+	c-electric-colon, c-electric-paren): Check for last on line
+	only for doing the auto-newline-mode stuff, not for the
+	reindentation.
+
+	* cc-cmds.el (c-electric-brace): Fixed bugs in the handling of
+	c-syntactic-indentation: When it's nil, indent the new lines
+	but don't reindent the current one.  Reindent the line only
+	when the inserted brace comes first on it, instead of last.
+
+	* cc-cmds.el (c-electric-brace, c-electric-semi&comma): Fixed
+	two places where c-syntactic-indentation wasn't heeded.
+
+	* cc-cmds.el (c-electric-pound): Don't be electric inside a
+	macro.
+
+	* cc-engine.el (c-backward-to-start-of-if): Try a little
+	harder to find a fallback position when an orphan else is
+	found.  Fixed case where an else following a do-while
+	statement could be associated with an if inside the do-while.
+
+Fri May 11 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-guess-fill-prefix): Tuned the dwim for the
+	fallback to add a single space after the comment prefix.
+
+	* cc-cmds.el (c-indent-new-comment-line): Somewhat better
+	behavior in some special cases, especially for single-line
+	comments.  Avoid breaking up a comment starter or ender.
+
+Sat May 05 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-outline-level): Applied patch from the Emacs
+	sources to make this work in invisible text.
+
+	* cc-langs.el (c-switch-label-key): Fixed regexp to not be
+	confused by a later ':' on the same line as the label.
+
+Wed May 02 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el, cc-mode.el (c-electric-delete,
+	c-electric-delete-forward): Split `c-electric-delete' 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.
+
+	* cc-mode.texi: Updated the doc for hungry-delete mode wrt the
+	Backspace/Delete key handling.  Also incorporated a small
+	clarification from the Emacs people.
+
+Wed Mar 14 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-fill-paragraph): Fixed bogus direct use of
+	c-comment-prefix-regexp, which caused an error when it's a
+	list.
+
+Sun Feb 25 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* Release 5.28
+
+Sun Feb 25 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-mode.el, cc-vars.el (c-common-init, c-default-style):
+	Removed the hardcoded switch to "java" style in Java mode.
+	It's instead taken care of by the default value for
+	c-default-style.
+
+	* cc-mode.texi: Documented the electric keyword feature.
+	Updated the mentions of the "java" style special case for Java
+	mode.
+
+Sat Feb 24 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-align.el (c-lineup-math): Fix bug where lineup was
+	triggered by equal signs in string literals.
+
+Sun Feb 25 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-mode.el, cc-vars.el (c-common-init, c-default-style):
+	Removed the hardcoded switch to "java" style in Java mode.
+	It's instead taken care of by the default value for
+	c-default-style.
+
+	* cc-mode.texi: Updated the mentions of the "java" style
+	special case for Java mode.
+
+Sat Feb 24 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-align.el (c-lineup-math): Fix bug where lineup was
+	triggered by equal signs in string literals.
+
+Wed Feb 21 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-fill-paragraph): Fixed bug in the paragraph
+	limit detection when at the ends of the buffer.
+
+	* cc-engine.el (c-guess-basic-syntax): Removed bogus check for
+	"for" statement clause in case 7F; a better one is done
+	earlier in case 7D anyway.
+
+Tue Feb 20 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-guess-fill-prefix): Improved the heuristics
+	somewhat more and did a small optimization.
+
+Mon Feb 19 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-beginning-of-statement, c-end-of-statement):
+	Use the limit argument only to limit the syntactic context
+	search, not to limit the actual movement.
+
+	* cc-cmds.el (c-beginning-of-statement): Move by sentence
+	inside multiline strings, just like in comments.  Also various
+	fixes to the paragraph and comment prefix recognition, block
+	comment ender handling etc.
+
+Sun Feb 18 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-fill-paragraph): Take more care to preserve
+	the relative position of the point.
+
+	* cc-cmds.el (c-electric-continued-statement): New function to
+	use as abbrev hook to reindent for keywords such as "else"
+	that continues an earlier statement.
+
+	* cc-menus.el (cc-imenu-c++-generic-expression): Treat structs
+	like classes.
+
+	* cc-mode.el (c-mode, c++-mode, java-mode, objc-mode,
+	pike-mode): Populate the default abbrev tables to reindent for
+	keywords such as "else" that can continue earlier statements.
+	Abbrev mode is therefore turned on by default now.  (Note that
+	this doesn't apply to idl-mode, since IDL afaik doesn't have
+	statements at all.)
+
+Wed Feb 14 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-engine.el (c-inside-bracelist-p): Fix for handling
+	bracelists where the declaration contains template arguments.
+
+Fri Feb 09 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-comment-indent): Use
+	`c-get-syntactic-indentation' to correctly calculate the
+	syntactic indentation.  Fixes bug with lineup functions that
+	return vectors.
+
+	* cc-engine.el (c-get-syntactic-indentation): Split the
+	indentation sum calculation from `c-indent-line' to a separate
+	function.
+
+Mon Feb 05 2001  Martin Stjernholm  <bug-cc-mode@gnu.org>
+
+	* cc-cmds.el (c-beginning-of-statement, c-comment-indent):
+	Fixed places where it was assumed that preprocessor directives
+	have to start in column zero.
+
+	* cc-engine.el (c-beginning-of-member-init-list): Handle C++
+	template arguments after a class identifier properly.
+
+	* cc-engine.el (c-guess-basic-syntax): Treat initializer brace
+	lists for `new Foo[]' constructs in Java as expressions and
+	not top level definition brace lists on the top level, so that