diff --git a/.emacs.d/init.el b/.emacs.d/init.el
index 6b42561..8ec2dfc 100644
--- a/.emacs.d/init.el
+++ b/.emacs.d/init.el
@@ -57,7 +57,8 @@
(add-to-list 'load-path "~/site-lisp")
;; Choose a cc-mode/c#-mode to use. (More on this below)
-(add-to-list 'load-path "~/site-lisp/cc-mode/5.31.3")
+(add-to-list 'load-path "~/site-lisp/cc-mode/5.32.3")
+(add-to-list 'load-path "~/site-lisp/cc-mode/csharp-only")
;; Also ruby mode
(add-to-list 'load-path "c:/ruby/lib")
@@ -133,7 +134,7 @@
(progn
(require 'color-theme)
(require 'color-theme-solarized)
- (color-theme-solarized-dark)))
+ (color-theme-solarized-light)))
;; Modeline format:
(display-time-mode -1)
@@ -324,7 +325,7 @@
;; (autoload 'csharp-mode "cc-mode")
;; Here is another one that is not.
-(autoload 'csharp-mode "csharp-mode-0.6.0" "Major mode for editing C# code." t)
+(autoload 'csharp-mode "csharp-mode-0.8.6" "Major mode for editing C# code." t)
(c-add-style "ms-csharp"
'((c-basic-offset . 4)
diff --git a/site-lisp/cc-mode/5.32.3/ANNOUNCEMENT b/site-lisp/cc-mode/5.32.3/ANNOUNCEMENT
new file mode 100644
index 0000000..b0ba9da
--- /dev/null
+++ b/site-lisp/cc-mode/5.32.3/ANNOUNCEMENT
@@ -0,0 +1,21 @@
+Release Announcement
+CC Mode Version 5.32
+Alan Mackenzie
+
+This message announces the availability of a new version of CC Mode,
+an Emacs and XEmacs mode for editing C (ANSI and K&R), C++,
+Objective-C, Java, CORBA's IDL, Pike and AWK 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:
+
+
+
+Send email correspondence to
+
+ bug-cc-mode@gnu.org
+
+For a list of changes please see
+
+
diff --git a/site-lisp/cc-mode/5.32.3/COPYING b/site-lisp/cc-mode/5.32.3/COPYING
new file mode 100644
index 0000000..94a9ed0
--- /dev/null
+++ b/site-lisp/cc-mode/5.32.3/COPYING
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ Copyright (C)
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+.
diff --git a/site-lisp/cc-mode/5.32.3/ChangeLog b/site-lisp/cc-mode/5.32.3/ChangeLog
new file mode 100644
index 0000000..6443651
--- /dev/null
+++ b/site-lisp/cc-mode/5.32.3/ChangeLog
@@ -0,0 +1,14608 @@
+2012-05-05 Alan Mackenzie
+
+ * Patch release 5.32.3
+
+ * ChangeLog: Update for patch release 5.32.3.
+
+ * cc-defs.el (c-version): Increment to 5.32.3.
+
+ * *.el, cc-mode.texi: Add 2012 to copyright notices.
+
+2012-04-22 Alan Mackenzie
+
+ Fix erroneous commit.
+
+2012-04-21 Alan Mackenzie
+
+ Adding a ) can hide the resulting (..) from searches. Fix it.
+
+ * cc-engine (c-append-lower-brace-pair-to-state-cache): Bound the
+ backward search to the position of the existing (.
+
+2012-04-15 Alan Mackenzie
+
+ Ensure searching for keywords is case sensitive.
+
+ * cc-cmds.el (c-electric-brace, c-electric-lt-gt)
+ (c-electric-paren c-beginning-of-defun, c-end-of-defun)
+ (c-defun-name, c-mark-function c-cpp-define-name)
+ (c-comment-indent, c-scan-conditionals c-indent-defun)
+ (c-context-line-break): bind case-fold-search to nil.
+
+ * cc-mode.el (c-font-lock-fontify-region): bind case-fold-search
+ to nil.
+
+2012-04-11 Alan Mackenzie
+
+ Make imenu work again for Objective C Mode.
+ * cc-menus.el (cc-imenu-objc-generic-expression): Correct the
+ *-index values, these having been disturbed by a previous change
+ in 2011-08.
+
+2012-04-08 Alan Mackenzie
+
+ Correct two search limits in c-before-change-check_<>-operators.
+ * cc-engine.el (c-before-change-check-<>-operators): Make the
+ correction.
+
+ * cc-mode.texi (c-offsets-alist): Correct a typo.
+
+2012-03-16 Alan Mackenzie
+
+ Further optimise the handling of large macros.
+
+ * cc-engine.el (c-crosses-statement-barrier-p): Use a limit to a
+ call of `c-literal-limits'.
+ (c-determine-+ve-limit): New function.
+ (c-at-macro-vsemi-p): Move `c-in-literal' to the bottom of an `and'.
+ (c-guess-basic-syntax): In macros, restrict a search limit to
+ 2000. In CASE 5B, restrict a search limit to 500.
+ (c-just-after-func-arglist-p): Obviouly wrong `or' -> `and'.
+
+ * cc-mode.el (c-neutralize-syntax-in-and-mark-CPP): Restrict
+ macro bounds to +-500 from after-change's BEG END.
+
+2012-03-08 Alan Mackenzie
+
+ * cc-cmds.el (c-mark-defun): Leave a mark, and extend region when
+ command is repeated.
+
+2012-03-02 Alan Mackenzie
+
+ Depessimize the handling of very large macros.
+
+ * cc-engine.el (c-macro-cache, c-macro-cache-start-pos):
+ (c-macro-cache-syntactic): New variables to implement a one
+ element macro cache.
+ (c-invalidate-macro-cache): New function.
+ (c-beginning-of-macro, c-end-of-macro, c-syntactic-end-of-macro):
+ Adapt to use the new cache.
+ (c-state-safe-place): Use better the cache of safe positions.
+ (c-state-semi-nonlit-pos-cache)
+ (c-state-semi-nonlit-pos-cache-limit): New variables for...
+ (c-state-semi-safe-place): New function. Here, in a macro is
+ "safe".
+ (c-invalidate-state-cache-1): New stuff for
+ c-state-semi-safe-place.
+ (c-in-literal, c-literal-limits, c-determine-limit-get-base): Use
+ c-state-semi-safe-place.
+
+ * cc-langs.el (c-get-state-before-change-functions): Add
+ c-invalidate-macro-cache to the C, C++, Obj entries.
+
+2012-03-01 Alan Mackenzie
+
+ Optimise macro handling with a 1 element cache of beginning and
+ end. Make the default of c-macro-names-with-semicolon nil. See
+ 2012-03-02 for details.
+
+2012-02-29 Alan Mackenzie
+
+ Optimise c-state-safe-place. See 2012-03-02 for details.
+
+2012-02-19 Alan Mackenzie
+
+ Create .hgignore. Delete the two old .cvsignore's.
+
+2012-02-19 Alan Mackenzie
+
+ Modify the web pages for recent conversion to Mercurial.
+
+ * hgaccess.php: New file.
+ * anoncvs.php: Mark old CVS repository as obsolete, change to
+ past tense.
+ * index.php: Direct the adventurous to hg rather than cvs.
+ * links.h: Add new links for hg pages. Move cvs pages to new
+ "obsolete" section.
+
+2012-02-19 Alan Mackenzie
+
+ Remove old CVSROOT directory.
+
+2012-02-13 Alan Mackenzie
+
+ Fix a loop in c-set-fl-decl-start.
+ * cc-engine.el (c-set-fl-decl-start): Add a check that
+ c-backward-syntactic-ws actually moves backwards.
+
+2012-02-12 Alan Mackenzie
+
+ Fix infinite loop with long macros.
+ * cc-engine.el (c-state-safe-place): Handle macros properly.
+
+2012-02-07 Alan Mackenzie
+
+ Fix spurious recognition of c-in-knr-argdecl.
+
+ * cc-engine.el (c-in-knr-argdecl): Check for '=' in a putative K&R
+ region.
+
+2012-02-07 Alan Mackenzie
+
+ Test for keyword @implementation in a #pragma. This used to
+ loop.
+
+2012-02-07 Alan Mackenzie
+
+ * cc-engine.el (c-forward-objc-directive): Prevent looping in
+ "#pragma mark @implementation".
+
+2012-01-18 Alan Mackenzie
+
+ Eliminate sluggishness and hangs in fontification of "semicolon
+ deserts".
+
+ * cc-engine.el (c-state-nonlit-pos-interval): change value 10000
+ -> 3000.
+ (c-state-safe-place): Reformulate so it doesn't stack up an
+ infinite number of wrong entries in c-state-nonlit-pos-cache.
+ (c-determine-limit-get-base, c-determine-limit): New functions to
+ determine backward search limits disregarding literals.
+ (c-find-decl-spots): Amend commenting.
+ (c-cheap-inside-bracelist-p): New function which detects "={".
+
+ * cc-fonts.el (c-make-font-lock-BO-decl-search-function): Give a
+ limit to a backward search.
+ (c-font-lock-declarations): Fix an occurrence of point being
+ undefined. Check additionally for point being in a bracelist or
+ near a macro invocation without a semicolon so as to avoid a
+ fruitless time consuming search for a declarator. Give a more
+ precise search limit for declarators using the new
+ c-determine-limit.
+
+2012-01-17 Alan Mackenzie
+
+ Correct a test to do with C-y:
+ * cc-mode.el (c-after-change): Correct a singular-plural
+ confusion.
+
+2012-01-13 Alan Mackenzie
+
+ Fix filling for when filladapt mode is enabled.
+
+ * cc-cmds.el (c-fill-paragraph): In the invocation of
+ c-mask-paragraph, pass in `fill-paragraph' rather than
+ `fill-region-as-paragraph'. (This is a reversion of a previous
+ change.)
+ * cc-mode.el (c-basic-common-init): Make
+ fill-paragraph-handle-comment buffer local and set it to nil.
+
+2012-01-11 Alan Mackenzie
+
+ Fix Emacs bug #10463 - put `widen's around the critical spots.
+
+ * cc-engine.el (c-in-literal, c-literal-limits): put a widen
+ around each invocation of c-state-pp-to-literal. Remove an unused
+ let variable.
+
+2012-01-08 Alan Mackenzie
+
+ Optimise font locking in long enum definitions.
+
+ * cc-fonts.el (c-font-lock-declarations): Add an extra arm to a
+ cond form to handle enums.
+ * cc-langs.el (c-enums-contain-decls): New lang variable.
+ * cc-mode.el (c-font-lock-fontify-region): Correct a typo.
+
+2011-12-24 Alan Mackenzie
+
+ Introduce a mechanism to widen the region used in context font
+ locking. Use this to protect declarations from losing their
+ contexts.
+
+ * cc-langs.el (c-before-font-lock-functions): replace
+ c-set-fl-decl-start with c-change-set-fl-decl-start (Renaming).
+ (c-before-context-fontification-functions): new defvar, a list of
+ functions to be run just before context (etc.) font locking.
+
+ * cc-mode.el (c-extend-font-lock-region-for-macros): new,
+ functionality extracted from c-neutralize-syntax-in-and-mark-CPP.
+ (c-in-after-change-fontification): new variable.
+ (c-after-change): Set c-in-after-change-fontification.
+ (c-set-fl-decl-start): Rejig its interface, so it can be called
+ from both after-change and context fontifying.
+ (c-change-set-fl-decl-start, c-context-set-fl-decl-start): new
+ functions.
+ (c-standard-font-lock-fontify-region-function): new variable.
+ (c-font-lock-fontify-region): new function
+
+2011-12-22 Alan Mackenzie
+
+ Fix unstable fontification inside templates.
+
+ * cc-langs.el (c-before-font-lock-functions): newly created from
+ the singular version. The (c c++ objc) entry now additionally has
+ c-set-fl-decl-start. The other languages (apart from AWK) have
+ that as a single entry.
+
+ * cc-fonts.el (c-font-lock-enclosing-decls): The functionality for
+ "local" declarations has been extracted to c-set-fl-decl-start.
+
+ * cc-mode.el: (c-common-init, c-after-change): Changes due to
+ pluralisation of c-before-font-lock-functions.
+ (c-set-fl-decl-start): New function, extraced from
+ c-font-lock-enclosing-decls and enhanced.
+ (top level): Only advise the font-lock change functions when
+ font-lock-extend-after-change-region-function is not defined.
+
+2011-12-20 Alan Mackenzie
+
+ Convert some British English spellings to American English.
+
+2011-12-13 Alan Mackenzie
+
+ Large brace-block initialisation makes CC Mode slow: Fix. Tidy up
+ and accelerate c-in-literal, etc. by using the c-parse-state
+ routines. Limit backward searching in c-font-lock-enclosing.decl.
+
+ * cc-engine.el (c-state-pp-to-literal): Return the pp-state and
+ literal type in addition to the limits.
+ (c-state-safe-place): New defun, extracted from
+ c-state-literal-at.
+ (c-state-literal-at): Use the above new defun.
+ (c-slow-in-literal, c-fast-in-literal): Removed.
+ (c-in-literal, c-literal-limits): Amended to use
+ c-state-pp-to-literal.
+
+ * cc-fonts.el (c-font-lock-enclosing-decls): Check for being in a
+ literal. Add a limit for backward searching.
+
+ * cc-mode.el (awk-mode): Don't alias c-in-literal to
+ c-slow-in-literal.
+
+2011-12-04 Alan Mackenzie
+
+ Add the switch statement to AWK Mode.
+
+ cc-awk (awk-font-lock-keywords): Add "switch", "case", "default"
+ to the keywords regexp.
+
+ cc-langs (c-label-kwds): Let AWK take the same expression as the
+ rest.
+ (c-nonlabel-token-key): Allow string literals for AWK. Refactor
+ for the other modes.
+
+2011-10-22 Alan Mackenzie
+
+ Fix bug #9560, sporadic wrong indentation; improve instrumentation of
+ c-parse-state.
+ * cc-engine.el (c-append-lower-brace-pair-to-state-cache): correct faulty
+ logical expression.
+
+ (c-parse-state-state, c-record-parse-state-state)
+ c-replay-parse-state-state): New defvar/defuns.
+ (c-debug-parse-state): Use new functions.
+
+2011-10-12 Alan Mackenzie
+
+ * Patch release 5.32.2
+
+ * ChangeLog: Update for patch release 5.32.2.
+
+ * cc-defs.el (c-version): Increment to 5.32.2
+
+2011-10-11 Alan Mackenzie
+
+ Enhance cc-bytecomp-ignore-obsolete to cope with the missing
+ function `byte-compile-obsolete' in Emacs >= 24.
+
+ * cc-bytecomp.el (top-level): Add variable cc-bytecomp-push-vars.
+ Set this and similar variables to nil each time the file is
+ loaded.
+ (cc-bytecomp-setup-environment, cc-bytecomp-restore-environment):
+ Add clauses to setup and restore "pushed" variables.
+ (cc-bytecomp-push): New macro to "push" a variable onto an
+ internal stack.
+ (cc-bytecomp-ignore-obsolete): Add a superfluous check to suppress
+ a compiler warning
+ (cc-bytecomp-ignore-obsolete): In Emacs >= 24, use
+ byte-compile-not-obsolete-funcs to mark a function as obsolete.
+
+2011-10-07 Alan Mackenzie
+
+ Fontify Java @annotations with c-preprocessor-face-name instead of
+ c-annotation-face. Protect against a one line change
+ misfontifying an annotation as a variable declaration. Fix a
+ "minor" bug.
+
+ (c-annotation-face): Remove
+ (c-basic-matchers-before): Move the stanza for Java @annotations
+ here from c-basic-matchers-after. Replace c-annotation-face by
+ c-preprocessor face name.
+ (c-font-lock-enclosing-decls): Check that
+ c-opt-block-decls-with-vars-key is non-nil before using it.
+
+ annotations-1.face: recalculate this file.
+
+2011-09-15 Alan Mackenzie
+
+ * cc-defs.el (top level): Add a test for the existence of
+ delete-dups.
+ * cc-fix.el (top level): (defun delete-dups) when necessary.
+
+2011-09-13 Alan Mackenzie
+
+ * admin/index.php, admin/release.php: Update version to 5.32.1
+
+2011-09-12 Alan Mackenzie
+
+ * ChangeLog: Update for patch release 5.32.1.
+
+ * cc-defs.el (c-version): Increment to 5.32.1
+
+2011-09-12 Alan Mackenzie
+
+ * Patch release 5.32.1
+
+ * cc-defs (c-version): Increment to 5.32.1
+
+2011-09-11 Alan Mackenzie
+
+ * cc-defs.el (c-emacs-features): add-local-hook-test: Put a
+ save-excursion round the buffer manipulation. Error detected by
+ XEmacs byte compiler.
+
+2011-09-04 Alan Mackenzie
+
+ * cc-fonts.el: Reapply the change up to revision 5.232.
+
+2011-09-04 Alan Mackenzie
+
+ * cc-menus.el: Reapply the change up to revision 5.87.
+
+2011-09-03 Alan Mackenzie
+
+ * All .el files: Correct the copyright and license statements for
+ release 5.32.
+
+ * cc-defs.el (c-next-single-property-change)
+ (c-search-backward-char-property): For XEmacs, only use
+ next/previous-single-char-property-change in versions >=
+ 2005-01-25
+
+2011-09-03 Alan Mackenzie
+
+ Restore to the state of Release_5_32.
+
+2011-08-28 Alan Mackenzie
+
+ * cc-fonts.el: Fix - typing on a C++ inher-intro or inher-cont
+ line should preserve the fontification of the inherited class
+ names. Analogously for namespace names and Java import, extends,
+ etc.
+
+ * cc-fonts.el (c-make-font-lock-BO-decl-search-function): New
+ function.
+ (c-basic-matchers-after - "Fontify the clauses after various
+ keywords"): Extract the three keyword lists for the 3 erroneous
+ constructs from the list of four, and use the new function above
+ in place of an old one.
+
+2011-08-27 Alan Mackenzie
+
+ * cc-menus.el (cc-imenu-c++-generic-expression): Make it handle
+ function pointer parameters properly.
+
+2011-08-24 Alan Mackenzie
+
+ Update the "recent changes" pointer to 5.32.
+
+2011-08-22 Alan Mackenzie
+
+ * Release 5.32
+
+ Use `make-local-hook' only when it's needed.
+
+ * cc-defs.el (c-emacs-features): Add 'add-hook-local into c-emacs-features
+ when make-local-hook is required.
+
+ * cc-mode.el (c-basic-common-init, c-font-lock-init): Test c-emacs-features
+ for 'add-hook-local.
+
+ * cc-styles.el (c-make-styles-buffer-local): Test c-emacs-features for
+ 'add-hook-local.
+
+
+ * cc-defs.el (c-search-forward-char-property): Streamline by using
+ c-next-single-property-change.
+
+ * cc-engine.el: Correct typos.
+
+2011-08-20 Alan Mackenzie
+
+
+ Resolve invalid use of a regexp in regexp-opt.
+
+ * cc-fonts.el (c-complex-decl-matchers): Add in special detection for a
+ java annotation.
+
+ * cc-engine.el (c-forward-decl-or-cast-1): Add in special detection for a
+ java annotation.
+
+ * cc-langs.el (c-prefix-spec-kwds-re): Remove the special handling for
+ java.
+ (c-modifier-kwds): Remove the regexp "@[A-za-z0-9]+".
+
+ * cc-fonts.el: Tidy up font locking of a long CPP construct.
+
+ * cc-fonts.el (c-guess-font-lock-context): eliminate this somewhat pompous
+ defun.
+ (c-font-lock-complex-decl-prepare): replace a call to the above with
+ inline code.
+
+
+ Fontify CPP expressions correctly when starting in the middle of such a
+ construct. Mainly for when jit-lock etc. starts a chunk here.
+
+ * cc-fonts.el (c-font-lock-context): new buffer local variable.
+ (c-make-font-lock-search-form): new function, extracted from
+ c-make-font-lock-search-function.
+ (c-make-font-lock-search-function): Use the above function.
+ (c-make-font-lock-context-search-function): New function.
+ (c-cpp-matchers): Enhance the preprocessor expression case with the above
+ function
+ (c-font-lock-complex-decl-prepare): Test for being in a CPP form which
+ takes an expression.
+
+ * cc-langs.el (c-cpp-expr-intro-re): New lang-variable.
+
+2011-08-16 Alan Mackenzie
+
+ * cc-cmds.el (c-electric-lt-gt): Remove an unused dynamic variable.
+
+
+ Reduce the number of compilation warnings:
+
+ * cc-awk.el (c-awk-get-NL-prop-cur-line): Replace `delete-backward-char' by
+ `delete-char'.
+
+ * cc-cmds.el (c-electric-lt-gt, c-beginning-of-defun): Remove unused
+ dynamic variables.
+
+ * cc-engine.el (top level): Add a cc-bytecomp-defun and a
+ cc-bytecomp-defvar.
+ (c-ssb-lit-begin, c-forward-<>-arglist-recur):
+ (c-just-after-func-arglist-p, c-looking-at-decl-block):
+ (c-append-to-state-cache): Remove unused dynamic variables.
+
+ * cc-fonts.el (c-font-lock-enum-tail): Remove an unused dynamic variable.
+
+ * cc-guess.el (top level): Add three cc-bytecomp-defvars.
+
+ * cc-menus.el (cc-imenu-objc-function): Remove an unused dynamic variable.
+
+ * cc-mode.el (top level): Add three cc-bytecomp-defvars.
+
+ * tests/macro-27.cc, tests/macro-27.face, tests/macro-27.res:
+ Test "macros with semicolons".
+
+2011-08-15 Alan Mackenzie
+
+
+ Adapt recent changes to work with XEmacs.
+
+ * cc-cmds.el (c-where-wrt-brace-construct): Replace a looking-at with
+ a call to c-looking-at-non-alphnumspace, because XEmacs doesn't have
+ \s!.
+ (c-defun-name): Adapt a regexp not to use \_>.
+
+ * cc-defs.el (c-next-single-property-change): new macro.
+ (c-<-as-paren-syntax, c->-as-paren-syntax: Adapt for use as a simple
+ value (as well as for category properties).
+ (c-put-property-fun, c-put-char-property): wrap in eval-and-compile.
+ (c-use-category): new compile-time constant.
+ (c-search-forward-char-property):
+ (c-clear-char-property-with-value-function):
+ (c-clear-char-property-with-value-function, c-mark-<-as-paren):
+ (c-mark->-as-paren, c-unmark-<->-as-paren): small changes.
+ (c-sc-scan-lists-no-category+1+1, c-sc-scan-lists-no-category+1-1):
+ (c-sc-scan-lists-no-category-1-1, c-sc-scan-lists-no-category-1-1):
+ (c-sc-scan-lists, c-sc-parse-partial-sexp-no-category):
+ (c-sc-parse-partial-sexp): new macrofications of scan-lists and
+ parse-partial-sexp, for use in c-parse-state.
+ (c-looking-at-non-alphnumspace): new macro.
+ (c-emacs-features): Introduce new component category-properties.
+
+ * cc-engine.el (several defuns): Replace next-single-property-change by
+ c-next-single-property-change.
+ (c-state-cache-non-literal-place): Correct, to avoid the inside of
+ macros.
+ (c-state-balance-parens-backwards):
+ (c-append-lower-brace-pair-to-state-cache, c-state-push-any-brace-pair):
+ (c-append-to-state-cache, c-remove-stale-state-cache):
+ (c-remove-stale-state-cache-backwards): Replace scan-lists by
+ c-sc-scan-lists and parse-partial-sexp by c-sc-parse-partial-sexp.
+ (c-invalidate-state-cache, c-parse-state): small changes.
+ (c-find-decl-spots): Enhance initialisation of cfd-prop-match to take
+ account of a possible c-decl-end c-type property on the last token before
+ the region.
+ (c-clear-<-pair-props, c-clear->-pair-props): use c-unmark-<->-as-paren.
+ (c-before-change-check-<>-operators): Search for syntax-table rather than
+ category property.
+
+ * cc-fonts.el (c-skip-comments-and-strings): Use
+ c-next-char-propery-change.
+ (c-cpp-matchers): Use c-unmark-<->-as-paren.
+ (c-font-lock-invalid-string): Use characterp rather than integerp in
+ XEmacs, since characters are not integers.
+
+ * cc-mode.el (c-neutralize-syntax-in-and-mark-CPP): Test for category
+ properties (i.e. GNU Emacs) before deleting them.
+ (c-before-change): replace next-single-property-change by
+ c-next-single-property-change.
+ (c-after-change): Make an Emacs dependent category property related
+ correction dependent on the existence of category properties.
+
+2011-07-26 Alan Mackenzie
+
+ * tests/bitfield-2.c, tests/bitfield-2.face, tests/bitfield-2.res:
+ bitfield-2.c: New file to test awkward fontification of bitfields.
+
+
+ Fontify bitfield declarations properly.
+
+ * cc-langs.el (c-has-bitfields): New lang variable.
+ (c-symbol-chars): Now exported as a lang variable.
+ (c-not-primitive-type-keywords): New lang variable.
+
+ * cc-fonts.el (c-font-lock-declarations): Jump over the QT keyword "more"
+ to prevent "more slots: ...." being spuriously parsed as a bitfield
+ declaraion.
+
+ * cc-engine.el (c-beginning-of-statement-1): Refactor and enhance to handle
+ bitfield declarations.
+ (c-punctuation-in): New function.
+ (c-forward-decl-or-cast-1): Enhance CASE 3 to handle bitfield
+ declarations properly.
+
+2011-07-22 Alan Mackenzie
+
+
+ Prevent cc-langs.elc being loaded at run time.
+
+ * cc-mode.el: Remove two autoload forms which loaded cc-langs.
+
+ * cc-langs.el (c-make-init-lang-vars-fun): Don't emit "(require 'cc-langs)".
+ Quote a form so it will evaluate at (cc-mode's) compilation time.
+
+2011-07-21 Alan Mackenzie
+
+
+ Fontify declarators properly when, e.g., a jit-lock chunk begins inside a
+ declaration.
+
+ * cc-langs.el (c-symbol-chars): Correct a typo.
+
+ * cc-fonts.el (c-font-lock-enclosing-decls): New function.
+ (c-complex-decl-matchers): Insert reference to
+ c-font-lock-enclosing-decls.
+
+ * cc-engine.el (c-backward-single-comment, c-backward-comments): Bind
+ open-paren-in-column-0-is-defun-start to nil around calls to
+ (forward-comment -1).
+
+2011-07-15 Alan Mackenzie
+
+ * cc-mode.texi, cc-styles.el, Makefile, cc-guess.el, cc-langs.el, cc-mode.el:
+
+ * cc-guess.el: Update this and Make it an integral part of CC Mode.
+
+ * cc-langs.el (c-mode-menu): Added "Style..." submenu.
+
+ * cc-styles.el (cc-choose-style-for-mode): New function derived from
+ `c-basic-common-init'.
+
+ * cc-mode.el (top-level): Require cc-guess. (c-basic-common-init): Use
+ `cc-choose-style-for-mode'.
+
+ * cc-mode.texi (Guessing the Style): New page. (Styles): Add a short
+ introduction to above.
+
+ Makefile: Change the position of cc-guess.el.
+
+2011-06-27 Alan Mackenzie
+
+ * cc-engine.el, tests/templates-19.cc:
+ cc-engine (c-guess-continued-construct): Correct the handling of
+ template-args-cont, particularly for when font lock is disabled. Name
+ this case as "CASE G".
+
+ templates-19.c: Reindent.
+
+2011-06-15 Alan Mackenzie
+
+ * cc-fonts.el (c-font-lock-declarations):
+ 1: Whilst checking for declarators, disable
+ knr checking to speed up for normal files. 2: Refactor, replacing a
+ sequence of nested if forms by a cond form.
+
+2011-03-06 Alan Mackenzie
+
+ * cc-engine.el (c-guess-basic-syntax):
+ Move CASE 19 to a different place, correctly to
+ process template-args-cont lines.
+
+2011-02-27 Alan Mackenzie
+
+ * cc-engine.el (c-guess-continued-construct): In three places, replace
+ `lim' with 'containing-sexp'.
+
+ * cc-engine.el (c-guess-continued-construct):
+ In three places, replace `paren-state'
+ with 'containing-sexp'.
+
+
+ Fix an infinite loop which happens when a template construct straddles a
+ jit-lock boundary.
+
+ * cc-engine.el (c-forward-<>-arglist-recur): recast nested `if's as a
+ `cond' form.
+
+ * cc-fonts.el (c-font-lock-declarations): Remove a harmful narrowing to
+ region being fontified.
+
+2011-02-20 Alan Mackenzie
+
+ * cc-engine.el (c-state-literal-at):
+ Prevent positions in macros finding their way into
+ c-state-nonlit-pos-cache. Strengthen the comments.
+ (c-state-dump): New commented out diagnostic routine.
+
+ * cc-cmds.el: Eliminate some infinite loops:
+ (c-forward-over-illiterls): On encountering a bare '#' step forward over
+ it.
+ (c-end-of-statement): Set macro-end correctly at the end of a loop.
+
+2010-12-28 Nathaniel Flath
+
+ * cc-engine.el (c-guess-continued-construct):
+ used 'paren-state' instead of 'lim' to fix byte-compile warnings.
+
+2010-12-12 Alan Mackenzie
+
+ * cc-engine.el (c-forward-type):
+ Before scanning a template arglist, check that the
+ current language supports this.
+
+2010-10-31 Alan Mackenzie
+
+ * cc-cmds.el (c-mask-paragraph): Fix an off-by-1 error.
+
+2010-10-30 Alan Mackenzie
+
+ * cc-fonts.el (c-font-lock-declarations):
+ Cache the result of the call to
+ c-beginning-of-decl-1 inside the internal lambda. This is for speed.
+ (c-font-lock-enum-tail): New function which fontifies the tail of an enum.
+ (c-basic-matchers-after): Insert a call to the above new function.
+
+2010-10-24 Nathaniel Flath
+
+ * cc-engine.el: Patch to fix templates-19.cc test
+
+2010-10-10 Alan Mackenzie
+
+ * cc-mode.el (c-before-change, c-after-change):
+ Move the setting of c-new-BEG and
+ c-new-END from c-before-change to c-after-change.
+
+2010-10-08 Alan Mackenzie
+
+
+ Together with the previous patch, enhance fontification of declarators to
+ take account of the presence/absence of "typedef".
+
+ * cc-engine.el (c-forward-type): New &optional param "brace-block-too".
+ (c-forward-decl-or-cast-1): cdr of return value now indicates the
+ presence of either or both of a "struct"-like keyword and "typedef".
+
+ * cc-fonts.el (c-complex-decl-matchers): Remove the heuristic fontification
+ of declarators which follow a "}".
+
+ * cc-langs.el (c-typedef-kwds c-typedef-key): New lang variable for
+ "typedef".
+ (c-typedef-decl-key): New lang varaible built from c-typedef-decl-kwds.
+
+ * cc-mode.el (c-advise-fl-for-region): Don't restrict to AWK Mode any more.
+
+2010-10-06 Alan Mackenzie
+
+ * cc-fonts.el (c-font-lock-declarations):
+ Fontify declarators according to the
+ presence/absence of "typedef".
+
+ * tests/class-21.face, tests/decls-33.c, tests/decls-33.face, tests/decls-8.cc, tests/decls-8.face, tests/templates-4.face, tests/typedef-1.face:
+ CC Mode now correctly fontifies declarators according to the
+ presence/absence of "typedef". Adapt the test files accordingly.
+
+2010-09-20 Nathaniel Flath
+
+ * cc-engine.el: Moved case 19 out of case 7
+
+2010-09-15 Alan Mackenzie
+
+ * cc-engine.el (c-forward-<>-arglist-recur): Fix an infinite recursion.
+
+ * cc-engine.el (c-forward-<>-arglist-recur): Correct the indentation.
+
+2010-08-06 Alan Mackenzie
+
+ * cc-cmds.el (c-mask-paragraph, c-fill-paragraph):
+ Fix for the case that a C style
+ comment has its delimiters alone on their respective lines.
+
+2010-08-01 Alan Mackenzie
+
+ * cc-align.el, cc-cmds.el, cc-defs.el, cc-engine.el, cc-mode.el, cc-mode.texi, cc-vars.el:
+ Eliminate some warning messages when Emacs 23 is used to compile them.
+
+2010-07-31 Alan Mackenzie
+
+ * cc-cmds.el (c-mask-paragraph): Fix auto-fill bug.
+
+2010-07-21 Alan Mackenzie
+
+ * tests/000tests.el, tests/annotations-1.face, tests/annotations-1.java, tests/annotations-1.res, tests/enum-6.face, tests/enum-6.java, tests/enum-6.res, tests/foreach.face, tests/foreach.java, tests/foreach.res, tests/generics-1.face, tests/generics-1.java, tests/java-varargs.face, tests/java-varargs.java, tests/java-varargs.res, cc-engine.el, cc-fix.el, cc-fonts.el, cc-langs.el, cc-menus.el, cc-mode.el, cc-mode.texi, cc-vars.el, cc-defs.el:
+ Integrate java-0-1 branch: Enhance Java Mode to handle Java 5.0 (Tiger)
+ and Java 6 (Mustang). Contributed by Nathanial Flath.
+
+2010-07-20 Alan Mackenzie
+
+ * cc-defs.el, cc-engine.el, cc-fix.el, cc-fonts.el, cc-langs.el, cc-menus.el, cc-mode.el, cc-mode.texi, cc-vars.el, tests/000tests.el, tests/annotations-1.face, tests/annotations-1.java, tests/annotations-1.res, tests/enum-6.face, tests/enum-6.java, tests/enum-6.res, tests/foreach.face, tests/foreach.java, tests/foreach.res, tests/generics-1.face, tests/generics-1.java, tests/java-varargs.face, tests/java-varargs.java, tests/java-varargs.res:
+ Integrate java-0-1 branch: Enhance Java Mode to handle Java 5.0 (Tiger)
+ and Java 6 (Mustang). Contributed by Nathanial Flath.
+
+2010-07-18 Alan Mackenzie
+
+ * tests/comments-6.c, cc-mode.el:
+ Enhance `c-file-style' in file/directory local variables.
+
+ * cc-mode.el (c-count-cfss): New function.
+ (c-before-hack-hook): Call `c-set-style' differently according to whether
+ c-file-style was set in file or directory local variables.
+
+ tests/comments-6.c. Enter Emacs-24 as a version in which to ignore this
+ test.
+
+2010-07-13 Nathaniel Flath
+
+ * cc-mode.texi: Fixed chaotic braces in 'Java Symbols'.
+
+2010-06-30 Nathaniel Flath
+
+ * cc-mode.texi: Added more detail on new syntactic constructs
+
+2010-06-20 Alan Mackenzie
+
+
+ Fix an indentation bug with templates.
+
+ * cc-mode.el (c-common-init): Initialise c-new-BEG/END.
+ (c-neutralize-syntax-in-and-mark-CPP): c-new-BEG/END: Take account of
+ existing values.
+
+ * cc-engine.el (c-clear-<-pair-props-if-match-after)
+ (c-clear->-pair-props-if-match-before): now return t when they've cleared
+ properties, nil otherwise.
+ (c-before-change-check-<>-operators): Set c-new-beg/end correctly by
+ taking account of the existing value.
+
+ * cc-defs.el (c-clear-char-property-with-value-function): Fix this
+ to clear the property rather than overwriting it with nil.
+
+ * cc-mode.el (c-before-hack-hook):
+ When the mode is set in file local variables, set it
+ first.
+
+2010-05-28 Alan Mackenzie
+
+ * cc-engine.el, cc-langs.el, cc-mode.texi, cc-vars.el, cc-cmds.el:
+ Amend the handling of c-beginning/end-of-defun in nested declaration
+ scopes.
+
+ * cc-vars.el (c-defun-tactic): Move here from cc-langs.el. Change it to a
+ defcustom.
+
+ * cc-mode.texi (Movement Commands): Document `c-defun-tactic'. Document
+ the new handling of nested scopes for movement by defuns.
+
+ * cc-langs.el (c-defun-tactic): Move this variable to cc-vars.el.
+ (c-nonlabel-token-2-key): New variable for change in cc-engine.el.
+
+ * cc-engine.el (c-beginning-of-statement-1): Prevent "class foo : bar"
+ being spuriously recognized as a label.
+
+ * cc-cmds.el (c-narrow-to-most-enclosing-decl-block): Add parameter
+ `inclusive' (to include enclosing braces in the region).
+ (c-widen-to-enclosing-decl-scope): New function.
+ (c-while-widening-to-decl-block): New macro.
+ (c-beginning-of-defun, c-end-of-defun): Change algorithm to keep going
+ outward for defun boundaries, and correspondingly change symbol
+ `respect-enclosure' to `go-outward'.
+ (c-declaration-limits): Change algorithm to report only the "innermost"
+ defun's boundaries.
+
+2010-05-25 Nathaniel Flath
+
+ * cc-mode.texi:
+ Added descriptions of annotation-top-cont and annotation-var-cont into the manual.
+
+2010-05-22 Nathaniel Flath
+
+ * cc-fonts.el, cc-mode.el:
+ Moved annotation highlighting from java-mode to c-basic-matchers-after.
+
+2010-05-21 Alan Mackenzie
+
+ * cc-engine.el (c-parse-state-get-strategy): Replace parameter `here' with
+ `here-' and `here-+', which sandwich any pertinent CPP construct.
+
+ (c-remove-stale-state-cache-backwards): Fix a bug which happens when
+ doing (c-parse-state) in a CPP construct: Exclude any "new" CPP construct
+ from taking part in the scanning.
+
+2010-05-21 Nathaniel Flath
+
+ * cc-langs.el, tests/generics-1.face, cc-engine.el:
+ Fixed problem where Java Generics were not always fontified.
+
+2010-05-19 Nathaniel Flath
+
+ * cc-langs.el, tests/generics-1.face, tests/generics-1.java, cc-engine.el:
+ Fixed unit tests for template expressions and declarations. Still a few broken ones in the new unit tests for Java generics.
+
+2010-05-18 Nathaniel Flath
+
+ * cc-langs.el, tests/annotations-1.face, tests/annotations-1.java, tests/annotations-1.res, cc-engine.el:
+ Fixed the bugs in annotation highlighting; annotation unit tests are now passing.
+
+ Also reindented c-forward-<>-arglist-recur and made a few changes that fixed some bugs in generic handline, but those unit tests are not entirely passing.
+
+2010-05-17 Alan Mackenzie
+
+ * tests/annotations-1.face:
+ file annotations-1.face was added on branch Branch_5_31 on 2010-07-20 20:41:14 +0000
+
+ * tests/annotations-1.java:
+ file annotations-1.java was added on branch Branch_5_31 on 2010-07-20 20:41:14 +0000
+
+ * tests/annotations-1.res:
+ file annotations-1.res was added on branch Branch_5_31 on 2010-07-20 20:41:14 +0000
+
+ * tests/enum-6.face:
+ file enum-6.face was added on branch Branch_5_31 on 2010-07-20 20:41:14 +0000
+
+ * tests/enum-6.java:
+ file enum-6.java was added on branch Branch_5_31 on 2010-07-20 20:41:14 +0000
+
+ * tests/enum-6.res:
+ file enum-6.res was added on branch Branch_5_31 on 2010-07-20 20:41:14 +0000
+
+ * tests/foreach.face:
+ file foreach.face was added on branch Branch_5_31 on 2010-07-20 20:41:14 +0000
+
+ * tests/foreach.java:
+ file foreach.java was added on branch Branch_5_31 on 2010-07-20 20:41:14 +0000
+
+ * tests/foreach.res:
+ file foreach.res was added on branch Branch_5_31 on 2010-07-20 20:41:14 +0000
+
+ * tests/generics-1.face:
+ file generics-1.face was added on branch Branch_5_31 on 2010-07-20 20:41:14 +0000
+
+ * tests/generics-1.java:
+ file generics-1.java was added on branch Branch_5_31 on 2010-07-20 20:41:14 +0000
+
+ * tests/java-varargs.face:
+ file java-varargs.face was added on branch Branch_5_31 on 2010-07-20 20:41:14 +0000
+
+ * tests/java-varargs.java:
+ file java-varargs.java was added on branch Branch_5_31 on 2010-07-20 20:41:14 +0000
+
+ * tests/java-varargs.res:
+ file java-varargs.res was added on branch Branch_5_31 on 2010-07-20 20:41:14 +0000
+
+2010-05-17 Nathaniel Flath
+
+ * cc-engine.el, cc-fonts.el, cc-langs.el, cc-vars.el, tests/000tests.el, tests/annotations-1.face, tests/annotations-1.java, tests/annotations-1.res, tests/enum-6.face, tests/enum-6.java, tests/enum-6.res, tests/foreach.face, tests/foreach.java, tests/foreach.res, tests/generics-1.face, tests/generics-1.java, tests/java-varargs.face, tests/java-varargs.java, tests/java-varargs.res:
+ Added unit tests for new Java 1.5 constructs, as well as a few bug and formatting fixes.
+
+ Most of the issues brought up by Alan's CR have been fixed, with the
+ exception of annotations being font-locked in java-mode.
+ Additionally, most of the broken tests were fixed, at the cost of the
+ a few of the new unit tests not passing.
+
+ * tests/annotations-1.face, tests/annotations-1.java, tests/annotations-1.res, tests/enum-6.face, tests/enum-6.java, tests/enum-6.res, tests/foreach.face, tests/foreach.java, tests/foreach.res, tests/generics-1.face, tests/generics-1.java, tests/java-varargs.face, tests/java-varargs.java, tests/java-varargs.res:
+ New file.
+
+2010-04-29 Alan Mackenzie
+
+ * cc-mode.el (c-extend-region-for-CPP):
+ Fix an off-by-one error (EO-macro position).
+
+2010-04-28 Nathaniel Flath
+
+ * cc-engine.el:
+ Improved c-forward-annotation to handle annotations with arglists properly.
+
+ * cc-vars.el, cc-engine.el:
+ Added two syntactic contexts to support annotations in java.
+
+ The first, annotation-top-cont, represents a topmost continuation where the only items preceding the current line are annotations. An example is:
+ @Test
+ _ public void testFoo() {}
+
+ The second is annotation-var-cont, representing a statement continuation where the only preceding items are annotations, such as:
+ class Test {
+ public static void main() {
+ @SuppressWarnings
+ _int i;
+ }
+ }
+
+2010-04-27 Nathaniel Flath
+
+ * cc-engine.el: Fixed indentation.
+
+ * cc-engine.el:
+ Added support for for:each loops and fixed a few bugs this uncovered in generic highlighting.
+
+2010-04-26 Alan Mackenzie
+
+ * cc-align.el, cc-awk.el, cc-cmds.el, cc-defs.el, cc-engine.el, cc-fix.el, cc-langs.el, cc-lobotomy.el, cc-menus.el, cc-styles.el, cc-vars.el:
+ Replace leading spaces by characters throughout the source.
+
+ * cc-awk.el, cc-cmds.el, cc-defs.el, cc-engine.el, cc-fix.el, cc-fonts.el, cc-langs.el, cc-lobotomy.el, cc-menus.el, cc-styles.el, cc-vars.el, cc-align.el:
+ Replace leading spaces by s, synched with java-0-1-merge-3.
+
+ * cc-awk.el, cc-cmds.el, cc-defs.el, cc-engine.el, cc-fix.el, cc-langs.el, cc-lobotomy.el, cc-menus.el, cc-styles.el, cc-vars.el, cc-align.el:
+ Replace leading spaces by characters throughout source.
+
+ * cc-mode.texi, cc-mode.el, cc-engine.el:
+ Merge from Branch_5_31, tag java-0-1-merge-2.
+
+2010-04-24 Nathaniel Flath
+
+ * cc-engine.el, cc-fonts.el, cc-langs.el:
+ Added correct fontification for Java generics and varargs.
+
+2010-03-25 Alan Mackenzie
+
+ * cc-mode.texi (Other Indentation):
+ State that functions on c-special-indent-hook are
+ called with no parameters and with point on the current line.
+
+2010-03-23 Nathaniel Flath
+
+ * cc-fonts.el, cc-mode.el, cc-vars.el:
+ Renamed java-annotation-face to c-annotation-face and moved it to cc-fonts.el
+
+2010-03-22 Alan Mackenzie
+
+ * cc-engine.el: *** empty log message ***
+
+ * cc-engine.el (c-remove-stale-state-cache): Fix an off-by-one error.
+
+2010-03-12 Alan Mackenzie
+
+ * cc-mode.el: *** empty log message ***
+
+ * cc-mode.el:
+ Guard against the Emacs core spuriously calling before-change-functions
+ twice in succession.
+ (c-just-done-before-change): New flag
+ (c-before-change): Test and set the new flag before executing anything.
+ (c-after-change): Clear the flag.
+
+2010-03-11 Alan Mackenzie
+
+ * cc-fonts.el, cc-langs.el, cc-mode.el, tests/inher-5.res, tests/inher-6.res, tests/templates-16.res, tests/templates-5.res, tests/templates-7.res, tests/templates-8.res, cc-cmds.el, cc-defs.el, cc-engine.el:
+ Merge from BRANCH_5_31, tag java-0-1-merge-1.
+
+2010-03-01 Alan Mackenzie
+
+ * cc-engine.el: *** empty log message ***
+
+ * cc-engine.el (c-remove-stale-state-cache):
+ Correct the previous patch.
+
+ * cc-engine.el: *** empty log message ***
+
+ * cc-engine.el (c-remove-stale-state-cache):
+ Take account of when `good-pos' is in the same
+ macro as `here'.
+
+ * cc-engine.el, cc-mode.el: *** empty log message ***
+
+
+
+ * cc-mode.el (c-common-init): In the funcall, replace the erroneous `beg',
+ `end' with (point-min), (point-max).
+ (c-after-change): After (e.g.) C-y, remove the 'syntax-table text props
+ that Emacs has converted from 'category text props.
+
+ * cc-engine.el (c-clear-<-pair-props, c-clear->-pair-props): Clear the
+ 'category text property, not the 'syntax-table one.
+
+2010-02-19 Nathaniel Flath
+
+ * cc-engine.el, cc-fonts.el, cc-langs.el, cc-mode.el, cc-vars.el:
+ Removed trailing whitespace from cc-vars and cc-engine, and fixed typo (xJava -> Java)
+
+2010-02-04 Alan Mackenzie
+
+ * cc-engine.el, cc-mode.el: *** empty log message ***
+
+
+
+ * cc-mode.el (c-common-init): Use c-get-state-before-change-functions in
+ place of c-get-state-before-change-function. Update some comments about
+ this.
+
+ * cc-engine.el: Update some comments about
+ c-get-state-before-change-function.
+
+ * cc-cmds.el, cc-defs.el, cc-engine.el, cc-langs.el, cc-mode.el:
+
+ *** empty log message ***
+
+
+ Change strategy for marking < and > as template delimiters: mark them
+ strictly in matching pairs.
+
+ * cc-mode.el (c-before-change): Use c-get-state-before-change-functions.
+
+ * cc-langs.el (c-no-parens-syntax-table): New syntax table, used for
+ searching syntactically for matching s.
+ (c-get-state-before-change-functions): New language variable (note the
+ plural) which supersedes c-get-state-before-change-function.
+
+ * cc-engine.el (c-clear-<-pair-props, c-clear->-pair-props)
+ (c-clear-<>-pair-props, c-clear-<-pair-props-if-match-after)
+ (c-clear->-pair-props-if-match-before)
+ (c-before-change-check-<>-operators): new functions.
+ (c-after-change-check-<>-operators): Use macro c-unmark-<->-as-paren.
+
+ * cc-defs.el (c-search-backward-char-property): New macro.
+
+ * cc-cmds.el (c-electric-lt-gt): Do not set text properties on < and > any
+ more. (These will be handled by font locking.)
+
+2010-01-25 Nathaniel Flath
+
+ * cc-mode.el, cc-vars.el: Highlighting for Java annotation usage
+
+2010-01-21 Alan Mackenzie
+
+ * cc-engine.el: *** empty log message ***
+
+ * cc-engine.el:
+ Fix a situation where deletion of a cpp construct throws an error.
+ (c-invalidate-state-cache): Before invoking
+ c-with-all-but-one-cpps-commented-out, check that the special cpp
+ construct is still in the buffer.
+ (c-parse-state): Record the special cpp with markers, not numbers.
+
+ * cc-defs.el: *** empty log message ***
+
+ * cc-defs.el:
+ typing '#' in an empty C buffer throws "args out of range".
+ (c-set-cpp-delimiters, c-clear-cpp-delimiters): Check for EOB playing the
+ role of delimiter.
+
+2010-01-19 Nathaniel Flath
+
+ * cc-langs.el: Highlight annotations as types
+
+ * cc-mode.el, cc-langs.el: highlighting of @interface in java-mode
+
+2010-01-06 Nathaniel Flath
+
+ * cc-menus.el:
+ Fixed issue with cc-imenu-java-generic-expression not handling array arguments properly
+
+2009-12-31 Nathaniel Flath
+
+ * cc-langs.el:
+ Fix for enum indentation in Java. Aligns all enum options on the same column.
+
+ * cc-langs.el: Added proper highlighting for java enums
+
+2009-12-10 Alan Mackenzie
+
+ * tests/templates-19.cc, tests/templates-19.res:
+ Test template use in statements when the templates span line breaks.
+
+ * tests/inher-5.res, tests/inher-6.res, tests/templates-16.res, tests/templates-5.res, tests/templates-7.res, tests/templates-8.res:
+ Amend for the second anchor point just added to template-args-cont.
+
+
+ Handle templates continued over line breaks in statements. Refactor
+ c-syntactic-skip-backward. Make text property `category' rear
+ non-sticky.
+
+ * cc-mode.el (c-basic-common-init): make text property `category' rear
+ non-sticky.
+
+ * cc-engine.el (c-ssb-lit-begin): New defsubst, extracted from ....
+ (c-syntactic-skip-backward): Refactor, extracting the above.
+ (c-guess-basic-syntax CASEs 5D.3, 5L): Add extra anchor point;
+ (c-guess-basic-syntax CASE 19): New CASE to handle template
+ construct continued over line boundary.
+ (c-guess-basic-syntax CASE 7): don't trigger on '<'.
+
+2009-12-03 Alan Mackenzie
+
+ Enhance `c-parse-state' to run efficiently in "brace desserts".
+ cc-mode.el (c-basic-common-init): Call c-state-cache-init.
+ (c-neutralize-syntax-in-and-mark-CPP): Renamed from
+ c-extend-and-neutralize-syntax-in-CPP. Mark each CPP construct by
+ placing `category' properties value 'c-cpp-delimiter at its
+ boundaries.
+
+ * cc-langs.el (c-before-font-lock-function):
+ c-extend-and-neutralize-syntax-in-CPP has been renamed
+ c-neutralize-syntax-in-and-mark-CPP.
+
+ * cc-fonts.el (c-cpp-matchers): Mark template brackets with
+ `category' properties now, not `syntax-table' ones.
+
+ * cc-engine.el (c-syntactic-end-of-macro): A new enhanced (but
+ slower) version of c-end-of-macro that won't land inside a literal
+ or on another awkward character.
+ (c-state-cache-too-far, c-state-cache-start)
+ (c-state-nonlit-pos-interval, c-state-nonlit-pos-cache)
+ (c-state-nonlit-pos-cache-limit, c-state-point-min)
+ (c-state-point-min-lit-type, c-state-point-min-lit-start)
+ (c-state-min-scan-pos, c-state-brace-pair-desert)
+ (c-state-old-cpp-beg, c-state-old-cpp-end): New constants and
+ buffer local variables.
+ (c-state-literal-at, c-state-lit-beg)
+ (c-state-cache-non-literal-place, c-state-get-min-scan-pos)
+ (c-state-mark-point-min-literal, c-state-cache-top-lparen)
+ (c-state-cache-top-paren, c-state-cache-after-top-paren)
+ (c-get-cache-scan-pos, c-get-fallback-scan-pos)
+ (c-state-balance-parens-backwards, c-parse-state-get-strategy)
+ (c-renarrow-state-cache)
+ (c-append-lower-brace-pair-to-state-cache)
+ (c-state-push-any-brace-pair, c-append-to-state-cache)
+ (c-remove-stale-state-cache)
+ (c-remove-stale-state-cache-backwards, c-state-cache-init)
+ (c-invalidate-state-cache-1, c-parse-state-1)
+ (c-invalidate-state-cache): New defuns/defmacros/defsubsts.
+ (c-parse-state): Enhanced and refactored.
+ (c-debug-parse-state): Amended to deal with all the new
+ variables.
+
+ * cc-defs.el (c-<-as-paren-syntax, c-mark-<-as-paren)
+ (c->-as-paren-syntax, c-mark->-as-paren, c-unmark-<->-as-paren):
+ modify to use category text properties rather than syntax-table
+ ones.
+ (c-suppress-<->-as-parens, c-restore-<->-as-parens): new defsubsts
+ to switch off/on the syntactic paren property of C++ template
+ delimiters using the category property.
+ (c-with-<->-as-parens-suppressed): Macro to invoke code with
+ template delims suppressed.
+ (c-cpp-delimiter, c-set-cpp-delimiters, c-clear-cpp-delimiters):
+ New constant/macros which apply category properties to the start
+ and end of preprocessor constructs.
+ (c-comment-out-cpps, c-uncomment-out-cpps): defsubsts which
+ "comment out" the syntactic value of characters in preprocessor
+ constructs.
+ (c-with-cpps-commented-out)
+ (c-with-all-but-one-cpps-commented-out): Macros to invoke code
+ with characters in all or all but one preprocessor constructs
+ "commented out".
+
+2009-11-23 Nathaniel Flath
+
+ * cc-menus.el:
+ Updating cc-imenu-java-generic-expression in order to match Java1.6 methods with generics and annotations.
+
+2009-09-25 Alan Mackenzie
+
+ * cc-langs.el (c-nonlabel-token-key): Allow quoted character constants (as
+ case labels).
+
+ * cc-engine.el (c-beginning-of-statement-1): Correct buggy bracketing.
+
+2009-09-24 Alan Mackenzie
+
+ * cc-cmds.el (c-scan-conditionals):
+ A new function like c-forward-conditionals, but it
+ doesn't move point and doesn't set the mark.
+ (c-up-conditional, c-up-conditional-with-else, c-down-conditional)
+ (c-down-conditional-with-else, c-backward-conditional)
+ (c-forward-conditional): Refactor to use c-scan-conditionals.
+
+ * cc-bytecomp.el (cc-bytecomp-ignore-obsolete):
+ In Emacs 23, byte-compile-warnings isn't
+ always a list any more. Use new function byte-compile-disable-warning
+ here.
+
+2009-08-26 Alan Mackenzie
+
+ * admin/release.php:
+ Update and clarify the current status of the 5.31.n releases.
+
+ * cc-defs.el (c-version):
+ increment the version number to 5.31.8.prerelease.
+
+2009-07-24 Alan Mackenzie
+
+ * cc-mode.el, cc-mode.texi:
+ Whilst initialising a mode, make any explicit setting of a variable take
+ precedence over one done via c-file-style/c-file-offsets.
+
+ * cc-mode.el (c-before-hack-hook, c-postprocess-file-styles): give
+ c-set-style a DONT-OVERRIDE parameter of t in each function.
+
+ * cc-mode.texi (Config Basics, File Styles): Amend documentation.
+
+2009-06-29 Alan Mackenzie
+
+ * cc-cmds.el (c-mask-paragraph):
+ Remove a spurious correction between the visible
+ width of TABs and their number of bytes, so that point is undisturbed
+ after typing a space, when there are tabs just before "*/".
+
+2009-06-10 Alan Mackenzie
+
+ Introduce "font lock contexts", to enable (in particular) jit-lock to fontify
+ correctly when starting in the middle of a construct. Implement this for CPP
+ expressions.
+
+ * cc-langs.el (c-cpp-expr-intro-re): New variable.
+
+ * cc-fonts.el (c-guess-font-lock-context): New function.
+ (c-font-lock-context): New buffer local variable.
+ (c-make-font-lock-search-form): New function, extracted from
+ c-make-font-lock-search-function.
+ (c-make-font-lock-search-function): Use the above function.
+ (c-make-font-lock-context-search-function): New function.
+ (c-cpp-matchers): Enhance the preprocessor expression case as above.
+ (c-font-lock-complex-decl-prepare): Call c-guess-font-lock-context.
+
+2009-05-21 Alan Mackenzie
+
+
+ * cc-langs.el (c-before-font-lock-function): Change the name of an entry
+ to c-extend-and-neutralize-syntax-in-CPP.
+
+ * cc-mode.el (c-basic-common-init): Set
+ font-lock-extend-after-change-region-function to
+ c-extend-after-change-region for Emacs 22 and later.
+ (c-before-hack-hook): Correct "hack-local-variables-alist" to
+ "file-local-variables-alist".
+ (c-extend-and-neutralize-syntax-in-CPP): Renamed from
+ c-neutralize-syntax-in-CPP; it now extends the font lock region by
+ setting c-new-BEG and c-new-END.
+ (c-font-lock-init): Remove initialization of obsolete variable
+ font-lock-lines-before.
+ (c-extend-after-change-region): New function.
+ (c-advise-fl-for-region): Generated code now extends f-l region for any
+ CC Mode, not just AWK Mode.
+
+ * cc-fonts.el, cc-engine.el:
+ Undo the last change, which was ill thought out, apart from the macro
+ c-search-forward-char-property and some enhancements to comments.
+
+2009-05-18 Alan Mackenzie
+
+
+ * cc-fonts.el (c-font-lock-invalid-cpp-string-matcher): New function.
+
+ (c-basic-matchers-before): New clause to fontify invalid strings in a CPP
+ construct.
+
+ * cc-engine.el: Update some commenting.
+
+ * cc-defs.el (c-search-forward-char-property): new macro.
+
+2009-04-30 Alan Mackenzie
+
+ Enhancements for Objective-C:
+
+ * cc-vars.el: (c-objc-method-arg-min-delta-to-bracket,
+ c-objc-method-arg-unfinished-offset, c-objc-method-parameter-offset): New
+ variables.
+ (c-offsets-alist): Use c-lineup-ObjC-method-call-colons in entry for
+ objc-method-call-cont.
+
+ * cc-langs.el: (c-constant-kwds): New ObjC keywords "YES", "NO",
+ "NS_DURING", "NS_HANDLER", "NS_ENDHANDLER".
+
+ * cc-align.el: (c-lineup-ObjC-method-call-colons): New function.
+
+ * cc-menus.el: (cc-imenu-objc-function): Remove calls of
+ imenu-progress-message.
+
+2009-03-06 Alan Mackenzie
+
+ * cc-defs.el, cc-engine.el, cc-fonts.el, cc-langs.el, cc-mode.texi, cc-vars.el:
+ Amend to indent and fontify macros "which include their own semicolon"
+ correctly, using the "virtual semicolon" mechanism.
+
+ * cc-defs.el: Update "virtual semicolon" comments.
+
+ * cc-engine.el (c-crosses-statement-barrier-p): Recoded to scan one line at
+ at time rather than having \n and \r explicitly in c-stmt-delim-chars
+ (for some modes, e.g. AWK).
+ (c-forward-label): Amend for virtual semicolons.
+ (c-at-macro-vsemi-p, c-macro-vsemi-status-unknown-p): New functions
+
+ * cc-fonts.el (c-font-lock-declarations): Take account of the new C macros.
+
+ * cc-langs.el (c-at-vsemi-p-fn, c-vsemi-status-unknown-p-fn): move to
+ earlier in the file.
+ (c-opt-cpp-symbol, c-line-comment-start-regexp): New language variables.
+ (c-opt-cpp-macro-define): Make into a full language variable.
+ (c-stmt-delim-chars, c-stmt-delim-chars-with-comma): Special value for
+ AWK Mode (including \n, \r) removed, no longer needed.
+
+ * cc-mode.el (c-mode, c++-mode, objc-mode): Invoke
+ c-make-macro-with-semi-re. (Erroneously committed early, in previous
+ version, 5.259.)
+
+ * cc-vars.el (c-macro-with-semi-re, c-macro-names-with-semicolon): New
+ variables.
+ (c-make-macro-with-semi-re): New function
+
+ * cc-mode.texi (Indentation Commands): Mention "macros with semicolons".
+ (Other Special Indentations): Add an xref to "Macros with ;".
+ (Customizing Macros): Add stuff about syntax in macros. Add an xref to
+ "Macros with ;".
+ (Macros with ;): New page.
+
+2009-02-21 Alan Mackenzie
+
+ * cc-engine.el, cc-langs.el:
+ Allow (compile time) expressions in case clauses.
+
+ * tests/switch-16.c, tests/switch-16.res: New file.
+
+ * tests/switch-16.c, tests/switch-16.res:
+ Test files for "case :".
+
+2009-02-13 Alan Mackenzie
+
+ * cc-cmds.el (c-defun-name): Widen, so it works on a narrowed region.
+
+2009-02-08 Alan Mackenzie
+
+ * cc-defs.el (c-emacs-features):
+ Check the working of beginning/end-of-defun-function
+ more rigorously before setting argumentative-bod-function.
+
+2009-01-05 Alan Mackenzie
+
+ * cc-styles.el (c-setup-paragraph-variables):
+ Ensure paragraph-\(start\|separate\) match
+ blank lines. For AWK Mode.
+
+2008-11-07 Alan Mackenzie
+
+ * tests/000tests.el (cc-test-extend-faces):
+ When two faces aren't distinct, display a
+ `message' rather than throwing an `error', a barely understood kludge to
+ allow interactive use of 000tests.el.
+
+ (do-all-tests): reset buffer *cc-test-log* to read/write after calling
+ `compilation-mode'.
+
+ * tests/top-4.res, tests/statement-15.res, tests/macro-8.res, tests/macro-7.res, tests/macro-3.res, tests/comments-4.res, tests/bracelist-11.res, tests/access-labels-qt-1.res:
+ Correct the syntactical analysis of subsequent macro continuation lines.
+ They are now never 'cpp-define-intro'.
+
+2008-11-03 Alan Mackenzie
+
+ * cc-engine.el (c-forward-label):
+ Handle the new QT macros Q_SLOTS and Q_SIGNALS.
+
+2008-10-19 Alan Mackenzie
+
+ * cc-langs.el (c-recognize-<>-arglists):
+ Enable this, crudely, for java. This will
+ enable certain constructs with generics to be recognized, although it
+ won't correctly handle the general use of generics.
+
+2008-10-17 Alan Mackenzie
+
+ * cc-cmds.el (c-defun-name):
+ Make it work for "struct foo bar [] = { ...".
+
+2008-10-13 Alan Mackenzie
+
+ * cc-cmds.el (c-indent-region):
+ Fix previous patch so that the function works on
+ one-line macros.
+
+2008-10-07 Alan Mackenzie
+
+ * cc-mode.el (c-before-hack-hook):
+ New hook function for new hook (in Emacs 23)
+ (top level): Use this new hook if it's there, otherwise use
+ hack-local-variables-hook.
+
+ * cc-mode.el (c-mode-base-map):
+ Don't bind C-m-[ae] to c-{beginning,end}-of-defun when
+ the current Emacs version passes a parameter to
+ {beginning,end}-of-defun-function.
+
+ * cc-engine.el (c-literal-type, c-forward-decl-or-cast-1, c-at-toplevel-p):
+ Amend doc
+ strings.
+ (c-forward-decl-or-cast-1): Add in comments like "CASE 1", "CASE 2", ...
+ which will later (hopefully) be fleshed out with detailed comments.
+
+ * cc-cmds.el (c-indent-region):
+ Fix so that indenting a macro followed by blank lines
+ doesn't backslash the following non-blank line into the macro.
+
+ * cc-align.el (c-lineup-respect-col-0): New function.
+
+ * cc-styles.el (c-style-alist "ellemtel"):
+ Move arglist-cont-nonempty into
+ c-hanging-braces-alist.
+ Change some `mapcar's into `mapc's.
+
+2008-10-05 Alan Mackenzie
+
+ * cvstest.txt: Initial commision.
+
+ * cvstest.txt: New file.
+
+2008-10-02 Alan Mackenzie
+
+ * cc-fonts.el (c-font-lock-declarations): For "if (a<0 || b>99)", set
+ c-restricted-<>-arglists to t, so that the innards aren't treated as a
+ template bracket enclosure. Also refactor the code here.
+
+2008-08-12 Alan Mackenzie
+
+ * cc-defs.el (c-emacs-features):
+ set `argumentative-bod-function' when the Emacs core
+ passes ARG through to `beginning-of-defun-function'.
+
+2008-06-28 Alan Mackenzie
+
+ * cc-engine.el (c-beginning-of-statement-1): Improve the doc string.
+
+ * cc-langs.el (c-defun-tactic): New language variable defining BO-defun.
+ (This was already being used, although not defined.)
+
+ * cc-cmds.el (c-where-wrt-brace-construct): Fix problem with "labels" (e.g.
+ "private:") at the top level.
+
+2008-06-19 Alan Mackenzie
+
+ * cc-engine.el (c-guess-basic-syntax CASE 5D.5):
+ Fix an infinite loop on invalid syntax.
+
+2008-05-24 Alan Mackenzie
+
+ * cc-mode.el (c-postprocess-file-styles):
+ Throw an error if c-file-style is set to a
+ non-string.
+ (c-neutralize-syntax-in-CPP): Optimize for speed.
+
+2008-05-22 Alan Mackenzie
+
+ * cc-engine.el (c-guess-basic-syntax, CASE 5B.1):
+ Fix off-by-1 error, comparing position
+ of ':' with BOL.
+
+2008-05-02 Alan Mackenzie
+
+ * cc-mode.texi (Class Symbols): Correct a typo.
+
+ * cc-fonts.el (c-font-lock-declarations):
+ In "if (Bool *b = f())", fontify "Bool" as a
+ type.
+ Also enhance the commenting significantly.
+
+2008-04-17 Alan Mackenzie
+
+
+ * cc-langs.el (c-type-decl-prefix-key): C++ bit: move
+ "\(const\|throw\|volatile\)\>" nearer the start of the regexp, so that
+ these keywords aren't wrongly matched as identifiers.
+
+ * cc-fonts.el (c-font-lock-declarators): In (match-beginning 2), "2" ->
+ "3", corresponding to the change in c-type-decl-prefix-key.
+ (c-font-lock-maybe-decl-faces): Rearranged the header comments.
+
+ * cc-engine.el (c-find-decl-spots): Rearranged the header comments.
+ (c-forward-decl-or-cast-1): (i) In (match-beginning 2), "2" -> "3",
+ corresponding to the change in c-type-decl-prefix-key. (ii) Remove a
+ check for a semicolon at the end of a function declaration: this causes
+ C++ constructor declarations to be fontified before the semicolon is
+ typed.
+
+ * cc-defs.el (c-version): increment the version number to 5.31.6.
+
+2008-04-15 Alan Mackenzie
+
+ * cc-langs.el (c-modified-constant): new language constant: matches, e.g.
+ "L'a'".
+
+ * cc-engine.el (c-beginning-of-statement-1): modify to handle "case L'a':".
+
+ * cc-fonts.el (c-font-lock-complex-decl-prepare):
+ Remove (most) c-type properties also
+ from the last token _before_ the (font-lock) region, not just those
+ actually inside it.
+
+ Enhance some of the commenting.
+
+2008-04-12 Alan Mackenzie
+
+ * admin/anoncvs.php, admin/compat.php, admin/index.php, admin/lists.php, admin/release.php:
+ Update to current admin state.
+
+2008-04-10 Alan Mackenzie
+
+ * cc-mode.texi (c-offsets-alist):
+ Correct typos ("c-set-offsets" -> "c-set-offset",
+ twice).
+
+2008-04-06 Alan Mackenzie
+
+ * cc-langs.el (c-before-font-lock-function):
+ Correct a typo in the doc string.
+
+2008-04-05 Alan Mackenzie
+
+
+ * cc-engine.el, cc-mode.texi:
+
+
+ * cc-cmds.el (c-defun-name, c-cpp-define-name): New commands, primarily to
+ support (X)Emacs's C-x 4 a (`add-change-log-entry-other-window') and
+ friends.
+
+ * cc-langs.el (c-opt-cpp-macro-define-start): Add a regexp submatch to
+ match the #define's name.
+
+ * cc-mode.el (c-neutralize-syntax-in-CPP):
+ Remove a superfluous right parenthesis.
+
+ * cc-mode.texi, cc-engine.el:
+
+ * cc-engine.el (c-in-knr-argdecl): In a suspected K&R region, scan at most
+ 20 brace/paren pairs. This prevents a drastic slowdown in files (e.g.
+ Emacs's lisp.h) where there are many consecutive declarations without a
+ brace block.
+
+ * cc-mode.texi ("Limitations and Known Bugs") Document this restriction.
+
+ * cc-vars.el (c-constant-symbol):
+ put `save-excursion' round this function.
+
+2008-03-01 Alan Mackenzie
+
+ * cc-mode.el (c-neutralize-syntax-in-CPP): Fix coding bug.
+
+ * cc-langs.el (c-before-font-lock-function):
+ Fix bug in doc-string, "c-old-LEN" ->
+ "c-old-END".
+
+2008-02-25 Alan Mackenzie
+
+ * cc-mode.el (c-neutralize-syntax-in-CPP):
+ Fix a bug on typing "#" at EOB.
+
+2008-02-23 Alan Mackenzie
+
+ Set of changes so that "obtrusive" syntactic elements in a C/C++/ObjC
+ preprocessor line (e.g. an unbalanced string quote or unmatched paren) don't
+ interact syntactically with stuff outside the CPP line.
+
+ * cc-awk.el (c-awk-beyond-logical-line, c-awk-old-ByLL): Replace
+ c-awk-end-of-logical-line and c-awk-old-EoLL to solve an off-by-one bug.
+
+ (c-awk-record-region-clear-NL): Replaces c-awk-before-change, with a bit
+ of refactoring.
+
+ (c-awk-extend-and-syntax-tablify-region): Takes some of the functionality
+ of c-awk-advise-fl-for-awk-region, which has been refactored away.
+
+ * cc-defs.el (c-clear-char-property-with-value-function)
+ (c-clear-char-property-with-value): New function and macro which remove
+ text-properties `equal' to a supplied value.
+
+ * cc-engine.el: Comment about text properties amended.
+
+ * cc-fonts.el (c-cpp-matchers): Make it put regexp parens around
+ "error\\|warning".
+
+ * cc-langs.el (c-get-state-before-change-function)
+ (c-before-font-lock-function, c-anchored-cpp-prefix): New language
+ variables.
+ (c-cpp-message-directives): Handle "#warning" in C, C++ and ObjC.
+
+ * cc-mode.el (c-basic-common-init): C and ObjC now use
+ syntax-table text properties.
+ (c-common-init): Call language specific before/after-change functions at
+ mode initialisation.
+ (c-new-BEG, c-new-END, c-old-BOM, c-old-EOM): New variables.
+ (c-extend-region-for-CPP, c-neutralize-CPP-line)
+ (c-neutralize-syntax-in-CPP): New functions.
+ (c-before-change, c-after-change): Call the new language specific change
+ functions defined in cc-langs.el.
+ (c-advise-fl-for-region): New macro.
+ (awk-mode): Remove AWK specific stuff which has been refactored into
+ language independent stuff.
+
+2008-02-02 Alan Mackenzie
+
+ * cc-langs.el (c-specifier-key):
+ Exclude "template" from this regexp; to anchor the "{" of a
+ template function correctly on "template", not the following "<".
+
+ * cc-engine.el (c-guess-basic-syntax, CASE 5A.5):
+ Anchor the "{" of a template function
+ correctly on "template", not the following "<".
+
+ (c-guess-basic-syntax, CASE 5H): prevent a macro call inside a struct
+ being recognised as a K&R argument.
+
+ * cc-align.el, cc-awk.el, cc-cmds.el, cc-defs.el, cc-styles.el:
+ Correct typos, remove WS, rephrase doc-strings/comments a little.
+
+2008-01-26 Alan Mackenzie
+
+ * cc-defs.el (c-save-buffer-state):
+ Bind buffer-file-name and buffer-file-truename to
+ nil, to prevent primitives generating "buffer is read only" messages.
+
+2008-01-06 Alan Mackenzie
+
+ * cc-vars.el (defcustom-c-stylevar):
+ New version by Thien-Thi Nguyen which gets rid of
+ ugly nested backquotes.
+
+ * tests/000tests.el (do-all-tests, do-one-test):
+ bind 'enable-local-variables so as to get
+ round GNU Emacs's tighter restrictions on file local variables.
+
+ * cc-awk.el:
+ awk-escaped-nls*: Use eval-and-compile to avoid compilation error.
+
+2007-11-02 Alan Mackenzie
+
+ * admin/release.php: Explain about version 5.31.4.
+
+2007-09-22 Alan Mackenzie
+
+ * admin/links.h:
+ At an extra link to directory "manual". Rename "Documentation" to
+ "Manual", clarifying with "(html)" and "(info/PS/DVI)".
+
+2007-08-25 Alan Mackenzie
+
+ With two "namespace"s on the same line, the next line's syntactic context
+ (i) gets 2 "innamespace" elements, not 1 defun-block-intro + 1
+ innamespace;
+ (ii) the anchor points are now those of the namespace constructs, not
+ just the line's indentation.
+
+ * cc-langs.el (c-other-decl-block-key-in-symbols-alist): a new language
+ variable, an alist with elements like ("namespace" . innamespace).
+
+ * cc-engine.el (c-brace-anchor-point): New function. (c-add-stmt-syntax):
+ Give accurate anchor points for "namespace", "extern" etc., rather than
+ BOI. Fix addition of spurious syntactic-symbol 'defun-block-intro,
+ replacing it with 'innamespace, etc.
+
+2007-08-01 Alan Mackenzie
+
+ * cc-mode.texi:
+ "Mailing Lists and Bug Reports": correct "-no-site-file" to
+ "--no-site-file".
+
+2007-07-28 Alan Mackenzie
+
+ * cc-langs.el, cc-mode.el:
+ Move macro call `c-make-emacs-variables-local' from
+ c-init-language-vars-for to c-make-init-lang-vars-fun, so that it works
+ for derived modes.
+
+2007-07-13 Alan Mackenzie
+
+ * Makefile:
+ Rename target "html" to "html-raw". New "html" fixes up links to the
+ Emacs/Elisp manuals, pointing them into http://www.gnu.org.
+
+ * 2www.gnu.org.sh: Add a #! line, and a directory parameter.
+
+2007-07-12 Alan Mackenzie
+
+ * 2www.gnu.org.sh:
+ The manual has cross references to the Emacs and Elisp manuals. In the
+ HTML manual, these became broken links. This script directs those links
+ to the right places in http://www.gnu.org. (It also removes a link to a
+ manual which doesn't seem to exist online.)
+
+2007-07-11 Alan Mackenzie
+
+ * tests/access-labels-qt-1.face, tests/class-1.face, tests/class-23.face, tests/class-4.face, tests/class-9.face, tests/interface-1.face, tests/switch-1.face, tests/switch-10.face, tests/switch-12.face, tests/switch-14.face, tests/switch-15.face, tests/switch-3.face, tests/templates-1.face, tests/templates-2.face, tests/templates-3.face, tests/templates-4.face, tests/templates-6.face, tests/union-2.face:
+ Update 18 files.face to reflect the change in cc-fonts.el
+ V5.205.2.4/5.209: Keywords which are terminated by a colon (e.g.
+ default:, public:) and the analogous Objective-C keywords are now
+ fontified with font-lock-keyword-face.
+
+2007-07-05 Alan Mackenzie
+
+ * cc-defs.el (c-version):
+ Increase to 5.31.5. (5.31.4 was the version in Emacs 22.1.)
+
+2007-07-03 Alan Mackenzie
+
+ * cc-vars.el:
+ Repair the customization routines which handle alists so that it is
+ possible to insert entries for those keys which are valid, yet aren't
+ currently in the alist.
+
+ (c-constant-symbol): New defun which supersedes c-const-symbol.
+ (c-indent-comment-alist, c-hanging-braces-alist, c-hanging-colons-alist,
+ c-offsets-alist): Replace c-const-symbol by c-constant-symbol.
+
+ Make the syntactic symbol arglist-cont-nonempty a legitimate key in
+ c-hanging-braces-alist.
+
+ * cc-cmds (c-brace-newlines): Amend.
+
+ * cc-styles.el (c-style-alist): Extend all standard styles to include the
+ new element.
+
+ * cc-vars.el (c-hanging-braces-alist): Amend the default value, and the
+ customization form.
+
+ * cc-mode.el: c-before-change: Replace a "1" with "(point-min)".
+
+ * cc-cmds.el, cc-mode.el: cc-cmds.el (c-electric-slash):
+
+ * cc-mode.el (c-remove-any-local-eval-or-mode-variables):
+ Replace wrong uses of `kill-...' (which added spurious entries to the
+ kill ring) by `delete-....'.
+
+ * cc-cmds.el (c-in-function-trailer-p):
+ Fix this: when a function return type contains
+ "struct", "union", etc. c-end-of-defun goes too far forward.
+
+ * cc-subword.el (c-capitalize-subword):
+ More closely mimic the behavior of `capitalize-word'.
+ Do not move point with a negative argument. Based on tiny change by Paul
+ Curry.
+
+ * cc-subword.el (c-downcase-subword, c-upcase-subword):
+ Don't move point if ARG is
+ negative. Patch by Paul Curry.
+
+ Changes to make `narrow-to-defun' and `mark-defun' work properly
+ in CC Mode:
+
+ * cc-defs.el (c-beginning-of-defun-1):
+
+ * cc-cmds.el (c-beginning-of-defun, c-end-of-defun):
+ Bind beginning/end-of-defun-function to nil around calls to
+ beginning/end-of-defun.
+
+ * cc-langs.el (beginning-of-defun-function,
+ end-of-defun-function): New c-lang-setvar's.
+
+ * cc-awk.el (c-awk-beginning-of-defun): Add "(or arg
+ (setq arg 1))" to enable non-interactive call.
+
+ * cc-cmds.el (c-end-of-defun):
+ Tidy up, to eliminate byte-compiler warning "value
+ unused" in Emacs 22.
+
+2007-07-02 Alan Mackenzie
+
+ * cc-cmds.el (c-electric-paren):
+ Fix space-before-funcall clean-up: only insert space
+ when on identifier, etc. Patch by David Hansen.
+
+ Fix fontification of labels, and other things with ":".
+
+ * cc-engine.el (c-forward-label): The function now
+ returns 'goto-target, 'qt-2kwds-colon, 'qt-1kwd-colon, as well as the
+ former t.
+
+ * cc-fonts.el (c-font-lock-declarations): Interpret the
+ new return code from c-forward-label, fontifying tokens properly. Add
+ some general comments throughout the file.
+
+ * cc-vars.el (c-special-indent-hook): Amend doc-string to mention
+ c-syntactic-indentation.
+
+ * cc-cmds.el (c-forward-to-nth-EOF-}): Fix EOB bug.
+
+ * cc-mode.el (c-make-emacs-variables-local):
+ Use `mapcar' rather than `mapcan' to
+ silence compiler warning in GNU Emacs 22.
+
+ Remove stale tokens from `c-found-types' cache.
+
+ * cc-engine.el: (c-partial-ws-p, c-unfind-type, c-trim-found-types): New
+ functions.
+
+ * cc-mode.el: (c-unfind-enclosing-token, c-unfind-coalesced-tokens,
+ c-before-change): New functions. (c-maybe-stale-found-type): New
+ variable.
+
+2007-06-03 Alan Mackenzie
+
+ * admin/lists.php: Update the address of the cc-mode-help mailing list.
+
+2007-03-16 Alan Mackenzie
+
+ * cc-mode.texi:
+
+ * cc-styles.el: cc-align.el, cc-styles.el: New line-up function,
+ c-lineup-gnu-DEFUN-intro-cont, for the DEFUN macro in the Emacs C
+ sources. Only used in "gnu" style.
+
+
+ * cc-align.el: Correct a logistical error in the previous patch.
+
+ * cc-align.el: cc-align.el, cc-styles.el: New line-up function,
+ c-lineup-gnu-DEFUN-intro-cont, for the DEFUN macro in the Emacs C
+ sources. Only used in "gnu" style.
+
+ * cc-compat.el, cc-langs.el, cc-menus.el, cc-styles.el, cc-vars.el, cc-align.el, cc-awk.el:
+ Update the copyright statements, correct some typos, remove silly WS,
+ improve a few comments.
+
+2007-02-24 Alan Mackenzie
+
+ * cc-menus.el, cc-styles.el, cc-vars.el, cc-align.el, cc-awk.el, cc-compat.el, cc-langs.el:
+ Update the copyright statements, correct some typos, remove silly WS,
+ improve a few comments.
+
+ * cc-mode.texi: Correct lots of typos.
+ ("Getting Started"): Change a sentence to the conditional.
+ ("Movement Commands"): Add missing (@code{c-beginning/end-of defun}).
+ ("Clean-ups"): Add an example for inserting a clean-up into
+ c-cleanup-list.
+
+ * cc-mode.el (c-basic-comment-init):
+ Don't set open-paren-in-column-0-is-defun-start
+ to nil any more. Discussion in emacs-devel showed this was
+ counter-productive.
+
+ * cc-fonts.el: Added comments to c-font-lock-complex-decl-prepare,
+ c-font-lock-<>-arglists, c-font-lock-declarations, c-font-lock-c++-new,
+ explaining that they get called as font-lock "FUNCTION"s; to
+ c-font-lock-declarations (a c-lang-defconst) explaining that it dumps
+ these functions to c-matchers-3.
+
+ * cc-engine.el (c-beginning-of-current-token):
+ For no movement, return NIL, not 0.
+ (c-in-knr-argdecl): Fixed, so that it doesn't get confused by "[]" when
+ doing a C-M-a.
+
+ * cc-defs.el (c-go-list-forward, c-go-list-backward): New macros.
+
+ * cc-cmds.el (c-where-wrt-brace-construct):
+ correct the handline of K&R regions; C-M-a
+ was fouling up in them.
+ (c-indent-line): Change the notion of "whitespace" used for , so
+ that a ^L doesn't get swallowed.
+ (c-mask-paragraph): Correct the handling of unclosed C-style comments,
+ (for when auto-fill-mode is enabled).
+ (c-indent-new-comment-line): With M-j in an empty C-style comment,
+ correct the final position of point.
+
+2006-11-12 Alan Mackenzie
+
+ Fix clean-up space-before-funcall so that it doesn't split the identifer
+ from the parentheses in "#define foo(..)".
+
+ * cc-langs.el (c-opt-cpp-macro-define-id): new language variable.
+
+ * cc-engine.el (c-forward-over-cpp-define-id): new function.
+
+ * cc-cmds.el (c-electric-paren): Amend the function.
+
+2006-11-08 Alan Mackenzie
+
+ * README: Tell XEmacs users they need the "advice" package.
+
+ * tests/access-labels-qt-1.res, tests/bracelist-11.res, tests/comments-4.res, tests/macro-3.res, tests/macro-7.res, tests/macro-8.res, tests/statement-15.res, tests/top-4.res:
+ Correct the syntactical analysis of subsequent macro continuation lines.
+ They are now never 'cpp-define-intro'.
+
+ * tests/macro-23.c, tests/macro-23.res: New file.
+
+ * tests/macro-23.c, tests/macro-23.res:
+ New test case for plain statements as the continuation lines of a macro.
+
+ * tests/macro-27.c, tests/macro-27.res:
+ A new test case for a wierd mixture of invalid syntax with CPP, labels,
+ and an escaped newline.
+
+ * tests/macro-27.c, tests/macro-27.res: New file.
+
+ * cc-engine.el:
+ (i) (c-guess-basic-syntax, case 5N): Check the format of c-state-cache is
+ valid for an optimisation before using it.
+ (ii) (c-guess-basic-syntax): New case 5Q "we are at a statement within a
+ macro". Other changes so that only the first continuation line in a
+ macro gets the symbol `cpp-define-intro', the others get `statement', or
+ whatever.
+
+ * cc-mode.texi ("Limitations and Known Bugs"):
+ Document problems with eval-after-load
+ and a workaround.
+
+2006-07-20 Alan Mackenzie
+
+ Introduce macro c-lang-setvar (sister to c-lang-defvar) to set standard
+ Emacs variables (like comment-start) to language dependent values, yet
+ without spuriously "defvar"ing them.
+
+ * cc-langs.el (c-emacs-variable-inits): new variable.
+ (c-lang-setvar): new macro.
+ (c-make-init-lang-vars-fun): Use the initialization forms in
+ c-emacs-variable-inits in addition to those in c-lang-variable-inits.
+ (comment-start, comment-end, comment-start-skip): Change these from
+ c-lang-defvar's to c-lang-setvar's
+
+ * cc-mode.el (c-make-emacs-variables-local): new macro, which calls
+ make-local-variable on the elements of c-emacs-variable-inits.
+ (c-init-language-vars-for): Call this macro.
+
+2006-07-19 Alan Mackenzie
+
+ * cc-cmds.el, cc-mode.texi:
+
+ * cc-mode.texi ("Filling and Breaking"): Amend the doc for
+ c-context-line-break.
+
+ * cc-mode.texi, cc-cmds.el:
+
+ * cc-cmds.el (c-context-line-break): When invoked within a string, preserve
+ whitespace. Add a backslash only when also in a macro.
+
+ * cc-mode.texi ("Filling and Breaking"): Amend the doc for
+ c-context-line-breaak.
+
+2006-07-10 Alan Mackenzie
+
+ * cc-defs.el: cc-defs.el. Correct typos.
+
+
+ * cc-awk.el, cc-fonts.el: Move awk-font-lock-keywords from cc-fonts.el back
+ to cc-awk.el to eradicate an eval-after-load, at the request of RMS.
+
+2006-07-06 Alan Mackenzie
+
+ * cc-cmds.el (c-context-line-break): don't indent the new line after an
+ escaped EOL in a string.
+
+2006-07-03 Alan Mackenzie
+
+ * tests/label-10.c, tests/label-10.res:
+ label-10.{c,res}: Recognise "foo:" as a label when it directly follows "else",
+ "do", ....
+
+ * tests/label-10.c, tests/label-10.c~, tests/label-10.res: New file.
+
+ * tests/label-10.c, tests/label-10.c~, tests/label-10.res:
+ label-10.{c,res}: Recognise "foo:" as a label when it directly follows "else",
+ "do", ....
+
+ * cc-engine.el (c-forward-label): Recognise "foo:" as a label when it
+ directly follows "else", "do", ....
+
+2006-07-01 Alan Mackenzie
+
+ * tests/templates-18.cc, tests/templates-18.res: New file.
+
+ * tests/templates-18.cc, tests/templates-18.res:
+ templates-18.{cc,res}: tolerate empty angle brackets (as
+ seen in "explicit specialisations" of templates).
+
+
+ * cc-engine.el (c-looking-at-decl-block): tolerate empty angle brackets (as
+ seen in "explicit specialisations" of templates).
+
+2006-05-16 Alan Mackenzie
+
+ * admin/anoncvs.php, admin/links.h:
+ Update the CVS server name to "cc-mode.cvs.sourceforge.net".
+
+ * admin/anoncvs.php, admin/links.h:
+ Update the CVS server to "cc-mode.cvs.sourceforge.net".
+
+2006-05-14 Alan Mackenzie
+
+ * admin/anoncvs.php:
+ Update the CVS host (following a SourceForge upgrade).
+
+2006-04-29 Alan Mackenzie
+
+ * cc-mode.texi, cc-vars.el:
+
+ * cc-vars.el (c-indentation-style): Mention c-file-style in the doc-string.
+
+ * cc-mode.texi ("Choosing a Style"): Mention c-file-style.
+
+
+ * cc-cmds.el (c-mask-paragraph): Fix for C comments, when the comment ender
+ looks like "=========*/" and is alone on its line.
+
+
+ * cc-langs.el, cc-engine.el: Correct the spelling of
+ c-opt-op-identiTier-prefix, t -> f. Leave an alias for the old name.
+
+ * cc-mode.texi, cc-mode.el:
+
+ * cc-mode.el: Bind C-M-a and C-M-e to c-\(beginning\|end\)-of-defun by
+ default.
+
+ * cc-mode.texi ("Movement Commands", "Sample .emacs File"): Document this.
+
+
+ * cc-align.el, cc-styles.el: New line-up function,
+ c-lineup-gnu-DEFUN-intro-cont, for the DEFUN macro in the Emacs C
+ sources. Only used in "gnu" style.
+
+2006-04-14 Alan Mackenzie
+
+ * admin/release.php:
+ Correct a link from http://download.sourceforge.net/.... to
+ http://PRdownloadS.sourceforge.net/...
+
+ * cc-cmds.el (c-electric-slash):
+ Extend the handling of clean-up comment-close-slash
+ also to work when there's a comment terminator on the line.
+ (c-beginning-of-defun, c-end-of-defun): Refactor and optimise these for
+ large arg - only take account of top level {..}, except for initial and
+ final adjustments. M-- C-M-[ae] now go to the right defuns when the
+ starting point is between defuns. They use the four new functions:
+ (c-in-function-trailer-p, c-where-wrt-brace-construct,
+ c-backward-to-nth-BOF-{, c-forward-to-nth-EOF-}): new functions to
+ support c-\(beginning\|end\)-of-defun.
+
+ * cc-engine.el (c-forward-label):
+ Analyze ":" expressions more rigorously, to exclude
+ bit-field specifiers from being classed as labels.
+ (c-forward-label): When analyzing a ":" within a macro, be careful about
+ using c-forward-syntactic-ws at the macro beginning.
+ (c-beginning-of-decl-1): Whilst searching for "=" as evidence of a stmt
+ boundary, check for "operator=", etc.
+
+2006-04-13 Alan Mackenzie
+
+ * tests/access-labels-qt-1.cc, tests/access-labels-qt-1.face, tests/access-labels-qt-1.res:
+ Jazz up the QT "slots:" declarations by inserting comments and macros
+ into them.
+
+ * cc-mode.texi ("Other Commands"):
+ Move c-set-style (C-c .) here from "Choosing a
+ Style".
+ ("Styles"): Add @dfn{style}.
+
+ * Makefile (docs: target):
+ Add a line to build cc-mode.XEMACS.info.tar.gz.
+
+ * ChangeLog: Correct a typo.
+
+2006-02-19 Alan Mackenzie
+
+ * cc-defs.el (c-emacs-features): Don't assume point-min==1.
+
+ * NEWS, cc-cmds.el, cc-mode.el, cc-mode.texi:
+ Rename c-hungry-backspace to c-hungry-delete-backwards, at the request of
+ RMS. Leave the old name as an alias.
+
+ * cc-awk.el: Correct a typo.
+
+ * admin/changes-531.php:
+ Rename c-hungry-backspace to c-hungry-delete-backwards, at the request of
+ RMS. Leave the old name as an alias.
+
+ * cc-mode.texi:
+ (i) Correct the definition of c-beginning-of-defun, to include the
+ function header within the defun.
+ (ii) Two minor amendments from Savannah.
+
+ * cc-fix.el:
+ In the test for a broken (XEmacs) font-lock-compile-keywords, exclude GNU
+ Emacs, whose CVS version would now signal an error.
+
+ * cc-fix.el, cc-guess.el, cc-lobotomy.el, cc-styles.el, cc-subword.el, cc-vars.el, cc-align.el, cc-awk.el, cc-bytecomp.el, cc-cmds.el, cc-compat.el, cc-defs.el, cc-engine.el, cc-fonts.el, cc-langs.el, cc-menus.el, cc-mode.el:
+ (i) Add 2006 to the copyright statement.
+ (ii) Correct a typo in cc-mode.el.
+
+ * cc-mode.texi: (i) Add 2006 to the copyright.
+ (ii) Correct two typos.
+
+ * cc-defs.el: Update the version string to "5.31.4".
+
+2006-02-18 Alan Mackenzie
+
+ * admin/index.php, admin/release.php: Update for release 5.31.3.
+
+ * ChangeLog: Fixed last minute bug in cc-mode.el.
+
+ * cc-mode.el (c-postprocess-file-styles):
+ bind inhibit-read-only to t, around the call
+ to c-remove-any-local-eval-or-mode-variables, so that it works on a RO
+ file.
+
+2006-02-18 Alan Mackenzie
+
+ * ChangeLog: Update for release 5.31.3.
+
+2006-02-18 Alan Mackenzie
+
+ * Release 5.31.3
+
+2006-02-18 Alan Mackenzie
+
+ * cc-mode.el (c-postprocess-file-styles): bind inhibit-read-only
+ to t, around the call to
+ c-remove-any-local-eval-or-mode-variables, so that it works on a
+ RO file.
+
+2006-02-17 Alan Mackenzie
+
+ * cc-defs.el (c-emacs-features): Don't assume point-min==1.
+
+ * cc-awk.el: Correct a typo.
+
+2006-02-15 Alan Mackenzie
+
+ * admin/changes-531.php, cc-mode.texi, NEWS, cc-cmds.el,
+ cc-mode.el: Rename c-hungry-backspace to
+ c-hungry-delete-backwards, at the request of RMS. Leave the old
+ name as an alias.
+
+2006-02-11 Alan Mackenzie
+
+ * cc-mode.texi:
+ (i) Correct the definition of c-beginning-of-defun, to include the
+ function header within the defun.
+ (ii) Two minor amendments from Savannah.
+
+ * cc-fix.el: In the test for a broken (XEmacs)
+ font-lock-compile-keywords, exclude GNU Emacs, whose CVS version
+ would now signal an error.
+
+2006-02-10 Alan Mackenzie
+
+ * cc-fix.el, cc-guess.el, cc-lobotomy.el, cc-styles.el,
+ cc-subword.el, cc-vars.el, cc-langs.el, cc-menus.el, cc-mode.el,
+ cc-fonts.el, cc-bytecomp.el, cc-cmds.el, cc-compat.el, cc-defs.el,
+ cc-engine.el, cc-awk.el, cc-align.el:
+ (i) Add 2006 to the copyright statement.
+ (ii) Correct a typo in cc-mode.el.
+
+ * cc-mode.texi: (i) Add 2006 to the copyright.
+ (ii) Correct two typos.
+
+2006-02-09 Alan Mackenzie
+
+ * cc-defs.el: Update the version number to 5.31.3.
+
+2006-02-02 Alan Mackenzie
+
+ * cc-cmds.el (c-electric-brace): Fix clean-up brace-else-brace
+ (error due to mbeg, mend being undefined).
+
+2006-02-01 Alan Mackenzie
+
+ * cc-mode.el: File Local variables: Solve the problem where both
+ `mode' and c-file-offsets are specified: `mode' will overwrite
+ c-f-o's settings:
+ (c-remove-any-local-eval-or-mode-variables): new function.
+ (c-postprocess-file-styles): call the above new function, within
+ c-tentative-buffer-change, to splat `mode' and `eval' before the
+ second hack-local-variables.
+
+2006-01-31 Alan Mackenzie
+
+ * cc-mode.el:
+ [Alternative patch to GNU Emacs: cc-engine.el V 1.45]
+ (c-after-change): Protect the match data with save-match-data. It
+ was getting corrupted by c-after-change-check-<>-operators.
+
+ * cc-defs.el: [3 Patches from GNU Emacs: savannah V 1.3[678]:
+ (top level): Check for a buggy font-lock-compile-keywords ONLY in
+ XEmacs. GNU Emacs 22 now has a check which would throw an error
+ here.
+ (c-emacs-features): Use (point-min) and (point) rather than
+ hard-coded 1, in case the buffer is narrowed.
+
+ * cc-awk.el (c-awk-after-change): Protect the match data with
+ save-match-data. It was being corrupted when Font Lock was not
+ enabled.
+
+2006-01-25 Alan Mackenzie
+
+ * ChangeLog: Update for release 5.31.2.
+
+2006-01-25 Alan Mackenzie
+
+ * Release 5.31.2
+
+2006-01-22 Alan Mackenzie
+
+ * cc-mode.texi (Comment Commands): State that C-u M-; kills any
+ existing comment.
+ (Electric Keys): Add a justification for electric indentation.
+ (Hungry WS Deletion): Clear up the names and complications of the
+ BACKSPACE and DELETE keys.
+
+2006-01-18 Alan Mackenzie
+
+ * cc-mode.el (c-basic-common-init): Concatenate the minor mode
+ indicators directly onto mode-name, removing c-submode-indicators.
+ Sometimes, c-s-i got separated from the mode name on the mode
+ line.
+
+ * cc-langs.el (c-mode-menu): Add menu items for Electric Mode and
+ Subword Mode.
+
+ * cc-engine.el: Concatenate the minor mode indicators directly
+ onto mode-name, removing c-submode-indicators. Sometimes, c-s-i
+ got separated from the mode name on the mode line.
+ (c-beginning-of-statment-1): Distinguish real labels ("case 1:" or
+ "foo:") from non-labels ("public:").
+ (c-forward-objc-directive): Replace c-forward-token-2 with crude
+ coding; c-f-t-2 doesn't move over a token at EOB.
+
+ * cc-defs.el (c-version): Update version number to 5.31.2
+
+ * cc-cmds.el (c-update-modeline): Concatenate the minor mode
+ indicators directly onto mode-name, removing c-submode-indicators.
+ Sometimes, c-s-i got separated from the mode name on the mode
+ line.
+ (c-electric-brace, c-electric-semi&comma, c-electric-colon):
+ Correct doc-strings: "/ln" -> "/la".
+
+2006-01-17 Martin Stjernholm
+
+ * cc-langs.el (c-make-init-lang-vars-fun): Improved the error
+ message when there's an evaluation error to show whether it's
+ loaded from source or not.
+ (c-filter-ops): Made it available at runtime too to work when
+ `c-make-init-lang-vars-fun' needs to evaluate from source.
+
+2005-12-06 Alan Mackenzie
+
+ * Release 5.31.1
+
+2005-12-06 Alan Mackenzie
+
+ * NEWS: Correct the spelling of Masatake YAMATO's name (with
+ apologies to him).
+
+2005-12-06 Alan Mackenzie
+
+ * cc-defs.el (c-version): <- 5.31.1
+
+ * cc-defs.el: Restore the (correct) (c-external-require 'cl).
+
+2005-11-30 Alan Mackenzie
+
+ * Release 5.31.
+
+2005-11-30 Alan Mackenzie
+
+ * cc-mode.texi: Spelling and minor typographical changes.
+
+2005-11-29 Alan Mackenzie
+
+ * cc-align.el, cc-awk.el: Spelling corrections.
+
+ * cc-cmds.el (c-electric-paren): Only call the
+ `blink-paren-function' for a CLOSE parenthesis.
+
+ * cc-defs.el: Change "(cc-external-require 'cl)" to
+ "(eval-when-compile (require 'cl))". (The change came from
+ savannah - I don't understand it.)
+
+ * cc-engine.el: Add an autoload to c-guess-basic-syntax (From
+ savannah.)
+
+ * cc-langs.el: Add "(cc-external-require 'cl)".
+
+ * cc-mode.el (c-font-lock-init): "Add (font-lock-lines-before
+ . 1)".
+
+ * cc-subword.el: Add a dummy `c-subword-mode' for Emacsen which
+ lack `define-minor-mode'. (Currently Emacs <21. We might do this
+ function properly in the future).
+
+2005-11-28 Alan Mackenzie
+
+ * cc-cmds.el, cc-defs.el, cc-styles.el, cc-vars.el: New macros
+ c-sentence-end and c-default-value-sentence end, to cope with
+ Emacs 22's new function `sentence-end'.
+
+2005-11-26 Martin Stjernholm
+
+ * cc-cmds.el (c-show-syntactic-information): Solved the compat
+ issue using `c-put-overlay' and `c-delete-overlay'.
+
+ * cc-defs.el (c-put-overlay, c-delete-overlay): New compat macros
+ to handle overlays/extents.
+
+2005-11-25 Alan Mackenzie
+
+ * cc-fix.el: Add definitions of the macros push and pop (for GNU
+ Emacs 20.4)
+
+ * cc-defs.el:
+ (i) Load cc-fix.elc for `push' and `pop' (for GNU Emacs 20.4)
+
+ * cc-cmds.el (c-show-syntactic-information): change the
+ highlighting mechanism so it will work in XEmacs too.
+
+ Remove several unused dynamic bindings.
+
+ * cc-defs.el: Insert c-int-to-char.
+
+ * cc-langs.el (c-nonsymbol-token-char-list): Insert a call to the
+ new macro c-int-to-char. This solves XEmacs's regarding
+ characters as different from integers.
+
+2005-11-25 Martin Stjernholm
+
+ * cc-fonts.el (c-make-syntactic-matcher): New internal helper.
+
+ (c-cpp-matchers, c-basic-matchers-before): Use the `eval'
+ construct to make the indirect face lookup work in XEmacs.
+
+ (c-cpp-matchers): Append the negation char face to the existing
+ fontification, so that the cpp face doesn't disappear. Use
+ `c-make-syntactic-matcher' to avoid negation chars in comments and
+ strings.
+
+2005-11-24 Martin Stjernholm
+
+ * cc-fonts.el (c-negation-char-face-name): New variable to map to
+ `font-lock-negation-char-face' in emacsen where it exists.
+
+2005-11-23 Alan Mackenzie
+
+ * cc-mode.el: Bind c-subword-mode to C-c C-w.
+
+ * cc-mode.texi:
+ (i) Document the binding C-c C-w, in "Minor Modes" and in "Subword
+ Movement".
+ (ii) Mark c-\(forward\|backward\)-into-nomenclature as superseded
+ by c-subword-mode.
+ (iii) "Config Basics": change the troublesome "@itemize @w" to
+ "@itemize @asis".
+ (iv) Eliminate the "@defvr {LIST}" construct in "Adding Styles".
+ Bring descriptions of subsidiary matters into the definition of
+ the style description by shifting an "@end".
+
+2005-11-22 Alan Mackenzie
+
+ * cc-mode.texi, cc-subword.el, cc-cmds.el, cc-mode.el: Rename
+ "c-subword-move-mode" as "c-subword-mode".
+
+ * cc-mode.texi, cc-subword.el: cc-subword.el: In
+ c-forward-subword-internal, check that the regexp doesn't match a
+ null string. This can happen, e.g., in Info Mode, where ' has the
+ syntax of a word constituent.
+
+ cc-mode.texi:
+ (i) "Subword Movement": Say that subword-move-mode is available in
+ non-CC Modes.
+ (ii) "Config Basics": Add a recommendation to beginners to use the
+ top-level setq mechanism.
+ (iii) "Config Basics": Deobfuscate the description of top-level
+ setq's.
+
+ * cc-mode.texi:
+ (i) Add a description of the various build commands
+ (e.g. makeinfo), as supplied by Robert Chassell.
+ (ii) Move description of `comment-region' from "Other Commands" to
+ "Comment Commands".
+ (iii) Remove C-c C-y (which used to be bound to
+ c-toggle-hungry-state).
+ (iv) Added a @footnote about the change of the binding C-c C-d.
+ (v) Reinstated the description of `c-toggle-auto-hungry-state'.
+
+ * cc-mode.el: Remove the binding C-c C-y for c-toggle-hungry-state
+
+ * cc-cmds.el: Reinsert c-toggle-auto-hungry-state (but with no
+ binding).
+
+2005-11-21 Alan Mackenzie
+
+ * cc-mode.el: Added tty suitable bindings for C-c and C-c
+ C-. (To the c-hungry- delete functions).
+
+2005-11-21 Martin Stjernholm
+
+ * cc-mode.el: Added autoload directive for `c-subword-move-mode'
+ for use in older emacsen.
+
+2005-11-20 Alan Mackenzie
+
+ * cc-mode.el:
+ (i) Insert a binding for C-c C-backspace into
+ c-bind-special-erase-keys which works in TTYs.
+ (ii) Make sure that when file styles are used, any explicitly
+ given style variables take priority over those in the style. Do
+ this by calling `hack-local-variables' a second time.
+
+ * cc-vars.el: Add language specific customization widgets for AWK
+ to c-doc-comment-style, c-require-final-newline and
+ c-default-style. Add a defcustom for awk-mode-hook. Give
+ c-syntactic-element and c-syntactic-context doc-strings by
+ directly setting their `variable-documentation' propery. This
+ allows Emacs 22.1 to read these with C-h v.
+
+ * cc-awk.el: Apply a tidy-up patch (from Stefan Monnier).
+
+2005-11-20 Martin Stjernholm
+
+ * cc-mode.texi: Mention gtkdoc.
+
+ * cc-mode.texi: The concept index also contains the keys. Make
+ that more obvious so that the keys are found more easily.
+
+ * cc-mode.texi: Updated the Hungry WS Deletion section on the
+ details about the C-c C- bindings etc.
+
+ * cc-mode.texi: Added a section about the subword minor mode.
+
+ * cc-fonts.el, cc-vars.el (gtkdoc-font-lock-doc-comments,
+ gtkdoc-font-lock-doc-protection, gtkdoc-font-lock-keywords):
+ GtkDoc patterns contributed by Masatake YAMATO.
+
+ (c-doc-comment-style): Made GtkDoc default in C mode.
+
+2005-11-19 Martin Stjernholm
+
+ * cc-mode.el: Fixed key bindings for C-c C- and C-c
+ C-.
+
+ (c-bind-special-erase-keys): New function for use on
+ `normal-erase-is-backspace-hook' to bind C-c C- correctly.
+
+ * cc-cmds.el (c-hungry-delete): New function to fix key
+ behavior in XEmacs according to `delete-forward-p'.
+ C.f. `c-electric-delete'.
+
+2005-11-18 Alan Mackenzie
+
+ * cc-mode.texi: DVI stuff: Remove the quotes from "GNU Emacs
+ Manual" and friends. Complete several cross references with their
+ fifth parameter (the name of the printed manual).
+
+ "Indentation Commands": Tidy up `c-indent-command', putting the
+ variables `c-tab-always-indent' and `c-insert-tab-function' inside
+ its description. Inserted some "printed manual names" into cross
+ references where they were missing. Move description of
+ `indent-for-comment' into ...
+
+ "Comment Command": A new @section under "Commands"; it contains
+ the description of `indent-for-comment'; this was taken out of
+ "Indentation Commands". Add GNU Emacs's new name `comment-dwim'
+ for this function.
+
+ "Sample .emacs File": Change "@example" to "@verbatim" so that the
+ text isn't indented. Reorder the Lisp forms.
+
+2005-11-08 Alan Mackenzie
+
+ * cc-mode.texi: "Configuration Basics": Add a note that ".emacs"
+ means "whatever initialization file you fancy". Also, another
+ note that the mode hooks are good places to put personal
+ preferences.
+
+ "Performance Issues": Remove the recommendation to put defun
+ braces at column 0, replacing it with a historical remark.
+
+ "Limitations and Known Bugs": State that C++ templates aren't yet
+ handled fully.
+
+2005-11-06 Alan Mackenzie
+
+ * cc-mode.texi: Renamed @chapter "Getting Connected" to "Getting
+ Started" and @chapter "Config Strategies" to "Config Basics".
+
+ "Getting Started": Added "quick fix" configurations for four of
+ the most common requests (c-basic-offset, c-set-style,
+ c-electric-mode, should indent NL).
+
+ "FAQ": Permuted the questions a little. Added "How can I change
+ the indent level from 4 spaces to 2 spaces?". Added several cross
+ references.
+
+2005-11-05 Alan Mackenzie
+
+ * cc-mode.el: Move c-toggle-hungry-state from "C-c C-d" to "C-c C-y". Give
+ c-hungry-backspace and c-hungry-delete-forward permanent key bindings.
+
+ * cc-mode.texi: Document the new state of affairs: Nodes changed: "Minor
+ Modes", "Hungry WS Deletion", "Sample .emacs File"
+
+ * cc-mode.texi:
+ "Style Variables": New @section explaining what style variables are and
+ how to set them.
+ "Permanent Customization": Removed this @section, since its contents have
+ been moved elsewhere.
+ "c-offsets-alist": New @section
+
+ Removed much commented out material, including @examples in the Line-Up
+ sections.
+
+ "Config Strategies": (i) Added a summary of style variables; (ii)
+ Corrected the priority of settings made by "File Local Variables";
+ (iii) Clarified and corrected how top-level `setq's interact with
+ styles; (iv) Added a terse but accurate description of the "user"
+ style.
+ "Style Variables": Took over most of the stuff from "Styles", its
+ parent. Added a @pxref to each item in the list of style variables.
+ "Built-in Styles": Corrected the description of the "user" style. Other
+ styles DO NOT inherit from it - they inherit from the factory defaults
+ in c-fallback-style.
+ "Adding Styles": Clarification of inheritance from c-fallback-style.
+
+ "Hanging Braces": Replace a tedious flowchart of what CC Mode does, with
+ a description of how to go about configuring the thing.
+ "Custom Braces": Move description of c-syntactic-context to near the
+ top of the node, and note the other three circumstances it gets bound
+ (together with @xrefs).
+ "Hanging Semicolons and Commas": Note that c-syntactic-context is bound.
+
+ "Indentation Engine Basics": Clarify first stage of indentation process.
+ "Syntactic Symbols" (and sub-nodes): Note the syntactic symbols which
+ don't have and anchor point, or have additional info in a syntactic
+ element.
+
+ "Customizing Indentation": Stuff about c-offsets-alist has been moved to
+ its own new @section.
+ "Line-Up Functions": Add a mention of the calling convention together
+ with a pointer to "Custom Line-Up".
+ "Other Indentation": Clarify the whole @section. State that File local
+ variables take precedence over all else, even settings in hooks.
+
+2005-11-04 Alan Mackenzie
+
+ * cc-cmds.el (c-mask-paragraph): Remove the "(if t ..." construct
+ which was experimentally inserted into V 5.314 (2005-08-18) to
+ minimise the patch size by not changing the indentation level.
+
+2005-11-03 Alan Mackenzie
+
+ * cc-cmds.el (c-electric-semi&comma): Bind c-syntactic-context for
+ calls to "criteria functions", for consistency with other calls to
+ user functions.
+
+2005-10-31 Alan Mackenzie
+
+ * cc-cmds.el (c-indent-command): expunge use of
+ `current-prefix-arg', since this might be the prefix arg to a
+ command which calls c-indent-command as a function. Change the
+ interactive spec from "p" to "P".
+
+2005-10-04 Alan Mackenzie
+
+ * cc-mode.texi:
+ "Minor Modes": Document the command c-toggle-syntactic-indentation.
+ "Analysis": Formalise the description of
+ c-show-syntactic-information to a quasi-@defun form. Describe the new
+ feature of highlighting anchor positions.
+ Make sure there's a blank line at the top of each node.
+
+ * cc-mode.texi: "Indentation Engine Basics":
+ (i) Rearrange the paragraphs more logically;
+ (ii) make @dfn's out of "syntactic symbol", "anchor position" and
+ "offset(s)".
+ (iii) Make an @enumeration out of the two-step indentation process.
+ (iv) Add a paragraph motivating c-syntactic-indentation, complete with a
+ reference to "Config Strategies".
+
+2005-10-02 Alan Mackenzie
+
+ * cc-mode.texi: "Custom Line-Up":
+ (i) Increase the concision of the page.
+ (ii) Comment out the example. (Maybe this should go into its own
+ @subsection.)
+ (iii) Specify precisely the conventions for a line-up function, in
+ particular, that point may not be moved.
+ (iv) Add in the suggestion that c-special-indent-hook may sometimes be a
+ better idea than line-up functions.
+ There are minor consequential changes on other pages.
+
+2005-09-18 Alan Mackenzie
+
+ * cc-mode.texi:
+ (i) Partition the over-large @section "Line-Up Functions".
+ (ii) Expand the description of c-special-indent-hook.
+ (iii) Add cross references between "Other Indentation" and "Custom
+ Line-up", emphasizing that c-special-indent-hook functions and line-up
+ functions are alternatives.
+
+2005-09-17 Alan Mackenzie
+
+ * cc-styles.el: Amend the doc-string of c-set-style, in reponse to
+ a report from Joseph Kiniry that it was difficult
+ to understand.
+
+2005-09-11 Martin Stjernholm
+
+ * cc-engine.el (c-on-identifier): Fixed bug when at the first char
+ of an identifier.
+
+ * cc-engine.el (c-on-identifier): Handle the "operator +" syntax
+ in C++.
+
+2005-09-09 Alan Mackenzie
+
+ * cc-mode.texi ("Syntactic Analysis"): Minor amendments.
+ ("Syntactic Symbols"): Partition this monster into a section with
+ thirteen subsections, each of which (more or less) illustrates a coherent
+ grouping of symbols.
+ Replace the spurious references to substatement-block-intro with
+ statement-block-intro.
+ Add @ssindex entries for those symbols missing them.
+
+2005-09-08 Alan Mackenzie
+
+ * cc-mode.texi: Some general tidying up and clarification. Also:
+ (Hooks): mention c-special-indent-hook
+ (FAQ): Commented out the question about M-[ae] going into blocks.
+
+2005-08-29 Alan Mackenzie
+
+ * cc-mode.texi:
+ 55 Changes, great and small. Most of them are minor linguistic
+ improvements, clarifications, adding xrefs, bug fixes, or the like, but
+ there are also several more notable changes:
+ (i) "Config Strategies": State which setting takes precedence when
+ conflicting settings are made (e.g. both in a style and in a hook).
+ (ii) "Config Strategies": Add a bit about "File Styles".
+ (iii) "File Styles": Fleshed out this chapter quite a bit.
+ (iv) "Mode Initialization": Removed this embryonic node (which was far
+ from complete or useful) and all references to it.
+
+2005-08-18 Alan Mackenzie
+
+ * cc-cmds.el (c-mask-paragraph): correct, so that auto-fill
+ doesn't split a c-comment's last word from a hanging "*/" when a
+ space is typed between them after fill-column.
+
+ cc-defs.el: New macro c-delete-and-extract-region.
+
+2005-06-24 Alan Mackenzie
+
+ * cc-styles.el (c-set-style, c-setup-paragraph-variables): Abort
+ the command if we're not in a CC Mode buffer.
+
+2005-06-13 Alan Mackenzie
+
+ * cc-align.el (c-lineup-C-comments): Correct indentation with
+ blank comment-prefix, and a blank line as the comment's second
+ line.
+
+2005-05-22 Martin Stjernholm
+
+ * cc-fonts.el (c-cpp-matchers, c-basic-matchers-before):
+ Incorporated the patterns added in the Emacs development branch
+ for the new Emacs 22 face `font-lock-negation-char-face'.
+
+ * cc-fonts.el (c-invalid-face-name): Use "red1" instead of "red"
+ since it stands out better in xterms and DOS terminals.
+
+ * cc-engine.el (c-literal-faces): Added
+ `font-lock-comment-delimiter-face' which is new in Emacs 22.
+
+ * 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.
+
+2005-05-08 Alan Mackenzie
+
+ * cc-mode.texi:
+ Add documention for the new electric minor mode and finish that for clean-up
+ comment-close-slash. Tidy up the structure a bit, make some minor linguistic
+ improvements. In detail:
+
+ Change "Clean-ups" from being a section of "Custom auto-newlines) to being its
+ own section, since it documents some stuff which is independent of
+ auto-nelines.
+ Change "Auto-newlines" and "Hungry WS Deletion" from being subsections of
+ "Minor Modes" to their own sections, since they're to important to hide.
+ Move "Electric Keys" alongside them, since it now bears the same
+ relationship to "Minor Modes" as "Auto-newlines" and "Hungry WS .." do.
+ "Indentation Commands": Add a convenience description of standard (X)Emacs
+ C-j.
+ "Minor Modes":
+ (i) Document the new "electric minor mode" with toggle C-c C-l, and the
+ coupling between it and c-toggle-auto-newline.
+ (ii) Remove the description of the defunct `c-toggle-auto-hungry-state'.
+ (iii) Update the description of the modeline flags.
+ (iv) Recast the node considerably in the process.
+ "Electric Keys and Keywords":
+ (i) Add a note that electric minor mode needs to be enabled for (most of)
+ the stuff here to work.
+ (ii) Mention the new clean-up comment-close-slash.
+ (iii) Note the electric actions which don't need electric minor mode to be
+ enabled.
+ "Sample .emacs File": Replace c-toggle-auto-hungry-state with
+ c-toggle-\(auto-newline\|hungry-state\).
+ "FAQ": Add an entry "How do I stop my code jumping all over the place when I
+ type?".
+
+2005-05-07 Alan Mackenzie
+
+ * cc-cmds.el: Correct previous patch to c-toggle-auto-newline.
+
+ * cc-mode.texi: Document the new clean-up `comment-close-slash'.
+
+ * cc-cmds.el: Make C-c C-a (`c-toggle-auto-newline') forcibly
+ enable c-electric-flag.
+
+2005-05-06 Alan Mackenzie