Mercurial > emacs
annotate CONTRIBUTE @ 72367:12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
(allout-beginning-of-line-cycles, allout-end-of-line-cycles):
Add customization vars controlling allout-beginning-of-line and
allout-end-of-line conveniences.
(allout-header-prefix, allout-use-mode-specific-leader)
(allout-use-mode-specific-leader, allout-mode-leaders): Revised docstrings.
(allout-infer-header-lead): Change to be an alias for
allout-infer-header-lead-and-primary-bullet.
(allout-infer-header-lead-and-primary-bullet): New version of
allout-infer-header-lead which assigns the primary bullet to the
same as the header lead, when its being changed.
(allout-infer-body-reindent): Apply regexp-quote instead of unconditionally
prepending "\\", so that all literal allout-header-prefix and
allout-primary-bullet strings are properly handled.
(allout-add-resumptions): Add optional qualifier for extending or appending to
existing values, rather than replacing them.
(allout-view-change-hook): Clarify docstring.
(allout-exposure-change-hook): Take explicit arguments, via run-hook-with-args.
(allout-structure-added-hook, allout-structure-deleted-hook)
(allout-structure-shifted-hook): New hooks analogous to
allout-exposure-change-hook for other kinds of structural outline edits.
(allout-encryption-plaintext-sanitization-regexps): New encryption
customization variable, by which cooperating modes can provde massage of the
plaintext without actually being passed it.
(allout-encryption-ciphertext-rejection-regexps)
(allout-encryption-ciphertext-rejection-ceiling): New encryption
customization variables, by which cooperating modes can prohibit rare but
possible ciphertext patterns from fouling their operation, with actually being
passed the ciphertext.
(allout-mode): Run activation and deactivation hooks after the minor-mode
variable has been toggled, to clarify the mode disposition. The new encryption
ciphertext rejection variable is used to ensure that the ciphertext does not
contain text that would be recognized as outline structural elements by allout.
Substite allout-beginning-of-line and allout-end-of-line for conventionall
beginning-of-line and end-of-line bindings. If allout-old-style-prefixes is
non-nil, don't nullify it on mode activation!
(allout-beginning-of-line): Respect `allout-beginning-of-line-cycles'.
(allout-end-of-line): Respect `allout-end-of-line-cycles'.
(allout-chart-subtree): Implement new mode, charting only the visible items in
the subtree, when new 'visible' parameter is non-nil.
(allout-end-of-subtree): Properly handle the last item in the buffer.
(allout-pre-command-business, allout-command-counter): Increment an advertised
counter so that cooperating enhancements can track revisions of items.
(allout-open-topic): Run allout-structure-added-hook with suitable arguments.
(allout-shift-in): Run allout-structure-shifted-hook with suitable arguments.
(allout-shift-out): Fix doubling for negative args and ensure call of
allout-structure-shifted-hook by solely using allout-shift-in.
(allout-kill-line, allout-kill-topic): Run allout-structure-deleted-hook with
suitable arguments.
(allout-yank-processing): Run allout-structure-added-hook with proper arguments.
(allout-yank): Enclose activity in allout-unprotected.
(allout-flag-region): Run allout-exposure-change-hook with suitable arguments,
instead of making the callee infer the arguments.
(allout-encrypt-string): Support
allout-encryption-plaintext-sanitization-regexps,
allout-encryption-ciphertext-rejection-regexps, and
allout-encryption-ciphertext-rejection-ceiling. Indicate correct
en/decryption mode in symmetric encryption failure message.
(allout-obtain-passphrase): Use copy-sequence to get a distinct copy of the
passphrase, and don't zero it or we'll corrupt the stashed copy.
(allout-create-encryption-passphrase-verifier)
(allout-verify-passphrase): Respect the new signature for allout-encrypt-string.
(allout-get-configvar-values): Convenience for getting a configuration variable
value and handling its absence gracefully.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Sat, 12 Aug 2006 12:33:32 +0000 |
parents | a99d8ae1c5d9 |
children | caa0a3ee1f41 |
rev | line source |
---|---|
71604 | 1 |
2 Contributing to Emacs | |
3 | |
71619 | 4 Emacs is a collaborative project and we encourage contributions from |
5 anyone and everyone. If you want to contribute in the way that will | |
6 help us most, we recommend (1) fixing reported bugs and (2) | |
7 implementing the feature ideas in etc/TODO. However, if you think of | |
8 new features to add, please suggest them too -- we might like your | |
9 idea. Porting to new platforms is also useful, when there is a new | |
10 platform, but that is not common nowadays. | |
11 | |
12 For documentation on how to develop Emacs changes, refer to the Emacs | |
13 Manual and the Emacs Lisp Reference Manual (both included in the Emacs | |
14 distribution). The web pages in http://www.gnu.org/software/emacs | |
15 contain additional information. | |
71604 | 16 |
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 | 19 |
71619 | 20 If you don't feel up to hacking Emacs, there are many other ways to |
21 help. You can answer questions on the mailing lists, write | |
22 documentation, find and report bugs, contribute to the Emacs web | |
23 pages, or develop a package that works with Emacs. | |
71604 | 24 |
71619 | 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 | 27 |
71723 | 28 * Coding Standards |
29 | |
30 Contributed code should follow the GNU Coding Standard. | |
71604 | 31 |
71723 | 32 If it doesn't, we'll need to find someone to fix the code before we |
33 can use it. | |
71604 | 34 |
71723 | 35 Emacs has certain additional style and coding conventions. |
71604 | 36 |
71723 | 37 Ref: http://www.gnu.org/prep/standards_toc.html |
38 Ref: GNU Coding Standards Info Manual | |
39 Ref: The "Tips" Appendix in the Emacs Lisp Reference. | |
71604 | 40 |
41 | |
71723 | 42 * Copyright Assignment |
71604 | 43 |
71723 | 44 We can accept small changes without legal papers, and for medium-size |
45 changes a copyright disclaimer is ok too. To accept substantial | |
46 contributions from you, we need a copyright assignment form filled out | |
47 and filed with the FSF. | |
71604 | 48 |
71723 | 49 Contact us at emacs-devel@gnu.org to obtain the relevant forms. |
71604 | 50 |
51 | |
71723 | 52 * Getting the Source Code |
71604 | 53 |
71723 | 54 The latest version of Emacs can be downloaded using CVS or Arch from |
55 the Savannah web site. It is important to write your patch based on | |
56 this version; if you start from an older version, your patch may be | |
57 outdated when you write it, and maintainers will have hard time | |
58 applying it. | |
71657 | 59 |
71723 | 60 After you have downloaded the CVS source, you should read the file |
61 INSTALL.CVS for build instructions (they differ to some extent from a | |
62 normal build). | |
71657 | 63 |
71723 | 64 Ref: http://savannah.gnu.org/projects/emacs |
71604 | 65 |
66 | |
71723 | 67 * Submitting Patches |
68 | |
69 Every patch must have several pieces of information before we | |
70 can properly evaluate it. | |
71604 | 71 |
71723 | 72 When you have all these pieces, bundle them up in a mail message and |
73 send it to emacs-pretest-bug@gnu.org or emacs-devel@gnu.org. | |
71604 | 74 |
71723 | 75 All subsequent discussion should also be sent to the mailing list. |
76 | |
77 ** Description | |
71604 | 78 |
71723 | 79 For bug fixes, a description of the bug and how your patch fixes this |
80 bug. | |
81 | |
82 For new features, a description of the feature and your | |
83 implementation. | |
71604 | 84 |
71723 | 85 ** ChangeLog |
86 | |
87 A ChangeLog entry as plaintext (separate from the patch). | |
88 | |
89 See the various ChangeLog files for format and content. Note that, | |
90 unlike some other projects, we do require ChangeLogs also for | |
91 documentation, i.e. Texinfo files. | |
71608
e4b43205e213
*** empty log message ***
Nick Roberts <nickrob@snap.net.nz>
parents:
71604
diff
changeset
|
92 |
71723 | 93 Ref: "Change Log Concepts" node of the GNU Coding Standards Info |
94 Manual, for how to write good log entries. | |
95 | |
96 ** The patch itself. | |
97 | |
98 Please use "Context Diff" format. | |
71604 | 99 |
71723 | 100 If you are accessing the CVS repository use |
101 cvs update; cvs diff -cp | |
102 else, use | |
103 diff -cp OLD NEW | |
104 | |
105 If your version of diff does not support these options, then get the | |
106 latest version of GNU Diff. | |
71604 | 107 |
71723 | 108 ** Mail format. |
109 | |
110 We prefer to get the patches as inline plain text. | |
71604 | 111 |
71723 | 112 Please be aware of line wrapping which will make the patch unreadable |
113 and useless for us. To avoid that, you can use MIME attachments or, | |
114 as a last resort, uuencoded gzipped text. | |
115 | |
116 ** Please reread your patch before submitting it. | |
117 | |
118 ** Do not mix changes. | |
119 | |
120 If you send several unrelated changes together, we will ask you to | |
121 separate them so we can consider each of the changes by itself. | |
71604 | 122 |
123 | |
71723 | 124 * Coding style and conventions. |
125 | |
126 ** Mandatory reading: | |
127 | |
128 The "Tips and Conventions" Appendix of the Emacs Lisp Reference. | |
129 | |
130 ** Avoid using `defadvice' or `eval-after-load' for Lisp code to be | |
131 included in Emacs. | |
132 | |
133 ** Remove all trailing whitespace in all source and text files. | |
134 | |
135 ** Use ?\s instead of ? in Lisp code for a space character. | |
71619 | 136 |
71604 | 137 |
71723 | 138 * Supplemental information for Emacs Developers. |
139 | |
140 ** Write access to Emacs' CVS repository. | |
141 | |
142 Once you become a frequent contributor to Emacs, we can consider | |
143 giving you write access to the CVS repository. | |
144 | |
145 | |
146 ** Emacs Mailing lists. | |
147 | |
148 Discussion about Emacs development takes place on emacs-devel@gnu.org. | |
149 | |
150 Bug reports for released versions are sent to emacs-bugs@gnu.org. | |
151 | |
152 Bug reports for development versions are sent to emacs-pretest-bug@gnu.org. | |
153 | |
154 You can subscribe to the mailing lists at savannah.gnu.org/projects/emacs. | |
155 | |
156 You can find the mailing lists archives at mail.gnu.org or gmane.org. | |
71657 | 157 |
71604 | 158 |
71723 | 159 ** Document your changes. |
71604 | 160 |
71723 | 161 Think carefully about whether your change requires updating the |
162 documentation. If it does, you can either do this yourself or add an | |
163 item to the NEWS file. | |
71657 | 164 |
71723 | 165 If you document your change in NEWS, please mark the NEWS entry with |
166 the documentation status of the change: if you submit the changes for | |
167 the manuals, mark it with "+++"; if it doesn't need to be documented, | |
168 mark it with "---"; if it needs to be documented, but you didn't | |
169 submit documentation changes, leave the NEWS entry unmarked. (These | |
170 marks are checked by the Emacs maintainers to make sure every change | |
171 was reflected in the manuals.) | |
71604 | 172 |
71723 | 173 |
174 ** Understanding Emacs Internals. | |
175 | |
176 The best way to understand Emacs Internals is to read the code, | |
177 but the nodes "Tips" and "GNU Emacs Internals" in the Appendix | |
178 of the Emacs Lisp Reference Manual may also help. | |
179 | |
180 The file etc/DEBUG describes how to debug Emacs bugs. | |
71604 | 181 |
71723 | 182 |
183 | |
184 * How to Maintain Copyright Years for GNU Emacs | |
185 | |
186 ** Our lawyer says it is ok if we add, to each file that has been in Emacs | |
187 since Emacs 21 came out in 2001, all the subsequent years. We don't | |
188 need to check whether *that file* was changed in those years. | |
189 It's sufficient that *Emacs* was changed in those years (and it was!). | |
190 | |
191 ** For those files that have been added since then, we should add | |
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 | 194 ** For the refcards under etc/, it's ok to simply use the latest year |
195 (typically in a `\def\year{YEAR}' expression) for the rendered copyright | |
196 notice, while maintaining the full list of years in the copyright notice | |
197 in the comments. | |
71604 | 198 |
71723 | 199 |
200 Local variables: | |
201 mode: outline | |
202 paragraph-separate: "[ ]*$" | |
203 end: | |
71604 | 204 |