annotate etc/DISTRIB @ 106395:f2b36fb84bf7

Enhance `c-parse-state' to run efficiently in "brace desserts". * progmodes/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. * progmodes/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. * progmodes/cc-fonts.el (c-cpp-matchers): Mark template brackets with `category' properties now, not `syntax-table' ones. * progmodes/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. * progmodes/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".
author Alan Mackenzie <acm@muc.de>
date Thu, 03 Dec 2009 16:02:10 +0000
parents c90853557b90
children 1d1d5d9bd884
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
26119
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
1 -*- text -*-
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
2 For an order form for all Emacs and FSF distributions deliverable from
51419
58e60480bcdd Delete mention of etc/ORDERS file. Say VMS and Apollo systems were
Richard M. Stallman <rms@gnu.org>
parents: 51302
diff changeset
3 the USA, see http://www.gnu.org/order/order.html.
26119
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
4
32809
1e525e729760 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents: 26119
diff changeset
5 GNU Emacs availability information, October 2000
65088
f05a048483cc Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 59059
diff changeset
6
75774
dc23aaa67696 Switch to standard GPL text for license.
Glenn Morris <rgm@gnu.org>
parents: 75343
diff changeset
7 Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1995,
100972
c90853557b90 Add 2009 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 95004
diff changeset
8 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
75774
dc23aaa67696 Switch to standard GPL text for license.
Glenn Morris <rgm@gnu.org>
parents: 75343
diff changeset
9 Free Software Foundation, Inc.
dc23aaa67696 Switch to standard GPL text for license.
Glenn Morris <rgm@gnu.org>
parents: 75343
diff changeset
10 See the end of the file for license conditions.
26119
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
11
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
12
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
13 GNU Emacs is legally owned by the Free Software Foundation, but we
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
14 regard the foundation more as its custodian on behalf of the public.
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
15
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
16 In the GNU project, when we speak of "free software", this refers to
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
17 liberty, not price. Specifically, it refers to the users' freedom to
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
18 study, copy, change and improve the software. Sometimes users pay
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
19 money for copies of GNU software, and sometimes they get copies at no
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
20 charge. But regardless of how they got the software, or whether it
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
21 was modified by anyone else along the way, they have the freedom to
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
22 copy and change it--those freedoms are what "free software" means.
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
23
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
24 The precise conditions for copying and modification are stated in the
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
25 document "GNU General Public License," a copy of which is required to
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
26 be distributed with every copy of GNU Emacs. It is usually in a file
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
27 named `COPYING' in the same directory as this file. These conditions
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
28 are designed to make sure that everyone who has a copy of GNU Emacs
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
29 (including modified versions) has the freedom to redistribute and
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
30 change it.
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
31
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
32 If you do not know anyone to get a copy of GNU Emacs from, you can
32809
1e525e729760 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents: 26119
diff changeset
33 order a cd-rom from the Free Software Foundation. We distribute
1e525e729760 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents: 26119
diff changeset
34 several Emacs versions. We also distribute nicely typeset copies of
1e525e729760 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents: 26119
diff changeset
35 the Emacs user manual, Emacs Lisp Reference Manual, the Emacs
51419
58e60480bcdd Delete mention of etc/ORDERS file. Say VMS and Apollo systems were
Richard M. Stallman <rms@gnu.org>
parents: 51302
diff changeset
36 reference card, etc. See http://www.gnu.org/order/order.html.
26119
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
37
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
38 If you have Internet access, you can copy the latest Emacs
32809
1e525e729760 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents: 26119
diff changeset
39 distribution from hosts, such as ftp.gnu.org. There are several ways
1e525e729760 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents: 26119
diff changeset
40 to do this; see http://www.gnu.org/software/software.html for more
1e525e729760 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents: 26119
diff changeset
41 information.
26119
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
42
32809
1e525e729760 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents: 26119
diff changeset
43 Emacs has been run on GNU/Linux, FreeBSD, NetBSD, OpenBSD, and on many
51419
58e60480bcdd Delete mention of etc/ORDERS file. Say VMS and Apollo systems were
Richard M. Stallman <rms@gnu.org>
parents: 51302
diff changeset
44 Unix systems, on a variety of types of cpu, as well as on MSDOS,
58e60480bcdd Delete mention of etc/ORDERS file. Say VMS and Apollo systems were
Richard M. Stallman <rms@gnu.org>
parents: 51302
diff changeset
45 Windows and MacOS. It also formerly worked on VMS and on Apollo
58e60480bcdd Delete mention of etc/ORDERS file. Say VMS and Apollo systems were
Richard M. Stallman <rms@gnu.org>
parents: 51302
diff changeset
46 computers, though with some deficiencies that reflect problems in
58e60480bcdd Delete mention of etc/ORDERS file. Say VMS and Apollo systems were
Richard M. Stallman <rms@gnu.org>
parents: 51302
diff changeset
47 these operating systems. See the file `MACHINES' in this directory
58e60480bcdd Delete mention of etc/ORDERS file. Say VMS and Apollo systems were
Richard M. Stallman <rms@gnu.org>
parents: 51302
diff changeset
48 (see above) for a full list of machines that GNU Emacs has been tested
58e60480bcdd Delete mention of etc/ORDERS file. Say VMS and Apollo systems were
Richard M. Stallman <rms@gnu.org>
parents: 51302
diff changeset
49 on, with machine-specific installation notes and warnings.
26119
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
50
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
51 Note that there is significant variation between Unix systems
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
52 supposedly running the same version of Unix; it is possible that what
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
53 works in GNU Emacs for me does not work on your system due to such an
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
54 incompatibility. Since I must avoid reading Unix source code, I
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
55 cannot even guess what such problems may exist.
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
56
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
57 GNU Emacs is distributed with no warranty (see the General Public
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
58 License for full details, in the file `COPYING' in this directory (see
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
59 above)), and neither I nor the Free Software Foundation promises any
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
60 kind of support or assistance to users. The foundation keeps a list
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
61 of people who are willing to offer support and assistance for hire.
32809
1e525e729760 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents: 26119
diff changeset
62 See http://www.gnu.org/help/gethelp.html.
26119
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
63
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
64 However, we plan to continue to improve GNU Emacs and keep it
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
65 reliable, so please send me any complaints and suggestions you have.
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
66 I will probably fix anything that I consider a malfunction. I may
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
67 make improvements that are suggested, but I may choose not to.
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
68
32809
1e525e729760 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents: 26119
diff changeset
69 If you are on the Internet, report bugs to bug-gnu-emacs@gnu.org. You
1e525e729760 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents: 26119
diff changeset
70 can use the Emacs command M-x report-bug RET to mail a bug report.
1e525e729760 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents: 26119
diff changeset
71 Please read the Bugs section of the Emacs manual before reporting
1e525e729760 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents: 26119
diff changeset
72 bugs.
26119
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
73
32809
1e525e729760 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents: 26119
diff changeset
74 General questions about the GNU Project can be asked of gnu@gnu.org.
26119
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
75
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
76 If you are a computer manufacturer, I encourage you to ship a copy of
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
77 GNU Emacs with every computer you deliver. The same copying
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
78 permission terms apply to computer manufacturers as to everyone else.
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
79 You should consider making a donation to help support the GNU project;
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
80 if you estimate what it would cost to distribute some commercial
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
81 product and divide it by five, that is a good amount.
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
82
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
83 If you like GNU Emacs, please express your satisfaction with a
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
84 donation: send me or the Foundation what you feel Emacs has been worth
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
85 to you. If you are glad that I developed GNU Emacs and distribute it
59059
18c8da5d961a Don't say "freeware".
Richard M. Stallman <rms@gnu.org>
parents: 51419
diff changeset
86 as free software, rather than following the obstructive and antisocial
26119
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
87 practices typical of software developers, reward me. If you would
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
88 like the Foundation to develop more free software, contribute.
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
89
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
90 Your donations will help to support the development of additional GNU
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
91 software. GNU/Linux systems (variants of GNU, based on the kernel
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
92 Linux) have millions of users, but there is still much to be done.
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
93 For more information on GNU, see the file `GNU' in this directory (see
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
94 above).
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
95
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
96 Richard M Stallman
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
97 Chief GNUisance,
6b5aacec5ace *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
98 President of the Free Software Foundation
75774
dc23aaa67696 Switch to standard GPL text for license.
Glenn Morris <rgm@gnu.org>
parents: 75343
diff changeset
99
dc23aaa67696 Switch to standard GPL text for license.
Glenn Morris <rgm@gnu.org>
parents: 75343
diff changeset
100 This file is part of GNU Emacs.
dc23aaa67696 Switch to standard GPL text for license.
Glenn Morris <rgm@gnu.org>
parents: 75343
diff changeset
101
95004
cbf5528cf447 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 79776
diff changeset
102 GNU Emacs is free software: you can redistribute it and/or modify
75774
dc23aaa67696 Switch to standard GPL text for license.
Glenn Morris <rgm@gnu.org>
parents: 75343
diff changeset
103 it under the terms of the GNU General Public License as published by
95004
cbf5528cf447 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 79776
diff changeset
104 the Free Software Foundation, either version 3 of the License, or
cbf5528cf447 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 79776
diff changeset
105 (at your option) any later version.
75774
dc23aaa67696 Switch to standard GPL text for license.
Glenn Morris <rgm@gnu.org>
parents: 75343
diff changeset
106
dc23aaa67696 Switch to standard GPL text for license.
Glenn Morris <rgm@gnu.org>
parents: 75343
diff changeset
107 GNU Emacs is distributed in the hope that it will be useful,
dc23aaa67696 Switch to standard GPL text for license.
Glenn Morris <rgm@gnu.org>
parents: 75343
diff changeset
108 but WITHOUT ANY WARRANTY; without even the implied warranty of
dc23aaa67696 Switch to standard GPL text for license.
Glenn Morris <rgm@gnu.org>
parents: 75343
diff changeset
109 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
dc23aaa67696 Switch to standard GPL text for license.
Glenn Morris <rgm@gnu.org>
parents: 75343
diff changeset
110 GNU General Public License for more details.
dc23aaa67696 Switch to standard GPL text for license.
Glenn Morris <rgm@gnu.org>
parents: 75343
diff changeset
111
dc23aaa67696 Switch to standard GPL text for license.
Glenn Morris <rgm@gnu.org>
parents: 75343
diff changeset
112 You should have received a copy of the GNU General Public License
95004
cbf5528cf447 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 79776
diff changeset
113 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.