annotate CONTRIBUTE @ 72917:17942cb3949e

(allout-regexp, allout-line-boundary-regexp) (allout-bob-regexp): Correct grouping and boundaries to fix backwards traversal. (allout-depth-specific-regexp, allout-depth-one-regexp): New versions that exploit \\{M\\} regexp syntax, to avoid geometric or worse time in allout-ascend. (allout-doublecheck-at-and-shallower): Identify depth threshold below which topics are checked for and disqualified by containment discontinuities. (allout-hotspot-key-handler): Correctly handle multiple-key strokes. Remove some unused variables. (allout-mode-leaders): Clarify that mode-specific comment-start will be used (set-allout-regexp): Correctly regexp-quote allout regexps to properly accept alternative header-leads and primary bullets with regexp-specific characters (eg, C "/*", mathematica "(*"). Include new regular expressions among those configured. (allout-infer-header-lead-and-primary-bullet): Rename allout-infer-header-lead. (allout-recent-depth): Manifest as a variable as well as a function. (allout-prefix-data): Simplify into an inline instead of a macro, assuming current match data rather than being explicitly passed it. Establish allout-recent-depth value as well as allout-recent-prefix-beginning and allout-recent-prefix-end. (allout-aberrant-container-p): True when an item's immediate offspring discontinuously contained. Useful for disqualifying unintended topic prefixes, likely at low depths. (allout-goto-prefix-doublechecked): Elaborated version of allout-goto-prefix which disqualifies aberrant pseudo-items. (allout-pre-next-prefix): Layer on top of lower-level routines, to get disqualification of aberrant containers. (allout-end-of-prefix, allout-end-of-subtree): Disqualify aberrant containers. (allout-beginning-of-current-entry): Position at start of buffer when in container (depth 0) entry. (nullify-allout-prefix-data): Invalidate allout-recent-* prefix data. (allout-current-bullet): Strip text properties. (allout-get-prefix-bullet): Use right match groups. (allout-beginning-of-line, allout-next-heading): Disqualify aberrant containers. (allout-previous-heading): Disqualify aberrant containers, and change to regular (rather than inline) function, to allow self-recursion. (allout-get-invisibility-overlay): Increment so progress is made when the first overlay is not the sought one. (allout-end-of-prefix): Disqualify aberrant containers. (allout-end-of-line): Cycle something like allout-beginning-of-line. (allout-mode): Make allout-old-style-prefixes (ie, enabling use with outline.el outlines) functional again. Change the primary bullet along with the header-lead - level 1 new-style bullets now work. Engage allout-before-change-handler in mainline emacs, not just xemacs, to do undo handling. (allout-before-change-handler): Expose undo changes occurring in hidden regions. Use allout-get-invisibility-overlay instead of reimplementing it inline. (allout-chart-subtree): Use start rather than end of prefix in charts. Use allout-recent-depth variable. (allout-chart-siblings): Disqualify aberrant topics. (allout-beginning-of-current-entry): Position correctly. (allout-ascend): Use new allout-depth-specific-regexp and allout-depth-one-regexp for linear instead of O(N^2) or worse behavior. (allout-ascend-to-depth): Depend on allout-ascend, rather than reimplementing an algorithm. (allout-up-current-level): Depend on allout-ascend, rather than reimplementing an algorithm. Return to start-point if we fail. (allout-descend-to-depth): Use allout-recent-depth variable instead of function. (allout-next-sibling): On traversal of numerous intervening topics, resort to economical allout-next-sibling-leap. (allout-next-sibling-leap): Specialized version of allout-next-sibling that uses allout-ascend cleverly, to depend on a regexp search to leap large numbers of contained topics, rather than arbitrarily many one-by-one traversals. (allout-next-visible-heading): Disqualify aberrant topics. (allout-previous-visible-heading): Position consistently when interactive. (allout-forward-current-level): Base on allout-previous-sibling rather than (differently) reimplmenting the algorithm. Remove some unused variables. (allout-solicit-alternate-bullet): Present default choice stripped of text properties. (allout-rebullet-heading): Use bullet stripped of text properties. Register changes using allout-exposure-change-hook. Disregard aberrant topics. (allout-shift-in): With universal-argument, make topic a peer of it's former offspring. Simplify the code by separating out allout-shift-out functionality. (allout-shift-out): With universal-argument, make offspring peers of their former container, and its siblings. Implement the functionality here, rather than inappropriately muddling the implementation of allout-shift-in. (allout-rebullet-topic): Respect additional argument for new parent-child separation function. (allout-yank-processing): Use allout-ascend directly. (allout-show-entry): Disqualify aberrant topics. (allout-show-children): Handle discontinuous children gracefully, extending the depth being revealed to expose them and posting a message indicating the situation. (allout-show-to-offshoot): Remove obsolete and incorrect comment. Leave cursor in correct position. (allout-hide-current-subtree): Use allout-ascend directly. Disqualify aberrant topics. (allout-kill-line, allout-kill-topic): Preserve exposure layout in a way that the yanks can restore it, as used to happen. (allout-yank-processing): Restore exposure layout as recorded by allout-kill-*, as used to happen. (allout-annotate-hidden, allout-hide-by-annotation): New routines for preseving and restoring exposure layout across kills. (allout-toggle-subtree-encryption): Run allout-exposure-change-hook. (allout-encrypt-string): Strip text properties. Rearranged order and outline-headings for some of the miscellaneous functions. (allout-resolve-xref): No need to quote the error name in the condition-case handler section. (allout-flatten): Classic recursive (and recursively intensive, without tail-recursion) list-flattener, needed by allout-shift-out when confronted with discontinuous children.
author Eli Zaretskii <eliz@gnu.org>
date Sat, 16 Sep 2006 10:24:24 +0000
parents caa0a3ee1f41
children 68cfc1db0d26
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
1
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
2 Contributing to Emacs
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
3
71619
fc0f241e3ff8 Much rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 71608
diff changeset
4 Emacs is a collaborative project and we encourage contributions from
fc0f241e3ff8 Much rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 71608
diff changeset
5 anyone and everyone. If you want to contribute in the way that will
fc0f241e3ff8 Much rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 71608
diff changeset
6 help us most, we recommend (1) fixing reported bugs and (2)
fc0f241e3ff8 Much rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 71608
diff changeset
7 implementing the feature ideas in etc/TODO. However, if you think of
fc0f241e3ff8 Much rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 71608
diff changeset
8 new features to add, please suggest them too -- we might like your
fc0f241e3ff8 Much rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 71608
diff changeset
9 idea. Porting to new platforms is also useful, when there is a new
fc0f241e3ff8 Much rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 71608
diff changeset
10 platform, but that is not common nowadays.
fc0f241e3ff8 Much rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 71608
diff changeset
11
fc0f241e3ff8 Much rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 71608
diff changeset
12 For documentation on how to develop Emacs changes, refer to the Emacs
fc0f241e3ff8 Much rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 71608
diff changeset
13 Manual and the Emacs Lisp Reference Manual (both included in the Emacs
fc0f241e3ff8 Much rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 71608
diff changeset
14 distribution). The web pages in http://www.gnu.org/software/emacs
fc0f241e3ff8 Much rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 71608
diff changeset
15 contain additional information.
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
16
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
17 You may also want to submit your change so that can be considered for
71608
e4b43205e213 *** empty log message ***
Nick Roberts <nickrob@snap.net.nz>
parents: 71604
diff changeset
18 inclusion in a future version of Emacs (see below).
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
19
71619
fc0f241e3ff8 Much rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 71608
diff changeset
20 If you don't feel up to hacking Emacs, there are many other ways to
fc0f241e3ff8 Much rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 71608
diff changeset
21 help. You can answer questions on the mailing lists, write
fc0f241e3ff8 Much rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 71608
diff changeset
22 documentation, find and report bugs, contribute to the Emacs web
fc0f241e3ff8 Much rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 71608
diff changeset
23 pages, or develop a package that works with Emacs.
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
24
71619
fc0f241e3ff8 Much rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 71608
diff changeset
25 Here are some style and legal conventions for contributors to Emacs:
71608
e4b43205e213 *** empty log message ***
Nick Roberts <nickrob@snap.net.nz>
parents: 71604
diff changeset
26
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
27
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
28 * Coding Standards
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
29
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
30 Contributed code should follow the GNU Coding Standard.
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
31
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
32 If it doesn't, we'll need to find someone to fix the code before we
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
33 can use it.
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
34
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
35 Emacs has certain additional style and coding conventions.
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
36
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
37 Ref: http://www.gnu.org/prep/standards_toc.html
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
38 Ref: GNU Coding Standards Info Manual
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
39 Ref: The "Tips" Appendix in the Emacs Lisp Reference.
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
40
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
41
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
42 * Copyright Assignment
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
43
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
44 We can accept small changes without legal papers, and for medium-size
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
45 changes a copyright disclaimer is ok too. To accept substantial
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
46 contributions from you, we need a copyright assignment form filled out
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
47 and filed with the FSF.
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
48
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
49 Contact us at emacs-devel@gnu.org to obtain the relevant forms.
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
50
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
51
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
52 * Getting the Source Code
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
53
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
54 The latest version of Emacs can be downloaded using CVS or Arch from
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
55 the Savannah web site. It is important to write your patch based on
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
56 this version; if you start from an older version, your patch may be
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
57 outdated when you write it, and maintainers will have hard time
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
58 applying it.
71657
2abae690629b Mention INSTALL.CVS.
Kim F. Storm <storm@cua.dk>
parents: 71619
diff changeset
59
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
60 After you have downloaded the CVS source, you should read the file
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
61 INSTALL.CVS for build instructions (they differ to some extent from a
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
62 normal build).
71657
2abae690629b Mention INSTALL.CVS.
Kim F. Storm <storm@cua.dk>
parents: 71619
diff changeset
63
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
64 Ref: http://savannah.gnu.org/projects/emacs
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
65
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
66
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
67 * Submitting Patches
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
68
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
69 Every patch must have several pieces of information before we
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
70 can properly evaluate it.
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
71
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
72 When you have all these pieces, bundle them up in a mail message and
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
73 send it to emacs-pretest-bug@gnu.org or emacs-devel@gnu.org.
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
74
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
75 All subsequent discussion should also be sent to the mailing list.
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
76
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
77 ** Description
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
78
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
79 For bug fixes, a description of the bug and how your patch fixes this
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
80 bug.
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
81
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
82 For new features, a description of the feature and your
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
83 implementation.
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
84
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
85 ** ChangeLog
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
86
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
87 A ChangeLog entry as plaintext (separate from the patch).
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
88
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
89 See the various ChangeLog files for format and content. Note that,
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
90 unlike some other projects, we do require ChangeLogs also for
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
91 documentation, i.e. Texinfo files.
71608
e4b43205e213 *** empty log message ***
Nick Roberts <nickrob@snap.net.nz>
parents: 71604
diff changeset
92
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
93 Ref: "Change Log Concepts" node of the GNU Coding Standards Info
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
94 Manual, for how to write good log entries.
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
95
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
96 ** The patch itself.
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
97
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
98 Please use "Context Diff" format.
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
99
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
100 If you are accessing the CVS repository use
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
101 cvs update; cvs diff -cp
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
102 else, use
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
103 diff -cp OLD NEW
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
104
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
105 If your version of diff does not support these options, then get the
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
106 latest version of GNU Diff.
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
107
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
108 ** Mail format.
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
109
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
110 We prefer to get the patches as inline plain text.
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
111
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
112 Please be aware of line wrapping which will make the patch unreadable
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
113 and useless for us. To avoid that, you can use MIME attachments or,
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
114 as a last resort, uuencoded gzipped text.
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
115
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
116 ** Please reread your patch before submitting it.
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
117
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
118 ** Do not mix changes.
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
119
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
120 If you send several unrelated changes together, we will ask you to
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
121 separate them so we can consider each of the changes by itself.
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
122
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
123
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
124 * Coding style and conventions.
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
125
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
126 ** Mandatory reading:
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
127
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
128 The "Tips and Conventions" Appendix of the Emacs Lisp Reference.
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
129
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
130 ** Avoid using `defadvice' or `eval-after-load' for Lisp code to be
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
131 included in Emacs.
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
132
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
133 ** Remove all trailing whitespace in all source and text files.
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
134
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
135 ** Use ?\s instead of ? in Lisp code for a space character.
71619
fc0f241e3ff8 Much rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 71608
diff changeset
136
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
137
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
138 * Supplemental information for Emacs Developers.
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
139
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
140 ** Write access to Emacs' CVS repository.
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
141
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
142 Once you become a frequent contributor to Emacs, we can consider
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
143 giving you write access to the CVS repository.
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
144
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
145
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
146 ** Emacs Mailing lists.
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
147
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
148 Discussion about Emacs development takes place on emacs-devel@gnu.org.
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
149
72624
caa0a3ee1f41 Replace emacs-bugs@gnu.org with bug-gnu-emacs@gnu.org.
Juri Linkov <juri@jurta.org>
parents: 71723
diff changeset
150 Bug reports for released versions are sent to bug-gnu-emacs@gnu.org.
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
151
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
152 Bug reports for development versions are sent to emacs-pretest-bug@gnu.org.
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
153
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
154 You can subscribe to the mailing lists at savannah.gnu.org/projects/emacs.
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
155
72624
caa0a3ee1f41 Replace emacs-bugs@gnu.org with bug-gnu-emacs@gnu.org.
Juri Linkov <juri@jurta.org>
parents: 71723
diff changeset
156 You can find the mailing lists archives at lists.gnu.org or gmane.org.
71657
2abae690629b Mention INSTALL.CVS.
Kim F. Storm <storm@cua.dk>
parents: 71619
diff changeset
157
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
158
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
159 ** Document your changes.
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
160
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
161 Think carefully about whether your change requires updating the
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
162 documentation. If it does, you can either do this yourself or add an
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
163 item to the NEWS file.
71657
2abae690629b Mention INSTALL.CVS.
Kim F. Storm <storm@cua.dk>
parents: 71619
diff changeset
164
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
165 If you document your change in NEWS, please mark the NEWS entry with
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
166 the documentation status of the change: if you submit the changes for
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
167 the manuals, mark it with "+++"; if it doesn't need to be documented,
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
168 mark it with "---"; if it needs to be documented, but you didn't
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
169 submit documentation changes, leave the NEWS entry unmarked. (These
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
170 marks are checked by the Emacs maintainers to make sure every change
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
171 was reflected in the manuals.)
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
172
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
173
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
174 ** Understanding Emacs Internals.
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
175
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
176 The best way to understand Emacs Internals is to read the code,
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
177 but the nodes "Tips" and "GNU Emacs Internals" in the Appendix
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
178 of the Emacs Lisp Reference Manual may also help.
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
179
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
180 The file etc/DEBUG describes how to debug Emacs bugs.
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
181
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
182
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
183
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
184 * How to Maintain Copyright Years for GNU Emacs
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
185
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
186 ** Our lawyer says it is ok if we add, to each file that has been in Emacs
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
187 since Emacs 21 came out in 2001, all the subsequent years. We don't
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
188 need to check whether *that file* was changed in those years.
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
189 It's sufficient that *Emacs* was changed in those years (and it was!).
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
190
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
191 ** For those files that have been added since then, we should add
72624
caa0a3ee1f41 Replace emacs-bugs@gnu.org with bug-gnu-emacs@gnu.org.
Juri Linkov <juri@jurta.org>
parents: 71723
diff changeset
192 the year it was added to Emacs, and all subsequent years.
71660
475dcca89ec9 Slight formatting changes and typo fixes. Add description of NEWS markings.
Eli Zaretskii <eliz@gnu.org>
parents: 71657
diff changeset
193
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
194 ** For the refcards under etc/, it's ok to simply use the latest year
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
195 (typically in a `\def\year{YEAR}' expression) for the rendered copyright
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
196 notice, while maintaining the full list of years in the copyright notice
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
197 in the comments.
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
198
71723
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
199
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
200 Local variables:
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
201 mode: outline
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
202 paragraph-separate: "[ ]*$"
a99d8ae1c5d9 Use outline format.
Kim F. Storm <storm@cua.dk>
parents: 71660
diff changeset
203 end:
71604
801b0f932405 New file.
Nick Roberts <nickrob@snap.net.nz>
parents:
diff changeset
204