2005-05-24  Norbert Koch  <viteno@xemacs.org>

	* Makefile (VERSION): XEmacs package 1.45 released.

2005-05-23  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* Patch release 5.30.10.

2005-05-23  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-fonts.el (c-invalid-face-name): Use "red1" instead of "red"
	since it stands out better in xterms and DOS terminals.  Original
	change by Dan Nicolaescu <dann@ics.uci.edu>.

2005-05-23  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* 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.  (This is, in fact, the
	Right fix for the problem that has plagued JDEE users.)

2005-05-23  Alan Mackenzie  <bug-cc-mode@gnu.org>

	* 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.

2005-05-23  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-mode.el (c-make-inherited-keymap): Fixed cc-bytecomp bug when
	the file is evaluated interactively.

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).

2005-05-23  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-engine.el (c-guess-basic-syntax): Handle operator
	declarations somewhat better in C++.

2005-05-23  Alan Mackenzie  <bug-cc-mode@gnu.org>

	* 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>.

2005-05-23  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* 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 which has
	been added in Emacs 21.1.

2005-05-23  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* 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.

2005-05-23  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* 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-awk.el: Add character classes (e.g. "[:alpha:]") into AWK
	Mode's regexps.

2005-05-20  Aidan Kehoe  <kehoea@parhasard.net>

	* cc-engine.el (c-syntactic-re-search-forward): Revert my last
	change, it's the wrong thing. 
	* cc-fonts.el (c-font-lock-declarators): Apply Michael Thome's fix
	of 42404C6D.1030705@bbn.com, which is the Right Thing, once you've
	signed up for the re-search-forward API, which isn't great, IMO. 

2005-05-10  Norbert Koch  <viteno@xemacs.org>

	* Makefile (VERSION): XEmacs package 1.44 released.

2005-05-10  Aidan Kehoe  <kehoea@parhasard.net>

	* cc-engine.el (c-syntactic-re-search-forward): Before the first
	call of re-search-forward in the function, make sure that the
	bound is greater than or equal to (point). Fixes an error:

	Error caught in `font-lock-pre-idle-hook': (error Invalid search
	limit (wrong side of point))

	that users of JDEE have been seeing for a long time. 

2004-08-12  Norbert Koch  <viteno@xemacs.org>

	* Makefile (VERSION): XEmacs package 1.43 released.

2004-08-11  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* Patch release 5.30.9.

2004-08-11  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-defs.el, cc-vars.el (c-emacs-features): Moved from cc-vars to
	cc-defs for dependency reasons.  Fixed the POSIX char class test
	to check that it works in `skip-chars-(forward|backward)' too.

	* cc-align.el (c-lineup-arglist): Fixed bug when the first
	argument starts with a special brace list.

2004-08-11  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-engine.el (c-forward-type): Fixed promotion bug when
	`c-opt-type-concat-key' is used (i.e. in Pike).

	* cc-engine.el (c-looking-at-special-brace-list): Fixed bug when
	the inner char pair doesn't have paren syntax, i.e. "(< >)".

2004-08-11  Alan Mackenzie  <bug-cc-mode@gnu.org>

	* cc-cmds.el, cc-vars.el: Amend doc(-strings) to say that <TAB>
	doesn't insert WS into a CPP line.
	(c-indent-command, c-tab-always-indent): Amend doc strings.

2004-08-11  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-align.el (c-lineup-multi-inher): Made it syntactic whitespace
	safe.

2004-08-11  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-engine.el (c-guess-basic-syntax): Fixed similar situations
	for `arglist-cont-nonempty' and `arglist-close'.

