aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorStefan Monnier2010-03-30 22:37:57 -0400
committerStefan Monnier2010-03-30 22:37:57 -0400
commit857387516c3cea919953b39ab170b1ff40f77934 (patch)
tree33f6de32a3909240c7b1ab2d760891d62c3acaf5 /lisp
parent75d1428c578eea9077c679c1e821af8d6643f1ed (diff)
parenta6d676d9f41be8ad0c436c6d04cfedc1ce68adc8 (diff)
downloademacs-857387516c3cea919953b39ab170b1ff40f77934.tar.gz
emacs-857387516c3cea919953b39ab170b1ff40f77934.zip
Merge from emacs-23 branch
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog60
-rw-r--r--lisp/gnus/ChangeLog16
-rw-r--r--lisp/gnus/message.el20
-rw-r--r--lisp/language/indian.el248
-rw-r--r--lisp/language/sinhala.el12
-rw-r--r--lisp/mail/sendmail.el8
-rw-r--r--lisp/progmodes/js.el25
-rw-r--r--lisp/simple.el15
-rw-r--r--lisp/subr.el66
-rw-r--r--lisp/textmodes/artist.el2
-rw-r--r--lisp/tmm.el6
-rw-r--r--lisp/vc.el19
12 files changed, 384 insertions, 113 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 01628fcea02..e98ea81ee12 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,63 @@
12010-03-31 Tomas Abrahamsson <tab@lysator.liu.se>
2
3 * textmodes/artist.el (artist-mode): Fix typo in docstring.
4 Reported by Alex Schröder <kensanata@gmail.com>. (Bug#5807)
5
62010-03-31 Kenichi Handa <handa@m17n.org>
7
8 * language/sinhala.el (composition-function-table): Fix regexp for
9 the new Unicode specification.
10
11 * language/indian.el (devanagari-composable-pattern)
12 (tamil-composable-pattern, kannada-composable-pattern)
13 (malayalam-composable-pattern): Adjusted for the new Unicode
14 specification.
15 (bengali-composable-pattern, gurmukhi-composable-pattern)
16 (gujarati-composable-pattern, oriya-composable-pattern)
17 (telugu-composable-pattern): New variables to cope with the new
18 Unicode specification. Use them in composition-function-table.
19
202010-03-31 Stefan Monnier <monnier@iro.umontreal.ca>
21
22 Make tmm-menubar work for the Buffers menu again.
23 * tmm.el (tmm-prompt): Also handle keymap entries in the form of
24 vectors rather than cons cells, as used in menu-bar-update-buffers.
25
262010-03-31 Chong Yidong <cyd@stupidchicken.com>
27
28 * progmodes/js.el (js-auto-indent-flag, js-mode-map)
29 (js-insert-and-indent): Revert 2009-08-15 change, restoring
30 electric punctuation for "{}();,:" (Bug#5586).
31
32 * mail/sendmail.el (mail-default-directory): Doc fix.
33
342010-03-31 Chong Yidong <cyd@stupidchicken.com>
35
36 * mail/sendmail.el (mail-default-directory): Doc fix.
37
382010-03-31 Eli Zaretskii <eliz@gnu.org>
39
40 * subr.el (version-regexp-alist, version-to-list)
41 (version-list-<, version-list-=, version-list-<=)
42 (version-list-not-zero, version<, version<=, version=): Doc fix.
43 (Bug#5744).
44
452010-02-31 Dan Nicolaescu <dann@ics.uci.edu>
46
47 * vc.el (vc-root-diff): Doc fix.
48
492010-03-31 Chong Yidong <cyd@stupidchicken.com>
50
51 * vc.el (vc-print-log, vc-print-root-log): Doc fix.
52
53 * simple.el (append-to-buffer): Fix last change.
54
552010-03-31 Chong Yidong <cyd@stupidchicken.com>
56
57 * simple.el (append-to-buffer): Ensure that point is preserved if
58 BUFFER is the current buffer. Suggested by YAMAMOTO Mitsuharu.
59 (Bug#5749)
60
12010-03-31 Stefan Monnier <monnier@iro.umontreal.ca> 612010-03-31 Stefan Monnier <monnier@iro.umontreal.ca>
2 62
3 * files.el (auto-mode-case-fold): Change default to t. 63 * files.el (auto-mode-case-fold): Change default to t.
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 66a358af534..a6c9a1557d6 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,6 +1,12 @@
12010-03-30 Chong Yidong <cyd@stupidchicken.com>
2
3 * message.el (message-default-mail-headers):
4 (message-default-headers): Carry the value mail-default-headers over
5 into message-default-mail-headers, rather than message-default-headers.
6
12010-03-30 Martin Stjernholm <mast@lysator.liu.se> 72010-03-30 Martin Stjernholm <mast@lysator.liu.se>
2 8
3 * mm-decode.el (mm-add-meta-html-tag): Added option to override the 9 * mm-decode.el (mm-add-meta-html-tag): Add option to override the
4 charset. 10 charset.
5 11
6 * gnus-art.el (gnus-article-browse-html-parts): Force the correct 12 * gnus-art.el (gnus-article-browse-html-parts): Force the correct
@@ -8,8 +14,8 @@
8 14
92010-03-30 Katsumi Yamaoka <yamaoka@jpl.org> 152010-03-30 Katsumi Yamaoka <yamaoka@jpl.org>
10 16
11 * gnus-art.el (gnus-article-browse-delete-temp-files): Delete 17 * gnus-art.el (gnus-article-browse-delete-temp-files):
12 directories as well. 18 Delete directories as well.
13 (gnus-article-browse-html-parts): Work for images that do not specify 19 (gnus-article-browse-html-parts): Work for images that do not specify
14 file names; delete temp directory when quitting; insert header at the 20 file names; delete temp directory when quitting; insert header at the
15 right place; use file: scheme for image files. 21 right place; use file: scheme for image files.
@@ -30,8 +36,8 @@
30 36
312010-03-27 Teodor Zlatanov <tzz@lifelogs.com> 372010-03-27 Teodor Zlatanov <tzz@lifelogs.com>
32 38
33 * auth-source.el (auth-sources): Change default to be simpler. Explain 39 * auth-source.el (auth-sources): Change default to be simpler.
34 about Secret Service API sources. Improve Customize options. 40 Explain about Secret Service API sources. Improve Customize options.
35 (auth-source-pick): Change to accept any number of search parameters. 41 (auth-source-pick): Change to accept any number of search parameters.
36 Implement fallbacks iteratively, not recursively. Add scoring on the 42 Implement fallbacks iteratively, not recursively. Add scoring on the
37 second pass and sort by score. Call Secret Service API when needed. 43 second pass and sort by score. Call Secret Service API when needed.
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index d64a3aa0244..7a96d2480b4 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -1167,11 +1167,7 @@ It is a vector of the following headers:
1167 :valid-regexp "^\\'" 1167 :valid-regexp "^\\'"
1168 :error "All header lines must be newline terminated") 1168 :error "All header lines must be newline terminated")
1169 1169
1170(defcustom message-default-headers 1170(defcustom message-default-headers ""
1171 ;; Default to the value of `mail-default-headers' if available.
1172 ;; Note: as for Emacs 21, XEmacs 21.4 and 21.5, it is unavailable
1173 ;; unless sendmail.el is loaded.
1174 (if (boundp 'mail-default-headers) mail-default-headers "")
1175 "*A string containing header lines to be inserted in outgoing messages. 1171 "*A string containing header lines to be inserted in outgoing messages.
1176It is inserted before you edit the message, so you can edit or delete 1172It is inserted before you edit the message, so you can edit or delete
1177these lines." 1173these lines."
@@ -1184,16 +1180,18 @@ these lines."
1184 ;; Ease the transition from mail-mode to message-mode. See bugs#4431, 5555. 1180 ;; Ease the transition from mail-mode to message-mode. See bugs#4431, 5555.
1185 (concat (if (and (boundp 'mail-default-reply-to) 1181 (concat (if (and (boundp 'mail-default-reply-to)
1186 (stringp mail-default-reply-to)) 1182 (stringp mail-default-reply-to))
1187 (format "Reply-to: %s\n" mail-default-reply-to) 1183 (format "Reply-to: %s\n" mail-default-reply-to))
1188 "")
1189 (if (and (boundp 'mail-self-blind) 1184 (if (and (boundp 'mail-self-blind)
1190 mail-self-blind) 1185 mail-self-blind)
1191 (format "BCC: %s\n" user-mail-address) 1186 (format "BCC: %s\n" user-mail-address))
1192 "")
1193 (if (and (boundp 'mail-archive-file-name) 1187 (if (and (boundp 'mail-archive-file-name)
1194 (stringp mail-archive-file-name)) 1188 (stringp mail-archive-file-name))
1195 (format "FCC: %s\n" mail-archive-file-name) 1189 (format "FCC: %s\n" mail-archive-file-name))
1196 "")) 1190 ;; Use the value of `mail-default-headers' if available.
1191 ;; Note: as for Emacs 21, XEmacs 21.4 and 21.5, it is
1192 ;; unavailable unless sendmail.el is loaded.
1193 (if (boundp 'mail-default-headers)
1194 mail-default-headers))
1197 "*A string of header lines to be inserted in outgoing mails." 1195 "*A string of header lines to be inserted in outgoing mails."
1198 :version "23.2" 1196 :version "23.2"
1199 :group 'message-headers 1197 :group 'message-headers
diff --git a/lisp/language/indian.el b/lisp/language/indian.el
index d8d7d1a6269..dd5bf2960b1 100644
--- a/lisp/language/indian.el
+++ b/lisp/language/indian.el
@@ -140,28 +140,25 @@ South Indian language Malayalam is supported in this language environment."))
140 140
141(defconst devanagari-composable-pattern 141(defconst devanagari-composable-pattern
142 (let ((table 142 (let ((table
143 '(("V" . "[\u0904-\u0914\u0960-\u0961\u0972]") ; independent vowel 143 '(("a" . "[\u0900-\u0902]") ; vowel modifier (above)
144 ("C" . "[\u0915-\u0939\u0958-\u095F\u097B-\u097C\u097E-\u097F]") ; consonant 144 ("A" . "\u0903") ; vowel modifier (post)
145 ("R" . "\u0930") ; RA 145 ("V" . "[\u0904-\u0914\u0960-\u0961\u0972]") ; independent vowel
146 ("n" . "\u093C") ; NUKTA 146 ("C" . "[\u0915-\u0939\u0958-\u095F\u0979-\u097F]") ; consonant
147 ("H" . "\u094D") ; HALANT 147 ("R" . "\u0930") ; RA
148 ("m" . "\u093F") ; vowel sign (pre) 148 ("n" . "\u093C") ; NUKTA
149 ("u" . "[\u0945-\u0948\u0955]") ; vowel sign (above) 149 ("v" . "[\u093E-\u094C\u094E\u0955\u0962-\u0963]") ; vowel sign
150 ("b" . "[\u0941-\u0944\u0962-\u0963]") ; vowel sign (below) 150 ("H" . "\u094D") ; HALANT
151 ("p" . "[\u093E\u0940\u0949-\u094C]") ; vowel sign (post) 151 ("s" . "[\u0951-\u0952]") ; stress sign
152 ("A" . "[\u0900-\u0902\u0953-\u0954]") ; vowel modifier (above) 152 ("t" . "[\u0953-\u0954]") ; accent
153 ("a" . "\u0903") ; vowel modifier (post) 153 ("N" . "\u200C") ; ZWNJ
154 ("S" . "\u0951") ; stress sign (above) 154 ("J" . "\u200D") ; ZWJ
155 ("s" . "\u0952") ; stress sign (below) 155 ("X" . "[\u0900-\u097F]")))) ; all coverage
156 ("N" . "\u200C") ; ZWNJ
157 ("J" . "\u200D") ; ZWJ
158 ("X" . "[\u0900-\u097F]")))) ; all coverage
159 (indian-compose-regexp 156 (indian-compose-regexp
160 (concat 157 (concat
161 ;; syllables with an independent vowel, or 158 ;; syllables with an independent vowel, or
162 "\\(?:RH\\)?Vn?m?b?u?p?n?A?s?S?a?\\|" 159 "\\(?:RH\\)?Vn?\\(?:J?HR\\)?v*n?a?s?t?A?\\|"
163 ;; consonant-based syllables, or 160 ;; consonant-based syllables, or
164 "\\(?:Cn?J?HJ?\\)*Cn?\\(?:H[NJ]?\\|m?b?u?p?n?A?s?S?a?\\)\\|" 161 "Cn?\\(?:J?HJ?Cn?\\)*\\(?:H[NJ]?\\|v*n?a?s?t?A?\\)\\|"
165 ;; special consonant form, or 162 ;; special consonant form, or
166 "JHR\\|" 163 "JHR\\|"
167 ;; any other singleton characters 164 ;; any other singleton characters
@@ -169,43 +166,202 @@ South Indian language Malayalam is supported in this language environment."))
169 table)) 166 table))
170 "Regexp matching a composable sequence of Devanagari characters.") 167 "Regexp matching a composable sequence of Devanagari characters.")
171 168
169(defconst bengali-composable-pattern
170 (let ((table
171 '(("a" . "\u0981") ; SIGN CANDRABINDU
172 ("A" . "[\u0982-\u0983]") ; SIGN ANUSVARA .. VISARGA
173 ("V" . "[\u0985-\u0994\u09E0-\u09E1]") ; independent vowel
174 ("C" . "[\u0995-\u09B9\u09DC-\u09DF\u09F1]") ; consonant
175 ("B" . "[\u09AC\u09AF-\u09B0\u09F0]") ; BA, YA, RA
176 ("R" . "[\u09B0\u09F0]") ; RA
177 ("n" . "\u09BC") ; NUKTA
178 ("v" . "[\u09BE-\u09CC\u09D7\u09E2-\u09E3]") ; vowel sign
179 ("H" . "\u09CD") ; HALANT
180 ("T" . "\u09CE") ; KHANDA TA
181 ("N" . "\u200C") ; ZWNJ
182 ("J" . "\u200D") ; ZWJ
183 ("X" . "[\u0980-\u09FF]")))) ; all coverage
184 (indian-compose-regexp
185 (concat
186 ;; syllables with an independent vowel, or
187 "\\(?:RH\\)?Vn?\\(?:J?HB\\)?v*n?a?A?\\|"
188 ;; consonant-based syllables, or
189 "Cn?\\(?:J?HJ?Cn?\\)*\\(?:H[NJ]?\\|v*[NJ]?v?a?A?\\)\\|"
190 ;; another syllables with an independent vowel, or
191 "\\(?:RH\\)?T\\|"
192 ;; special consonant form, or
193 "JHB\\|"
194 ;; any other singleton characters
195 "X")
196 table))
197 "Regexp matching a composable sequence of Bengali characters.")
198
199(defconst gurmukhi-composable-pattern
200 (let ((table
201 '(("a" . "[\u0A01-\u0A02]") ; SIGN ADAK BINDI .. BINDI
202 ("A" . "\u0A03]") ; SIGN VISARGA
203 ("V" . "[\u0A05-\u0A14]") ; independent vowel
204 ("C" . "[\u0A15-\u0A39\u0A59-\u0A5E]") ; consonant
205 ("Y" . "[\u0A2F\u0A30\u0A35\u0A39]") ; YA, RA, VA, HA
206 ("n" . "\u0A3C") ; NUKTA
207 ("v" . "[\u0A3E-\u0A4C]") ; vowel sign
208 ("H" . "\u0A4D") ; VIRAMA
209 ("a" . "\u0A70") ; TIPPI
210 ("N" . "\u200C") ; ZWNJ
211 ("J" . "\u200D") ; ZWJ
212 ("X" . "[\u0A00-\u0A7F]")))) ; all coverage
213 (indian-compose-regexp
214 (concat
215 ;; consonant-based syllables, or
216 "Cn?\\(?:J?HJ?Cn?\\)*\\(?:H[NJ]?\\|v*n?a?A?\\)\\|"
217 ;; syllables with an independent vowel, or
218 "Vn?\\(?:J?HY\\)?v*n?a?A?\\|"
219 ;; special consonant form, or
220 "JHY\\|"
221 ;; any other singleton characters
222 "X")
223 table))
224 "Regexp matching a composable sequence of Gurmukhi characters.")
225
226(defconst gujarati-composable-pattern
227 (let ((table
228 '(("a" . "[\u0A81-\u0A82]") ; SIGN CANDRABINDU .. ANUSVARA
229 ("A" . "\u0A83]") ; SIGN VISARGA
230 ("V" . "[\u0A85-\u0A94\u0AE0-\u0AE1]") ; independent vowel
231 ("C" . "[\u0A95-\u0AB9]") ; consonant
232 ("R" . "\u0AB0") ; RA
233 ("n" . "\u0ABC") ; NUKTA
234 ("v" . "[\u0ABE-\u0ACC\u0AE2-\u0AE3]") ; vowel sign
235 ("H" . "\u0ACD") ; VIRAMA
236 ("N" . "\u200C") ; ZWNJ
237 ("J" . "\u200D") ; ZWJ
238 ("X" . "[\u0A80-\u0AFF]")))) ; all coverage
239 (indian-compose-regexp
240 (concat
241 ;; syllables with an independent vowel, or
242 "\\(?:RH\\)?Vn?\\(?:J?HR\\)?v*n?a?A?\\|"
243 ;; consonant-based syllables, or
244 "Cn?\\(?:J?HJ?Cn?\\)*\\(?:H[NJ]?|v*n?a?A?\\)\\|"
245 ;; special consonant form, or
246 "JHR\\|"
247 ;; any other singleton characters
248 "X")
249 table))
250 "Regexp matching a composable sequence of Gujarati characters.")
251
252(defconst oriya-composable-pattern
253 (let ((table
254 '(("a" . "\u0B01") ; SIGN CANDRABINDU
255 ("A" . "[\u0B02-\u0B03]") ; SIGN ANUSVARA .. VISARGA
256 ("V" . "[\u0B05-\u0B14\u0B60-\u0B61]") ; independent vowel
257 ("C" . "[\u0B15-\u0B39\u0B5C-\u0B5D\u0B71]") ; consonant
258 ("B" . "[\u0B15-\u0B17\u0B1B-\u0B1D\u0B1F-\u0B21\u0B23-\u0B24\u0B27-\u0B30\u0B32-\u0B35\u0B38-\u0B39]") ; consonant with below form
259 ("n" . "\u0B3C") ; NUKTA
260 ("v" . "[\u0B3E-\u0B44\u0B56-\u0B57\u0B62-\u0B63]") ; vowel sign
261 ("H" . "\u0B4D") ; VIRAMA
262 ("N" . "\u200C") ; ZWNJ
263 ("J" . "\u200D") ; ZWJ
264 ("X" . "[\u0B00-\u0B7F]")))) ; all coverage
265 (indian-compose-regexp
266 (concat
267 ;; syllables with an independent vowel, or
268 "\\(?:RH\\)?Vn?\\(?:J?HB\\)?v*n?a?A?\\|"
269 ;; consonant-based syllables, or
270 "Cn?\\(?:J?HJ?Cn?\\)*\\(?:H[NJ]?|v*n?a?A?\\)\\|"
271 ;; special consonant form, or
272 "JHB\\|"
273 ;; any other singleton characters
274 "X")
275 table))
276 "Regexp matching a composable sequence of Oriya characters.")
277
172(defconst tamil-composable-pattern 278(defconst tamil-composable-pattern
173 (concat 279 (let ((table
174 "\\([அ-ஔ]\\)\\|" 280 '(("a" . "\u0B82") ; SIGN ANUSVARA
175 "[ஂஃ]\\|" ;; vowel modifier considered independent 281 ("V" . "[\u0B85-\u0B94]") ; independent vowel
176 "\\(\\(?:\\(?:க்ஷ\\)\\|[க-ஹ]\\)[்ா-ௌ]?\\)\\|" 282 ("C" . "[\u0B95-\u0BB9]") ; consonant
177 "\\(ஷ்ரீ\\)") 283 ("v" . "[\u0BBE-\u0BC8\u0BD7]") ; vowel sign
284 ("H" . "\u0BCD") ; VIRAMA
285 ("N" . "\u200C") ; ZWNJ
286 ("J" . "\u200D") ; ZWJ
287 ("X" . "[\u0B80-\u0BFF]")))) ; all coverage
288 (indian-compose-regexp
289 (concat
290 ;; consonant-based syllables, or
291 "C\\(?:J?HJ?C\\)*\\(?:H[NJ]?|v*a?\\)\\|"
292 ;; syllables with an independent vowel, or
293 "Vv*a?\\|"
294 ;; any other singleton characters
295 "X")
296 table))
178 "Regexp matching a composable sequence of Tamil characters.") 297 "Regexp matching a composable sequence of Tamil characters.")
179 298
299(defconst telugu-composable-pattern
300 (let ((table
301 '(("a" . "[\u0C01-\u0C03]") ; SIGN CANDRABINDU .. VISARGA
302 ("V" . "[\u0C05-\u0C14\u0C60-\u0C61]") ; independent vowel
303 ("C" . "[\u0C15-\u0C39\u0C58-\u0C59]") ; consonant
304 ("v" . "[\u0C3E-\u0C4C\u0C55-\u0C56\u0C62-\u0C63]") ; vowel sign
305 ("H" . "\u0BCD") ; VIRAMA
306 ("N" . "\u200C") ; ZWNJ
307 ("J" . "\u200D") ; ZWJ
308 ("X" . "[\u0C00-\u0C7F]")))) ; all coverage
309 (indian-compose-regexp
310 (concat
311 ;; consonant-based syllables, or
312 "C\\(?:J?HJ?C\\)*\\(?:H[NJ]?|v*a?\\)\\|"
313 ;; syllables with an independent vowel, or
314 "V\\(?:J?HC\\)?v*a?\\|"
315 ;; special consonant form, or
316 "JHC\\|"
317 ;; any other singleton characters
318 "X")
319 table))
320 "Regexp matching a composable sequence of Telugu characters.")
321
180(defconst kannada-composable-pattern 322(defconst kannada-composable-pattern
181 (concat 323 (let ((table
182 "\\([ಂ-ಔೠಌ]\\)\\|[ಃ]" 324 '(("A" . "[\u0C82-\u0C83]") ; SIGN ANUSVARA .. VISARGA
183 "\\|\\(" 325 ("V" . "[\u0C85-\u0C94\u0CE0-\u0CE1]") ; independent vowel
184 "\\(?:\\(?:[ಕ-ಹ]್\\)?\\(?:[ಕ-ಹ]್\\)?\\(?:[ಕ-ಹ]್\\)?[ಕ-ಹ]್\\)?" 326 ("C" . "[\u0C95-\u0CB9\u0CDE]") ; consonant
185 "[ಕ-ಹ]\\(?:್\\|[ಾ-್ೕೃ]?\\)?" 327 ("B" . "\u0CB0") ; RA
186 "\\)") 328 ("n" . "\u0CBC") ; NUKTA
329 ("v" . "[\u0CBE-\u0CCC\u0CD5-\u0CD6\u0CE2-\u0CE3]") ; vowel sign
330 ("H" . "\u0CCD") ; VIRAMA
331 ("N" . "\u200C") ; ZWNJ
332 ("J" . "\u200D") ; ZWJ
333 ("X" . "[\u0C80-\u0CFF]")))) ; all coverage
334 (indian-compose-regexp
335 (concat
336 ;; syllables with an independent vowel, or
337 "\\(?:RH\\)?Vn?\\(?:J?HC\\)?v?A?\\|"
338 ;; consonant-based syllables, or
339 "Cn?\\(?:J?HJ?Cn?\\)*\\(?:H[NJ]?|v*n?A?\\)\\|"
340 ;; special consonant form, or
341 "JHB\\|"
342 ;; any other singleton characters
343 "X")
344 table))
187 "Regexp matching a composable sequence of Kannada characters.") 345 "Regexp matching a composable sequence of Kannada characters.")
188 346
189(defconst malayalam-composable-pattern 347(defconst malayalam-composable-pattern
190 (let ((table 348 (let ((table
191 '(("V" . "[\u0D05-\u0D14\u0D60-\u0D61]") ; independent vowel 349 '(("A" . "[\u0D02-\u0D03]") ; SIGN ANUSVARA .. VISARGA
350 ("V" . "[\u0D05-\u0D14\u0D60-\u0D61]") ; independent vowel
192 ("C" . "[\u0D15-\u0D39]") ; consonant 351 ("C" . "[\u0D15-\u0D39]") ; consonant
193 ("m" . "[\u0D46-\u0D48\u0D4A-\u0D4C]") ; prebase matra 352 ("Y" . "[\u0D2F-\u0D30\u0D32\u0D35]") ; YA, RA, LA, VA
194 ("p" . "[\u0D3E-\u0D44\u0D57]") ; postbase matra 353 ("v" . "[\u0D3E-\u0D48\u0D57\u0D62-\u0D63]") ; postbase matra
195 ("b" . "[\u0D62-\u0D63]") ; belowbase matra
196 ("a" . "[\u0D02-\u0D03]") ; abovebase sign
197 ("H" . "\u0D4D") ; virama sign
198 ("N" . "\u200C") ; ZWNJ 354 ("N" . "\u200C") ; ZWNJ
199 ("J" . "\u200D") ; ZWJ 355 ("J" . "\u200D") ; ZWJ
200 ("X" . "[\u0D00-\u0D7F]")))) ; all coverage 356 ("X" . "[\u0D00-\u0D7F]")))) ; all coverage
201 (indian-compose-regexp 357 (indian-compose-regexp
202 (concat 358 (concat
203 ;; syllables with an independent vowel, or
204 "V\\(?:J?HC\\)?m?b?p?a?\\|"
205 ;; consonant-based syllables, or 359 ;; consonant-based syllables, or
206 "\\(?:CJ?HJ?\\)\\{0,4\\}C\\(?:H[NJ]?\\|m?b?p?a?\\)\\|" 360 "\\(?:CJ?HJ?C\\)*\\(?:H[NJ]?\\|v?A?\\)\\|"
361 ;; syllables with an independent vowel, or
362 "V\\(?:J?HY\\)?v*?A?\\|"
207 ;; special consonant form, or 363 ;; special consonant form, or
208 "JHC\\|" 364 "JHY\\|"
209 ;; any other singleton characters 365 ;; any other singleton characters
210 "X") 366 "X")
211 table)) 367 table))
@@ -213,13 +369,13 @@ South Indian language Malayalam is supported in this language environment."))
213 369
214(let ((script-regexp-alist 370(let ((script-regexp-alist
215 `((devanagari . ,devanagari-composable-pattern) 371 `((devanagari . ,devanagari-composable-pattern)
216 (bengali . "[\x980-\x9FF\x200C\x200D]+") 372 (bengali . ,bengali-composable-pattern)
217 (gurmukhi . "[\xA00-\xA7F\x200C\x200D]+") 373 (gurmukhi . ,gurmukhi-composable-pattern)
218 (gujarati . "[\xA80-\xAFF\x200C\x200D]+") 374 (gujarati . ,gujarati-composable-pattern)
219 (oriya . "[\xB00-\xB7F\x200C\x200D]+") 375 (oriya . ,oriya-composable-pattern)
220 (tamil . "[\xB80-\xBFF\x200C\x200D]+") 376 (tamil . ,tamil-composable-pattern)
221 (telugu . "[\xC00-\xC7F\x200C\x200D]+") 377 (telugu . ,telugu-composable-pattern)
222 (kannada . "[\xC80-\xCFF\x200C\x200D]+") 378 (kannada . ,kannada-composable-pattern)
223 (malayalam . ,malayalam-composable-pattern)))) 379 (malayalam . ,malayalam-composable-pattern))))
224 (map-char-table 380 (map-char-table
225 #'(lambda (key val) 381 #'(lambda (key val)
diff --git a/lisp/language/sinhala.el b/lisp/language/sinhala.el
index c726c3fb6bf..37a7bc6b465 100644
--- a/lisp/language/sinhala.el
+++ b/lisp/language/sinhala.el
@@ -33,7 +33,17 @@
33(set-char-table-range 33(set-char-table-range
34 composition-function-table 34 composition-function-table
35 '(#xD80 . #xDFF) 35 '(#xD80 . #xDFF)
36 (list (vector "[\xD80-\xDFF\x200C\x200D]+" 0 'font-shape-gstring))) 36 (list (vector
37 ;; C:consonant, H:HALANT, J:ZWJ, v:vowel sign,
38 ;; V:independent vowel, a:ANUSVARA .. VISARGA
39 (concat
40 ;; C(HJC)*v*H?a?, or
41 "[\u0D9A-\u0DC6]\\(?:\u0DCA\u200D[\u0D9A-\u0DC6]\\)*[\u0DCF-\u0DDF\u0DF2-\u0DF3]*\u0DCA?[\u0D82-\u0D83]?\\|"
42 ;; Va?, or
43 "[\u0D85-\u0D96][\u0D82-\u0D83]?\\|"
44 ;; any other singleton characters
45 "[\u0D80-\u0DFF]")
46 0 'font-shape-gstring)))
37 47
38;; arch-tag: 87b9ad3b-5090-422f-b942-eb85b9d52e7c 48;; arch-tag: 87b9ad3b-5090-422f-b942-eb85b9d52e7c
39;; sinhala.el ends here 49;; sinhala.el ends here
diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el
index 4cf6cb812bd..3cc1bf5fe19 100644
--- a/lisp/mail/sendmail.el
+++ b/lisp/mail/sendmail.el
@@ -417,9 +417,11 @@ and should insert whatever you want to insert."
417 417
418;;;###autoload 418;;;###autoload
419(defcustom mail-default-directory (purecopy "~/") 419(defcustom mail-default-directory (purecopy "~/")
420 "Directory for mail buffers. 420 "Value of `default-directory' for Mail mode buffers.
421Value of `default-directory' for mail buffers. 421This directory is used for auto-save files of Mail mode buffers.
422This directory is used for auto-save files of mail buffers." 422
423Note that Message mode does not use this variable; it auto-saves
424in `message-auto-save-directory'."
423 :type '(directory :tag "Directory") 425 :type '(directory :tag "Directory")
424 :group 'sendmail 426 :group 'sendmail
425 :version "22.1") 427 :version "22.1")
diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el
index 8c8d0553cfa..6bd22e4e6fa 100644
--- a/lisp/progmodes/js.el
+++ b/lisp/progmodes/js.el
@@ -436,6 +436,13 @@ The value must be no less than minus `js-indent-level'."
436 :type 'integer 436 :type 'integer
437 :group 'js) 437 :group 'js)
438 438
439(defcustom js-auto-indent-flag t
440 "Whether to automatically indent when typing punctuation characters.
441If non-nil, the characters {}();,: also indent the current line
442in Javascript mode."
443 :type 'boolean
444 :group 'js)
445
439(defcustom js-flat-functions nil 446(defcustom js-flat-functions nil
440 "Treat nested functions as top-level functions in `js-mode'. 447 "Treat nested functions as top-level functions in `js-mode'.
441This applies to function movement, marking, and so on." 448This applies to function movement, marking, and so on."
@@ -483,6 +490,9 @@ getting timeout messages."
483 490
484(defvar js-mode-map 491(defvar js-mode-map
485 (let ((keymap (make-sparse-keymap))) 492 (let ((keymap (make-sparse-keymap)))
493 (mapc (lambda (key)
494 (define-key keymap key #'js-insert-and-indent))
495 '("{" "}" "(" ")" ":" ";" ","))
486 (define-key keymap [(control ?c) (meta ?:)] #'js-eval) 496 (define-key keymap [(control ?c) (meta ?:)] #'js-eval)
487 (define-key keymap [(control ?c) (control ?j)] #'js-set-js-context) 497 (define-key keymap [(control ?c) (control ?j)] #'js-set-js-context)
488 (define-key keymap [(control meta ?x)] #'js-eval-defun) 498 (define-key keymap [(control meta ?x)] #'js-eval-defun)
@@ -498,6 +508,21 @@ getting timeout messages."
498 keymap) 508 keymap)
499 "Keymap for `js-mode'.") 509 "Keymap for `js-mode'.")
500 510
511(defun js-insert-and-indent (key)
512 "Run the command bound to KEY, and indent if necessary.
513Indentation does not take place if point is in a string or
514comment."
515 (interactive (list (this-command-keys)))
516 (call-interactively (lookup-key (current-global-map) key))
517 (let ((syntax (save-restriction (widen) (syntax-ppss))))
518 (when (or (and (not (nth 8 syntax))
519 js-auto-indent-flag)
520 (and (nth 4 syntax)
521 (eq (current-column)
522 (1+ (current-indentation)))))
523 (indent-according-to-mode))))
524
525
501;;; Syntax table and parsing 526;;; Syntax table and parsing
502 527
503(defvar js-mode-syntax-table 528(defvar js-mode-syntax-table
diff --git a/lisp/simple.el b/lisp/simple.el
index 30498ea2704..35001a694df 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -3472,13 +3472,14 @@ START and END specify the portion of the current buffer to be copied."
3472 (let* ((append-to (get-buffer-create buffer)) 3472 (let* ((append-to (get-buffer-create buffer))
3473 (windows (get-buffer-window-list append-to t t)) 3473 (windows (get-buffer-window-list append-to t t))
3474 point) 3474 point)
3475 (with-current-buffer append-to 3475 (save-excursion
3476 (setq point (point)) 3476 (with-current-buffer append-to
3477 (barf-if-buffer-read-only) 3477 (setq point (point))
3478 (insert-buffer-substring oldbuf start end) 3478 (barf-if-buffer-read-only)
3479 (dolist (window windows) 3479 (insert-buffer-substring oldbuf start end)
3480 (when (= (window-point window) point) 3480 (dolist (window windows)
3481 (set-window-point window (point)))))))) 3481 (when (= (window-point window) point)
3482 (set-window-point window (point)))))))))
3482 3483
3483(defun prepend-to-buffer (buffer start end) 3484(defun prepend-to-buffer (buffer start end)
3484 "Prepend to specified buffer the text of the region. 3485 "Prepend to specified buffer the text of the region.
diff --git a/lisp/subr.el b/lisp/subr.el
index d62cb0c704e..6118c49530c 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -3595,11 +3595,11 @@ Usually the separator is \".\", but it can be any other string.")
3595 ("^[-_+ ]cvs$" . -3) ; treat "1.2.3-CVS" as alpha release 3595 ("^[-_+ ]cvs$" . -3) ; treat "1.2.3-CVS" as alpha release
3596 ("^[-_+ ]?b\\(eta\\)?$" . -2) 3596 ("^[-_+ ]?b\\(eta\\)?$" . -2)
3597 ("^[-_+ ]?\\(pre\\|rc\\)$" . -1)) 3597 ("^[-_+ ]?\\(pre\\|rc\\)$" . -1))
3598 "*Specify association between non-numeric version part and a priority. 3598 "*Specify association between non-numeric version and its priority.
3599 3599
3600This association is used to handle version string like \"1.0pre2\", 3600This association is used to handle version string like \"1.0pre2\",
3601\"0.9alpha1\", etc. It's used by `version-to-list' (which see) to convert the 3601\"0.9alpha1\", etc. It's used by `version-to-list' (which see) to convert the
3602non-numeric part to an integer. For example: 3602non-numeric part of a version string to an integer. For example:
3603 3603
3604 String Version Integer List Version 3604 String Version Integer List Version
3605 \"1.0pre2\" (1 0 -1 2) 3605 \"1.0pre2\" (1 0 -1 2)
@@ -3617,15 +3617,15 @@ Each element has the following form:
3617Where: 3617Where:
3618 3618
3619REGEXP regexp used to match non-numeric part of a version string. 3619REGEXP regexp used to match non-numeric part of a version string.
3620 It should begin with a `^' anchor and end with a `$' to 3620 It should begin with the `^' anchor and end with a `$' to
3621 prevent false hits. Letter-case is ignored while matching 3621 prevent false hits. Letter-case is ignored while matching
3622 REGEXP. 3622 REGEXP.
3623 3623
3624PRIORITY negative integer which indicate the non-numeric priority.") 3624PRIORITY a negative integer specifying non-numeric priority of REGEXP.")
3625 3625
3626 3626
3627(defun version-to-list (ver) 3627(defun version-to-list (ver)
3628 "Convert version string VER into an integer list. 3628 "Convert version string VER into a list of integers.
3629 3629
3630The version syntax is given by the following EBNF: 3630The version syntax is given by the following EBNF:
3631 3631
@@ -3639,17 +3639,17 @@ The version syntax is given by the following EBNF:
3639The NUMBER part is optional if SEPARATOR is a match for an element 3639The NUMBER part is optional if SEPARATOR is a match for an element
3640in `version-regexp-alist'. 3640in `version-regexp-alist'.
3641 3641
3642As an example of valid version syntax: 3642Examples of valid version syntax:
3643 3643
3644 1.0pre2 1.0.7.5 22.8beta3 0.9alpha1 6.9.30Beta 3644 1.0pre2 1.0.7.5 22.8beta3 0.9alpha1 6.9.30Beta
3645 3645
3646As an example of invalid version syntax: 3646Examples of invalid version syntax:
3647 3647
3648 1.0prepre2 1.0..7.5 22.8X3 alpha3.2 .5 3648 1.0prepre2 1.0..7.5 22.8X3 alpha3.2 .5
3649 3649
3650As an example of version convertion: 3650Examples of version conversion:
3651 3651
3652 String Version Integer List Version 3652 Version String Version as a List of Integers
3653 \"1.0.7.5\" (1 0 7 5) 3653 \"1.0.7.5\" (1 0 7 5)
3654 \"1.0pre2\" (1 0 -1 2) 3654 \"1.0pre2\" (1 0 -1 2)
3655 \"1.0PRE2\" (1 0 -1 2) 3655 \"1.0PRE2\" (1 0 -1 2)
@@ -3695,12 +3695,12 @@ See documentation for `version-separator' and `version-regexp-alist'."
3695 3695
3696 3696
3697(defun version-list-< (l1 l2) 3697(defun version-list-< (l1 l2)
3698 "Return t if integer list L1 is lesser than L2. 3698 "Return t if L1, a list specification of a version, is lower than L2.
3699 3699
3700Note that integer list (1) is equal to (1 0), (1 0 0), (1 0 0 0), 3700Note that a version specified by the list (1) is equal to (1 0),
3701etc. That is, the trailing zeroes are irrelevant. Also, integer 3701\(1 0 0), (1 0 0 0), etc. That is, the trailing zeros are insignificant.
3702list (1) is greater than (1 -1) which is greater than (1 -2) 3702Also, a version given by the list (1) is higher than (1 -1), which in
3703which is greater than (1 -3)." 3703turn is higher than (1 -2), which is higher than (1 -3)."
3704 (while (and l1 l2 (= (car l1) (car l2))) 3704 (while (and l1 l2 (= (car l1) (car l2)))
3705 (setq l1 (cdr l1) 3705 (setq l1 (cdr l1)
3706 l2 (cdr l2))) 3706 l2 (cdr l2)))
@@ -3716,12 +3716,12 @@ which is greater than (1 -3)."
3716 3716
3717 3717
3718(defun version-list-= (l1 l2) 3718(defun version-list-= (l1 l2)
3719 "Return t if integer list L1 is equal to L2. 3719 "Return t if L1, a list specification of a version, is equal to L2.
3720 3720
3721Note that integer list (1) is equal to (1 0), (1 0 0), (1 0 0 0), 3721Note that a version specified by the list (1) is equal to (1 0),
3722etc. That is, the trailing zeroes are irrelevant. Also, integer 3722\(1 0 0), (1 0 0 0), etc. That is, the trailing zeros are insignificant.
3723list (1) is greater than (1 -1) which is greater than (1 -2) 3723Also, a version given by the list (1) is higher than (1 -1), which in
3724which is greater than (1 -3)." 3724turn is higher than (1 -2), which is higher than (1 -3)."
3725 (while (and l1 l2 (= (car l1) (car l2))) 3725 (while (and l1 l2 (= (car l1) (car l2)))
3726 (setq l1 (cdr l1) 3726 (setq l1 (cdr l1)
3727 l2 (cdr l2))) 3727 l2 (cdr l2)))
@@ -3737,7 +3737,7 @@ which is greater than (1 -3)."
3737 3737
3738 3738
3739(defun version-list-<= (l1 l2) 3739(defun version-list-<= (l1 l2)
3740 "Return t if integer list L1 is lesser than or equal to L2. 3740 "Return t if L1, a list specification of a version, is lower or equal to L2.
3741 3741
3742Note that integer list (1) is equal to (1 0), (1 0 0), (1 0 0 0), 3742Note that integer list (1) is equal to (1 0), (1 0 0), (1 0 0 0),
3743etc. That is, the trailing zeroes are irrelevant. Also, integer 3743etc. That is, the trailing zeroes are irrelevant. Also, integer
@@ -3757,9 +3757,9 @@ which is greater than (1 -3)."
3757 (t (<= 0 (version-list-not-zero l2))))) 3757 (t (<= 0 (version-list-not-zero l2)))))
3758 3758
3759(defun version-list-not-zero (lst) 3759(defun version-list-not-zero (lst)
3760 "Return the first non-zero element of integer list LST. 3760 "Return the first non-zero element of LST, which is a list of integers.
3761 3761
3762If all LST elements are zeroes or LST is nil, return zero." 3762If all LST elements are zeros or LST is nil, return zero."
3763 (while (and lst (zerop (car lst))) 3763 (while (and lst (zerop (car lst)))
3764 (setq lst (cdr lst))) 3764 (setq lst (cdr lst)))
3765 (if lst 3765 (if lst
@@ -3769,31 +3769,31 @@ If all LST elements are zeroes or LST is nil, return zero."
3769 3769
3770 3770
3771(defun version< (v1 v2) 3771(defun version< (v1 v2)
3772 "Return t if version V1 is lesser than V2. 3772 "Return t if version V1 is lower (older) than V2.
3773 3773
3774Note that version string \"1\" is equal to \"1.0\", \"1.0.0\", \"1.0.0.0\", 3774Note that version string \"1\" is equal to \"1.0\", \"1.0.0\", \"1.0.0.0\",
3775etc. That is, the trailing \".0\"s are irrelevant. Also, version string \"1\" 3775etc. That is, the trailing \".0\"s are insignificant. Also, version
3776is greater than \"1pre\" which is greater than \"1beta\" which is greater than 3776string \"1\" is higher (newer) than \"1pre\", which is higher than \"1beta\",
3777\"1alpha\"." 3777which is higher than \"1alpha\"."
3778 (version-list-< (version-to-list v1) (version-to-list v2))) 3778 (version-list-< (version-to-list v1) (version-to-list v2)))
3779 3779
3780 3780
3781(defun version<= (v1 v2) 3781(defun version<= (v1 v2)
3782 "Return t if version V1 is lesser than or equal to V2. 3782 "Return t if version V1 is lower (older) than or equal to V2.
3783 3783
3784Note that version string \"1\" is equal to \"1.0\", \"1.0.0\", \"1.0.0.0\", 3784Note that version string \"1\" is equal to \"1.0\", \"1.0.0\", \"1.0.0.0\",
3785etc. That is, the trailing \".0\"s are irrelevant. Also, version string \"1\" 3785etc. That is, the trailing \".0\"s are insignificant.. Also, version
3786is greater than \"1pre\" which is greater than \"1beta\" which is greater than 3786string \"1\" is higher (newer) than \"1pre\", which is higher than \"1beta\",
3787\"1alpha\"." 3787which is higher than \"1alpha\"."
3788 (version-list-<= (version-to-list v1) (version-to-list v2))) 3788 (version-list-<= (version-to-list v1) (version-to-list v2)))
3789 3789
3790(defun version= (v1 v2) 3790(defun version= (v1 v2)
3791 "Return t if version V1 is equal to V2. 3791 "Return t if version V1 is equal to V2.
3792 3792
3793Note that version string \"1\" is equal to \"1.0\", \"1.0.0\", \"1.0.0.0\", 3793Note that version string \"1\" is equal to \"1.0\", \"1.0.0\", \"1.0.0.0\",
3794etc. That is, the trailing \".0\"s are irrelevant. Also, version string \"1\" 3794etc. That is, the trailing \".0\"s are insignificant.. Also, version
3795is greater than \"1pre\" which is greater than \"1beta\" which is greater than 3795string \"1\" is higher (newer) than \"1pre\", which is higher than \"1beta\",
3796\"1alpha\"." 3796which is higher than \"1alpha\"."
3797 (version-list-= (version-to-list v1) (version-to-list v2))) 3797 (version-list-= (version-to-list v1) (version-to-list v2)))
3798 3798
3799 3799
diff --git a/lisp/textmodes/artist.el b/lisp/textmodes/artist.el
index bc5f29482e7..41145afb766 100644
--- a/lisp/textmodes/artist.el
+++ b/lisp/textmodes/artist.el
@@ -1319,7 +1319,7 @@ Selecting operation
1319 1319
1320Variables 1320Variables
1321 1321
1322 This is a brief overview of the different varaibles. For more info, 1322 This is a brief overview of the different variables. For more info,
1323 see the documentation for the variables (type \\[describe-variable] <variable> RET). 1323 see the documentation for the variables (type \\[describe-variable] <variable> RET).
1324 1324
1325 artist-rubber-banding Interactively do rubber-banding or not 1325 artist-rubber-banding Interactively do rubber-banding or not
diff --git a/lisp/tmm.el b/lisp/tmm.el
index 946baad59e7..f4ae3c110d5 100644
--- a/lisp/tmm.el
+++ b/lisp/tmm.el
@@ -170,7 +170,11 @@ Its value should be an event that has a binding in MENU."
170 (mapc (lambda (elt) 170 (mapc (lambda (elt)
171 (if (stringp elt) 171 (if (stringp elt)
172 (setq gl-str elt) 172 (setq gl-str elt)
173 (and (listp elt) (tmm-get-keymap elt not-menu)))) 173 (cond
174 ((listp elt) (tmm-get-keymap elt not-menu))
175 ((vectorp elt)
176 (dotimes (i (length elt))
177 (tmm-get-keymap (cons i (aref elt i)) not-menu))))))
174 menu) 178 menu)
175 ;; Choose an element of tmm-km-list; put it in choice. 179 ;; Choose an element of tmm-km-list; put it in choice.
176 (if (and not-menu (= 1 (length tmm-km-list))) 180 (if (and not-menu (= 1 (length tmm-km-list)))
diff --git a/lisp/vc.el b/lisp/vc.el
index 6a48b626136..142a1508162 100644
--- a/lisp/vc.el
+++ b/lisp/vc.el
@@ -1618,9 +1618,10 @@ saving the buffer."
1618 1618
1619;;;###autoload 1619;;;###autoload
1620(defun vc-root-diff (historic &optional not-urgent) 1620(defun vc-root-diff (historic &optional not-urgent)
1621 "Display diffs between file revisions. 1621 "Display diffs between VC-controlled whole tree revisions.
1622Normally this compares the currently selected fileset with their 1622Normally, this compares the tree corresponding to the current
1623working revisions. With a prefix argument HISTORIC, it reads two revision 1623fileset with the working revision.
1624With a prefix argument HISTORIC, prompt for two revision
1624designators specifying which revisions to compare. 1625designators specifying which revisions to compare.
1625 1626
1626The optional argument NOT-URGENT non-nil means it is ok to say no to 1627The optional argument NOT-URGENT non-nil means it is ok to say no to
@@ -1941,7 +1942,12 @@ Not all VC backends support short logs!")
1941;;;###autoload 1942;;;###autoload
1942(defun vc-print-log (&optional working-revision limit) 1943(defun vc-print-log (&optional working-revision limit)
1943 "List the change log of the current fileset in a window. 1944 "List the change log of the current fileset in a window.
1944If WORKING-REVISION is non-nil, leave the point at that revision." 1945If WORKING-REVISION is non-nil, leave point at that revision.
1946If LIMIT is non-nil, it should be a number specifying the maximum
1947number of revisions to show; the default is `vc-log-show-limit'.
1948
1949When called interactively with a prefix argument, prompt for
1950WORKING-REVISION and LIMIT."
1945 (interactive 1951 (interactive
1946 (cond 1952 (cond
1947 (current-prefix-arg 1953 (current-prefix-arg
@@ -1965,7 +1971,10 @@ If WORKING-REVISION is non-nil, leave the point at that revision."
1965 1971
1966;;;###autoload 1972;;;###autoload
1967(defun vc-print-root-log (&optional limit) 1973(defun vc-print-root-log (&optional limit)
1968 "List the change log of for the current VC controlled tree in a window." 1974 "List the change log for the current VC controlled tree in a window.
1975If LIMIT is non-nil, it should be a number specifying the maximum
1976number of revisions to show; the default is `vc-log-show-limit'.
1977When called interactively with a prefix argument, prompt for LIMIT."
1969 (interactive 1978 (interactive
1970 (cond 1979 (cond
1971 (current-prefix-arg 1980 (current-prefix-arg