2004-08-11  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-engine.el (c-guess-basic-syntax): Fixed anchor position for
	`arglist-intro' when there are two arglist open parens on the same
	line and there's nothing in front of the first.

	* cc-fonts.el (c-basic-matchers-before): Fixed font locking of
	qualified names in Java, which previously could fontify common
	indexing expressions in many cases.  The standard Java naming
	conventions are used to tell them apart.

2004-08-11  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-align.el (c-lineup-whitesmith-in-block): Fixed inconsistency
	wrt opening parens on the first line inside a paren block.

	* cc-defs.el (c-langs-are-parametric): Must be known at compile
	time for the sake of `c-major-mode-is'.

	(c-mode-is-new-awk-p): Made it a macro to delay expansion of
	`c-major-mode-is' in the event that this is used inside a
	`c-lang-defconst'.

2004-08-11  Alan Mackenzie  <bug-cc-mode@gnu.org>

	* cc-styles.el, cc-engine.el: Add in two checks for user errors,
	thus eliminating cryptic and unhelpful Emacs error messages.  (1)
	Check the arg to `c-set-style' is a string.  (2) Check that
	settings to `c-offsets-alist' are not spuriously quoted.

2004-08-11  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-defs.el (c-major-mode-is): Fixed expansion inside
	`c-lang-defconst' so that it works better with fallback languages.

	* cc-defs.el (c-add-language): Fixed a typo that caused it to fail
	to record the base mode.

2004-08-11  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-engine.el (c-syntactic-re-search-forward): Fixed bug so that
	it doesn't go past the closing paren when PAREN-LEVEL is used.
	Reordered the syntax checks to get more efficient skipping in some
	situations.

2004-08-11  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-cmds.el (c-electric-brace): Don't trip up on a line
	continuation which might precede the newly inserted '{'.

2004-08-11  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-engine.el (c-syntactic-re-search-forward): Fixed cases where
	it could loop indefinitely.

2004-08-11  Alan Mackenzie  <bug-cc-mode@gnu.org>

	* cc-cmds.el: (c-electric-brace): don't delete a comment which
	precedes the newly inserted `{'.

2004-08-11  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-fonts.el (c-font-lock-declarators): Handle array size specs
	correctly.  Only fontify identifiers in front of '(' with as
	functions - don't accept any paren char.  Tightened up initializer
	skipping to stop before function and class blocks.

2004-08-11  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-engine.el (c-beginning-of-decl-1): Fixed bug where the point
	could be left directly after an open paren when finding the
	beginning of the first decl in the block.

	* cc-engine.el (c-parse-state): Don't use the syntax table when
	filtering out legitimate open parens to be recorded.  This could
	cause cache inconsistencies when e.g. `c++-template-syntax-table'
	was temporarily in use.

2004-08-11  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-engine.el (c-on-identifier, c-simple-skip-symbol-backward):
	Small fix for handling "-" correctly in `skip-chars-backward'.
	Affected the operator lfun syntax in Pike.

2004-08-11  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-engine.el (c-invalidate-sws-region-after): Fixed bug that
	could cause an error from `after-change-functions' when the
	changed region is at bob.

2003-11-18  Norbert Koch  <viteno@xemacs.org>

	* Makefile (VERSION): XEmacs package 1.42 released.

2003-11-16  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* Patch release 5.30.8.

	* cc-engine.el (c-guess-continued-construct,
	c-guess-basic-syntax): Check a little more carefully if it's a
	function declaration when an unknown construct followed by a block
	is found inside a statement context.  This avoids macros followed
	by blocks to be taken as function declarations.

	(c-guess-continued-construct): Changed the analysis of a statement
	continuation with a brace open to `substatement-block', for
	consistency with recognized statements.

	(c-add-stmt-syntax): Don't continue to the surrounding sexp if the
	start is in a position so that `c-beginning-of-statement-1' jumped
	to the beginning of the same statement.

2003-11-16  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-fonts.el, cc-engine.el (c-forward-<>-arglist-recur): Don't
	accept binary operators in the arglist if we're in a function call
	context, i.e. if `c-restricted-<>-arglists' is set.  That avoids
	template recognition in cases like "if (a < b || c > d)".

	(c-restricted-<>-arglists): New more appropriate name for
	`c-disallow-comma-in-<>-arglists'.

	Accessing functions updated for the variable name change.

2003-11-16  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-engine.el (c-syntactic-re-search-forward): Fix bug where the
	match data could get clobbered if NOT-INSIDE-TOKEN is used.

2003-11-16  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-engine.el (c-beginning-of-statement-1): Don't allow parens in
	labels.

	(c-backward-to-decl-anchor): Use `c-beginning-of-statement-1'
	instead of duplicating parts of it.  This fixes bogus label
	recognition.

	* cc-align.el (c-gnu-impose-minimum): Reverted to the old method
	of checking the context in which to apply the minimum indentation,
	so that it isn't enforced in e.g. namespace blocks.

	* cc-vars.el (c-inside-block-syms): New constant used by
	`c-gnu-impose-minimum'.  It's defined close to `c-offsets-alist'
	to somewhat reduce the risk of becoming stale.

	* cc-cmds.el, cc-engine.el (c-shift-line-indentation): Moved from
	cc-cmds to cc-engine to allow use from cc-align.

2003-11-16  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-engine.el (c-beginning-of-inheritance-list): Cope with fully
	qualified identifiers containing "::".

2003-11-16  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-defs.el (c-make-keywords-re): Added kludge for bug in
	`regexp-opt' in Emacs 20 and XEmacs when strings contain newlines.

2003-11-16  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-vars.el (c-emacs-features): Use a space in front of the name
	of the temporary buffer.  That also avoids dumping problems in
	XEmacs due to undo info being left around after the buffer is
	killed.

2003-11-16  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-engine.el (c-in-knr-argdecl): Look closer at the function
	arglist to see if it's a K&R style declaration.

	(c-guess-basic-syntax): CASE 5B.2: Check with `c-in-knr-argdecl'
	before returning `knr-argdecl-intro'.

2003-10-31  Norbert Koch  <viteno@xemacs.org>

	* Makefile (VERSION): XEmacs package 1.41 released.

2003-09-25  Norbert Koch  <viteno@xemacs.org>

	* Makefile (VERSION): XEmacs package 1.40 released.

2003-09-24  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-engine.el (c-parse-state): Fixed bug that could cause errors
	when the state cache contains info on parts that have been
	narrowed out.

2003-09-24  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-vars.el (c-comment-prefix-regexp): Document that
	`c-setup-paragraph-variables' has to be used when this variable is
	changed; it doesn't work to reinitialize the mode since that
	typically clobbers the variable.

	* cc-styles.el (c-setup-paragraph-variables): Made it interactive.

2003-09-24  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-fonts.el (c-font-lock-declarations): Fixed recognition of
	constructors and destructors for classes whose names are matched
	by `*-font-lock-extra-types'.

	* cc-langs.el (c-type-list-kwds): If "operator" is followed by an
	identifier in C++ then it's a type.

2003-09-24  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-fonts.el (c-font-lock-invalid-string): Fixed eob problem that
	primarily affected XEmacs.  Don't use faces to find unterminated
	strings since Emacs and XEmacs fontify strings differently - this
	function should now work better in XEmacs.

2003-09-24  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-cmds.el (c-electric-brace): Fixed a bug in the
	`expand-abbrev' workaround which caused braces to disbehave inside
	macros.

	* cc-engine.el (c-forward-keyword-clause): Fixed error handling.
	This bug could cause interactive font locking to bail out.

2003-09-24  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-engine.el (c-just-after-func-arglist-p): Handle paren-style
	types in Pike.  Also fixed some cases of insufficient handling of
	unbalanced parens.

2003-08-26  Norbert Koch  <viteno@xemacs.org>

	* Makefile (VERSION): XEmacs package 1.39 released.

2003-08-26  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-cmds.el (c-electric-brace): Work around for a misfeature in
	`expand-abbrev' which caused electric keywords like "else" to
	disappear if an open brace was typed directly afterwards.

2003-08-26  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-vars.el (c-extra-types-widget): The doc string is mandatory
	in `define-widget'.

	* cc-align.el, cc-langs.el (c-lineup-math): Don't align the
	operators "!=", "<=" and ">=" as assignment operators.

	(c-assignment-operators): New language constant that only contains
	the assignment operators.

	(c-assignment-op-regexp): New language variable used by
	`c-lineup-math'.

2003-08-26  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-engine.el (c-just-after-func-arglist-p): Safeguard against
	unbalanced sexps.

2003-08-03  Norbert Koch  <viteno@xemacs.org>

	* Makefile (VERSION): XEmacs package 1.38 released.

2003-08-03  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-mode.el (c-init-language-vars-for): Add argument MODE.
	Renamed from c-init-c-language-vars'.
	(c-initialize-cc-mode): Change accordingly.
	(c-common-init): Ditto.
	(c-mode): Ditto.
	(c++-mode): Use function.
	(objc-mode): Ditto.
	(java-mode): Ditto.
	(idl-mode): Ditto.
	(pike-mode): Ditto.
	(awk-mode): Ditto.

2003-08-01  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-engine.el (c-end-of-current-token): Return whether or not the
	point moved.

	(c-search-decl-header-end): Don't trip up on operator identifiers
	in C++ and operators like == in all languages.

	* cc-engine.el (c-backward-to-decl-anchor): Detect leading labels
	correctly.

2003-07-17  Norbert Koch  <viteno@xemacs.org>

	* Makefile (VERSION): XEmacs package 1.37 released.

2003-07-16  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-defs.el (c-langelem-sym, c-langelem-pos, c-langelem-2nd-pos):
	Added accessor functions for syntactic elements.

2003-07-09  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-engine.el (c-literal-faces): Declare as a variable since it
	might be modified.

	* cc-langs.el: (c++-make-template-syntax-table,
	c-syntactic-ws-start, c-syntactic-ws-end): Gave more consistent
	names to these language constants.

2003-07-08  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-engine.el (c-guess-basic-syntax): Do not do hidden buffer
	changes; there's third party code that calls this function
	directly.

2003-07-07  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-fonts.el (javadoc-font-lock-keywords,
	autodoc-font-lock-keywords): Don't byte compile on font lock
	initialization when running from byte compiled files.

2003-07-06  Alan Mackenzie  <bug-cc-mode@gnu.org>

	* cc-engine.el: Fix AWK mode indentation when previous statement
	ends with auto-increment "++".

2003-07-06  Norbert Koch  <viteno@xemacs.org>

	* Makefile (VERSION): XEmacs package 1.36 released.

2003-07-05  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* cc-langs.el, cc-styles.el (c-style-alist, c-lang-variable-inits,
	c-lang-variable-inits-tail): The values of these are changed, so
	declare them as variables and not constants.

	* cc-mode.el: Fixed some autoload problems: Try to ensure that the
	entry for ".c" extension comes before the one for ".C" on
	`auto-mode-alist', to behave better on case insensitive OS:es.
	Fixed incorrect entries that were added to
	`interpreter-mode-alist'.  Moved the autoload directives for AWK
	to the top level since they aren't recognized anywhere else.  Do
	not use the new AWK mode doc in the autoload form for the old AWK
	mode.

2003-07-04  Norbert Koch  <viteno@xemacs.org>

	* Makefile (VERSION): XEmacs package 1.35 released.

2003-07-03  Martin Stjernholm  <bug-cc-mode@gnu.org>

	* Update to CC Mode 5.30.

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

	* Release 5.25
	Snarfed from http://www.python.org/emacs/cc-mode/

1998-03-05  SL Baur  <steve@altair.xemacs.org>

	* cc-mode.el: cc-defs isn't needed at run-time.

	* Synch with 5.21

1998-02-11  SL Baur  <steve@altair.xemacs.org>

	* cc-mode.el: Correct dependency on cc-defs (needs to be before
	use of `c-safe' macro.

Sun Feb  8 15:30:43 1998  Barry A. Warsaw  <cc-mode-help@python.org>

	* Release 5.20

Wed Feb 04 1998  Barry Warsaw  <cc-mode-help@python.org>

	* cc-mode.el (c-mode, c++-mode, objc-mode, java-mode): set
	imenu-case-fold-search to nil.

Tue Feb 03 1998  Barry Warsaw  <cc-mode-help@python.org>

	* cc-langs.el (c-postprocess-file-styles): If a file style or file
	offsets are set, make the variables local to the buffer (via
	make-local-variable).

	* cc-styles.el (c-make-styles-buffer-local): Take an optional
	argument which switches between make-variable-buffer-local and
	make-local-variable.  Generalize.

Mon Feb 02 1998  Martin Stjernholm  <cc-mode-help@python.org>

	* cc-align.el (c-lineup-close-paren, c-indent-one-line-block): New
	indentation functions.

	* cc-cmds.el (c-beginning-of-statement, c-end-of-statement): Do
	not move by sentence in strings.  Doc fixes.

	* cc-mode.texi: Document new indentation functions.

Sat Jan 24 1998  Barry Warsaw  <cc-mode-help@python.org>

	* cc-defs.el (c-point): In XEmacs, use scan-lists +
	buffer-syntactic-context-depth to radically speed up locating
	top-level defun opening brace in some situations.  When the braces
	hang, this can make c-parse-state from between 3 to 60 times
	faster.  When they don't hang, this may be a few percentage points
	slower (not noticeable to me though).  The variable
	c-enable-xemacs-performance-kludge-p toggles the behavior.  This
	change has no effect on Emacs, which lacks the built-in function
	buffer-syntactic-context-depth.

	* cc-mode.texi: Discuss c-enable-xemacs-performance-kludge-p in
	the section on performance.

	* cc-vars.el (c-enable-xemacs-performance-kludge-p): New variable.

Fri Jan 23 1998  Barry Warsaw  <cc-mode-help@python.org>

	* cc-cmds.el cc-defs.el cc-engine.el (c-beginning-of-defun,
	c-indent-defun, c-parse-state): Use (c-point 'bod) instead of
	beginning-of-defun directly.

Tue Jan 20 1998  Martin Stjernholm  <cc-mode-help@python.org>

	* cc-cmds.el (c-beginning-of-statement): Speedup; it's only
	necessary to call `c-literal-limits' once when the function is
	entered.

Mon Jan 19 1998  Barry Warsaw  <cc-mode-help@python.org>

	* cc-align.el (c-semi&comma-no-newlines-before-nonblanks,
	c-semi&comma-no-newlines-for-oneline-inliners): New functions,
	appropriate for c-hanging-semi&comma-criteria, but not placed on
	that variable by default.

	* cc-langs.el (c-mode-base-map): Comment out c-beginning-of-defun
	and c-end-of-defun bindings, since RMS doesn't want these to be
	the default.

	* cc-mode.texi: Describe c-beginning-of-defun and c-end-of-defun.
	Describe the new c-hanging-semi&comma-criteria functions.

Sun Jan 18 1998  Martin Stjernholm  <cc-mode-help@python.org>

	* cc-cmds.el (c-beginning-of-statement): Handle multiple C++ line
	comments a little better.

	Almost completely rewritten.  It's now more thorough when handling
	strings and comments and the transitions between them and the
	surrounding code.  The statement parsing is also rewritten because
	`c-{beginning|end}-of-statement-1' does no longer do what we want
	in this function (e.g. c-b-o-s-1 doesn't go into blocks).  It also
	works better for different counts and when sentence-flag is nil.

	* cc-engine.el (c-forward-syntactic-ws, c-backward-syntactic-ws):
	Removed the narrowings which doesn't seem to have much effect.
	Instead a simple check is made against the given limit.  In
	`c-backward-syntactic-ws' this means that there's no need to
	search for bod, which helps up speed quite a lot in some areas.

	(c-collect-line-comments): New function that given the limits of
	one C++ style line comment returns the range for all adjacent line
	comments.  This functionality is moved from the functions
	`c-literal-limits' and `c-literal-limits-fast'.

	(c-literal-limits): New function that finds the start and end pos
	of a comment or string surrounding point.  This function is Emacs
	19.34 compatible and it has a workaround for what seems to be a
	bug in `parse-partial-sexp' when we use an existing state to get
	the state for the very next character.

	(c-literal-limits-fast): A faster variant of `c-literal-limits'
	for newer Emacsen where the state returned from
	`parse-partial-sexp' contains the starting pos of the last
	literal.  This does not contain the workaround described above.
	The function is not yet tested and therefore not in use for now.
	Note that these functions regard the position between the first
	and second char of a comment starter to be part of the comment.
	Although `parse-partial-sexp' (in Emacs 19 anyway) doesn't do
	this, it seems more intuitive to me.  Maybe `c-in-literal' should
	do this too?

Thu Jan 15 1998  Martin Stjernholm  <cc-mode-help@python.org>

	* cc-mode-19.el Added `when' and `unless'.

Thu Jan 15 1998  Barry Warsaw  <cc-mode-help@python.org>

	* cc-engine.el (c-guess-basic-syntax): Fixed a few byte compiler
	warnings.

Wed Jan 14 1998  Barry Warsaw  <cc-mode-help@python.org>

	* cc-cmds.el (c-beginning-of-defun, c-end-of-defun): New commands
	which mimic the standard built-ins, but do a much better job of
	finding the open brace when it's hung on the right side (as is the
	case with the most common Java style).

	* cc-engine.el (c-backward-to-start-of-do): Break infloop for
	illegal code, e.g. when someone types while (TRUE) { at the top of
	a buffer, we shouldn't hang when the { is typed!

Tue Jan 13 1998  Barry Warsaw  <cc-mode-help@python.org>

	* cc-cmds.el (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.

Sat Jan 10 1998  Barry Warsaw  <cc-mode-help@python.org>

	* cc-langs.el (c-java-method-key): I really don't remember why
	this was added, but it seems to do more harm than good.  Besides,
	its value was clearly wrong, being inherited from Objective-C.

	* cc-mode.el (java-mode): Set c-method-key to nil.  I don't think
	this is necessary for Java, and besides, the old value was
	inherited from Objective-C which was clearly not right.  With this
	change, all regression tests pass and the example by Bengt
	Martensson also passes:

	class Baz
	{
	    int blah()
	    {
		return 1
		    + 2
		    + 3
		    + foobar()
		    + 5
		    + 6;
	    }
	}

	* cc-mode.texi Add some explanation to "gnu" style and "user"
	style, describing the relationship between these and user
	Customizations.

	* cc-vars.el (c-default-style): Change this back to "gnu" after
	(re-reading old) discussions with RMS.  This may confuse users who
	set variables in the top-level of their .emacs files, or using the
	Custom interface, since those changes will get incorporated into
	the "user" style.  RMS insists, however, that the default style be
	"gnu".

Sun Jan 04 1998  Barry Warsaw  <cc-mode-help@python.org>

	* cc-cmds.el (c-electric-colon): Newlines should not be inserted
	before or after scope operators, regardless of the value of
	c-hanging-colons.

	* cc-engine.el (c-backward-to-start-of-if): Workaround a nasty to
	track down bug.  If point is < lim, then this function can
	actually land you forward into the buffer.  This can cause an
	infloop in c-beginning-of-statement-1. It is probably a bug that
	this function gets called with a lim > point, but that's even
	harder to figure out, so if that's the case when this function is
	called, it's simpler just to ignore lim and use bod.  This breaks
	the infloop without causing broken indentation.

Sat Jan 03 1998  Barry Warsaw  <cc-mode-help@python.org>

	* cc-align.el (c-lineup-dont-change): New lineup function that
	leaves the current line's indentation unchanged.  Used for the new
	cpp-macro-cont syntactic symbol.

	* cc-cmds.el (c-electric-brace): namespace-open and
	namespace-close braces can hang.

	* cc-defs.el (c-emacs-features): Added autoload cookie which Steve
	Baur claims is necessary for XEmacs.

	* cc-engine.el (c-search-uplist-for-classkey): When searching up
	for a class key, instead of hardcoding the extended search for
	"extern", use the new variable c-extra-toplevel-key, which is
	language dependent.  For C++, this variable includes the keyword
	"namespace" which will match C++ namespace introducing blocks.

	(c-guess-basic-syntax): Support for recognizing C++ namespace
	blocks, by elaborating on the mechanism used to find external
	language blocks.  Searches which hardcoded "extern" now use
	c-extra-toplevel-key, a language dependent variable.  Case clauses
	that were modified: CASE 5A.1, CASE 5A.4, CASE 5F, CASE 5I, CASE
	14A.

	CASE 3: we can now determine whether we're at the beginning of a
	cpp macro definition, or inside the middle of one. Set syntax to
	'cpp-macro in the former case, 'cpp-macro-cont in the latter.  In
	both cases, the relpos is the beginning of the macro.

	(c-forward-syntactic-ws): Added code that skips forward over
	multi-line cpp macros.

	(c-beginning-of-macro): Moved, and made into a defsubst.  This
	function can now actually find the beginning of a multi-line C
	preprocessor macro.

	(c-backward-syntactic-ws): Use c-beginning-of-macro to skip
	backwards over multi-line macro definitions.

	(c-in-literal, c-fast-in-literal): Use c-beginning-of-macro to
	find out whether we're in a multi-line macro definition.

	* cc-langs.el (c-C-extra-toplevel-key, c-C++-extra-toplevel-key,
	c-extra-toplevel-key): New variables which parameterize the search
	for additional top-level enclosing constructs.  In all languages,
	extern lang blocks are supported (but maybe this should just be C
	and C++?). In C++, also namespace blocks are supported.

	* cc-menus.el Imenu patches by Masatake Yamato and Jan Dubois.

	* cc-mode.el (c++-mode): Set c-extra-toplevel-key to
	c-C++-extra-toplevel-key.

	(c-initialize-on-load): New variable, *not* customized.  When set
	to t -- the default -- c-initialize-cc-mode is called when the
	cc-mode.el file is loaded, e.g. via (require 'cc-mode).  This is
	backwards compatible with .emacs files that used CC Mode 4.  I'm
	still not 100% sure this is the right thing to do.

	* cc-mode.texi: Added descriptions of the new C++ namespace
	syntactic symbols: namespace-open, namespace-close, innamespace.
	Added an example for this and also multi-line macros.

	Describe c-lineup-dont-change and the new cpp-macro-cont syntactic
	symbol.  Remove the `known limitation' that multi-line macros
	aren't supported.

	* cc-styles.el (c-offsets-alist): Three new syntactic symbols:
	innamespace, namespace-open, namespace-close.  These support C++
	namespace blocks.

	Added new syntactic symbol cpp-macro-cont, by default bound to
	c-lineup-dont-change.  This symbol is assigned to subsequent lines
	of a multi-line C preprocess macro definition.

	* cc-vars.el (c-default-style): Variable is user customizable so
	it's docstring should start with a `*'.

Fri Jan 02 1998  Barry Warsaw  <cc-mode-help@python.org>

	* cc-engine.el (c-fast-in-literal): Function which should be
	faster than c-in-literal.  This uses buffer-syntactic-context
	which is a speedy built-in that exists only in XEmacs.  Make it's
	alias conditional on that built-in's existance.  To be honest, the
	performance effects should be tested.  Also c-fast-in-literal
	knows about multi-line cpp macros while c-in-literal does not.
	The latter should be taught about this, but this change will wait
	for a future mega-patch to handle multi-line macros.

Thu Jan 01 1998  Barry Warsaw  <cc-mode-help@python.org>

	* cc-cmds.el (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.

Tue Nov 18 1997  Barry Warsaw  <cc-mode-help@python.org>

	* cc-langs.el (c-mode-base-map): Bind c-mark-function using a
	portable representation of C-M-h that differentiates this from
	M-BS on both XEmacs and Emacs.

Sat Nov 15 1997  Barry Warsaw  <cc-mode-help@python.org>

	* cc-cmds.el (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-indent-command, c-indent-exp, c-indent-defun,
	c-backslash-region, c-fill-paragraph): Added "*" to interactive
	spec to barf-if-buffer-read-only.

Fri Nov 14 1997  Barry Warsaw  <cc-mode-help@python.org>

	* cc-cmds.el (c-fill-paragraph): regexp-quote the fill-prefix when
	search forward for the end of line oriented comments.  This is in
	case the fill-prefix contains regexp special characters
	(e.g. fill-prefix == " //* ")

	(c-backslash-region): Do not preserve the zmacs region (XEmacs).

Wed Nov 12 1997  Barry Warsaw  <cc-mode-help@python.org>

	* cc-langs.el (c-mode-base-map): c-mark-function moved back to
	M-C-h.  RMS says: "It ought to be on M-C-h, because that is the
	key to mark one function definition in whatever language you're
	using."  I don't remember why it was moved in the first place.

Tue Nov 04 1997  Barry Warsaw  <cc-mode-help@python.org>

	* cc-cmds.el (c-electric-backspace, c-electric-delete):
	Interactive spec should have a read-only *.

Thu Oct 30 1997  Barry Warsaw  <cc-mode-help@python.org>

	* cc-styles.el (c-styles-alist): Merged "jdk" into "java" style
	and removed "jdk" style.  Only differences now are inline-open and
	c-basic-offset.

Wed Oct 29 1997  Barry Warsaw  <cc-mode-help@python.org>

	* cc-mode.texi Document "jdk" style.

	* cc-styles.el (c-style-alist): "jdk" style given by Martin
	Buchholz <mrb@Eng.Sun.COM> for conformance with Sun's JDK style.

Fri Oct 10 1997  Barry Warsaw  <cc-mode-help@python.org>

	* cc-styles.el (c-set-style-2, c-initialize-builtin-style): Don't
	special case "cc-mode", it's a derived style.

	Fix setup of derived style "cc-mode".

	Introduce the new default style "user" which contains all user
	customizations.  The style "cc-mode" is retained as an alias, but
	it's use is deprecated.  The default style variable has been
	renamed c-default-style.

	* cc-vars.el (c-site-default-style): Renamed to c-default-style.
	Also, the default value is now "user".

1998-01-24  SL Baur  <steve@altair.xemacs.org>

	* Makefile (VERSION): Update to package standard 1.0.
	* package-info.in: Ditto.

1998-01-17  SL Baur  <steve@altair.xemacs.org>

	* cc-mode.el (c-submit-bug-report): Move reporter dependency
	inside the function that uses it.

1998-01-09  SL Baur  <steve@altair.xemacs.org>

	* cc-engine: (c-guess-basic-syntax): Guard against c-access-key being
	nil.
	From Didier Verna <verna@inf.enst.fr>

1998-01-03  SL Baur  <steve@altair.xemacs.org>

	* Makefile: Update to newer package interface.

1997-12-25  SL Baur  <steve@altair.xemacs.org>

	* cc-engine.el: Add explicit dependency on cc-defs.
	* cc-styles.el: Ditto.

1997-12-21  SL Baur  <steve@altair.xemacs.org>

	* Makefile: Created.
