aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaroly Lorentey2004-10-19 17:00:02 +0000
committerKaroly Lorentey2004-10-19 17:00:02 +0000
commit90b404757b24ea0c88d6ec3ed9c1ccce07bbd19f (patch)
treeb5cb05f7c5d0c27537362072badf76355d363319
parentec16044407f468aacda9eb031fb7267d5ee0f899 (diff)
parentd4c2c0eff81e7540cbb0a32ef10017285f68e1aa (diff)
downloademacs-90b404757b24ea0c88d6ec3ed9c1ccce07bbd19f.tar.gz
emacs-90b404757b24ea0c88d6ec3ed9c1ccce07bbd19f.zip
Merged in changes from CVS trunk.
Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-616 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-617 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-618 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-619 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-620 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-621 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-622 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-623 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-624 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-625 Update from CVS * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-51 Update from CVS * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-52 Update from CVS * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-53 Merge from emacs--cvs-trunk--0 git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-261
-rw-r--r--etc/MAILINGLISTS1307
-rw-r--r--etc/refcard.tex27
-rw-r--r--lisp/ChangeLog173
-rw-r--r--lisp/buff-menu.el61
-rw-r--r--lisp/calc/calc-help.el49
-rw-r--r--lisp/comint.el64
-rw-r--r--lisp/delsel.el2
-rw-r--r--lisp/emacs-lisp/bytecomp.el58
-rw-r--r--lisp/emacs-lisp/cl.el3
-rw-r--r--lisp/emacs-lisp/elp.el1
-rw-r--r--lisp/frame.el4
-rw-r--r--lisp/fringe.el23
-rw-r--r--lisp/gnus/ChangeLog34
-rw-r--r--lisp/gnus/gnus-registry.el2
-rw-r--r--lisp/gnus/message.el27
-rw-r--r--lisp/gnus/nnspool.el2
-rw-r--r--lisp/gnus/pop3.el40
-rw-r--r--lisp/gnus/spam-stat.el2
-rw-r--r--lisp/gnus/spam.el6
-rw-r--r--lisp/help-at-pt.el3
-rw-r--r--lisp/ibuffer.el28
-rw-r--r--lisp/info.el78
-rw-r--r--lisp/language/indian.el26
-rw-r--r--lisp/mouse.el19
-rw-r--r--lisp/msb.el1
-rw-r--r--lisp/net/password.el128
-rw-r--r--lisp/net/tramp.el77
-rw-r--r--lisp/newcomment.el1
-rw-r--r--lisp/outline.el2
-rw-r--r--lisp/paths.el21
-rw-r--r--lisp/pcvs-defs.el2
-rw-r--r--lisp/pcvs-util.el11
-rw-r--r--lisp/pcvs.el20
-rw-r--r--lisp/progmodes/compile.el182
-rw-r--r--lisp/server.el2
-rw-r--r--lisp/shadowfile.el2
-rw-r--r--lisp/startup.el6
-rw-r--r--lisp/strokes.el5
-rw-r--r--lisp/subr.el109
-rw-r--r--lisp/term.el3
-rw-r--r--lisp/textmodes/ispell.el25
-rw-r--r--lisp/url/ChangeLog22
-rw-r--r--lisp/url/url-auth.el8
-rw-r--r--lisp/url/url-gw.el2
-rw-r--r--lisp/url/url-mailto.el3
-rw-r--r--lisp/url/url-misc.el1
-rw-r--r--lisp/url/url-util.el6
-rw-r--r--lisp/url/url-vars.el37
-rw-r--r--lisp/url/url.el20
-rw-r--r--lisp/vc-arch.el4
-rw-r--r--lisp/vc-hooks.el4
-rw-r--r--lisp/view.el15
-rw-r--r--lisp/whitespace.el2
-rw-r--r--man/ChangeLog18
-rw-r--r--man/calc.texi5
-rw-r--r--man/gnus.texi12
-rw-r--r--man/message.texi11
-rw-r--r--nt/INSTALL9
-rw-r--r--src/ChangeLog53
-rw-r--r--src/doc.c16
-rw-r--r--src/fontset.c29
-rw-r--r--src/gtkutil.c9
-rw-r--r--src/lisp.h1
-rw-r--r--src/m/ia64.h2
-rw-r--r--src/search.c21
-rw-r--r--src/w32fns.c12
-rw-r--r--src/w32term.c12
-rw-r--r--src/window.c11
-rw-r--r--src/xdisp.c29
-rw-r--r--src/xterm.h5
70 files changed, 1183 insertions, 1832 deletions
diff --git a/etc/MAILINGLISTS b/etc/MAILINGLISTS
index 7c5558eabf6..743c82d64bb 100644
--- a/etc/MAILINGLISTS
+++ b/etc/MAILINGLISTS
@@ -5,22 +5,27 @@
5 5
6* Mailing list archives 6* Mailing list archives
7 7
8The GNU mailing lists are archived at 8The GNU mailing lists are archived at http://lists.gnu.org.
9ftp://ftp-mailing-list-archives.gnu.org/ 9
10 10* Some GNU mailing lists are also distributed as USENET news groups
11* GNU mailing lists are also distributed as USENET news groups 11
12 12Certain GNU mailing lists are gated both ways with the gnu.all
13The mailing lists are gated both ways with the gnu.all newsgroups at 13newsgroups at uunet. You can tell which they are, because the names
14uunet. The one-to-one correspondence is indicated below. If 14correspond. For instance, bug-gnu-emacs corresponds to gnu.emacs.bug;
15you don't know if your site is on USENET, ask your system administrator. 15info-gnu-emacs, to gnu.emacs.announce; help-gnu-emacs, to
16If you are a USENET site and don't get the gnu.all newsgroups, please 16gnu.emacs.help; gnu-emacs-sources, to gnu.emacs.sources. Replacing
17ask your USENET administrator to get them. If he has your feeds ask 17`emacs' with some other program in those four examples shows you
18their feeds, you should win. And everyone else wins: newsgroups make 18the whole pattern.
19better use of the limited bandwidth of the computer networks and your 19
20home machine than mailing list traffic; and staying off the mailing 20If you don't know if your site is on USENET, ask your system
21lists make better use of the people who maintain the lists and the 21administrator. If you are a USENET site and don't get the gnu.all
22machines that the GNU people working with rms use (i.e. we have more 22newsgroups, please ask your USENET administrator to get them. If he has
23time to produce code!!). Thanx. 23your feeds ask their feeds, you should win. And everyone else wins:
24newsgroups make better use of the limited bandwidth of the computer
25networks and your home machine than mailing list traffic; and staying
26off the mailing lists make better use of the people who maintain the
27lists and the machines that the GNU people working with rms use (i.e. we
28have more time to produce code!!). Thanx.
24 29
25* Getting the mailing lists directly 30* Getting the mailing lists directly
26 31
@@ -35,22 +40,14 @@ transport the mail from us to you.
35Send requests to be added or removed, to help-gnu-emacs-request (or 40Send requests to be added or removed, to help-gnu-emacs-request (or
36info-gnu-request, bug-gdb-request, etc.), NOT to info-gnu-emacs (or 41info-gnu-request, bug-gdb-request, etc.), NOT to info-gnu-emacs (or
37info-gnu, etc.). Most <LIST_NAME>-request addresses are now handled 42info-gnu, etc.). Most <LIST_NAME>-request addresses are now handled
38automagically by the SmartList program. 43automagically by GNU Mailman.
39 44
40If you need to report problems to a human, send mail to gnu@gnu.org 45If you need to report problems to a human, send mail to gnu@gnu.org
41explaining the problem. 46explaining the problem.
42 47
43Many of the GNU mailing lists are very large and are received by many 48Many of the GNU mailing lists are very large and are received by many
44people. Please don't send them anything that is not seriously important 49people. Most are unmoderated, so please don't send them anything that
45to all their readers. All GNU mailing lists are unmoderated mail 50is not seriously important to all their readers.
46reflectors, except info-gnu, info-gnu-emacs, info-gcc, info-g++,
47info-gnu-fortran.
48
49All addresses below are in internet format. Consult the mail guru for
50your computer to figure out address syntaxes from other networks. From
51UUCP machines:
52 ..!ucbvax!gnu.org!ADDRESS
53 ..!uunet!gnu.org!ADDRESS
54 51
55If a message you mail to a list is returned from a MAILER-DAEMON (often 52If a message you mail to a list is returned from a MAILER-DAEMON (often
56with the line: 53with the line:
@@ -80,11 +77,10 @@ available to only those people who want it (e.g. mailing it to people
80who ask, or putting it up for FTP). In the case of gnu.emacs.sources, 77who ask, or putting it up for FTP). In the case of gnu.emacs.sources,
81somewhat larger postings (up to 10 parts of no more than 25,000 78somewhat larger postings (up to 10 parts of no more than 25,000
82characters each) are acceptable (assuming they are likely to be of 79characters each) are acceptable (assuming they are likely to be of
83interest to a reasonable number of people); if it is larger than that 80interest to a reasonable number of people); if it is larger than that,
84have it added to archive.cis.ohio-state.edu (the GNU Emacs Lisp ftp and 81put it in a web page and announce its URL. Good bug reports are short.
85uucp archive) and announce its location there. Good bug reports are 82See section '* General Information about bug-* lists and ...' for
86short. See section '* General Information about bug-* lists and ...' 83further details.
87for further details.
88 84
89Most of the time, when you reply to a message sent to a list, the reply 85Most of the time, when you reply to a message sent to a list, the reply
90should not go to the list. But most mail reading programs supply, by 86should not go to the list. But most mail reading programs supply, by
@@ -170,8 +166,7 @@ overworked; they don't have time to help individuals and still fix the
170bugs and make the improvements that everyone wants. If you want help 166bugs and make the improvements that everyone wants. If you want help
171for yourself in particular, you may have to hire someone. The GNU 167for yourself in particular, you may have to hire someone. The GNU
172project maintains a list of people providing such services. It is 168project maintains a list of people providing such services. It is
173distributed with GNU Emacs in file etc/SERVICE, and can be requested 169found in <URL:http://www.gnu.org/prep/SERVICE>.
174from gnu@gnu.org.
175 170
176Anything addressed to the implementors and maintainers of a GNU program 171Anything addressed to the implementors and maintainers of a GNU program
177via a bug-* list, should NOT be sent to the corresponding info-* or 172via a bug-* list, should NOT be sent to the corresponding info-* or
@@ -197,27 +192,23 @@ And please DON'T post your GNU bug reports to comp.* or other gnu.*
197newsgroups, they never make it to the GNU maintainers at all. Please 192newsgroups, they never make it to the GNU maintainers at all. Please
198mail them to bug-*@gnu.org instead! 193mail them to bug-*@gnu.org instead!
199 194
200See section '* General Information about all lists'. 195* Some special lists that don't fit the usual patterns of help-, bug- and info-
196
197** info-gnu-request@gnu.org to subscribe to info-gnu
201 198
202* info-gnu-request@gnu.org to subscribe to info-gnu 199gnUSENET newsgroup: gnu.announce
203** gnUSENET newsgroup: gnu.announce 200Send announcements to: info-gnu@gnu.org
204** Send announcements to: info-gnu@gnu.org
205 201
206This list distributes progress reports on the GNU Project. It is also 202This list distributes progress reports on the GNU Project. It is also
207used by the GNU Project to ask people for various kinds of help. It is 203used by the GNU Project to ask people for various kinds of help. It is
208NOT for general discussion. 204moderated and NOT for general discussion.
209 205
210The list is filtered to remove items meant for info-gnu-request, that 206** gnu-misc-discuss-request@gnu.org to subscribe to gnu-misc-discuss
211can be answered by the moderator without bothering the list, or should
212have been sent to another list.
213 207
214See section '* General Information about info-* lists'. 208gnUSENET newsgroup: gnu.misc.discuss
209Send contributions to: gnu-misc-discuss@gnu.org
215 210
216* gnu-misc-discuss-request@gnu.org to subscribe to gnu-misc-discuss 211This list is for serious discussion of free software, the GNU Project,
217** gnUSENET newsgroup: gnu.misc.discuss
218** Send contributions to: gnu-misc-discuss@gnu.org
219
220This list is for serious discussion of freed software, the GNU Project,
221the GNU Manifesto, and their implications. It's THE place for 212the GNU Manifesto, and their implications. It's THE place for
222discussion that is not appropriate in the other GNU mailing lists and 213discussion that is not appropriate in the other GNU mailing lists and
223gnUSENET newsgroups. 214gnUSENET newsgroups.
@@ -229,9 +220,11 @@ Good READING and writing are expected. Before posting, wait a while,
229cool off, and think. 220cool off, and think.
230 221
231Don't use this group for complaints and bug reports about GNU software! 222Don't use this group for complaints and bug reports about GNU software!
232The maintainers don't read this group; they won't see your complaint. 223The maintainers of the package you are using probably don't read this
233Use the appropriate bug-reporting mailing list instead, so that people 224group; they won't see your complaint. Use the appropriate bug-reporting
234who can do something about the problem will see it. 225mailing list instead, so that people who can do something about the
226problem will see it. Likewise, use the help- list for technical
227questions.
235 228
236Don't trust pronouncements made on gnu-misc-discuss about what GNU is, 229Don't trust pronouncements made on gnu-misc-discuss about what GNU is,
237what FSF position is, what the GNU General Public License is, etc., 230what FSF position is, what the GNU General Public License is, etc.,
@@ -244,47 +237,13 @@ empty at your site, wait (the articles are posted monthly), your posting
244isn't that urgent! Readers on the Internet can anonymous FTP these 237isn't that urgent! Readers on the Internet can anonymous FTP these
245articles from host ftp.uu.net under directory ?? 238articles from host ftp.uu.net under directory ??
246 239
247Someone from the Free Software Foundation will attempt to follow this
248group as time and volume permits.
249
250Remember, "GNUs Not Unix" and "gnUSENET is Not USENET". We have 240Remember, "GNUs Not Unix" and "gnUSENET is Not USENET". We have
251higher standards! 241higher standards!
252 242
253Note that sending technical questions about specific GNU software to 243** guile-sources-request@gnu.org to subscribe to guile-sources
254gnu-misc-discuss is likely to be less useful than sending them to the
255appropriate mailing list or gnUSENET newsgroup, since more technical
256people read those.
257
258* bug-gnu-sql-request@gnu.org to subscribe to bug-gnu-sql
259** gnUSENET newsgroup: NONE PLANNED
260** GNU-SQL BUG reports to: bug-gnu-sql@gnu.org
261
262This list distributes, to the active maintainers of GNU's SQL (GNU's SQL
263full scale database server), bug reports and fixes for, and suggestions
264for improvements to GNU's SQL. User discussion of GNU's SQL also occurs
265here.
266
267There are no other GNU mailing lists or gnUSENET newsgroups for GNU's SQL.
268
269See section '* General Information about bug-* lists and reporting
270program bugs'.
271
272* bug-guile-request@gnu.org to subscribe to bug-guile
273** gnUSENET newsgroup: NONE PLANNED
274** GUILE BUG reports to: bug-guile@gnu.org
275
276This list distributes, to the active maintainers of GUILE (GNU's
277Ubiquitous Extension Language), bug reports and fixes for, and suggestions for
278improvements to GUILE. User discussion of GUILE also occurs here.
279
280There are no other GNU mailing lists or gnUSENET newsgroups for GUILE .
281 244
282See section '* General Information about bug-* lists and reporting 245gnUSENET newsgroup: NONE PLANNED
283program bugs'. 246Guile source code to: guile-sources@gnu.org
284
285* guile-sources-request@gnu.org to subscribe to guile-sources
286** gnUSENET newsgroup: NONE PLANNED
287** Guile source code to: guile-sources@gnu.org
288 247
289This list will be for the posting, by their authors, of GUILE, Scheme, 248This list will be for the posting, by their authors, of GUILE, Scheme,
290and C sources and patches that improve Guile. Its contents will be 249and C sources and patches that improve Guile. Its contents will be
@@ -315,143 +274,10 @@ If the requested source is very long (>10k bytes) send mail offering to
315send it. This prevents the requester from getting many redundant copies 274send it. This prevents the requester from getting many redundant copies
316and saves network bandwidth. 275and saves network bandwidth.
317 276
318* bug-gnustep-request@gnu.org to subscribe to bug-gnustep 277** gnu-emacs-sources-request@gnu.org to subscribe to gnu-emacs-sources
319** gnUSENET newsgroup: gnu.gnustep.bug
320** Gnustep bug reports to: bug-gnustep@gnu.org
321** FAQ-URL: none known
322** FAQ-Archive-name: none known
323** FAQ-Posting-frequency: none known
324
325This list distributes bug reports for, fixes for bugs in, and
326suggestions for improvements in GNUstep to its active developers.
327
328Subscribers to bug-gnustep get all info-gnustep messages.
329
330See section '* General Information about bug-* lists and reporting
331program bugs'.
332
333* help-gnustep-request@gnu.org to subscribe to help-gnustep
334** gnUSENET newsgroup: gnu.gnustep.help
335** Send contributions to: help-gnustep@gnu.org
336** FAQ-URL: none known
337** FAQ-Archive-name: none known
338** FAQ-Posting-frequency: none known
339
340This list is the place for users and installers of the GNUstep to ask
341for help. Please send bug reports to bug-gnustep@gnu.org
342instead of posting them here.
343
344See section '* General Information about help-* lists'.
345
346* discuss-gnustep-request@gnu.org to subscribe to discuss-gnustep
347** gnUSENET newsgroup: gnu.gnustep.discuss
348** Send contributions to: discuss-gnustep@gnu.org
349** FAQ-URL: none known
350** FAQ-Archive-name: none known
351** FAQ-Posting-frequency: none known
352
353This list is the place for GNUstep users and developers to discuss
354GNUstep. Please send bug reports to bug-gnustep@gnu.org
355instead of posting them here.
356
357See section '* General Information about discuss-* lists'.
358
359* info-gnustep-request@gnu.org to subscribe to info-gnustep
360** gnUSENET newsgroup: gnu.gnustep.announce
361** Send announcements to: info-gnustep@gnu.org
362** FAQ-URL: none known
363** FAQ-Archive-name: none known
364** FAQ-Posting-frequency: none known
365
366This list distributes announcements and progress reports on GNUstep.
367It is NOT for general discussion; please use discuss-gnustep for that.
368
369The list is filtered to remove items meant for info-gnustep-request, that
370can be answered by the moderator without bothering the list, or should
371have been sent to another list.
372
373Do not report GNUstep bugs to info-gnustep, help-gnustep, or
374discuss-gnustep, mail them to bug-gnustep@gnu.org instead.
375
376See section '* General Information about info-* lists'.
377
378* bug-hurd-request@gnu.org to subscribe to bug-hurd
379** gnUSENET newsgroup: NONE
380** Hurd bug reports to: bug-hurd@gnu.org
381
382This list distributes bug reports for, fixes for bugs in, and
383suggestions for improvements in the GNU Hurd to its active developers.
384
385No info-gnu-hurd list is planned. Announcements about the GNU Hurd will
386be made to the list info-gnu@gnu.org (see above).
387
388See section '* General Information about bug-* lists and reporting
389program bugs'.
390
391* help-hurd-request@gnu.org to subscribe to help-hurd
392** gnUSENET newsgroup: NONE
393** Send contributions to: help-hurd@gnu.org
394
395This list is the place for users and installers of the GNU Hurd to ask
396for help.
397
398No info-gnu-hurd list is planned. Announcements about the GNU Hurd will
399be made to the list info-gnu@gnu.org (see above).
400
401See section '* General Information about help-* lists'.
402
403* hurd-ann-request@gnu.org IS NOW DEFUNCT
404** gnUSENET newsgroup: NEVER EXISTED
405** DEAD address: hurd-ann@gnu.org
406
407This list is dead. Announcements about the GNU Hurd will be made to the
408list info-gnu@gnu.org (see above).
409
410* discuss-gnu-electric-request@gnu.org to subscribe to discuss-gnu-electric
411** gnUSENET newsgroup: NONE
412** Send contributions to: discuss-gnu-electric@gnu.org
413
414This list is the place for user discussion of Gnu Electric, a
415sophisticated electrical CAD system that can handle many forms of
416circuit design. Please send bug reports to bug-gnu-electric@gnu.org
417(see next entry).
418
419* bug-gnu-electric-request@gnu.org to subscribe to bug-gnu-electric
420** gnUSENET newsgroup: NONE
421** Gnu Electric bug reports to: bug-gnu-electric@gnu.org
422
423This list distributes, to the active maintainers of GNU Electric, bug
424reports and fixes for, and suggestions for improvements in GNU Electric,
425a sophisticated electrical CAD system that can handle many forms of
426circuit design.
427
428No info-gnu-electric list exists; announcements of new releases are
429made to info-gnu@gnu.org (see above).
430
431See section '* General Information about bug-* lists and reporting
432program bugs'.
433
434* bug-gnu-emacs-request@gnu.org to subscribe to bug-gnu-emacs
435** gnUSENET newsgroup: gnu.emacs.bug
436** Gnu Emacs bug reports to: bug-gnu-emacs@gnu.org
437
438This list distributes, to the active maintainers of GNU Emacs, bug
439reports and fixes for, and suggestions for improvements in GNU Emacs.
440 278
441Send bugs in the GNU Emacs Lisp reference manual to: 279gnUSENET newsgroup: gnu.emacs.sources
442 lisp-manual-bugs@gnu.org 280GNU Emacs source code to: gnu-emacs-sources@gnu.org
443
444lisp-manual-bugs is neither a mailing list nor a gnUSENET newsgroup.
445It's just a bug-reporting address.
446
447Subscribers to bug-gnu-emacs get all info-gnu-emacs messages.
448
449See section '* General Information about bug-* lists and reporting
450program bugs'.
451
452* gnu-emacs-sources-request@gnu.org to subscribe to gnu-emacs-sources
453** gnUSENET newsgroup: gnu.emacs.sources
454** Gnu Emacs source code to: gnu-emacs-sources@gnu.org
455 281
456This list/newsgroup will be for the posting, by their authors, of Emacs 282This list/newsgroup will be for the posting, by their authors, of Emacs
457Lisp and C sources and patches that improve GNU Emacs. Its contents 283Lisp and C sources and patches that improve GNU Emacs. Its contents
@@ -485,1039 +311,6 @@ If the requested source is very long (>10k bytes) send mail offering to
485send it. This prevents the requester from getting many redundant copies 311send it. This prevents the requester from getting many redundant copies
486and saves network bandwidth. 312and saves network bandwidth.
487 313
488* help-gnu-emacs-request@gnu.org to subscribe to help-gnu-emacs
489** gnUSENET newsgroup: gnu.emacs.help (and one-way into comp.emacs)
490** Send contributions to: help-gnu-emacs@gnu.org
491
492This list is the place for users and installers of GNU Emacs to ask for
493help. Please send bug reports to bug-gnu-emacs instead of posting them
494here.
495
496Since help-gnu-emacs is a very large list, send it only those items that
497are seriously important to many people.
498
499If source or patches that were previously posted or a simple fix is
500requested in help-gnu-emacs, please mail it to the requester. Do NOT
501repost it. If you also want something that is requested, send mail to
502the requester asking him to forward it to you. This kind of traffic is
503best handled by e-mail, not a broadcast medium that reaches millions of
504sites.
505
506This list is also gated one way to USENET's newsgroup comp.emacs (once
507known as net.emacs). This one-way gating is done for users whose sites
508get comp.emacs, but not gnu.emacs.help. Users at non-USENET sites may
509receive all articles from comp.emacs by making their request to:
510unix-emacs-request@bbn.com
511
512If Emacs crashes, or if you build Emacs following the standard procedure
513on a system which Emacs is supposed to work on (see etc/MACHINES) and it
514does not work at all, or if an editing command does not behave as it is
515documented to behave, this is a bug. Don't send bug reports to
516help-gnu-emacs (gnu.emacs.help) or post them to comp.emacs; mail them to
517bug-gnu-emacs@gnu.org instead.
518
519See section '* General Information about help-* lists'.
520
521* info-gnu-emacs-request@gnu.org to subscribe to info-gnu-emacs
522** gnUSENET newsgroup: gnu.emacs.announce (and one-way into comp.emacs)
523** Send announcements to: info-gnu-emacs@gnu.org
524
525This list distributes announcements and progress reports on GNU Emacs.
526It is NOT for general discussion; please use help-gnu-emacs for that.
527
528The list is filtered to remove items meant for info-gnu-emacs-request,
529that can be answered by the moderator without bothering the list, or
530should have been sent to another list.
531
532info-gnu-emacs is also gated one way to USENET's newsgroup comp.emacs
533(once known as net.emacs). This one-way gating is done for users whose
534sites get comp.emacs, but not gnu.emacs.announce. Users at non-USENET
535sites may receive all articles from comp.emacs by making their request
536to: unix-emacs-request@bbn.com
537
538Do not report GNU Emacs bugs to info-gnu-emacs or comp.emacs, instead
539mail them to bug-gnu-emacs@gnu.org.
540
541See section '* General Information about info-* lists'.
542
543* vms-gnu-emacs-request@gnu.org to subscribe
544** gnUSENET newsgroup: gnu.emacs.vms
545** Send contributions to: vms-gnu-emacs@gnu.org
546
547This list was a working group who did the initial port of GNU Emacs to
548the VMS operating system. It still discusses problems and solutions to
549the VMS port and the distribution of it.
550
551* bug-bash-request@gnu.org to subscribe to bug-bash
552** gnUSENET newsgroup: gnu.bash.bug
553** BASH bug reports to: bug-bash@gnu.org
554
555This list distributes, to the active maintainers of BASH (the Bourne
556Again SHell), bug reports and fixes for, and suggestions for
557improvements in BASH. User discussion of BASH also occurs here.
558
559Always report the version number of the operating system, hardware, and
560bash (flag -version on startup or check the variable $BASH_VERSION in a
561running bash).
562
563There are no other GNU mailing lists or gnUSENET newsgroups for BASH.
564
565See section '* General Information about bug-* lists and reporting
566program bugs'.
567
568* bug-gdb-request@gnu.org to subscribe to bug-gdb
569** gnUSENET newsgroup: gnu.gdb.bug
570** GDB bug reports to: bug-gdb@gnu.org
571
572This list distributes, to the active maintainers of GDB (Gnu's
573DeBugger), bug reports and fixes for, and suggestions for improvements
574in GDB. This list is also for user discussion.
575
576There are no other GNU mailing lists or gnUSENET newsgroups for GDB.
577
578See section '* General Information about bug-* lists and reporting
579program bugs'.
580
581* bug-ncurses-request@gnu.org to subscribe to bug-ncurses
582** gnUSENET newsgroup: none
583** NCURSES bug reports to: bug-ncurses@gnu.org
584
585This list distributes, to the active maintainers of ncurses
586(a free implementation of the Unix curses API) bug reports and fixes
587for, and suggestions for improvements in ncurses. Users can also
588subscribe to this list.
589
590See section '* General Information about bug-* lists and reporting
591program bugs'.
592
593* help-ncurses-request@gnu.org to subscribe to help-ncurses
594** gnUSENET newsgroup: none
595** posts go to: help-ncurses@gnu.org
596
597This list is the place for users and installers of ncurses to ask for
598help. Please send bug reports to bug-ncurses instead of posting them
599here.
600
601See section '* General Information about help-* lists'
602
603* bug-gnats-request@gnu.org to subscribe to bug-gnats
604** gnUSENET newsgroup: None
605** GNATS bug reports to: bug-gnats@gnu.org
606
607This list distributes, to the active maintainers of GNATS (GNats: A
608Tracking System), bug reports and fixes for, and suggestions for improvements
609in GNATS. This list is also for user discussion.
610
611There are no other GNU mailing lists or gnUSENET newsgroups for GNATS.
612
613See section '* General Information about bug-* lists and reporting
614program bugs'.
615
616* bug-octave-request@bevo.che.utexas.edu to subscribe to bug-octave
617** gnUSENET newsgroup: NONE PLANNED
618** Octave bug reports to: bug-octave@bevo.che.utexas.edu
619
620This list distributes, to the active maintainers of Octave (a system
621for numerical computations), bug reports and fixes for, and
622suggestions for improvements to Octave.
623
624The help-octave mailing list is for user discussion of Octave.
625
626See section '* General Information about bug-* lists and reporting
627program bugs'.
628
629
630* help-octave-request@bevo.che.utexas.edu to subscribe to help-octave
631** gnUSENET newsgroup: NONE PLANNED
632** Send contributions to: help-octave@bevo.che.utexas.edu
633
634This list is the place for users and installers of Octave to ask for
635help. Please send bug reports to bug-octave instead of posting them
636here.
637
638If Octave crashes, or if you build Octave following the standard
639procedure on a system on which Octave is supposed to work on and it
640does not work at all, or if a command does not behave as it is
641documented to behave, this is a bug. Don't send bug reports to
642help-octave; mail them to bug-octave@che.utexas.edu instead.
643
644See section '* General Information about help-* lists'.
645
646* bug-bison-request@gnu.org to subscribe to bug-bison
647** gnUSENET newsgroup: NONE
648** Bison bug reports to: bug-bison@gnu.org
649
650This list distributes, to the active maintainers of Bison
651bug reports and fixes for, and suggestions for improvements
652in Bison. User discussion of Bison bugs occurs here.
653
654See section '* General Information about bug-* lists and reporting
655program bugs'.
656
657* help-bison-request@gnu.org to subscribe to help-bison
658** gnUSENET newsgroup: NONE
659** Send contributions to: help-bison@gnu.org
660
661This list is the place for users and installers of Bison
662to ask for help. Please send bug reports to bug-bison instead
663of posting them here.
664
665See section '* General Information about help-* lists'.
666
667* bug-make-request@gnu.org to subscribe to bug-make
668** gnUSENET newsgroup: NONE
669** Make bug reports to: bug-make@gnu.org
670
671This list distributes, to the active maintainers of GNU make
672bug reports and fixes for, and suggestions for improvements
673in GNU make. User discussion of GNU make bugs occurs here.
674
675See section '* General Information about bug-* lists and reporting
676program bugs'.
677
678* help-make-request@gnu.org to subscribe to help-make
679** gnUSENET newsgroup: NONE
680** Send contributions to: help-make@gnu.org
681
682This list is the place for users and installers of GNU make
683to ask for help. Please send bug reports to bug-make instead
684of posting them here.
685
686See section '* General Information about help-* lists'.
687
688* help-flex-request@gnu.org to subscribe to help-flex
689** gnUSENET newsgroup: NONE
690** Send contributions to: help-flex@gnu.org
691
692This list is the place for users and installers of Flex
693to ask for help. Please send bug reports to bug-gnu-utils instead
694of posting them here.
695
696See section '* General Information about help-* lists'.
697
698* bug-rcs-request@gnu.org to subscribe to bug-rcs
699** gnUSENET newsgroup: NONE
700** RCS bug reports to: bug-rcs@gnu.org
701
702This list distributes, to the active maintainers of RCS
703bug reports and fixes for, and suggestions for improvements
704in RCS. User discussion of RCS bugs occurs here.
705
706See section '* General Information about bug-* lists and reporting
707program bugs'.
708
709* help-rcs-request@gnu.org to subscribe to help-rcs
710** gnUSENET newsgroup: NONE
711** Send contributions to: help-rcs@gnu.org
712
713This list is the place for users and installers of RCS
714to ask for help. Please send bug reports to bug-rcs instead
715of posting them here.
716
717See section '* General Information about help-* lists'.
718
719* bug-gcc-request@gnu.org to subscribe to bug-gcc
720** gnUSENET newsgroup: gnu.gcc.bug
721** GCC bug reports to: bug-gcc@gnu.org
722
723This list distributes bug reports for, fixes for bugs in, and
724suggestions for improvements in the GNU C Compiler to its active
725developers.
726
727Please don't send in a patch without a test case to illustrate the
728problem the patch is supposed to fix. Sometimes the patches aren't
729correct or aren't the best way to do the job, and without a test case
730there is no way to debug an alternate fix.
731
732The most convenient form of test case is a piece of cpp output that can
733be passed directly to cc1. Preferably written in C, not C++ or
734Objective C.
735
736Subscribers to bug-gcc get all info-gcc messages.
737
738See section '* General Information about bug-* lists and reporting
739program bugs'.
740
741* help-gcc-request@gnu.org to subscribe to help-gcc
742** gnUSENET newsgroup: gnu.gcc.help
743** Send contributions to: help-gcc@gnu.org
744
745This list is the place for users and installers of the GNU C Compiler to
746ask for help.
747
748If gcc crashes, or if you build gcc following the standard procedure on
749a system which gcc is supposed to work on (see config.sub) and it does
750not work at all, or if an command line option does not behave as it is
751documented to behave, this is a bug. Don't send bug reports to help-gcc
752(gnu.gcc.help); mail them to bug-gcc@gnu.org instead.
753
754See section '* General Information about help-* lists'.
755
756* info-gcc-request@gnu.org to subscribe to info-gcc
757** gnUSENET newsgroup: gnu.gcc.announce
758** Send announcements to: info-gcc@gnu.org
759
760This list distributes announcements and progress reports on the GNU C
761Compiler. It is NOT for general discussion; please use help-gcc for
762that.
763
764The list is filtered to remove items meant for info-gcc-request, that
765can be answered by the moderator without bothering the list, or should
766have been sent to another list.
767
768See section '* General Information about info-* lists'.
769
770* bug-gnu960-request@ichips.intel.com to subscribe to bug-gnu960
771** gnUSENET newsgroup: NONE PLANNED
772** Intel 960 Port bug reports to: bug-gnu960@ichips.intel.com
773
774This list distributes bug reports for, fixes for bugs in, and
775suggestions for improvements in Intel's port of GNU software to the
776Intel 960 microprocessor.
777
778You can also fax to: GNU/960 - 1-503-696-4930.
779
780There are no other GNU mailing lists or gnUSENET newsgroups for Intel's
781port of GNU software to the Intel 960 microprocessor.
782
783See section '* General Information about bug-* lists and reporting
784program bugs'.
785
786* bug-glibc-request@gnu.org to subscribe to bug-glibc
787** gnUSENET newsgroup: gnu.glibc.bug
788** GNU C Library bug reports to: bug-glibc@gnu.org
789
790This list distributes, to the active maintainers of glibc (GNU's C
791library), bug reports and fixes for, and suggestions for improvements in
792glibc. User discussion of glibc also occurs here.
793
794Announcements of new releases of glibc are made on both info-gcc and
795bug-glibc.
796
797There are no other GNU mailing lists or gnUSENET newsgroups for the GNU
798C Library.
799
800See section '* General Information about bug-* lists and reporting
801program bugs'.
802
803* bug-g++-request@gnu.org to subscribe to bug-g++
804** gnUSENET newsgroup: gnu.g++.bug
805** G++ bug reports to: bug-g++@gnu.org
806
807This list distributes bug reports for, fixes for bugs in, and
808suggestions for improvements in the GNU C++ Compiler to its active
809developers.
810
811G++ uses the GNU C-Compiler back end. Active developers may wish to
812subscribe to bug-gcc@gnu.org as well.
813
814Subscribers to bug-g++ get all info-g++ messages.
815
816See section '* General Information about bug-* lists and reporting
817program bugs'.
818
819* help-g++-request@gnu.org to subscribe to help-g++
820** gnUSENET newsgroup: gnu.g++.help (and one-way into comp.lang.c++)
821** Send contributions to: help-g++@gnu.org
822
823This list is the place for users and installers of the GNU C++ Compiler
824to ask for help. Please send bug reports to bug-g++@gnu.org
825instead of posting them here.
826
827help-g++ is also gated one way to USENET's newsgroup comp.lang.c++.
828This one-way gating is done for users whose sites get comp.lang.c++, but
829not gnu.g++.help.
830
831See section '* General Information about help-* lists'.
832
833* info-g++-request@gnu.org to subscribe to info-g++
834** gnUSENET newsgroup: gnu.g++.announce (and one-way into comp.lang.c++)
835** Send announcements to: info-g++@gnu.org
836
837This list distributes announcements and progress reports on the GNU C++
838Compiler. It is NOT for general discussion; please use help-g++ for
839that.
840
841The list is filtered to remove items meant for info-g++-request, that
842can be answered by the moderator without bothering the list, or should
843have been sent to another list.
844
845It is also gated one way to USENET's newsgroup comp.lang.c++. This
846one-way gating is done for users whose sites get comp.lang.c++, but not
847gnu.g++.announce.
848
849Do not report g++ bugs to info-g++ or comp.lang.c++, mail them to
850bug-g++@gnu.org instead.
851
852See section '* General Information about info-* lists'.
853
854* bug-lib-g++-request@gnu.org to subscribe to bug-lib-g++
855** gnUSENET newsgroup: gnu.g++.lib.bug
856** lib-g++ bug reports to: bug-lib-g++@gnu.org
857
858This list distributes, to the active maintainers of libg++ (GNU's
859library for C++), bug reports and fixes for, and suggestions for
860improvements in lib-g++. User discussion of libg++ also occurs here.
861
862Announcements of new releases of libg++ are made on both info-g++ and
863bug-lib-g++.
864
865There are no other GNU mailing lists or gnUSENET newsgroups for GNU's
866G++ Library.
867
868See section '* General Information about bug-* lists and reporting
869program bugs'.
870
871* info-gnu-fortran-request@gnu.org to subscribe to info-gnu-fortran
872** gnUSENET newsgroup: NONE YET
873** Send announcements to: info-gnu-fortran@gnu.org
874
875This list is for progress reports and release notices for G77/GNU
876Fortran.
877
878The list is filtered to remove items meant for info-gnu-fortran-request,
879that can be answered by the moderator without bothering the list, or that
880should have been sent to another list.
881
882People on the Internet can get a current status report by fingering the
883address fortran@gnu.org or by looking at the GNU Fortran web pages at
884http://www.gnu.org/software/fortran/fortran.html.
885
886Users looking for help should ask the help-gnu-fortran@gnu.org list.
887Bug reports should go to bug-gnu-fortran@gnu.org.
888
889See section '* General Information about info-* lists'.
890
891* help-gnu-fortran-request@gnu.org to subscribe to help-gnu-fortran
892** gnUSENET newsgroup: NONE YET
893** Send messages to: help-gnu-fortran@gnu.org
894
895This list is for user requests for help and discussion about GNU
896Fortran (G77). Bug reports should go to bug-gnu-fortran@gnu.org.
897
898See section '* General Information about help-* lists'.
899
900* bug-gnu-fortran@@gnu.org to subscribe to bug-gnu-fortran
901** gnUSENET newsgroup: NONE YET
902** Send messages to: help-gnu-fortran@gnu.org
903
904This list is for bug-reports and patches for GNU Fortran
905(G77). Requests for help should go to help-gnu-fortran@gnu.org.
906
907See section '* General Information about bug-* lists and reporting
908program bugs'.
909
910* bug-oleo-request@gnu.org to subscribe to bug-oleo
911** gnUSENET newsgroup: NONE PLANNED
912** Oleo bug reports to: bug-oleo@gnu.org
913
914This list distributes, to the active maintainers of Oleo (the GNU
915spreadsheet), bug reports and fixes for, and suggestions for
916improvements to Oleo. User discussion of Oleo also occurs here.
917
918There are no other GNU mailing lists or gnUSENET newsgroups for Oleo.
919
920See section '* General Information about bug-* lists and reporting
921program bugs'.
922
923* bug-gmp-request@gnu.org to subscribe to bug-gmp
924** gnUSENET newsgroup: NONE PLANNED
925** gmp bug reports to: bug-gmp@gnu.org
926
927This list distributes, to the active maintainers of gmp (the GNU
928Multiple Precision Library), bug reports and fixes for, and suggestions
929for improvements to gmp. User discussion of gmp also occurs here.
930
931There are no other GNU mailing lists or gnUSENET newsgroups for gmp .
932
933See section '* General Information about bug-* lists and reporting
934program bugs'.
935
936* bug-panorama-request@gnu.org to subscribe to bug-panorama
937** gnUSENET newsgroup: NONE PLANNED
938** panorama bug reports to: bug-panorama@gnu.org
939
940This list is a place for users of Panorama to send bug reports, fixes
941for them, and suggestions for improvements.
942
943See section '* General Information about bug-* lists and reporting
944program bugs'.
945
946* help-panorama-request@gnu.org to subscribe to help-panorama
947** gnUSENET newsgroup: NONE PLANNED
948** articles to: help-panorama@gnu.org
949
950This list is the place for users and installers of Panorama to ask for
951help. Please send bug reports to bug-panorama instead of posting them
952here.
953
954* devel-panorama-request@gnu.org to subscribe to devel-panorama
955** gnUSENET newsgroup: NONE PLANNED
956** articles to: devel-panorama@gnu.org
957
958This list is a place for discussion among active developers of Panorama
959API or any of its plugins.
960
961* bug-mana-request@gnu.org to subscribe to bug-mana
962** gnUSENET newsgroup: NONE PLANNED
963** mana bug reports to: bug-mana@gnu.org
964
965This list distributes, to the active maintainers of mana (the GNU
966stand-alone mail reader), bug reports and fixes for, and suggestions
967for improvements to mana. User discussion of mana also occurs here.
968
969There are no other GNU mailing lists or gnUSENET newsgroups for mana.
970
971See section '* General Information about bug-* lists and reporting
972program bugs'.
973
974* bug-zebra-request@gnu.org to subscribe to bug-zebra
975** gnUSENET newsgroup: NONE PLANNED
976** zebra bug reports to: bug-zebra@gnu.org
977
978This list distributes, to the active maintainers of zebra (a GPLed
979program to manage TCP/IP based routing protocols), bug reports, bug fixes,
980and suggestions for improvements to zebra. User discussion of zebra
981also occurs here.
982
983There are no other GNU mailing lists or gnUSENET newsgroups for zebra.
984
985See section '* General Information about bug-* lists and reporting
986program bugs'.
987
988* bug-cfengine-request@gnu.org to subscribe to bug-cfengine
989** gnUSENET newsgroup: gnu.cfengine.bug
990** cfengine bug reports to: bug-cfengine@gnu.org
991
992This list distributes, to the active maintainers of cfengine (configure
993BSD and System-5-like operating systems attached to a TCP/IP network),
994bug reports and fixes for, and suggestions for improvements to cfengine.
995User discussion of cfengine also occurs here.
996
997See section '* General Information about bug-* lists and reporting
998program bugs'.
999
1000* help-cfengine-request@gnu.org to subscribe to help-cfengine
1001** gnUSENET newsgroup: gnu.cfengine.help
1002** Send contributions to: help-cfengine@gnu.org
1003
1004This list is the place for users and installers of cfengine to ask for
1005help. Please send bug reports to bug-cfengine instead of posting them
1006here.
1007
1008This list is also used for announcements about cfengine and related
1009programs, and small but important patches. Announcements of cfengine
1010releases are also made to info-gnu@gnu.org (see above)
1011
1012Since help-cfengine is a large list, send it only those items that
1013are seriously important to many people.
1014
1015If source or patches that were previously posted or a simple fix is
1016requested in help-cfengine, please mail it to the requester. Do NOT
1017repost it. If you also want something that is requested, send mail to
1018the requester asking him to forward it to you. This kind of traffic is
1019best handled by e-mail, not a broadcast medium that reaches millions of
1020sites.
1021
1022See section '* General Information about help-* lists'.
1023Also see section '* General Information about info-* lists'.
1024
1025* bug-gnu-smalltalk-request@gnu.org to subscribe to bug-gnu-smalltalk
1026** gnUSENET newsgroup: gnu.smalltalk.bug
1027** GNU Smalltalk bug reports to: bug-gnu-smalltalk@gnu.org
1028
1029GNU Smalltalk is the GNU project implementation of the Smalltalk language.
1030
1031This list distributes, to the active maintainers of GNU Smalltalk, bug
1032reports and fixes for, and suggestions for improvements to GNU
1033Smalltalk. User discussion of GNU Smalltalk also occurs here.
1034
1035For now, new releases of GNU Smalltalk will also be announced on this list.
1036
1037There are no other GNU mailing lists or gnUSENET newsgroups for GNU
1038Smalltalk.
1039
1040See section '* General Information about bug-* lists and reporting
1041program bugs'.
1042
1043* st-next-request@laplace.eng.sun.com to subscribe to st-next
1044** gnUSENET newsgroup: NONE PLANNED
1045** Send contributions to: st-next@laplace.eng.sun.com
1046
1047For people interested in working on GNU Smalltalk on the NeXT.
1048
1049* bug-groff-request@gnu.org to subscribe to bug-groff
1050** gnUSENET newsgroup: gnu.groff.bug
1051** GNU groff bug reports to: bug-groff@gnu.org
1052
1053groff is the GNU project implementation, in C++, of the traditional Unix
1054document formatting tools.
1055
1056This list distributes, to the active maintainers of groff, bug reports
1057and fixes for, and suggestions for improvements to groff (and it
1058component programs). User discussion of groff also occurs here.
1059
1060For now, new releases of groff will also be announced on this list.
1061
1062There are no other GNU mailing lists or gnUSENET newsgroups for groff.
1063
1064See section '* General Information about bug-* lists and reporting
1065program bugs'.
1066
1067* bug-ghostscript-request@gnu.org to subscribe to bug-ghostscript
1068** gnUSENET newsgroup: gnu.ghostscript.bug
1069** Ghostscript bug reports to: bug-ghostscript@gnu.org
1070
1071Ghostscript is the GNU project implementation of a language and graphics
1072library with a remarkable similarity to PostScript.
1073
1074This list distributes, to the active maintainers of Ghostscript, bug
1075reports and fixes for, and suggestions for improvements in Ghostscript.
1076
1077For now, new releases of Ghostscript will also be announced on this list.
1078
1079There are no other GNU mailing lists or gnUSENET newsgroups for
1080Ghostscript.
1081
1082See section '* General Information about bug-* lists and reporting
1083program bugs'.
1084
1085* bug-gnu-utils-request@gnu.org to subscribe to bug-gnu-utils
1086** gnUSENET newsgroup: gnu.utils.bug
1087** GNU Utilities bug reports to: bug-gnu-utils@gnu.org
1088
1089This list distributes, to the active maintainers of these programs, bug
1090reports and fixes for, and suggestions for improvements in GNU programs
1091not covered by other bug-* mailing lists/gnu.*.bug newsgroups.
1092
1093See section '* General Information about bug-* lists and reporting
1094program bugs'.
1095
1096* help-gnu-utils-request@gnu.org to subscribe to help-gnu-utils
1097** gnUSENET newsgroup: gnu.utils.help
1098** Send contributions to: help-gnu-utils@gnu.org
1099
1100This list is the place for users and installers of GNU programs not
1101covered by other GNU mailing lists/gnu.* newsgroups to ask for help.
1102
1103Don't send bug reports to help-gnu-utils (gnu.utils.help); mail them to
1104bug-gnu-utils@gnu.org instead.
1105
1106See section '* General Information about help-* lists'.
1107
1108* info-gnu-utils-request@gnu.org IS NOW DEFUNCT
1109** a gnUSENET newsgroup bever existed
1110** DEAD address: info-gnu-utils@gnu.org
1111
1112This list is dead. Announcements about GNU Utilities will be made to the
1113list info-gnu@gnu.org (see above).
1114
1115* info-cvs-request@gnu.org to subscribe to info-cvs.
1116** USENET newsgroup: (none)
1117** CVS discussions/questions to: info-cvs@gnu.org
1118
1119This list is for discussion and dissemination of information about
1120CVS. Please check the FAQ before posting questions, however.
1121
1122* bug-cvs-request@gnu.org to subscribe to bug-cvs.
1123** USENET newsgroup: (none)
1124** CVS bug reports to: bug-cvs@gnu.org
1125
1126This list distributes bug reports, fixes, and suggestions for
1127improvements to the maintainers of CVS.
1128
1129* bug-dr-geo-request@gnu.org to subscribe to bug-dr-geo
1130** gnUSENET newsgroup: NONE
1131** Dr. Geo bug reports to: bug-dr-geo@gnu.org
1132
1133This list distributes bug reports for, fixes for bugs in, and
1134suggestions for improvements in Dr. Geo to its active developers.
1135
1136See section '* General Information about bug-* lists and reporting
1137program bugs'.
1138
1139* bug-fortran-mode-request@erl.mit.edu to subscribe to bug-fortran-mode
1140** USENET newsgroup: (none)
1141** Fortran mode bug reports to: bug-fortran-mode@erl.mit.edu
1142
1143This list collects bug reports, fixes for bugs, and suggestions for
1144improvements in GNU Emacs's Fortran mode (a major mode to support
1145editing Fortran source code).
1146
1147It is the place to report Fortran mode bugs by all users of Fortran
1148mode.
1149
1150Always report the version number Fortran mode reports on startup as well
1151as the version of Emacs.
1152
1153There is no info-fortran-mode list. There are no USENET gateways to
1154bug-fortran-mode at this time.
1155
1156* info-gnus-request@flab.fujitsu.co.jp to subscribe
1157** gnUSENET newsgroup: NONE YET
1158** Send contributions to: info-gnus@flab.fujitsu.co.jp
1159
1160The list is intended to exchange useful information about GNUS, such as
1161bug reports, useful hooks, and extensions of GNUS. GNUS is an NNTP-base
1162network news reader for GNU Emacs (which also works with a news spool).
1163English and Japanese are the official languages of the list. GNUS is
1164quite different than gnews.
1165
1166* info-gnus-english-request@gnu.org to subscribe
1167** gnUSENET newsgroup: gnu.emacs.gnus
1168** Send contributions to: info-gnus-english@gnu.org
1169
1170The list has the same charter as info-gnus. The difference is that
1171English is the only official language of the list.
1172
1173info-gnus-english/gnu.emacs.gnus is forward to info-gnus, but NOT
1174vice-versa.
1175
1176* info-gnews-request@ics.uci.edu to subscribe to info-gnews
1177** gnUSENET newsgroup: gnu.emacs.gnews
1178** Send contributions to: info-gnews@ics.uci.edu
1179
1180This newsgroup is intended to exchange useful information about gnews,
1181such as bug reports, useful hooks, and extensions of gnews. gnews is an
1182NNTP-base network news reader for GNU Emacs (which also works a news
1183spool). It is quite different than GNUS.
1184
1185* gnu-emacs-ada-request@grebyn.com to subscribe to gnu-emacs-ada
1186** gnUSENET newsgroup: NONE PLANNED
1187** Gnu Emacs Ada support bug reports to: gnu-emacs-ada@grebyn.com
1188
1189This list distributes bug reports for, fixes for bugs in, and
1190suggestions for improvements in GNU Emacs' editing support of the Ada
1191programming language.
1192
1193There are no other GNU mailing lists or gnUSENET newsgroups for GNU
1194Emacs' editing support of Ada.
1195
1196See section '* General Information about bug-* lists and reporting
1197program bugs'.
1198
1199* bug-vm-request@uunet.uu.net to subscribe to bug-vm
1200** gnUSENET newsgroup: gnu.emacs.vm.bug
1201** VM mail reader bug reports to: bug-vm@uunet.uu.net
1202
1203This list discusses bugs in View Mail mode for GNU Emacs, with an
1204emphasis on beta and prerelease versions.
1205
1206Always report the version number of VM you are using, as well as the
1207version of Emacs you're running. If you believe it is significant,
1208report the operating system used and the hardware.
1209
1210Subscribers to bug-vm get all info-vm messages.
1211
1212* info-vm-request@uunet.uu.net to subscribe to info-vm
1213** gnUSENET newsgroup: gnu.emacs.vm.info
1214** Send contributions to: info-vm@uunet.uu.net
1215
1216This list discusses the View Mail mode for GNU Emacs, an alternative to
1217rmail mode.
1218
1219* supercite-request@warsaw.nlm.nih.gov to subscribe to supercite
1220** gnUSENET newsgroup: NONE PLANNED
1221** Send articles to: supercite@warsaw.nlm.nih.gov
1222*** UUCP: ..!uunet!warsaw.nlm.nih.gov!supercite-request
1223
1224The supercite mailing list covers issues related to the advanced
1225mail/news citation package called Supercite for GNU Emacs.
1226
1227* auc-tex-request@sunsite.dk to subscribe
1228** USENET newsgroup: NONE YET
1229** Send contributions to: auc-tex@sunsite.dk
1230
1231The list is intended to exchange information about AUCTeX, such as
1232bug reports, request for help, and information on current
1233developments. AUCTeX is a much enhanced TeX/LaTeX/ConTeXt/Texinfo mode
1234for GNU Emacs.
1235
1236The list is unmoderated.
1237
1238* bug-gnu-chess-request@gnu.org to subscribe to bug-gnu-chess
1239** gnUSENET newsgroup: gnu.chess.bug
1240** GNU Chess bug reports to: bug-gnu-chess@gnu.org
1241
1242This list directly accesses the GNU Chess developer's group. If you
1243have a *BUG* to report about the program, which can also include a
1244feature enhancement request, please send it to this list.
1245
1246Subscribers to bug-gnu-chess get all info-gnu-chess messages.
1247
1248See section '* General Information about bug-* lists and reporting
1249program bugs'.
1250
1251* help-gnu-chess-request@gnu.org IS NOW DEFUNCT
1252** gnUSENET newsgroup: NONE PLANNED
1253** DEAD address: help-gnu-chess@gnu.org
1254
1255This list is dead. Use info-gnu-chess@gnu.org/gnu.chess instead.
1256
1257* info-gnu-chess-request@gnu.org to subscribe to info-gnu-chess
1258** gnUSENET newsgroup: gnu.chess
1259** Send contributions to: info-gnu-chess@gnu.org
1260** FAQ-URL: http://www.tim-mann.org/chess.html
1261** FAQ-Archive-name: games/chess/gnu-faq
1262** FAQ-Posting-frequency: monthly
1263
1264This list is the place for users and installers of GNU Chess to ask for
1265help. This list is also used for games played by people or other
1266entities against the program, and other generalized non-bug,
1267non-enhancement data. Please send bug reports to bug-gnu-chess instead
1268of posting them here.
1269
1270This list is also used for announcements about GNU Chess and related
1271programs, and small but important patches. Announcements of GNU Chess
1272releases are also made to info-gnu@gnu.org (see above)
1273
1274Since info-gnu-chess is a large list, send it only those items that
1275are seriously important to many people.
1276
1277If source or patches that were previously posted or a simple fix is
1278requested in info-gnu-chess, please mail it to the requester. Do NOT
1279repost it. If you also want something that is requested, send mail to
1280the requester asking him to forward it to you. This kind of traffic is
1281best handled by e-mail, not a broadcast medium that reaches millions of
1282sites.
1283
1284See section '* General Information about help-* lists'.
1285Also see section '* General Information about info-* lists'.
1286
1287* bug-gnu-shogi-request@gnu.org to subscribe to bug-gnu-shogi
1288** gnUSENET newsgroup: NONE PLANNED
1289** GNU Shogi bug reports to: bug-gnu-shogi@gnu.org
1290
1291This list directly accesses the GNU Shogi developer's group. If you
1292have a *BUG* to report about the program, which can also include a
1293feature enhancement request, please send it to this list.
1294
1295Subscribers to bug-gnu-shogi get all info-gnu-shogi messages.
1296
1297See section '* General Information about bug-* lists and reporting
1298program bugs'.
1299
1300Shogi is a game something like chess. There are several different types
1301of pieces, a board that is 9 by 9 squares, and the modification that a
1302captured piece can be reintroduced on the board by the capturing player
1303(and used). Due to this last difference from Western chess, a Shogi
1304game never simplifies.
1305
1306* bug-mcsim-request@gnu.org to subscribe to bug-mcsim
1307** gnUSENET newsgroup: None at present.
1308** MCSim bug reports to: bug-mcsim@gnu.org
1309
1310This list is used for bug reports concerning MCSim, a general-
1311purpose modeling and simulation program. It is also for user
1312discussion of bug fixes and patches.
1313
1314This list is unmoderated.
1315
1316See section '* General Information about bug-* lists and reporting
1317program bugs'.
1318
1319* help-mcsim-request@gnu.org to subscribe to help-mcsim
1320** gnUSENET newsgroup: None at present.
1321** Send contributions to: help-mcsim@gnu.org
1322
1323This list is the place for users and installers of MCSim to ask for
1324help. Please send bug reports to bug-mcsim instead of posting them
1325here.
1326
1327This list is also used for announcements about MCSim and related
1328programs, and small but important patches. Announcements of MCSim
1329releases are also made to info-gnu@gnu.org (see above)
1330
1331* bug-m4-request@gnu.org to subscribe to bug-m4
1332** gnUSENET newsgroup: None at present.
1333** Send contributions to: bug-m4@gnu.org
1334
1335This list is used for bug reports concerning m4, the GNU implementation
1336of the traditional Unix macro processor. It is also for user
1337discussion of bug fixes and patches.
1338
1339This list is unmoderated.
1340
1341* gpc-request@gnu.de to subscribe to gpc
1342** gnUSENET newsgroup: None at present.
1343** Send contributions to: gpc@gnu.de
1344
1345This list is the user mailing list for GNU Pascal.
1346*NOTE* This list was formerly at gpc@hut.fi, and moved as of 1999-05-13.
1347Announcements will now be sent to an announcements list (see next entry)
1348as well as to this list and info-gnu@gnu.org.
1349
1350* gpc-announce-request@gnu.de to subscribe to gpc-announce
1351** gnUSENET newsgroup: None at present.
1352** Send contributions to: gpc-announce@gnu.de
1353
1354This list will have announcements to interest to users of GNU Pascal,
1355including new releases.
1356
1357* autoconf-request@gnu.org to subscribe to automake
1358** gnUSENET newsgroup: NONE PLANNED
1359** Send contributions to: autoconf@gnu.org
1360
1361The list can be used to discuss the autoconf build system and related
1362tools (eg config.guess). The discussion can range from simple "how-to"
1363questions up to patches and future directions for this tool.
1364
1365* automake-request@gnu.org to subscribe to automake
1366** gnUSENET newsgroup: NONE PLANNED
1367** Send contributions to: automake@gnu.org
1368
1369The list can be used to discuss automake and related tools (eg libtool).
1370The discussion can range from simple "how-to" questions up to patches
1371and configuration philosophy.
1372
1373* libtool-request@gnu.org to subscribe to libtool
1374** gnUSENET newsgroup: NONE PLANNED
1375** Send contributions to: libtool@gnu.org
1376
1377The list can be used to discuss development and porting of libtool, and
1378anything else that the libtool developers might find interesting (excepting
1379bug-reports which have a list of their own).
1380
1381This list is unmoderated.
1382
1383* bug-libtool-request@gnu.org to subscribe to bug-libtool
1384** gnUSENET newsgroup: NONE PLANNED
1385** Send contributions to: bug-libtool@gnu.org
1386
1387The list can be used to submit and to discuss bugs in libtool. The
1388discussion can range from bug reports and patches themselves to discourse
1389related to specific bugs and patches.
1390
1391This list is unmoderated.
1392
1393* libtool-commit-request@gnu.org to subscribe to libtool
1394** gnUSENET newsgroup: NONE PLANNED
1395** Send contributions to: libtool-commit@gnu.org
1396
1397The list distributes automatic reports of cvs commits to the libtool
1398development sources to the list subscribers. Probably, any discussion
1399related to these automatic submissions should go to the libtool list which
1400has more subscribers who will see the submission.
1401
1402This list is unmoderated.
1403
1404* bug-a2ps-request@gnu.org to subscribe to bug-a2ps
1405** gnUSENET newsgroup: NONE PLANNED
1406** Send contributions to: bug-a2ps@gnu.org
1407
1408This list is used for bug reports concerning GNU a2ps, an Any to
1409PostScript filter. People willing to help (debugging, or helping users)
1410may subscribe to this list.
1411
1412This list is unmoderated.
1413
1414* a2ps-request@gnu.org to subscribe to a2ps
1415** gnUSENET newsgroup: NONE PLANNED
1416** Send contributions to: a2ps@gnu.org
1417
1418On this list are sent announcements about GNU a2ps --included betas--,
1419discussions on the interface, implementations etc. It is by no means a
1420bug reporting address, and its volume should be kept moderate. To this
1421end, and to avoid `accidents' (bug reports and spam), this list is not
1422moderated but members only can post.
1423
1424* wget-subscribe@sunsite.auc.dk to subscribe to wget@sunsite.auc.dk
1425** gnUSENET newsgroup: NONE PLANNED
1426** Send contributions to: wget@sunsite.auc.dk
1427
1428This list is for user discussion of wget. This list is not moderated.
1429
1430* help-gnu-shogi-request@gnu.org IS NOW DEFUNCT
1431** gnUSENET newsgroup: NONE PLANNED
1432** DEAD address: help-gnu-shogi@gnu.org
1433
1434This list is dead.
1435
1436* info-gnu-shogi-request@gnu.org to subscribe to info-gnu-shogi
1437** gnUSENET newsgroup: NONE PLANNED
1438** Send contributions to: info-gnu-shogi@gnu.org
1439
1440This list is the place for users and installers of GNU Shogi to ask for
1441help. This list is also used for games played by people or other
1442entities against the program, and other generalized non-bug,
1443non-enhancement data. Please send bug reports to bug-gnu-shogi instead
1444of posting them here.
1445
1446This list is also used for announcements about GNU Shogi and related
1447programs, and small but important patches. Announcements of GNU Shogi
1448releases are also made to info-gnu@gnu.org (see above)
1449
1450Since info-gnu-shogi is a large list, send it only those items that
1451are seriously important to many people.
1452
1453If source or patches that were previously posted or a simple fix is
1454requested in info-gnu-shogi, please mail it to the requester. Do NOT
1455repost it. If you also want something that is requested, send mail to
1456the requester asking him to forward it to you. This kind of traffic is
1457best handled by e-mail, not a broadcast medium that reaches millions of
1458sites.
1459
1460See section '* General Information about help-* lists'.
1461Also see section '* General Information about info-* lists'.
1462
1463* bug-texinfo-request@gnu.org to subscribe to bug-texinfo
1464** gnUSENET newsgroup: NONE
1465** GNU Texinfo bug reports to: bug-texinfo@gnu.org
1466
1467This list distributes, to the active maintainers of these programs, bug
1468reports and fixes for, and suggestions for improvements in GNU Texinfo,
1469both the programs and the language.
1470
1471See section '* General Information about bug-* lists and reporting
1472program bugs'.
1473
1474* help-texinfo-request@gnu.org to subscribe to help-texinfo
1475** gnUSENET newsgroup: NONE
1476** Send contributions to: help-texinfo@gnu.org
1477
1478This list is the place for authors, users and installers of GNU Texinfo
1479to ask for help.
1480
1481Don't send bug reports to help-texinfo; mail them to
1482bug-texinfo@gnu.org instead.
1483
1484See section '* General Information about help-* lists'.
1485
1486* gnu-manual-request@a.cs.uiuc.edu IS NOW DEFUNCT
1487** DEAD: Gnusenet newsgroup: gnu.emacs.lisp.manual
1488** DEAD address: gnu-manual@a.cs.uiuc.edu
1489*** DEAD UUCP address: ..!uunet!uiucdcs!gnu-manual-request
1490
1491This list and newsgroup is dead. It was a working group whose
1492volunteers wrote, proofread and commented on the developing GNU Emacs
1493Lisp programmers manual.
1494
1495Send bugs in the GNU Emacs Lisp reference manual to:
1496 lisp-manual-bugs@gnu.org
1497
1498lisp-manual-bugs is neither a mailing list nor a gnUSENET newsgroup.
1499It's just a bug-reporting address.
1500
1501* no mailing list request
1502** gnUSENET newsgroup: gnu.gnusenet.config
1503** no mailing list
1504
1505This newsgroup has nothing to do with GNU software, especially its
1506configuration. It exists to distribute information about the
1507administration and configuration of gnUSENET: the gnu.all alternative
1508USENET hierarchy that carry the GNU mailing lists.
1509
1510Administrators of gnUSENET hosts receiving the gnu.all newsgroups are
1511welcome to ask questions here or via e-mail of gnu@gnu.org.
1512
1513* no mailing list request
1514** gnUSENET newsgroup: gnu.gnusenet.test
1515** no mailing list
1516
1517This newsgroup has nothing to do with GNU software, especially its
1518testing. It exists to allow test messages to be made in gnUSENET: the
1519gnu.all alternative USENET hierarchy that carry the GNU mailing lists.
1520
1521Local variables: 314Local variables:
1522mode: outline 315mode: outline
1523fill-column: 72 316fill-column: 72
diff --git a/etc/refcard.tex b/etc/refcard.tex
index b48dfb69589..c44d43a22a6 100644
--- a/etc/refcard.tex
+++ b/etc/refcard.tex
@@ -1,12 +1,19 @@
1% Reference Card for GNU Emacs version 21 on Unix systems 1% Reference Card for GNU Emacs version 21 on Unix systems
2%**start of header 2%**start of header
3\newcount\columnsperpage 3\newcount\columnsperpage
4\newcount\letterpaper
4 5
5% This file can be printed with 1, 2, or 3 columns per page (see below). 6% This file can be printed with 1, 2, or 3 columns per page (see below).
6% Specify how many you want here. Nothing else needs to be changed. 7% Specify how many you want here.
7 8
8\columnsperpage=1 9\columnsperpage=3
9 10
11% Set letterpapaer to 0 for A4 paper, 1 for letter (US) paper. Useful
12% only when columnsperpage is 2 or 3.
13
14\letterpaper=1
15
16% Nothing else needs to be changed below this line.
10% Copyright (c) 1987, 1993, 1996, 1997 Free Software Foundation, Inc. 17% Copyright (c) 1987, 1993, 1996, 1997 Free Software Foundation, Inc.
11 18
12% This file is part of GNU Emacs. 19% This file is part of GNU Emacs.
@@ -42,6 +49,10 @@
42% For this you need a dvi device driver that can print sideways. 49% For this you need a dvi device driver that can print sideways.
43% Which mode to use is controlled by setting \columnsperpage above. 50% Which mode to use is controlled by setting \columnsperpage above.
44% 51%
52% To compile and print this document:
53% tex refcard.tex
54% dvips -t landscape refcard.dvi
55%
45% Author: 56% Author:
46% Stephen Gildea 57% Stephen Gildea
47% Internet: gildea@stop.mail-abuse.org 58% Internet: gildea@stop.mail-abuse.org
@@ -103,7 +114,11 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
103 \def\makefootline{\baselineskip10pt\hsize6.5in\line{\the\footline}} 114 \def\makefootline{\baselineskip10pt\hsize6.5in\line{\the\footline}}
104\else %2 or 3 columns uses prereduced size 115\else %2 or 3 columns uses prereduced size
105 \hsize 3.2in 116 \hsize 3.2in
106 \vsize 7.95in 117 \if 1\the\letterpaper
118 \vsize 7.95in
119 \else
120 \vsize 7.65in
121 \fi
107 \hoffset -.75in 122 \hoffset -.75in
108 \voffset -.745in 123 \voffset -.745in
109 \font\titlefont=cmbx10 \scaledmag2 124 \font\titlefont=cmbx10 \scaledmag2
@@ -123,7 +138,11 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
123 \def\bf{\eightbf} 138 \def\bf{\eightbf}
124 \def\it{\eightit} 139 \def\it{\eightit}
125 \def\tt{\eighttt} 140 \def\tt{\eighttt}
126 \normalbaselineskip=.8\normalbaselineskip 141 \if 1\the\letterpaper
142 \normalbaselineskip=.8\normalbaselineskip
143 \else
144 \normalbaselineskip=.7\normalbaselineskip
145 \fi
127 \normallineskip=.8\normallineskip 146 \normallineskip=.8\normallineskip
128 \normallineskiplimit=.8\normallineskiplimit 147 \normallineskiplimit=.8\normallineskiplimit
129 \normalbaselines\rm %make definitions take effect 148 \normalbaselines\rm %make definitions take effect
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 41606eb7e93..eaa71c4abad 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,10 +1,164 @@
12004-10-18 David Ponce <david@dponce.com>
2
3 * mouse.el (mouse-drag-move-window-top): New function.
4 (mouse-drag-mode-line-1): Use it.
5
62004-10-18 Thien-Thi Nguyen <ttn@gnu.org>
7
8 * info.el (Info-fontify-node): For multiline refs,
9 arrange to unfontify newline and surrounding whitespace.
10
112004-10-17 Stefan Monnier <monnier@iro.umontreal.ca>
12
13 * vc-arch.el (vc-arch-workfile-version): Don't burp if the patch-log
14 directory is missing.
15
162004-10-17 John Paul Wallington <jpw@gnu.org>
17
18 * ibuffer.el (ibuffer-default-display-maybe-show-predicates):
19 New customizable variable; whether to display buffers that match
20 `ibuffer-maybe-show-predicates' by default.
21 (ibuffer-maybe-show-predicates): Mention it in docstring.
22 (ibuffer-display-maybe-show-predicates): New variable.
23 (ibuffer-update): Prefix arg now toggles whether buffers that
24 match `ibuffer-maybe-show-predicates' should be displayed.
25 (ibuffer-mode): Set `ibuffer-display-maybe-show-predicates'
26 locally to heed `ibuffer-default-display-maybe-show-predicates'.
27 (ibuffer-redisplay-engine): Rename optional second arg to `ignore'.
28
292004-10-17 Michael Albinus <michael.albinus@gmx.de>
30
31 * net/tramp.el: Redo sync with Tramp 2.0.45. Last commit did not
32 work correctly.
33
342004-10-17 Daniel Pfeiffer <occitan@esperanto.org>
35
36 * buff-menu.el (Buffer-menu-revert-function): Emulate save-excursion.
37 (Buffer-menu-beginning): New helper function.
38 (Buffer-menu-execute): Use it.
39 (Buffer-menu-select): Use it.
40 (Buffer-menu-sort): Use it and also keep markers.
41
422004-10-17 Richard M. Stallman <rms@gnu.org>
43
44 * paths.el (news-directory): Rename from news-path. Old name alias.
45 (rmail-spool-directory): Use defvar.
46 (sendmail-program): Use defcustom.
47 (remote-shell-program): Use defcustom.
48 (term-file-prefix): Use defvar.
49 (abbrev-file-name): Use defvar.
50
51 * term.el: Add maintainer.
52
53 * subr.el (with-local-quit): Return nil if there's a quit.
54 (read-passwd): Use with-local-quit. Doc fix.
55
56 * strokes.el (strokes-list-strokes): Don't try to delete char at eob.
57 (strokes-unload-hook): Set as a variable with add-hook.
58
59 * startup.el (fancy-splash-tail, normal-splash-screen):
60 Update copyright year.
61
62 * shadowfile.el (shadowfile-unload-hook): Set as variable w/ add-hook.
63
64 * server.el (server-unload-hook): Set as a variable with add-hook.
65
66 * help-at-pt.el (help-at-pt-unload-hook): Use add-hook; no defvar.
67
68 * frame.el (special-display-popup-frame):
69 Make the buffer current as its frame is created.
70
71 * delsel.el (delsel-unload-hook): Set as a variable.
72
73 * comint.el (comint-output-filter-functions):
74 Add comint-watch-for-password-prompt.
75 (comint-read-noecho): Function deleted.
76 (send-invisible): Use read-passwd.
77
78 * fringe.el (fringe-mode-initialize): New function.
79 (fringe-mode): Use fringe-mode-initialize as :initialize.
80
812004-10-17 Kim F. Storm <storm@cua.dk>
82
83 * language/indian.el (indian-script-language-alist): Swap value and doc.
84 (indian-font-char-index-table): Doc fix.
85
862004-10-16 Stefan Monnier <monnier@iro.umontreal.ca>
87
88 * vc-hooks.el (vc-find-file-hook): Call vc-backend with absolute name.
89
902004-10-16 Juri Linkov <juri@jurta.org>
91
92 * progmodes/compile.el (compilation-start): Move let-binding of
93 `process-environment' into `with-current-buffer' body.
94 Reported by Matt Hodges <MPHodges@member.fsf.org>.
95
962004-10-16 Richard M. Stallman <rms@gnu.org>
97
98 * pcvs-util.el (cvs-bury-buffer):
99 Don't call get-buffer-window for effect.
100
101 * outline.el (hide-other): Call outline-up-heading with INVISIBLE-OK=t.
102
103 * newcomment.el (comment-auto-fill-only-comments): Add autoload.
104
105 * msb.el (msb-unload-hook): Set the variable.
106
107 * mouse.el (mouse-yank-at-click, mouse-yank-secondary):
108 Use * to err if buffer is readonly.
109
110 * subr.el (looking-back): Return only t or nil.
111
112 * whitespace.el (whitespace-unload-hook): Set the variable.
113
114 * view.el (view-mode-enable): Set view-page-size and
115 view-half-page-size to nil.
116 (view-set-half-page-size-default): view-half-page-size = nil
117 means the default.
118 (View-scroll-page-forward): Use view-page-size-default.
119 (View-scroll-page-backward): Likewise.
120 (view-page-size, view-half-page-size): Doc fixes.
121
122 * emacs-lisp/elp.el (elp-unload-hook): Set the variable.
123
124 * emacs-lisp/cl.el (cl-unload-hook): Don't defvar it, just set it.
125
126 * emacs-lisp/bytecomp.el (byte-compile-eval): Don't process
127 "cl" like other files. Instead, call byte-compile-find-cl-functions.
128 (byte-compile-log-1): Bind inhibit-read-only.
129 (byte-compile-warning-prefix, byte-compile-log-file): Likewise.
130 (byte-compile-log-warning): Likewise.
131 (byte-compile-file-form-require): Detect "cl" from the arg value.
132
133 * progmodes/compile.el (compilation-start): Assume compilation-mode
134 will make the buffer read-only.
135 (compilation-mode): Take arg name-of-mode.
136 (compilation-setup): Make buffer read-only.
137 (compilation-handle-exit): Bind inhibit-read-only.
138
139 * textmodes/ispell.el (ispell-command-loop): Use with-no-warnings.
140 (ispell-message): Likewise.
141 (ispell-show-choices): Don't call get-buffer-window uselessly.
142 (ispell-init-process): Use set-process-query-on-exit-flag.
143
1442004-10-16 Kim F. Storm <storm@cua.dk>
145
146 * fringe.el (fringe-bitmaps): Only initialize when defined.
147
148 * pcvs.el (cvs-mode-view-file, cvs-mode-view-file-other-window): Add.
149 (cvs-mode-find-file): Add optional `view' arg to enter view mode.
150
151 * pcvs-defs.el (cvs-mode-map): Bind v to cvs-mode-view-file.
152
1532004-10-15 Simon Josefsson <jas@extundo.com>
154
155 * net/password.el: Add.
156
12004-10-13 Daniel Pfeiffer <occitan@esperanto.org> 1572004-10-13 Daniel Pfeiffer <occitan@esperanto.org>
2 158
3 * button.el (button-activate): Allow a marker to display as an 159 * button.el (button-activate): Allow a marker to display as an action.
4 action.
5 160
6 * help-fns.el (describe-variable): Use it to make "below" a 161 * help-fns.el (describe-variable): Use it to make "below" a hyperlink.
7 hyperlink.
8 162
9 * help.el (describe-mode): Use it to make minor mode list into 163 * help.el (describe-mode): Use it to make minor mode list into
10 hyperlinks. 164 hyperlinks.
@@ -25,6 +179,15 @@
25 (event-modifiers): Use push. 179 (event-modifiers): Use push.
26 (mouse-movement-p, with-temp-buffer): Simplify. 180 (mouse-movement-p, with-temp-buffer): Simplify.
27 181
1822004-10-12 Richard M. Stallman <rms@gnu.org>
183
184 * info-look.el (info-lookup-file): Add info-file property.
185 (info-lookup-symbol): Likewise.
186
187 * info.el (info-xref): Add underlining.
188 (info): Add info-file property.
189 (Info-find-emacs-command-nodes): Specify case-sensitive search.
190
282004-10-12 Michael Albinus <michael.albinus@gmx.de> 1912004-10-12 Michael Albinus <michael.albinus@gmx.de>
29 192
30 Sync with Tramp 2.0.45. 193 Sync with Tramp 2.0.45.
@@ -201,7 +364,7 @@
2012004-10-05 Juri Linkov <juri@jurta.org> 3642004-10-05 Juri Linkov <juri@jurta.org>
202 365
203 * isearch.el (isearch-done): Set mark after running hook. 366 * isearch.el (isearch-done): Set mark after running hook.
204 Suggested by Drew Adams <drew.adams@oracle.com>. 367 Reported by Drew Adams <drew.adams@oracle.com>.
205 368
206 * info.el (Info-history, Info-toc): Fix Info headers. 369 * info.el (Info-history, Info-toc): Fix Info headers.
207 (Info-toc): Narrow buffer before Info-fontify-node. 370 (Info-toc): Narrow buffer before Info-fontify-node.
diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el
index 33a8c3ec3f5..da21f5336d8 100644
--- a/lisp/buff-menu.el
+++ b/lisp/buff-menu.el
@@ -197,9 +197,15 @@ Letters do not insert themselves; instead, they are commands.
197 197
198(defun Buffer-menu-revert-function (ignore1 ignore2) 198(defun Buffer-menu-revert-function (ignore1 ignore2)
199 ;; We can not use save-excursion here. The buffer gets erased. 199 ;; We can not use save-excursion here. The buffer gets erased.
200 (let ((old-point (point))) 200 (let ((ocol (current-column))
201 (oline (progn (move-to-column 4)
202 (get-text-property (point) 'buffer)))
203 (prop (point-min)))
201 (list-buffers-noselect Buffer-menu-files-only) 204 (list-buffers-noselect Buffer-menu-files-only)
202 (goto-char old-point))) 205 (while (setq prop (next-single-property-change prop 'buffer))
206 (when (eq (get-text-property prop 'buffer) oline)
207 (goto-char prop)
208 (move-to-column ocol)))))
203 209
204(defun Buffer-menu-toggle-files-only (arg) 210(defun Buffer-menu-toggle-files-only (arg)
205 "Toggle whether the current buffer-menu displays only file buffers. 211 "Toggle whether the current buffer-menu displays only file buffers.
@@ -354,13 +360,16 @@ and then move up one line. Prefix arg means move that many lines."
354 (delete-char 1) 360 (delete-char 1)
355 (insert (if arg ?* ? )))))) 361 (insert (if arg ?* ? ))))))
356 362
363(defun Buffer-menu-beginning ()
364 (goto-char (point-min))
365 (unless Buffer-menu-use-header-line
366 (forward-line)))
367
357(defun Buffer-menu-execute () 368(defun Buffer-menu-execute ()
358 "Save and/or delete buffers marked with \\<Buffer-menu-mode-map>\\[Buffer-menu-save] or \\<Buffer-menu-mode-map>\\[Buffer-menu-delete] commands." 369 "Save and/or delete buffers marked with \\<Buffer-menu-mode-map>\\[Buffer-menu-save] or \\<Buffer-menu-mode-map>\\[Buffer-menu-delete] commands."
359 (interactive) 370 (interactive)
360 (save-excursion 371 (save-excursion
361 (goto-char (point-min)) 372 (Buffer-menu-beginning)
362 (unless Buffer-menu-use-header-line
363 (forward-line 1))
364 (while (re-search-forward "^..S" nil t) 373 (while (re-search-forward "^..S" nil t)
365 (let ((modp nil)) 374 (let ((modp nil))
366 (save-excursion 375 (save-excursion
@@ -371,9 +380,7 @@ and then move up one line. Prefix arg means move that many lines."
371 (delete-char -1) 380 (delete-char -1)
372 (insert (if modp ?* ? )))))) 381 (insert (if modp ?* ? ))))))
373 (save-excursion 382 (save-excursion
374 (goto-char (point-min)) 383 (Buffer-menu-beginning)
375 (unless Buffer-menu-use-header-line
376 (forward-line 1))
377 (let ((buff-menu-buffer (current-buffer)) 384 (let ((buff-menu-buffer (current-buffer))
378 (buffer-read-only nil)) 385 (buffer-read-only nil))
379 (while (re-search-forward "^D" nil t) 386 (while (re-search-forward "^D" nil t)
@@ -399,9 +406,7 @@ in the selected frame."
399 (menu (current-buffer)) 406 (menu (current-buffer))
400 (others ()) 407 (others ())
401 tem) 408 tem)
402 (goto-char (point-min)) 409 (Buffer-menu-beginning)
403 (unless Buffer-menu-use-header-line
404 (forward-line 1))
405 (while (re-search-forward "^>" nil t) 410 (while (re-search-forward "^>" nil t)
406 (setq tem (Buffer-menu-buffer t)) 411 (setq tem (Buffer-menu-buffer t))
407 (let ((buffer-read-only nil)) 412 (let ((buffer-read-only nil))
@@ -581,7 +586,35 @@ For more information, see the function `buffer-menu'."
581 (if (< column 2) (setq column 2)) 586 (if (< column 2) (setq column 2))
582 (if (> column 5) (setq column 5))) 587 (if (> column 5) (setq column 5)))
583 (setq Buffer-menu-sort-column column) 588 (setq Buffer-menu-sort-column column)
584 (Buffer-menu-revert)) 589 (let (buffer-read-only l buf m1 m2)
590 (save-excursion
591 (Buffer-menu-beginning)
592 (while (not (eobp))
593 (when (buffer-live-p (setq buf (get-text-property (+ (point) 4) 'buffer)))
594 (setq m1 (char-after)
595 m1 (if (memq m1 '(?> ?D)) m1)
596 m2 (char-after (+ (point) 2))
597 m2 (if (eq m2 ?S) m2))
598 (if (or m1 m2)
599 (push (list buf m1 m2) l)))
600 (forward-line)))
601 (Buffer-menu-revert)
602 (setq buffer-read-only)
603 (save-excursion
604 (Buffer-menu-beginning)
605 (while (not (eobp))
606 (when (setq buf (assq (get-text-property (+ (point) 4) 'buffer) l))
607 (setq m1 (cadr buf)
608 m2 (cadr (cdr buf)))
609 (when m1
610 (delete-char 1)
611 (insert m1)
612 (backward-char 1))
613 (when m2
614 (forward-char 2)
615 (delete-char 1)
616 (insert m2)))
617 (forward-line)))))
585 618
586(defun Buffer-menu-make-sort-button (name column) 619(defun Buffer-menu-make-sort-button (name column)
587 (if (equal column Buffer-menu-sort-column) (setq column nil)) 620 (if (equal column Buffer-menu-sort-column) (setq column nil))
@@ -592,7 +625,9 @@ For more information, see the function `buffer-menu'."
592 'mouse-face 'highlight 625 'mouse-face 'highlight
593 'keymap (let ((map (make-sparse-keymap))) 626 'keymap (let ((map (make-sparse-keymap)))
594 (define-key map [header-line mouse-2] 627 (define-key map [header-line mouse-2]
595 `(lambda () (interactive) 628 `(lambda (e)
629 (interactive "e")
630 (if e (set-buffer (window-buffer (posn-window (event-end e)))))
596 (Buffer-menu-sort ,column))) 631 (Buffer-menu-sort ,column)))
597 map))) 632 map)))
598 633
diff --git a/lisp/calc/calc-help.el b/lisp/calc/calc-help.el
index c24a13b91d7..c48ac23e8e5 100644
--- a/lisp/calc/calc-help.el
+++ b/lisp/calc/calc-help.el
@@ -112,34 +112,27 @@ C-w Describe how there is no warranty for Calc."
112 (describe-bindings) 112 (describe-bindings)
113 (save-excursion 113 (save-excursion
114 (set-buffer "*Help*") 114 (set-buffer "*Help*")
115 (goto-char (point-min)) 115 (let ((buffer-read-only nil))
116 (if (search-forward "Global bindings:" nil t) 116 (goto-char (point-min))
117 (delete-region (match-beginning 0) (point-max))) 117 (when (search-forward "Major Mode Bindings:" nil t)
118 (goto-char (point-min)) 118 (delete-region (point-min) (point))
119 (while (re-search-forward "\n[a-z] ESC" nil t) 119 (insert "Calc Mode Bindings:"))
120 (end-of-line) 120 (when (search-forward "Global bindings:" nil t)
121 (delete-region (match-beginning 0) (point))) 121 (forward-line -1)
122 (goto-char (point-min)) 122 (delete-region (point) (point-max)))
123 (while (re-search-forward "\nESC m" nil t) 123 (goto-char (point-min))
124 (end-of-line) 124 (while
125 (delete-region (match-beginning 0) (point))) 125 (re-search-forward
126 (goto-char (point-min)) 126 "\n[a-z] [0-9]\\( .*\n\\)\\([a-z] [0-9]\\1\\)*[a-z] \\([0-9]\\)\\1"
127 (while (search-forward "\n\n\n" nil t) 127 nil t)
128 (backward-delete-char 1) 128 (let ((dig1 (char-after (1- (match-beginning 1))))
129 (backward-char 2)) 129 (dig2 (char-after (match-beginning 3))))
130 (goto-char (point-min)) 130 (delete-region (match-end 1) (match-end 0))
131 (while 131 (goto-char (match-beginning 1))
132 (re-search-forward 132 (delete-backward-char 1)
133 "\n[a-z] [0-9]\\(\t\t.*\n\\)\\([a-z] [0-9]\\1\\)*[a-z] \\([0-9]\\)\\1" 133 (delete-char 5)
134 nil t) 134 (insert (format "%c .. %c" (min dig1 dig2) (max dig1 dig2)))))
135 (let ((dig1 (char-after (1- (match-beginning 1)))) 135 (goto-char (point-min)))))
136 (dig2 (char-after (match-beginning 3))))
137 (delete-region (match-end 1) (match-end 0))
138 (goto-char (match-beginning 1))
139 (delete-backward-char 1)
140 (delete-char 1)
141 (insert (format "%c .. %c" (min dig1 dig2) (max dig1 dig2)))))
142 (goto-char (point-min))))
143 136
144(defun calc-describe-key-briefly (key) 137(defun calc-describe-key-briefly (key)
145 (interactive "kDescribe key briefly: ") 138 (interactive "kDescribe key briefly: ")
diff --git a/lisp/comint.el b/lisp/comint.el
index 8b2c779ecd3..cfbd618c896 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -372,7 +372,7 @@ history list. Default is to save anything that isn't all whitespace.")
372 "Special hook run before input is sent to the process. 372 "Special hook run before input is sent to the process.
373These functions get one argument, a string containing the text to send.") 373These functions get one argument, a string containing the text to send.")
374 374
375(defvar comint-output-filter-functions '(comint-postoutput-scroll-to-bottom) 375(defvar comint-output-filter-functions '(comint-postoutput-scroll-to-bottom comint-watch-for-password-prompt)
376 "Functions to call after output is inserted into the buffer. 376 "Functions to call after output is inserted into the buffer.
377One possible function is `comint-postoutput-scroll-to-bottom'. 377One possible function is `comint-postoutput-scroll-to-bottom'.
378These functions get one argument, a string containing the text as originally 378These functions get one argument, a string containing the text as originally
@@ -1901,65 +1901,7 @@ prompt skip is done by skipping text matching the regular expression
1901 1901
1902;; These three functions are for entering text you don't want echoed or 1902;; These three functions are for entering text you don't want echoed or
1903;; saved -- typically passwords to ftp, telnet, or somesuch. 1903;; saved -- typically passwords to ftp, telnet, or somesuch.
1904;; Just enter m-x send-invisible and type in your line, or add 1904;; Just enter m-x send-invisible and type in your line.
1905;; `comint-watch-for-password-prompt' to `comint-output-filter-functions'.
1906
1907(defun comint-read-noecho (prompt &optional stars)
1908 "Read a single line of text from user without echoing, and return it.
1909Prompt with argument PROMPT, a string. Optional argument STARS causes
1910input to be echoed with '*' characters on the prompt line. Input ends with
1911RET, LFD, or ESC. DEL or C-h rubs out. C-u kills line. C-g aborts (if
1912`inhibit-quit' is set because e.g. this function was called from a process
1913filter and C-g is pressed, this function returns nil rather than a string).
1914
1915Note that the keystrokes comprising the text can still be recovered
1916\(temporarily) with \\[view-lossage]. Some people find this worrisome (see,
1917however, `clear-this-command-keys').
1918Once the caller uses the password, it can erase the password
1919by doing (clear-string STRING)."
1920 (let ((ans "")
1921 (newans nil)
1922 (c 0)
1923 (echo-keystrokes 0)
1924 (cursor-in-echo-area t)
1925 (message-log-max nil)
1926 (done nil))
1927 (while (not done)
1928 (if stars
1929 (message "%s%s" prompt (make-string (length ans) ?*))
1930 (message "%s" prompt))
1931 ;; Use this instead of `read-char' to avoid "Non-character input-event".
1932 (setq c (read-char-exclusive))
1933 (cond ((= c ?\C-g)
1934 ;; This function may get called from a process filter, where
1935 ;; inhibit-quit is set. In later versions of emacs read-char
1936 ;; may clear quit-flag itself and return C-g. That would make
1937 ;; it impossible to quit this loop in a simple way, so
1938 ;; re-enable it here (for backward-compatibility the check for
1939 ;; quit-flag below would still be necessary, so this seems
1940 ;; like the simplest way to do things).
1941 (setq quit-flag t
1942 done t))
1943 ((or (= c ?\r) (= c ?\n) (= c ?\e))
1944 (setq done t))
1945 ((= c ?\C-u)
1946 (clear-string ans)
1947 (setq ans ""))
1948 ((and (/= c ?\b) (/= c ?\177))
1949 (setq newans (concat ans (char-to-string c)))
1950 (clear-string ans)
1951 (setq ans newans))
1952 ((> (length ans) 0)
1953 (aset ans (1- (length ans)) 0)
1954 (setq ans (substring ans 0 -1)))))
1955 (if quit-flag
1956 ;; Emulate a true quit, except that we have to return a value.
1957 (prog1
1958 (setq quit-flag nil)
1959 (message "Quit")
1960 (beep t))
1961 (message "")
1962 ans)))
1963 1905
1964(defun send-invisible (&optional prompt) 1906(defun send-invisible (&optional prompt)
1965 "Read a string without echoing. 1907 "Read a string without echoing.
@@ -1970,7 +1912,7 @@ Security bug: your string can still be temporarily recovered with
1970 (interactive "P") ; Defeat snooping via C-x ESC ESC 1912 (interactive "P") ; Defeat snooping via C-x ESC ESC
1971 (let ((proc (get-buffer-process (current-buffer)))) 1913 (let ((proc (get-buffer-process (current-buffer))))
1972 (if proc 1914 (if proc
1973 (let ((str (comint-read-noecho (or prompt "Non-echoed text: ") t))) 1915 (let ((str (read-passwd (or prompt "Non-echoed text: "))))
1974 (if (stringp str) 1916 (if (stringp str)
1975 (progn 1917 (progn
1976 (comint-snapshot-last-prompt) 1918 (comint-snapshot-last-prompt)
diff --git a/lisp/delsel.el b/lisp/delsel.el
index d8e034a5f9f..962fa156a07 100644
--- a/lisp/delsel.el
+++ b/lisp/delsel.el
@@ -147,6 +147,8 @@ then it takes a second \\[keyboard-quit] to abort the minibuffer."
147 (define-key minibuffer-local-must-match-map "\C-g" 'abort-recursive-edit) 147 (define-key minibuffer-local-must-match-map "\C-g" 'abort-recursive-edit)
148 (define-key minibuffer-local-isearch-map "\C-g" 'abort-recursive-edit)) 148 (define-key minibuffer-local-isearch-map "\C-g" 'abort-recursive-edit))
149 149
150(add-hook 'delsel-unload-hook 'delsel-unload-hook)
151
150(provide 'delsel) 152(provide 'delsel)
151 153
152;;; arch-tag: 1e388890-1b50-4ed0-9347-763b1343b6ed 154;;; arch-tag: 1e388890-1b50-4ed0-9347-763b1343b6ed
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 2b0a8e698a6..118352937bd 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -792,7 +792,8 @@ Each function's symbol gets added to `byte-compile-noruntime-functions'."
792 (let ((xs (pop hist-new)) 792 (let ((xs (pop hist-new))
793 old-autoloads) 793 old-autoloads)
794 ;; Make sure the file was not already loaded before. 794 ;; Make sure the file was not already loaded before.
795 (unless (assoc (car xs) hist-orig) 795 (unless (or (assoc (car xs) hist-orig)
796 (equal (car xs) "cl"))
796 (dolist (s xs) 797 (dolist (s xs)
797 (cond 798 (cond
798 ((symbolp s) 799 ((symbolp s)
@@ -809,7 +810,18 @@ Each function's symbol gets added to `byte-compile-noruntime-functions'."
809 (when (and (symbolp s) (not (memq s old-autoloads))) 810 (when (and (symbolp s) (not (memq s old-autoloads)))
810 (push s byte-compile-noruntime-functions)) 811 (push s byte-compile-noruntime-functions))
811 (when (and (consp s) (eq t (car s))) 812 (when (and (consp s) (eq t (car s)))
812 (push (cdr s) old-autoloads)))))))))) 813 (push (cdr s) old-autoloads)))))))
814 (when (memq 'cl-functions byte-compile-warnings)
815 (let ((hist-new load-history)
816 (hist-nil-new current-load-list))
817 ;; Go through load-history, look for newly loaded files
818 ;; and mark all the functions defined therein.
819 (while (and hist-new (not (eq hist-new hist-orig)))
820 (let ((xs (pop hist-new))
821 old-autoloads)
822 ;; Make sure the file was not already loaded before.
823 (when (and (equal (car xs) "cl") (not (assoc (car xs) hist-orig)))
824 (byte-compile-find-cl-functions)))))))))
813 825
814(defun byte-compile-eval-before-compile (form) 826(defun byte-compile-eval-before-compile (form)
815 "Evaluate FORM for `eval-and-compile'." 827 "Evaluate FORM for `eval-and-compile'."
@@ -848,12 +860,13 @@ Each function's symbol gets added to `byte-compile-noruntime-functions'."
848;; Log something that isn't a warning. 860;; Log something that isn't a warning.
849(defun byte-compile-log-1 (string) 861(defun byte-compile-log-1 (string)
850 (with-current-buffer "*Compile-Log*" 862 (with-current-buffer "*Compile-Log*"
851 (goto-char (point-max)) 863 (let ((inhibit-read-only t))
852 (byte-compile-warning-prefix nil nil) 864 (goto-char (point-max))
853 (cond (noninteractive 865 (byte-compile-warning-prefix nil nil)
854 (message " %s" string)) 866 (cond (noninteractive
855 (t 867 (message " %s" string))
856 (insert (format "%s\n" string)))))) 868 (t
869 (insert (format "%s\n" string)))))))
857 870
858(defvar byte-compile-read-position nil 871(defvar byte-compile-read-position nil
859 "Character position we began the last `read' from.") 872 "Character position we began the last `read' from.")
@@ -904,7 +917,8 @@ Each function's symbol gets added to `byte-compile-noruntime-functions'."
904;; This is used as warning-prefix for the compiler. 917;; This is used as warning-prefix for the compiler.
905;; It is always called with the warnings buffer current. 918;; It is always called with the warnings buffer current.
906(defun byte-compile-warning-prefix (level entry) 919(defun byte-compile-warning-prefix (level entry)
907 (let* ((dir default-directory) 920 (let* ((inhibit-read-only t)
921 (dir default-directory)
908 (file (cond ((stringp byte-compile-current-file) 922 (file (cond ((stringp byte-compile-current-file)
909 (format "%s:" (file-relative-name byte-compile-current-file dir))) 923 (format "%s:" (file-relative-name byte-compile-current-file dir)))
910 ((bufferp byte-compile-current-file) 924 ((bufferp byte-compile-current-file)
@@ -950,7 +964,8 @@ Each function's symbol gets added to `byte-compile-noruntime-functions'."
950 (save-excursion 964 (save-excursion
951 (set-buffer (get-buffer-create "*Compile-Log*")) 965 (set-buffer (get-buffer-create "*Compile-Log*"))
952 (goto-char (point-max)) 966 (goto-char (point-max))
953 (let* ((dir (and byte-compile-current-file 967 (let* ((inhibit-read-only t)
968 (dir (and byte-compile-current-file
954 (file-name-directory byte-compile-current-file))) 969 (file-name-directory byte-compile-current-file)))
955 (was-same (equal default-directory dir)) 970 (was-same (equal default-directory dir))
956 pt) 971 pt)
@@ -984,7 +999,8 @@ Each function's symbol gets added to `byte-compile-noruntime-functions'."
984(defun byte-compile-log-warning (string &optional fill level) 999(defun byte-compile-log-warning (string &optional fill level)
985 (let ((warning-prefix-function 'byte-compile-warning-prefix) 1000 (let ((warning-prefix-function 'byte-compile-warning-prefix)
986 (warning-type-format "") 1001 (warning-type-format "")
987 (warning-fill-prefix (if fill " "))) 1002 (warning-fill-prefix (if fill " "))
1003 (inhibit-read-only t))
988 (display-warning 'bytecomp string level "*Compile-Log*"))) 1004 (display-warning 'bytecomp string level "*Compile-Log*")))
989 1005
990(defun byte-compile-warn (format &rest args) 1006(defun byte-compile-warn (format &rest args)
@@ -2140,17 +2156,15 @@ list that represents a doc string reference.
2140 (setq tail (cdr tail)))) 2156 (setq tail (cdr tail))))
2141 form) 2157 form)
2142 2158
2143(put 'require 'byte-hunk-handler 'byte-compile-file-form-eval-boundary) 2159(put 'require 'byte-hunk-handler 'byte-compile-file-form-require)
2144(defun byte-compile-file-form-eval-boundary (form) 2160(defun byte-compile-file-form-require (form)
2145 (let ((old-load-list current-load-list)) 2161 (let ((old-load-list current-load-list)
2146 (eval form) 2162 (args (mapcar 'eval (cdr form))))
2147 ;; (require 'cl) turns off warnings for cl functions. 2163 (apply 'require args)
2148 (let ((tem current-load-list)) 2164 ;; Detech (require 'cl) in a way that works even if cl is already loaded.
2149 (while (not (eq tem old-load-list)) 2165 (if (member (car args) '("cl" cl))
2150 (when (equal (car tem) '(require . cl)) 2166 (setq byte-compile-warnings
2151 (setq byte-compile-warnings 2167 (remq 'cl-functions byte-compile-warnings))))
2152 (remq 'cl-functions byte-compile-warnings)))
2153 (setq tem (cdr tem)))))
2154 (byte-compile-keep-pending form 'byte-compile-normal-call)) 2168 (byte-compile-keep-pending form 'byte-compile-normal-call))
2155 2169
2156(put 'progn 'byte-hunk-handler 'byte-compile-file-form-progn) 2170(put 'progn 'byte-hunk-handler 'byte-compile-file-form-progn)
diff --git a/lisp/emacs-lisp/cl.el b/lisp/emacs-lisp/cl.el
index b098a467f9f..2f6c799f528 100644
--- a/lisp/emacs-lisp/cl.el
+++ b/lisp/emacs-lisp/cl.el
@@ -108,8 +108,7 @@ printer proceeds to the next function on the list.
108This variable is not used at present, but it is defined in hopes that 108This variable is not used at present, but it is defined in hopes that
109a future Emacs interpreter will be able to use it.") 109a future Emacs interpreter will be able to use it.")
110 110
111(defvar cl-unload-hook '(cl-cannot-unload) 111(add-hook 'cl-unload-hook 'cl-cannot-unload)
112 "Prevent unloading the feature `cl', since it does not work.")
113(defun cl-cannot-unload () 112(defun cl-cannot-unload ()
114 (error "Cannot unload the feature `cl'")) 113 (error "Cannot unload the feature `cl'"))
115 114
diff --git a/lisp/emacs-lisp/elp.el b/lisp/emacs-lisp/elp.el
index f8d41f200d2..17991067fab 100644
--- a/lisp/emacs-lisp/elp.el
+++ b/lisp/emacs-lisp/elp.el
@@ -626,6 +626,7 @@ displayed."
626 626
627(defun elp-unload-hook () 627(defun elp-unload-hook ()
628 (elp-restore-all)) 628 (elp-restore-all))
629(add-hook 'elp-unload-hook 'elp-unload-hook)
629 630
630(provide 'elp) 631(provide 'elp)
631 632
diff --git a/lisp/frame.el b/lisp/frame.el
index 12cc904d47d..3658cfc1879 100644
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -153,7 +153,9 @@ Pass it BUFFER as first arg, and (cdr ARGS) gives the rest of the args."
153 ;; (set-window-dedicated-p window t) 153 ;; (set-window-dedicated-p window t)
154 window)) 154 window))
155 ;; If no window yet, make one in a new frame. 155 ;; If no window yet, make one in a new frame.
156 (let ((frame (make-frame (append args special-display-frame-alist)))) 156 (let ((frame
157 (with-current-buffer buffer
158 (make-frame (append args special-display-frame-alist)))))
157 (set-window-buffer (frame-selected-window frame) buffer) 159 (set-window-buffer (frame-selected-window frame) buffer)
158 (set-window-dedicated-p (frame-selected-window frame) t) 160 (set-window-dedicated-p (frame-selected-window frame) t)
159 (frame-selected-window frame)))))) 161 (frame-selected-window frame))))))
diff --git a/lisp/fringe.el b/lisp/fringe.el
index 07c93d39f40..f9ddd87931f 100644
--- a/lisp/fringe.el
+++ b/lisp/fringe.el
@@ -43,7 +43,8 @@
43 43
44(defvar fringe-bitmaps) 44(defvar fringe-bitmaps)
45 45
46(unless (get 'left-truncation 'fringe) 46(unless (or (not (boundp 'fringe-bitmaps))
47 (get 'left-truncation 'fringe))
47 (let ((bitmaps '(left-truncation right-truncation 48 (let ((bitmaps '(left-truncation right-truncation
48 up-arrow down-arrow 49 up-arrow down-arrow
49 continued-line continuation-line 50 continued-line continuation-line
@@ -112,6 +113,25 @@ See `fringe-mode' for possible values and their effect."
112 fringe-mode)))) 113 fringe-mode))))
113 (setq frames (cdr frames))))) 114 (setq frames (cdr frames)))))
114 115
116;; For initialization of fringe-mode, take account of changes
117;; made explicitly to default-frame-alist.
118(defun fringe-mode-initialize (symbol value)
119 (let* ((left-pair (assq 'left-fringe default-frame-alist))
120 (right-pair (assq 'right-fringe default-frame-alist))
121 (left (cdr left-pair))
122 (right (cdr right-pair)))
123 (if (or left-pair right-pair)
124 ;; If there's something in default-frame-alist for fringes,
125 ;; don't change it, but reflect that into the value of fringe-mode.
126 (progn
127 (setq fringe-mode (cons left right))
128 (if (equal fringe-mode '(nil . nil))
129 (setq fringe-mode nil))
130 (if (equal fringe-mode '(0 . 0))
131 (setq fringe-mode 0)))
132 ;; Otherwise impose the user-specified value of fringe-mode.
133 (custom-initialize-reset symbol value))))
134
115;;;###autoload 135;;;###autoload
116(defcustom fringe-mode nil 136(defcustom fringe-mode nil
117 "*Specify appearance of fringes on all frames. 137 "*Specify appearance of fringes on all frames.
@@ -138,6 +158,7 @@ you can use the interactive function `toggle-fringe'"
138 (integer :tag "Right width"))) 158 (integer :tag "Right width")))
139 :group 'frames 159 :group 'frames
140 :require 'fringe 160 :require 'fringe
161 :initialize 'fringe-mode-initialize
141 :set 'set-fringe-mode-1) 162 :set 'set-fringe-mode-1)
142 163
143(defun fringe-query-style (&optional all-frames) 164(defun fringe-query-style (&optional all-frames)
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 292d36ce9e1..70f43183e28 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,33 @@
12004-10-17 Richard M. Stallman <rms@gnu.org>
2
3 * gnus-registry.el (gnus-registry-unload-hook):
4 Set as a variable with add-hook.
5
6 * nnspool.el (nnspool-spool-directory): Use news-directory instead
7 of news-path.
8
9 * spam-stat.el (spam-stat-unload-hook): Set as a variable w/ add-hook.
10
11 * spam.el: Delete duplicate `provide'.
12 (spam-unload-hook): Set as a variable with add-hook.
13
142004-10-15 Reiner Steib <Reiner.Steib@gmx.de>
15
16 * pop3.el (pop3-leave-mail-on-server): Describe possible problems
17 in the doc string.
18
19 * message.el (message-ignored-news-headers)
20 (message-ignored-supersedes-headers)
21 (message-ignored-resent-headers)
22 (message-forward-ignored-headers): Improve custom type.
23
242004-10-15 Simon Josefsson <jas@extundo.com>
25
26 * pop3.el (top-level): Don't require nnheader.
27 (pop3-read-timeout): Add.
28 (pop3-accept-process-output): Add.
29 (pop3-read-response, pop3-retr): Use it.
30
12004-10-13 Katsumi Yamaoka <yamaoka@jpl.org> 312004-10-13 Katsumi Yamaoka <yamaoka@jpl.org>
2 32
3 * message.el (message-tokenize-header): Fix 2004-09-06 change 33 * message.el (message-tokenize-header): Fix 2004-09-06 change
@@ -9,6 +39,10 @@
9 (tls-certificate-information): New function, based on 39 (tls-certificate-information): New function, based on
10 ssl-certificate-information. 40 ssl-certificate-information.
11 41
422004-10-11 Reiner Steib <Reiner.Steib@gmx.de>
43
44 * message.el (message-bury): Use `window-dedicated-p'.
45
122004-10-10 Reiner Steib <Reiner.Steib@gmx.de> 462004-10-10 Reiner Steib <Reiner.Steib@gmx.de>
13 47
14 * gnus-sum.el: Mention that multibyte characters don't work as marks. 48 * gnus-sum.el: Mention that multibyte characters don't work as marks.
diff --git a/lisp/gnus/gnus-registry.el b/lisp/gnus/gnus-registry.el
index 33238ef4552..841f0057566 100644
--- a/lisp/gnus/gnus-registry.el
+++ b/lisp/gnus/gnus-registry.el
@@ -693,6 +693,8 @@ Returns the first place where the trail finds a group name."
693 693
694 (remove-hook 'gnus-summary-prepare-hook 'gnus-registry-register-message-ids)) 694 (remove-hook 'gnus-summary-prepare-hook 'gnus-registry-register-message-ids))
695 695
696(add-hook 'gnus-registry-unload-hook 'gnus-registry-unload-hook)
697
696(when gnus-registry-install 698(when gnus-registry-install
697 (gnus-registry-install-hooks) 699 (gnus-registry-install-hooks)
698 (gnus-registry-read)) 700 (gnus-registry-read))
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index c9d05d1a0fe..9e61e007a3e 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -255,7 +255,12 @@ included. Organization and User-Agent are optional."
255 :group 'message-news 255 :group 'message-news
256 :group 'message-headers 256 :group 'message-headers
257 :link '(custom-manual "(message)Message Headers") 257 :link '(custom-manual "(message)Message Headers")
258 :type 'regexp) 258 :type '(repeat :value-to-internal (lambda (widget value)
259 (custom-split-regexp-maybe value))
260 :match (lambda (widget value)
261 (or (stringp value)
262 (widget-editable-list-match widget value)))
263 regexp))
259 264
260(defcustom message-ignored-mail-headers 265(defcustom message-ignored-mail-headers
261 "^[GF]cc:\\|^Resent-Fcc:\\|^Xref:\\|^X-Draft-From:\\|^X-Gnus-Agent-Meta-Information:" 266 "^[GF]cc:\\|^Resent-Fcc:\\|^Xref:\\|^X-Draft-From:\\|^X-Gnus-Agent-Meta-Information:"
@@ -271,7 +276,12 @@ It's best to delete old Path and Date headers before posting to avoid
271any confusion." 276any confusion."
272 :group 'message-interface 277 :group 'message-interface
273 :link '(custom-manual "(message)Superseding") 278 :link '(custom-manual "(message)Superseding")
274 :type 'regexp) 279 :type '(repeat :value-to-internal (lambda (widget value)
280 (custom-split-regexp-maybe value))
281 :match (lambda (widget value)
282 (or (stringp value)
283 (widget-editable-list-match widget value)))
284 regexp))
275 285
276(defcustom message-subject-re-regexp 286(defcustom message-subject-re-regexp
277 "^[ \t]*\\([Rr][Ee]\\(\\[[0-9]*\\]\\)*:[ \t]*\\)*[ \t]*" 287 "^[ \t]*\\([Rr][Ee]\\(\\[[0-9]*\\]\\)*:[ \t]*\\)*[ \t]*"
@@ -534,13 +544,22 @@ Done before generating the new subject of a forward."
534 "*All headers that match this regexp will be deleted when resending a message." 544 "*All headers that match this regexp will be deleted when resending a message."
535 :group 'message-interface 545 :group 'message-interface
536 :link '(custom-manual "(message)Resending") 546 :link '(custom-manual "(message)Resending")
537 :type 'regexp) 547 :type '(repeat :value-to-internal (lambda (widget value)
548 (custom-split-regexp-maybe value))
549 :match (lambda (widget value)
550 (or (stringp value)
551 (widget-editable-list-match widget value)))
552 regexp))
538 553
539(defcustom message-forward-ignored-headers "^Content-Transfer-Encoding:\\|^X-Gnus" 554(defcustom message-forward-ignored-headers "^Content-Transfer-Encoding:\\|^X-Gnus"
540 "*All headers that match this regexp will be deleted when forwarding a message." 555 "*All headers that match this regexp will be deleted when forwarding a message."
541 :version "21.1" 556 :version "21.1"
542 :group 'message-forwarding 557 :group 'message-forwarding
543 :type '(choice (const :tag "None" nil) 558 :type '(repeat :value-to-internal (lambda (widget value)
559 (custom-split-regexp-maybe value))
560 :match (lambda (widget value)
561 (or (stringp value)
562 (widget-editable-list-match widget value)))
544 regexp)) 563 regexp))
545 564
546(defcustom message-ignored-cited-headers "." 565(defcustom message-ignored-cited-headers "."
diff --git a/lisp/gnus/nnspool.el b/lisp/gnus/nnspool.el
index eaf5159be8f..9a08cdfe71c 100644
--- a/lisp/gnus/nnspool.el
+++ b/lisp/gnus/nnspool.el
@@ -44,7 +44,7 @@ This is most commonly `inews' or `injnews'.")
44 "Switches for nnspool-request-post to pass to `inews' for posting news. 44 "Switches for nnspool-request-post to pass to `inews' for posting news.
45If you are using Cnews, you probably should set this variable to nil.") 45If you are using Cnews, you probably should set this variable to nil.")
46 46
47(defvoo nnspool-spool-directory (file-name-as-directory news-path) 47(defvoo nnspool-spool-directory (file-name-as-directory news-directory)
48 "Local news spool directory.") 48 "Local news spool directory.")
49 49
50(defvoo nnspool-nov-directory (concat nnspool-spool-directory "over.view/") 50(defvoo nnspool-nov-directory (concat nnspool-spool-directory "over.view/")
diff --git a/lisp/gnus/pop3.el b/lisp/gnus/pop3.el
index e288f6cace2..db8753057d6 100644
--- a/lisp/gnus/pop3.el
+++ b/lisp/gnus/pop3.el
@@ -83,7 +83,14 @@ values are 'apop."
83 :group 'pop3) 83 :group 'pop3)
84 84
85(defcustom pop3-leave-mail-on-server nil 85(defcustom pop3-leave-mail-on-server nil
86 "*Non-nil if the mail is to be left on the POP server after fetching." 86 "*Non-nil if the mail is to be left on the POP server after fetching.
87
88If the `pop3-leave-mail-on-server' is non-`nil' the mail is to be
89left on the POP server after fetching. Note that POP servers
90maintain no state information between sessions, so what the
91client believes is there and what is actually there may not match
92up. If they do not, then the whole thing can fall apart and
93leave you with a corrupt mailbox."
87 :version "21.4" ;; Oort Gnus 94 :version "21.4" ;; Oort Gnus
88 :type 'boolean 95 :type 'boolean
89 :group 'pop3) 96 :group 'pop3)
@@ -95,6 +102,32 @@ Used for APOP authentication.")
95(defvar pop3-read-point nil) 102(defvar pop3-read-point nil)
96(defvar pop3-debug nil) 103(defvar pop3-debug nil)
97 104
105;; Borrowed from nnheader-accept-process-output in nnheader.el.
106(defvar pop3-read-timeout
107 (if (string-match "windows-nt\\|os/2\\|emx\\|cygwin"
108 (symbol-name system-type))
109 ;; http://thread.gmane.org/v9655t3pjo.fsf@marauder.physik.uni-ulm.de
110 ;;
111 ;; IIRC, values lower than 1.0 didn't/don't work on Windows/DOS.
112 ;;
113 ;; There should probably be a runtime test to determine the timing
114 ;; resolution, or a primitive to report it. I don't know off-hand
115 ;; what's possible. Perhaps better, maybe the Windows/DOS primitive
116 ;; could round up non-zero timeouts to a minimum of 1.0?
117 1.0
118 0.1)
119 "How long pop3 should wait between checking for the end of output.
120Shorter values mean quicker response, but are more CPU intensive.")
121
122;; Borrowed from nnheader-accept-process-output in nnheader.el.
123(defun pop3-accept-process-output (process)
124 (accept-process-output
125 process
126 (truncate pop3-read-timeout)
127 (truncate (* (- pop3-read-timeout
128 (truncate pop3-read-timeout))
129 1000))))
130
98(defun pop3-movemail (&optional crashbox) 131(defun pop3-movemail (&optional crashbox)
99 "Transfer contents of a maildrop to the specified CRASHBOX." 132 "Transfer contents of a maildrop to the specified CRASHBOX."
100 (or crashbox (setq crashbox (expand-file-name "~/.crashbox"))) 133 (or crashbox (setq crashbox (expand-file-name "~/.crashbox")))
@@ -207,7 +240,7 @@ Return the response string if optional second argument is non-nil."
207 (goto-char pop3-read-point) 240 (goto-char pop3-read-point)
208 (while (and (memq (process-status process) '(open run)) 241 (while (and (memq (process-status process) '(open run))
209 (not (search-forward "\r\n" nil t))) 242 (not (search-forward "\r\n" nil t)))
210 (nnheader-accept-process-output process) 243 (pop3-accept-process-output process)
211 (goto-char pop3-read-point)) 244 (goto-char pop3-read-point))
212 (setq match-end (point)) 245 (setq match-end (point))
213 (goto-char pop3-read-point) 246 (goto-char pop3-read-point)
@@ -381,8 +414,7 @@ This function currently does nothing.")
381 (save-excursion 414 (save-excursion
382 (set-buffer (process-buffer process)) 415 (set-buffer (process-buffer process))
383 (while (not (re-search-forward "^\\.\r\n" nil t)) 416 (while (not (re-search-forward "^\\.\r\n" nil t))
384 ;; Fixme: Shouldn't depend on nnheader. 417 (pop3-accept-process-output process)
385 (nnheader-accept-process-output process)
386 (goto-char start)) 418 (goto-char start))
387 (setq pop3-read-point (point-marker)) 419 (setq pop3-read-point (point-marker))
388 ;; this code does not seem to work for some POP servers... 420 ;; this code does not seem to work for some POP servers...
diff --git a/lisp/gnus/spam-stat.el b/lisp/gnus/spam-stat.el
index 9e20a51b127..f197d165cdd 100644
--- a/lisp/gnus/spam-stat.el
+++ b/lisp/gnus/spam-stat.el
@@ -594,6 +594,8 @@ COUNT defaults to 5"
594 (remove-hook 'gnus-select-article-hook 594 (remove-hook 'gnus-select-article-hook
595 'spam-stat-store-gnus-article-buffer)) 595 'spam-stat-store-gnus-article-buffer))
596 596
597(add-hook 'spam-stat-unload-hook 'spam-stat-unload-hook)
598
597(provide 'spam-stat) 599(provide 'spam-stat)
598 600
599;;; arch-tag: ff1d2200-8ddb-42fb-bb7b-1b5e20448554 601;;; arch-tag: ff1d2200-8ddb-42fb-bb7b-1b5e20448554
diff --git a/lisp/gnus/spam.el b/lisp/gnus/spam.el
index 85534f3828c..2b5f7be936b 100644
--- a/lisp/gnus/spam.el
+++ b/lisp/gnus/spam.el
@@ -1814,14 +1814,12 @@ REMOVE not nil, remove the ADDRESSES."
1814 (remove-hook 'gnus-get-new-news-hook 'spam-setup-widening) 1814 (remove-hook 'gnus-get-new-news-hook 'spam-setup-widening)
1815 (remove-hook 'gnus-summary-prepare-hook 'spam-find-spam)) 1815 (remove-hook 'gnus-summary-prepare-hook 'spam-find-spam))
1816 1816
1817(add-hook 'spam-unload-hook 'spam-unload-hook)
1818
1817(when spam-install-hooks 1819(when spam-install-hooks
1818 (spam-initialize)) 1820 (spam-initialize))
1819 1821
1820(provide 'spam) 1822(provide 'spam)
1821 1823
1822;;; spam.el ends here.
1823
1824(provide 'spam)
1825
1826;;; arch-tag: 07e6e0ca-ab0a-4412-b445-1f6c72a4f27f 1824;;; arch-tag: 07e6e0ca-ab0a-4412-b445-1f6c72a4f27f
1827;;; spam.el ends here 1825;;; spam.el ends here
diff --git a/lisp/help-at-pt.el b/lisp/help-at-pt.el
index ad1f2b3a96a..d6ac6ec3fdc 100644
--- a/lisp/help-at-pt.el
+++ b/lisp/help-at-pt.el
@@ -348,8 +348,7 @@ different regions. With numeric argument ARG, behaves like
348 (interactive "p") 348 (interactive "p")
349 (scan-buf-move-to-region 'help-echo (- arg) 'scan-buf-move-hook)) 349 (scan-buf-move-to-region 'help-echo (- arg) 'scan-buf-move-hook))
350 350
351(defvar help-at-pt-unload-hook '(help-at-pt-cancel-timer) 351(add-hook 'help-at-pt-unload-hook 'help-at-pt-cancel-timer)
352 "Normal hook run when `help-at-pt' is unloaded.")
353 352
354(provide 'help-at-pt) 353(provide 'help-at-pt)
355 354
diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el
index f013f8e3c72..12f29bdac63 100644
--- a/lisp/ibuffer.el
+++ b/lisp/ibuffer.el
@@ -213,12 +213,20 @@ If a regexp, then it will be matched against the buffer's name.
213If a function, it will be called with the buffer as an argument, and 213If a function, it will be called with the buffer as an argument, and
214should return non-nil if this buffer should be shown. 214should return non-nil if this buffer should be shown.
215 215
216Viewing of buffers hidden because of these predicates is enabled by 216Viewing of buffers hidden because of these predicates may be customized
217giving a non-nil prefix argument to `ibuffer-update'. Note that this 217via `ibuffer-default-display-maybe-show-predicates' and is toggled by
218specialized filtering occurs before real filtering." 218giving a non-nil prefix argument to `ibuffer-update'.
219Note that this specialized filtering occurs before real filtering."
219 :type '(repeat (choice regexp function)) 220 :type '(repeat (choice regexp function))
220 :group 'ibuffer) 221 :group 'ibuffer)
221 222
223(defcustom ibuffer-default-display-maybe-show-predicates nil
224 "Non-nil means show buffers that match `ibuffer-maybe-show-predicates'."
225 :type 'boolean
226 :group 'ibuffer)
227
228(defvar ibuffer-display-maybe-show-predicates nil)
229
222(defvar ibuffer-current-format nil) 230(defvar ibuffer-current-format nil)
223 231
224(defcustom ibuffer-movement-cycle t 232(defcustom ibuffer-movement-cycle t
@@ -2069,11 +2077,15 @@ If optional arg SILENT is non-nil, do not display progress messages."
2069 2077
2070(defun ibuffer-update (arg &optional silent) 2078(defun ibuffer-update (arg &optional silent)
2071 "Regenerate the list of all buffers. 2079 "Regenerate the list of all buffers.
2072Display buffers whose name matches one of `ibuffer-maybe-show-predicates' 2080
2073iff arg ARG is non-nil. 2081Prefix arg non-nil means to toggle whether buffers that match
2082`ibuffer-maybe-show-predicates' should be displayed.
2074 2083
2075If optional arg SILENT is non-nil, do not display progress messages." 2084If optional arg SILENT is non-nil, do not display progress messages."
2076 (interactive "P") 2085 (interactive "P")
2086 (if arg
2087 (setq ibuffer-display-maybe-show-predicates
2088 (not ibuffer-display-maybe-show-predicates)))
2077 (ibuffer-forward-line 0) 2089 (ibuffer-forward-line 0)
2078 (let* ((bufs (buffer-list)) 2090 (let* ((bufs (buffer-list))
2079 (blist (ibuffer-filter-buffers 2091 (blist (ibuffer-filter-buffers
@@ -2086,7 +2098,7 @@ If optional arg SILENT is non-nil, do not display progress messages."
2086 (caddr bufs) 2098 (caddr bufs)
2087 (cadr bufs)) 2099 (cadr bufs))
2088 (ibuffer-current-buffers-with-marks bufs) 2100 (ibuffer-current-buffers-with-marks bufs)
2089 arg))) 2101 ibuffer-display-maybe-show-predicates)))
2090 (when (null blist) 2102 (when (null blist)
2091 (if (and (featurep 'ibuf-ext) 2103 (if (and (featurep 'ibuf-ext)
2092 ibuffer-filtering-qualifiers) 2104 ibuffer-filtering-qualifiers)
@@ -2148,7 +2160,7 @@ If optional arg SILENT is non-nil, do not display progress messages."
2148 'ibuffer-filter-group 2160 'ibuffer-filter-group
2149 name))) 2161 name)))
2150 2162
2151(defun ibuffer-redisplay-engine (bmarklist &optional all) 2163(defun ibuffer-redisplay-engine (bmarklist &optional ignore)
2152 (assert (eq major-mode 'ibuffer-mode)) 2164 (assert (eq major-mode 'ibuffer-mode))
2153 (let* ((--ibuffer-insert-buffers-and-marks-format 2165 (let* ((--ibuffer-insert-buffers-and-marks-format
2154 (ibuffer-current-format)) 2166 (ibuffer-current-format))
@@ -2475,6 +2487,8 @@ will be inserted before the group at point."
2475 ibuffer-default-sorting-reversep) 2487 ibuffer-default-sorting-reversep)
2476 (set (make-local-variable 'ibuffer-shrink-to-minimum-size) 2488 (set (make-local-variable 'ibuffer-shrink-to-minimum-size)
2477 ibuffer-default-shrink-to-minimum-size) 2489 ibuffer-default-shrink-to-minimum-size)
2490 (set (make-local-variable 'ibuffer-display-maybe-show-predicates)
2491 ibuffer-default-display-maybe-show-predicates)
2478 (set (make-local-variable 'ibuffer-filtering-qualifiers) nil) 2492 (set (make-local-variable 'ibuffer-filtering-qualifiers) nil)
2479 (set (make-local-variable 'ibuffer-filter-groups) nil) 2493 (set (make-local-variable 'ibuffer-filter-groups) nil)
2480 (set (make-local-variable 'ibuffer-filter-group-kill-ring) nil) 2494 (set (make-local-variable 'ibuffer-filter-group-kill-ring) nil)
diff --git a/lisp/info.el b/lisp/info.el
index 386f5b612ec..17905c6d738 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -3445,7 +3445,8 @@ Preserve text properties."
3445 (fontify-visited-p ; visited nodes need to be re-fontified 3445 (fontify-visited-p ; visited nodes need to be re-fontified
3446 (and Info-fontify-visited-nodes 3446 (and Info-fontify-visited-nodes
3447 ;; Don't take time to refontify visited nodes in huge nodes 3447 ;; Don't take time to refontify visited nodes in huge nodes
3448 (< (- (point-max) (point-min)) Info-fontify-maximum-menu-size)))) 3448 (< (- (point-max) (point-min)) Info-fontify-maximum-menu-size)))
3449 rbeg rend)
3449 3450
3450 ;; Fontify header line 3451 ;; Fontify header line
3451 (goto-char (point-min)) 3452 (goto-char (point-min))
@@ -3570,39 +3571,48 @@ Preserve text properties."
3570 "mouse-2: go to this node") 3571 "mouse-2: go to this node")
3571 'mouse-face 'highlight))) 3572 'mouse-face 'highlight)))
3572 (when (or not-fontified-p fontify-visited-p) 3573 (when (or not-fontified-p fontify-visited-p)
3573 (add-text-properties 3574 (setq rbeg (match-beginning 2)
3574 (match-beginning 2) (match-end 2) 3575 rend (match-end 2))
3575 (list 3576 (put-text-property
3576 'font-lock-face 3577 rbeg rend
3577 ;; Display visited nodes in a different face 3578 'font-lock-face
3578 (if (and Info-fontify-visited-nodes 3579 ;; Display visited nodes in a different face
3579 (save-match-data 3580 (if (and Info-fontify-visited-nodes
3580 (let* ((node (replace-regexp-in-string 3581 (save-match-data
3581 "^[ \t]+" "" 3582 (let* ((node (replace-regexp-in-string
3582 (replace-regexp-in-string 3583 "^[ \t]+" ""
3583 "[ \t\n]+" " " 3584 (replace-regexp-in-string
3584 (or (match-string 5) 3585 "[ \t\n]+" " "
3585 (and (not (equal (match-string 4) "")) 3586 (or (match-string 5)
3586 (match-string 4)) 3587 (and (not (equal (match-string 4) ""))
3587 (match-string 2))))) 3588 (match-string 4))
3588 (file (file-name-nondirectory 3589 (match-string 2)))))
3589 Info-current-file)) 3590 (file (file-name-nondirectory
3590 (hl Info-history-list) 3591 Info-current-file))
3591 res) 3592 (hl Info-history-list)
3592 (if (string-match "(\\([^)]+\\))\\([^)]*\\)" node) 3593 res)
3593 (setq file (file-name-nondirectory 3594 (if (string-match "(\\([^)]+\\))\\([^)]*\\)" node)
3594 (match-string 1 node)) 3595 (setq file (file-name-nondirectory
3595 node (if (equal (match-string 2 node) "") 3596 (match-string 1 node))
3596 "Top" 3597 node (if (equal (match-string 2 node) "")
3597 (match-string 2 node)))) 3598 "Top"
3598 (while hl 3599 (match-string 2 node))))
3599 (if (and (string-equal node (nth 1 (car hl))) 3600 (while hl
3600 (string-equal file 3601 (if (and (string-equal node (nth 1 (car hl)))
3601 (file-name-nondirectory 3602 (string-equal file
3602 (nth 0 (car hl))))) 3603 (file-name-nondirectory
3603 (setq res (car hl) hl nil) 3604 (nth 0 (car hl)))))
3604 (setq hl (cdr hl)))) 3605 (setq res (car hl) hl nil)
3605 res))) 'info-xref-visited 'info-xref)))) 3606 (setq hl (cdr hl))))
3607 res))) 'info-xref-visited 'info-xref))
3608 ;; For multiline ref, unfontify newline and surrounding whitespace
3609 (save-excursion
3610 (goto-char rbeg)
3611 (save-match-data
3612 (while (re-search-forward "\\s-*\n\\s-*" rend t nil)
3613 (remove-text-properties (match-beginning 0)
3614 (match-end 0)
3615 '(font-lock-face t))))))
3606 (when not-fontified-p 3616 (when not-fontified-p
3607 (when (memq Info-hide-note-references '(t hide)) 3617 (when (memq Info-hide-note-references '(t hide))
3608 (add-text-properties (match-beginning 3) (match-end 3) 3618 (add-text-properties (match-beginning 3) (match-end 3)
diff --git a/lisp/language/indian.el b/lisp/language/indian.el
index 9c6184364bd..4b9e08045db 100644
--- a/lisp/language/indian.el
+++ b/lisp/language/indian.el
@@ -50,6 +50,15 @@
50Currently supported foundries are `cdac' and `akruti'.") 50Currently supported foundries are `cdac' and `akruti'.")
51 51
52(defvar indian-script-language-alist 52(defvar indian-script-language-alist
53 '((devanagari (hindi sanskrit) nil)
54 (bengali (bengali assamese) nil)
55 (gurmukhi (punjabi) nil)
56 (gujarati (gujarati) nil)
57 (oriya (oriya) nil)
58 (tamil (tamil) nil)
59 (telugu (telugu) nil)
60 (kannada (kannada) nil)
61 (malayalam (malayalam) nil))
53 "Alist of Indian scripts vs the corresponding language list and font foundry. 62 "Alist of Indian scripts vs the corresponding language list and font foundry.
54Each element has this form: 63Each element has this form:
55 64
@@ -62,16 +71,7 @@ The list is in the priority order.
62 71
63FONT-FOUNDRY is a font foundry representing a group of Indian 72FONT-FOUNDRY is a font foundry representing a group of Indian
64fonts. If the value is nil, the value of `indian-font-foundry' 73fonts. If the value is nil, the value of `indian-font-foundry'
65is used." 74is used.")
66 '((devanagari (hindi sanskrit) nil)
67 (bengali (bengali assamese) nil)
68 (gurmukhi (punjabi) nil)
69 (gujarati (gujarati) nil)
70 (oriya (oriya) nil)
71 (tamil (tamil) nil)
72 (telugu (telugu) nil)
73 (kannada (kannada) nil)
74 (malayalam (malayalam) nil)))
75 75
76(defconst indian-font-char-index-table 76(defconst indian-font-char-index-table
77 '( ; for which language(s) 77 '( ; for which language(s)
@@ -99,14 +99,14 @@ is used."
99 (#x1200 . akruti:knd) ; kannada 99 (#x1200 . akruti:knd) ; kannada
100 (#x1300 . akruti:mal) ; malayalam 100 (#x1300 . akruti:mal) ; malayalam
101 ) 101 )
102 "Aliat of indices of `indian-glyph' character vs Indian font identifiers. 102 "Alist of indices of `indian-glyph' character vs Indian font identifiers.
103Each element has this form: (INDEX . FONT-IDENTIFIER) 103Each element has this form: (INDEX . FONT-IDENTIFIER)
104 104
105INDEX is an index number of the first character in the charset 105INDEX is an index number of the first character in the charset
106`indian-glyph' assigned for glyphs in the font specified by 106`indian-glyph' assigned for glyphs in the font specified by
107FONT-IDENTIFIER. Currently FONT-IDENTIFIERs are defined for CDAC 107FONT-IDENTIFIER. Currently FONT-IDENTIFIERs are defined for CDAC
108and AKRUTI font groups.") 108and AKRUTI font groups.")
109 109
110(defun indian-font-char (index font-identifier) 110(defun indian-font-char (index font-identifier)
111 "Return character of charset `indian-glyph' made from glyph index INDEX. 111 "Return character of charset `indian-glyph' made from glyph index INDEX.
112FONT-IDENTIFIER is an identifier of an Indian font listed in the 112FONT-IDENTIFIER is an identifier of an Indian font listed in the
@@ -127,7 +127,7 @@ font INDEX is for."
127(defun indian-font-char-range (font-identifier) 127(defun indian-font-char-range (font-identifier)
128 (cons (indian-font-char 0 font-identifier) 128 (cons (indian-font-char 0 font-identifier)
129 (indian-font-char 255 font-identifier))) 129 (indian-font-char 255 font-identifier)))
130 130
131(defvar indian-script-table 131(defvar indian-script-table
132 '[ 132 '[
133 devanagari 133 devanagari
diff --git a/lisp/mouse.el b/lisp/mouse.el
index b73967b99dc..abf62a97836 100644
--- a/lisp/mouse.el
+++ b/lisp/mouse.el
@@ -338,6 +338,17 @@ shrink the window or windows above it to make room."
338 (select-window window) 338 (select-window window)
339 (enlarge-window growth nil (> growth 0)))) 339 (enlarge-window growth nil (> growth 0))))
340 340
341(defsubst mouse-drag-move-window-top (window growth)
342 "Move the top of WINDOW up or down by GROWTH lines.
343Move it down if GROWTH is positive, or up if GROWTH is negative.
344If this would make WINDOW too short, shrink the window or windows
345above it to make room."
346 ;; Moving the top of WINDOW is actually moving the bottom of the
347 ;; window above.
348 (let ((window-above (mouse-drag-window-above window)))
349 (and window-above
350 (mouse-drag-move-window-bottom window-above (- growth)))))
351
341(defun mouse-drag-mode-line-1 (start-event mode-line-p) 352(defun mouse-drag-mode-line-1 (start-event mode-line-p)
342 "Change the height of a window by dragging on the mode or header line. 353 "Change the height of a window by dragging on the mode or header line.
343START-EVENT is the starting mouse-event of the drag action. 354START-EVENT is the starting mouse-event of the drag action.
@@ -444,7 +455,9 @@ MODE-LINE-P non-nil means dragging a mode line; nil means a header line."
444 (select-window start-event-window)) 455 (select-window start-event-window))
445 ;; no. grow/shrink the selected window 456 ;; no. grow/shrink the selected window
446 ;(message "growth = %d" growth) 457 ;(message "growth = %d" growth)
447 (mouse-drag-move-window-bottom start-event-window growth)) 458 (if mode-line-p
459 (mouse-drag-move-window-bottom start-event-window growth)
460 (mouse-drag-move-window-top start-event-window growth)))
448 461
449 ;; if this window's growth caused another 462 ;; if this window's growth caused another
450 ;; window to be deleted because it was too 463 ;; window to be deleted because it was too
@@ -1097,7 +1110,7 @@ and set mark at the beginning.
1097Prefix arguments are interpreted as with \\[yank]. 1110Prefix arguments are interpreted as with \\[yank].
1098If `mouse-yank-at-point' is non-nil, insert at point 1111If `mouse-yank-at-point' is non-nil, insert at point
1099regardless of where you click." 1112regardless of where you click."
1100 (interactive "e\nP") 1113 (interactive "*e\nP")
1101 ;; Give temporary modes such as isearch a chance to turn off. 1114 ;; Give temporary modes such as isearch a chance to turn off.
1102 (run-hooks 'mouse-leave-buffer-hook) 1115 (run-hooks 'mouse-leave-buffer-hook)
1103 (or mouse-yank-at-point (mouse-set-point click)) 1116 (or mouse-yank-at-point (mouse-set-point click))
@@ -1399,7 +1412,7 @@ The function returns a non-nil value if it creates a secondary selection."
1399Move point to the end of the inserted text. 1412Move point to the end of the inserted text.
1400If `mouse-yank-at-point' is non-nil, insert at point 1413If `mouse-yank-at-point' is non-nil, insert at point
1401regardless of where you click." 1414regardless of where you click."
1402 (interactive "e") 1415 (interactive "*e")
1403 ;; Give temporary modes such as isearch a chance to turn off. 1416 ;; Give temporary modes such as isearch a chance to turn off.
1404 (run-hooks 'mouse-leave-buffer-hook) 1417 (run-hooks 'mouse-leave-buffer-hook)
1405 (or mouse-yank-at-point (mouse-set-point click)) 1418 (or mouse-yank-at-point (mouse-set-point click))
diff --git a/lisp/msb.el b/lisp/msb.el
index e352150a57d..2ab7fe5491d 100644
--- a/lisp/msb.el
+++ b/lisp/msb.el
@@ -1153,6 +1153,7 @@ different buffer menu using the function `msb'."
1153 1153
1154(defun msb-unload-hook () 1154(defun msb-unload-hook ()
1155 (msb-mode 0)) 1155 (msb-mode 0))
1156(add-hook 'msb-unload-hook 'msb-unload-hook)
1156 1157
1157(provide 'msb) 1158(provide 'msb)
1158(eval-after-load "msb" '(run-hooks 'msb-after-load-hook 'msb-after-load-hooks)) 1159(eval-after-load "msb" '(run-hooks 'msb-after-load-hook 'msb-after-load-hooks))
diff --git a/lisp/net/password.el b/lisp/net/password.el
new file mode 100644
index 00000000000..e8be612ecca
--- /dev/null
+++ b/lisp/net/password.el
@@ -0,0 +1,128 @@
1;;; password.el --- Read passwords from user, possibly using a password cache.
2
3;; Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc.
4
5;; Author: Simon Josefsson <simon@josefsson.org>
6;; Created: 2003-12-21
7;; Keywords: password cache passphrase key
8
9;; This file is part of GNU Emacs.
10
11;; GNU Emacs is free software; you can redistribute it and/or modify
12;; it under the terms of the GNU General Public License as published by
13;; the Free Software Foundation; either version 2, or (at your option)
14;; any later version.
15
16;; GNU Emacs is distributed in the hope that it will be useful,
17;; but WITHOUT ANY WARRANTY; without even the implied warranty of
18;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19;; GNU General Public License for more details.
20
21;; You should have received a copy of the GNU General Public License
22;; along with GNU Emacs; see the file COPYING. If not, write to the
23;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
24;; Boston, MA 02111-1307, USA.
25
26;;; Commentary:
27
28;; Greatly influenced by pgg.el written by Daiki Ueno, with timer
29;; fixes for XEmacs by Katsumi Yamaoka. In fact, this is mostly just
30;; a rip-off.
31;;
32;; (password-read "Password? " "test")
33;; ;; Minibuffer prompt for password.
34;; => "foo"
35;;
36;; (password-cache-add "test" "foo")
37;; => nil
38
39;; Note the previous two can be replaced with:
40;; (password-read-and-add "Password? " "test")
41;; ;; Minibuffer prompt for password.
42;; => "foo"
43;; ;; "foo" is now cached with key "test"
44
45
46;; (password-read "Password? " "test")
47;; ;; No minibuffer prompt
48;; => "foo"
49;;
50;; (password-read "Password? " "test")
51;; ;; No minibuffer prompt
52;; => "foo"
53;;
54;; ;; Wait `password-cache-expiry' seconds.
55;;
56;; (password-read "Password? " "test")
57;; ;; Minibuffer prompt for password is back.
58;; => "foo"
59
60;;; Code:
61
62(when (featurep 'xemacs)
63 (require 'run-at-time))
64
65(eval-when-compile
66 (require 'cl))
67
68(defcustom password-cache t
69 "Whether to cache passwords."
70 :group 'password
71 :type 'boolean)
72
73(defcustom password-cache-expiry 16
74 "How many seconds passwords are cached, or nil to disable expiring.
75Whether passwords are cached at all is controlled by `password-cache'."
76 :group 'password
77 :type '(choice (const :tag "Never" nil)
78 (integer :tag "Seconds")))
79
80(defvar password-data (make-vector 7 0))
81
82(defun password-read (prompt &optional key)
83 "Read password, for use with KEY, from user, or from cache if wanted.
84KEY indicate the purpose of the password, so the cache can
85separate passwords. The cache is not used if KEY is nil. It is
86typically a string.
87The variable `password-cache' control whether the cache is used."
88 (or (and password-cache
89 key
90 (symbol-value (intern-soft key password-data)))
91 (read-passwd prompt)))
92
93(defun password-read-and-add (prompt &optional key)
94 "Read password, for use with KEY, from user, or from cache if wanted.
95Then store the password in the cache. Uses `password-read' and
96`password-cache-add'."
97 (let ((password (password-read prompt key)))
98 (when (and password key)
99 (password-cache-add key password))
100 password))
101
102(defun password-cache-remove (key)
103 "Remove password indexed by KEY from password cache.
104This is typically run be a timer setup from `password-cache-add',
105but can be invoked at any time to forcefully remove passwords
106from the cache. This may be useful when it has been detected
107that a password is invalid, so that `password-read' query the
108user again."
109 (let ((password (symbol-value (intern-soft key password-data))))
110 (when password
111 (fillarray password ?_)
112 (unintern key password-data))))
113
114(defun password-cache-add (key password)
115 "Add password to cache.
116The password is removed by a timer after `password-cache-expiry'
117seconds."
118 (set (intern key password-data) password)
119 (when password-cache-expiry
120 (run-at-time password-cache-expiry nil
121 #'password-cache-remove
122 key))
123 nil)
124
125(provide 'password)
126
127;;; arch-tag: ab160494-16c8-4c68-a4a1-73eebf6686e5
128;;; password.el ends here
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index a30280dbd4f..582ae8ee207 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -2337,45 +2337,46 @@ If it doesn't exist, generate a new one."
2337;; This function makes the same assumption as 2337;; This function makes the same assumption as
2338;; `tramp-handle-set-visited-file-modtime'. 2338;; `tramp-handle-set-visited-file-modtime'.
2339(defun tramp-handle-verify-visited-file-modtime (buf) 2339(defun tramp-handle-verify-visited-file-modtime (buf)
2340 "Like `verify-visited-file-modtime' for tramp files. 2340 "Like `verify-visited-file-modtime' for tramp files."
2341At the time `verify-visited-file-modtime' calls this function, we
2342already know that the buffer is visiting a file and that
2343`visited-file-modtime' does not return 0. Do not call this
2344function directly, unless those two cases are already taken care
2345of."
2346 (with-current-buffer buf 2341 (with-current-buffer buf
2347 (let ((f (buffer-file-name))) 2342 ;; There is no file visiting the buffer, or the buffer has no
2348 (with-parsed-tramp-file-name f nil 2343 ;; recorded last modification time.
2349 (let* ((attr (file-attributes f)) 2344 (if (or (not (buffer-file-name))
2350 (modtime (nth 5 attr))) 2345 (eq (visited-file-modtime) 0))
2351 (cond ((and attr (not (equal modtime '(0 0)))) 2346 t
2352 ;; Why does `file-attributes' return a list (HIGH 2347 (let ((f (buffer-file-name)))
2353 ;; LOW), but `visited-file-modtime' returns a cons 2348 (with-parsed-tramp-file-name f nil
2354 ;; (HIGH . LOW)? 2349 (let* ((attr (file-attributes f))
2355 (let ((mt (visited-file-modtime))) 2350 (modtime (nth 5 attr))
2356 (< (abs (tramp-time-diff 2351 (mt (visited-file-modtime)))
2357 modtime 2352
2358 ;; For compatibility, deal with both the old 2353 (cond
2359 ;; (HIGH . LOW) and the new (HIGH LOW) 2354 ;; file exists, and has a known modtime.
2360 ;; return values of `visited-file-modtime'. 2355 ((and attr (not (equal modtime '(0 0))))
2361 (if (atom (cdr mt)) 2356 (< (abs (tramp-time-diff
2362 (list (car mt) (cdr mt)) 2357 modtime
2363 mt))) 2358 ;; For compatibility, deal with both the old
2364 2))) 2359 ;; (HIGH . LOW) and the new (HIGH LOW)
2365 (attr 2360 ;; return values of `visited-file-modtime'.
2366 (save-excursion 2361 (if (atom (cdr mt))
2367 (tramp-send-command 2362 (list (car mt) (cdr mt))
2368 multi-method method user host 2363 mt)))
2369 (format "%s -ild %s" 2364 2))
2370 (tramp-get-ls-command multi-method method 2365 ;; modtime has the don't know value.
2371 user host) 2366 (attr
2372 (tramp-shell-quote-argument localname))) 2367 (save-excursion
2373 (tramp-wait-for-output) 2368 (tramp-send-command
2374 (setq attr (buffer-substring 2369 multi-method method user host
2375 (point) (progn (end-of-line) (point))))) 2370 (format "%s -ild %s"
2376 (equal tramp-buffer-file-attributes attr)) 2371 (tramp-get-ls-command multi-method method user host)
2377 ;; If file does not exist, say it is not modified. 2372 (tramp-shell-quote-argument localname)))
2378 (t nil))))))) 2373 (tramp-wait-for-output)
2374 (setq attr (buffer-substring
2375 (point) (progn (end-of-line) (point)))))
2376 (equal tramp-buffer-file-attributes attr))
2377 ;; If file does not exist, say it is not modified
2378 ;; if and only if that agrees with the buffer's record.
2379 (t (equal mt '(-1 65535))))))))))
2379 2380
2380(defadvice clear-visited-file-modtime (after tramp activate) 2381(defadvice clear-visited-file-modtime (after tramp activate)
2381 "Set `tramp-buffer-file-attributes' back to nil. 2382 "Set `tramp-buffer-file-attributes' back to nil.
diff --git a/lisp/newcomment.el b/lisp/newcomment.el
index 5711e7903ad..5a7b7666e89 100644
--- a/lisp/newcomment.el
+++ b/lisp/newcomment.el
@@ -1087,6 +1087,7 @@ Else, call `comment-indent'."
1087 (insert (comment-padleft comment-end add))) 1087 (insert (comment-padleft comment-end add)))
1088 (indent-according-to-mode)))))) 1088 (indent-according-to-mode))))))
1089 1089
1090;;;###autoload
1090(defcustom comment-auto-fill-only-comments nil 1091(defcustom comment-auto-fill-only-comments nil
1091 "Non-nil means to only auto-fill inside comments. 1092 "Non-nil means to only auto-fill inside comments.
1092This has no effect in modes that do not define a comment syntax." 1093This has no effect in modes that do not define a comment syntax."
diff --git a/lisp/outline.el b/lisp/outline.el
index 0f7d3b627b0..2d2663b12f2 100644
--- a/lisp/outline.el
+++ b/lisp/outline.el
@@ -808,7 +808,7 @@ Show the heading too, if it is currently invisible."
808 (save-excursion 808 (save-excursion
809 (outline-back-to-heading t) 809 (outline-back-to-heading t)
810 (show-entry) 810 (show-entry)
811 (while (condition-case nil (progn (outline-up-heading 1) (not (bobp))) 811 (while (condition-case nil (progn (outline-up-heading 1 t) (not (bobp)))
812 (error nil)) 812 (error nil))
813 (outline-flag-region (1- (point)) 813 (outline-flag-region (1- (point))
814 (save-excursion (forward-line 1) (point)) 814 (save-excursion (forward-line 1) (point))
diff --git a/lisp/paths.el b/lisp/paths.el
index 925dbb06e97..5611246ac8b 100644
--- a/lisp/paths.el
+++ b/lisp/paths.el
@@ -101,11 +101,12 @@ This variable `Info-default-directory-list' is used as the default
101for initializing `Info-directory-list' when Info is started, unless 101for initializing `Info-directory-list' when Info is started, unless
102the environment variable INFOPATH is set.") 102the environment variable INFOPATH is set.")
103 103
104(defvar news-path 104(defvar news-directory
105 (if (file-exists-p "/usr/spool/news/") 105 (if (file-exists-p "/usr/spool/news/")
106 "/usr/spool/news/" 106 "/usr/spool/news/"
107 "/var/spool/news/") 107 "/var/spool/news/")
108 "The root directory below which all news files are stored.") 108 "The root directory below which all news files are stored.")
109(defalias 'news-path 'news-directory)
109 110
110(defvar news-inews-program 111(defvar news-inews-program
111 (cond ((file-exists-p "/usr/bin/inews") "/usr/bin/inews") 112 (cond ((file-exists-p "/usr/bin/inews") "/usr/bin/inews")
@@ -136,7 +137,7 @@ The `ORGANIZATION' environment variable is used instead if defined.")
136 :group 'rmail 137 :group 'rmail
137 :version "21.1") 138 :version "21.1")
138 139
139(defconst rmail-spool-directory 140(defvar rmail-spool-directory
140 (cond ((string-match "^[^-]+-[^-]+-sco3.2v4" system-configuration) 141 (cond ((string-match "^[^-]+-[^-]+-sco3.2v4" system-configuration)
141 "/usr/spool/mail/") 142 "/usr/spool/mail/")
142 ;; On The Bull DPX/2 /usr/spool/mail is used although 143 ;; On The Bull DPX/2 /usr/spool/mail is used although
@@ -157,15 +158,17 @@ The `ORGANIZATION' environment variable is used instead if defined.")
157 "Name of directory used by system mailer for delivering new mail. 158 "Name of directory used by system mailer for delivering new mail.
158Its name should end with a slash.") 159Its name should end with a slash.")
159 160
160(defconst sendmail-program 161(defcustom sendmail-program
161 (cond 162 (cond
162 ((file-exists-p "/usr/sbin/sendmail") "/usr/sbin/sendmail") 163 ((file-exists-p "/usr/sbin/sendmail") "/usr/sbin/sendmail")
163 ((file-exists-p "/usr/lib/sendmail") "/usr/lib/sendmail") 164 ((file-exists-p "/usr/lib/sendmail") "/usr/lib/sendmail")
164 ((file-exists-p "/usr/ucblib/sendmail") "/usr/ucblib/sendmail") 165 ((file-exists-p "/usr/ucblib/sendmail") "/usr/ucblib/sendmail")
165 (t "fakemail")) ;In ../etc, to interface to /bin/mail. 166 (t "fakemail")) ;In ../etc, to interface to /bin/mail.
166 "Program used to send messages.") 167 "Program used to send messages."
168 :group 'mail
169 :type 'file)
167 170
168(defconst remote-shell-program 171(defcustom remote-shell-program
169 (cond 172 (cond
170 ;; Some systems use rsh for the remote shell; others use that name for the 173 ;; Some systems use rsh for the remote shell; others use that name for the
171 ;; restricted shell and use remsh for the remote shell. Let's try to guess 174 ;; restricted shell and use remsh for the remote shell. Let's try to guess
@@ -186,14 +189,16 @@ Its name should end with a slash.")
186 ((file-exists-p "/bin/rsh") "/bin/rsh") 189 ((file-exists-p "/bin/rsh") "/bin/rsh")
187 ((file-exists-p "/usr/bin/rsh") "/usr/bin/rsh") 190 ((file-exists-p "/usr/bin/rsh") "/usr/bin/rsh")
188 (t "rsh")) 191 (t "rsh"))
189 "File name for remote-shell program (often rsh or remsh).") 192 "File name for remote-shell program (often rsh or remsh)."
193 :group 'environment
194 :type 'file)
190 195
191(defconst term-file-prefix (if (eq system-type 'vax-vms) "[.term]" "term/") "\ 196(defvar term-file-prefix (if (eq system-type 'vax-vms) "[.term]" "term/") "\
192If non-nil, Emacs startup does (load (concat term-file-prefix (getenv \"TERM\"))) 197If non-nil, Emacs startup does (load (concat term-file-prefix (getenv \"TERM\")))
193You may set this variable to nil in your `.emacs' file if you do not wish 198You may set this variable to nil in your `.emacs' file if you do not wish
194the terminal-initialization file to be loaded.") 199the terminal-initialization file to be loaded.")
195 200
196(defconst abbrev-file-name 201(defvar abbrev-file-name
197 (if (eq system-type 'vax-vms) 202 (if (eq system-type 'vax-vms)
198 "~/abbrev.def" 203 "~/abbrev.def"
199 (convert-standard-filename "~/.abbrev_defs")) 204 (convert-standard-filename "~/.abbrev_defs"))
diff --git a/lisp/pcvs-defs.el b/lisp/pcvs-defs.el
index cd379afab77..6bdd6bb6dd8 100644
--- a/lisp/pcvs-defs.el
+++ b/lisp/pcvs-defs.el
@@ -374,7 +374,7 @@ This variable is buffer local and only used in the *cvs* buffer.")
374 ("r" . cvs-mode-remove) 374 ("r" . cvs-mode-remove)
375 ("s" . cvs-mode-status) 375 ("s" . cvs-mode-status)
376 ("t" . cvs-mode-tag) 376 ("t" . cvs-mode-tag)
377 ;;("v" . cvs-mode-diff-vendor) 377 ("v" . cvs-mode-view-file)
378 ("x" . cvs-mode-remove-handled) 378 ("x" . cvs-mode-remove-handled)
379 ;; cvstree bindings 379 ;; cvstree bindings
380 ("+" . cvs-mode-tree) 380 ("+" . cvs-mode-tree)
diff --git a/lisp/pcvs-util.el b/lisp/pcvs-util.el
index 5d9d0d215af..a4eda95e23e 100644
--- a/lisp/pcvs-util.el
+++ b/lisp/pcvs-util.el
@@ -104,11 +104,12 @@ BUF is assumed to be a temporary buffer used from the buffer MAINBUF."
104 (condition-case () 104 (condition-case ()
105 (delete-window win) 105 (delete-window win)
106 (error (iconify-frame (window-frame win)))) 106 (error (iconify-frame (window-frame win))))
107 (if (and mainbuf (get-buffer-window mainbuf)) 107;;; (if (and mainbuf (get-buffer-window mainbuf))
108 ;; FIXME: if the buffer popped into a pre-existing window, 108;;; ;; FIXME: if the buffer popped into a pre-existing window,
109 ;; we don't want to delete that window. 109;;; ;; we don't want to delete that window.
110 t ;;(delete-window win) 110;;; t ;;(delete-window win)
111 )))) 111;;; )
112 )))
112 (with-current-buffer buf 113 (with-current-buffer buf
113 (bury-buffer (unless (and (eq buf (window-buffer (selected-window))) 114 (bury-buffer (unless (and (eq buf (window-buffer (selected-window)))
114 (not (window-dedicated-p (selected-window)))) 115 (not (window-dedicated-p (selected-window))))
diff --git a/lisp/pcvs.el b/lisp/pcvs.el
index 120acbbc2bc..0a666927c52 100644
--- a/lisp/pcvs.el
+++ b/lisp/pcvs.el
@@ -1925,6 +1925,18 @@ to hear about anymore."
1925 (cvs-mode-find-file e 'dont-select)) 1925 (cvs-mode-find-file e 'dont-select))
1926 1926
1927 1927
1928(defun cvs-mode-view-file (e)
1929 "View the file."
1930 (interactive (list last-input-event))
1931 (cvs-mode-find-file e nil t))
1932
1933
1934(defun cvs-mode-view-file-other-window (e)
1935 "View the file."
1936 (interactive (list last-input-event))
1937 (cvs-mode-find-file e t t))
1938
1939
1928(defun cvs-find-modif (fi) 1940(defun cvs-find-modif (fi)
1929 (with-temp-buffer 1941 (with-temp-buffer
1930 (call-process cvs-program nil (current-buffer) nil 1942 (call-process cvs-program nil (current-buffer) nil
@@ -1935,7 +1947,7 @@ to hear about anymore."
1935 1))) 1947 1)))
1936 1948
1937 1949
1938(defun cvs-mode-find-file (e &optional other) 1950(defun cvs-mode-find-file (e &optional other view)
1939 "Select a buffer containing the file. 1951 "Select a buffer containing the file.
1940With a prefix, opens the buffer in an OTHER window." 1952With a prefix, opens the buffer in an OTHER window."
1941 (interactive (list last-input-event current-prefix-arg)) 1953 (interactive (list last-input-event current-prefix-arg))
@@ -1963,8 +1975,10 @@ With a prefix, opens the buffer in an OTHER window."
1963 (let ((buf (if rev (cvs-retrieve-revision fi rev) 1975 (let ((buf (if rev (cvs-retrieve-revision fi rev)
1964 (find-file-noselect (cvs-fileinfo->full-path fi))))) 1976 (find-file-noselect (cvs-fileinfo->full-path fi)))))
1965 (funcall (cond ((eq other 'dont-select) 'display-buffer) 1977 (funcall (cond ((eq other 'dont-select) 'display-buffer)
1966 (other 'switch-to-buffer-other-window) 1978 (other
1967 (t 'switch-to-buffer)) 1979 (if view 'view-buffer-other-window
1980 'switch-to-buffer-other-window))
1981 (t (if view 'view-buffer 'switch-to-buffer)))
1968 buf) 1982 buf)
1969 (when (and cvs-find-file-and-jump (cvs-applicable-p fi 'diff-base)) 1983 (when (and cvs-find-file-and-jump (cvs-applicable-p fi 'diff-base))
1970 (goto-line (cvs-find-modif fi))) 1984 (goto-line (cvs-find-modif fi)))
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index 2f910608d5c..d90fe77fe28 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -866,20 +866,6 @@ Returns the compilation buffer created."
866 (if (eq mode t) 866 (if (eq mode t)
867 (prog1 "compilation" (require 'comint)) 867 (prog1 "compilation" (require 'comint))
868 (replace-regexp-in-string "-mode$" "" (symbol-name mode)))) 868 (replace-regexp-in-string "-mode$" "" (symbol-name mode))))
869 (process-environment
870 (append
871 compilation-environment
872 (if (if (boundp 'system-uses-terminfo) ; `if' for compiler warning
873 system-uses-terminfo)
874 (list "TERM=dumb" "TERMCAP="
875 (format "COLUMNS=%d" (window-width)))
876 (list "TERM=emacs"
877 (format "TERMCAP=emacs:co#%d:tc=unknown:"
878 (window-width))))
879 ;; Set the EMACS variable, but
880 ;; don't override users' setting of $EMACS.
881 (unless (getenv "EMACS") '("EMACS=t"))
882 (copy-sequence process-environment)))
883 cd-path ; in case process-environment contains CDPATH 869 cd-path ; in case process-environment contains CDPATH
884 (thisdir (if (string-match "^\\s *cd\\s +\\(.+?\\)\\s *[;&\n]" command) 870 (thisdir (if (string-match "^\\s *cd\\s +\\(.+?\\)\\s *[;&\n]" command)
885 (substitute-in-file-name (match-string 1 command)) 871 (substitute-in-file-name (match-string 1 command))
@@ -903,18 +889,18 @@ Returns the compilation buffer created."
903 (error nil)) 889 (error nil))
904 (error "Cannot have two processes in `%s' at once" 890 (error "Cannot have two processes in `%s' at once"
905 (buffer-name))))) 891 (buffer-name)))))
906 ;; Clear out the compilation buffer and make it writable.
907 ;; Change its default-directory to the directory where the compilation
908 ;; will happen, and insert a `default-directory' to indicate this.
909 (setq buffer-read-only nil)
910 (buffer-disable-undo (current-buffer)) 892 (buffer-disable-undo (current-buffer))
911 (erase-buffer) 893 ;; Make compilation buffer read-only. The filter can still write it.
912 (buffer-enable-undo (current-buffer)) 894 ;; Clear out the compilation buffer.
913 (cd thisdir) 895 (let ((inhibit-read-only t))
914 ;; output a mode setter, for saving and later reloading this buffer 896 (erase-buffer)
915 (insert "-*- mode: " name-of-mode 897 ;; Change its default-directory to the directory where the compilation
916 "; default-directory: " (prin1-to-string default-directory) 898 ;; will happen, and insert a `cd' command to indicate this.
917 " -*-\n" command "\n") 899 (setq default-directory thisdir)
900 ;; output a mode setter, for saving and later reloading this buffer
901 (insert "-*- mode: " name-of-mode
902 "; default-directory: " (prin1-to-string default-directory)
903 " -*-\n" command "\n"))
918 (set-buffer-modified-p nil)) 904 (set-buffer-modified-p nil))
919 ;; If we're already in the compilation buffer, go to the end 905 ;; If we're already in the compilation buffer, go to the end
920 ;; of the buffer, so point will track the compilation output. 906 ;; of the buffer, so point will track the compilation output.
@@ -923,70 +909,83 @@ Returns the compilation buffer created."
923 ;; Pop up the compilation buffer. 909 ;; Pop up the compilation buffer.
924 (setq outwin (display-buffer outbuf nil t)) 910 (setq outwin (display-buffer outbuf nil t))
925 (with-current-buffer outbuf 911 (with-current-buffer outbuf
926 (if (not (eq mode t)) 912 (let ((process-environment
927 (funcall mode) 913 (append
928 (with-no-warnings (comint-mode)) 914 compilation-environment
929 (compilation-shell-minor-mode)) 915 (if (if (boundp 'system-uses-terminfo) ; `if' for compiler warning
930 ;; In what way is it non-ergonomic ? -stef 916 system-uses-terminfo)
931 ;; (toggle-read-only 1) ;;; Non-ergonomic. 917 (list "TERM=dumb" "TERMCAP="
932 (if highlight-regexp 918 (format "COLUMNS=%d" (window-width)))
933 (set (make-local-variable 'compilation-highlight-regexp) 919 (list "TERM=emacs"
934 highlight-regexp)) 920 (format "TERMCAP=emacs:co#%d:tc=unknown:"
935 (set (make-local-variable 'compilation-arguments) 921 (window-width))))
936 (list command mode name-function highlight-regexp)) 922 ;; Set the EMACS variable, but
937 (set (make-local-variable 'revert-buffer-function) 923 ;; don't override users' setting of $EMACS.
938 'compilation-revert-buffer) 924 (unless (getenv "EMACS") '("EMACS=t"))
939 (set-window-start outwin (point-min)) 925 (copy-sequence process-environment))))
940 (or (eq outwin (selected-window)) 926 (if (not (eq mode t))
941 (set-window-point outwin (if compilation-scroll-output 927 (funcall mode)
942 (point) 928 (setq buffer-read-only nil)
943 (point-min)))) 929 (with-no-warnings (comint-mode))
944 ;; The setup function is called before compilation-set-window-height 930 (compilation-shell-minor-mode))
945 ;; so it can set the compilation-window-height buffer locally. 931 (if highlight-regexp
946 (if compilation-process-setup-function 932 (set (make-local-variable 'compilation-highlight-regexp)
947 (funcall compilation-process-setup-function)) 933 highlight-regexp))
948 (compilation-set-window-height outwin) 934 (set (make-local-variable 'compilation-arguments)
949 ;; Start the compilation. 935 (list command mode name-function highlight-regexp))
950 (if (fboundp 'start-process) 936 (set (make-local-variable 'revert-buffer-function)
951 (let ((proc (if (eq mode t) 937 'compilation-revert-buffer)
952 (get-buffer-process 938 (set-window-start outwin (point-min))
953 (with-no-warnings 939 (or (eq outwin (selected-window))
954 (comint-exec outbuf (downcase mode-name) 940 (set-window-point outwin (if compilation-scroll-output
955 shell-file-name nil `("-c" ,command)))) 941 (point)
956 (start-process-shell-command (downcase mode-name) 942 (point-min))))
957 outbuf command)))) 943 ;; The setup function is called before compilation-set-window-height
958 ;; Make the buffer's mode line show process state. 944 ;; so it can set the compilation-window-height buffer locally.
959 (setq mode-line-process '(":%s")) 945 (if compilation-process-setup-function
960 (set-process-sentinel proc 'compilation-sentinel) 946 (funcall compilation-process-setup-function))
961 (set-process-filter proc 'compilation-filter) 947 (compilation-set-window-height outwin)
962 (set-marker (process-mark proc) (point) outbuf) 948 ;; Start the compilation.
963 (setq compilation-in-progress 949 (if (fboundp 'start-process)
964 (cons proc compilation-in-progress))) 950 (let ((proc (if (eq mode t)
965 ;; No asynchronous processes available. 951 (get-buffer-process
966 (message "Executing `%s'..." command) 952 (with-no-warnings
967 ;; Fake modeline display as if `start-process' were run. 953 (comint-exec outbuf (downcase mode-name)
968 (setq mode-line-process ":run") 954 shell-file-name nil `("-c" ,command))))
969 (force-mode-line-update) 955 (start-process-shell-command (downcase mode-name)
970 (sit-for 0) ; Force redisplay 956 outbuf command))))
971 (let ((status (call-process shell-file-name nil outbuf nil "-c" 957 ;; Make the buffer's mode line show process state.
972 command))) 958 (setq mode-line-process '(":%s"))
973 (cond ((numberp status) 959 (set-process-sentinel proc 'compilation-sentinel)
974 (compilation-handle-exit 'exit status 960 (set-process-filter proc 'compilation-filter)
975 (if (zerop status) 961 (set-marker (process-mark proc) (point) outbuf)
976 "finished\n" 962 (setq compilation-in-progress
977 (format "\ 963 (cons proc compilation-in-progress)))
964 ;; No asynchronous processes available.
965 (message "Executing `%s'..." command)
966 ;; Fake modeline display as if `start-process' were run.
967 (setq mode-line-process ":run")
968 (force-mode-line-update)
969 (sit-for 0) ; Force redisplay
970 (let ((status (call-process shell-file-name nil outbuf nil "-c"
971 command)))
972 (cond ((numberp status)
973 (compilation-handle-exit 'exit status
974 (if (zerop status)
975 "finished\n"
976 (format "\
978exited abnormally with code %d\n" 977exited abnormally with code %d\n"
979 status)))) 978 status))))
980 ((stringp status) 979 ((stringp status)
981 (compilation-handle-exit 'signal status 980 (compilation-handle-exit 'signal status
982 (concat status "\n"))) 981 (concat status "\n")))
983 (t 982 (t
984 (compilation-handle-exit 'bizarre status status)))) 983 (compilation-handle-exit 'bizarre status status))))
985 ;; Without async subprocesses, the buffer is not yet 984 ;; Without async subprocesses, the buffer is not yet
986 ;; fontified, so fontify it now. 985 ;; fontified, so fontify it now.
987 (let ((font-lock-verbose nil)) ; shut up font-lock messages 986 (let ((font-lock-verbose nil)) ; shut up font-lock messages
988 (font-lock-fontify-buffer)) 987 (font-lock-fontify-buffer))
989 (message "Executing `%s'...done" command))) 988 (message "Executing `%s'...done" command))))
990 (if (buffer-local-value 'compilation-scroll-output outbuf) 989 (if (buffer-local-value 'compilation-scroll-output outbuf)
991 (save-selected-window 990 (save-selected-window
992 (select-window outwin) 991 (select-window outwin)
@@ -1108,7 +1107,7 @@ from a different message."
1108 :version "21.4") 1107 :version "21.4")
1109 1108
1110;;;###autoload 1109;;;###autoload
1111(defun compilation-mode () 1110(defun compilation-mode (&optional name-of-mode)
1112 "Major mode for compilation log buffers. 1111 "Major mode for compilation log buffers.
1113\\<compilation-mode-map>To visit the source for a line-numbered error, 1112\\<compilation-mode-map>To visit the source for a line-numbered error,
1114move point to the error message line and type \\[compile-goto-error]. 1113move point to the error message line and type \\[compile-goto-error].
@@ -1121,7 +1120,7 @@ Runs `compilation-mode-hook' with `run-hooks' (which see).
1121 (kill-all-local-variables) 1120 (kill-all-local-variables)
1122 (use-local-map compilation-mode-map) 1121 (use-local-map compilation-mode-map)
1123 (setq major-mode 'compilation-mode 1122 (setq major-mode 'compilation-mode
1124 mode-name "Compilation") 1123 mode-name (or name-of-mode "Compilation"))
1125 (set (make-local-variable 'page-delimiter) 1124 (set (make-local-variable 'page-delimiter)
1126 compilation-page-delimiter) 1125 compilation-page-delimiter)
1127 (compilation-setup) 1126 (compilation-setup)
@@ -1187,6 +1186,7 @@ If nil, use the beginning of buffer.")
1187 "Prepare the buffer for the compilation parsing commands to work. 1186 "Prepare the buffer for the compilation parsing commands to work.
1188Optional argument MINOR indicates this is called from 1187Optional argument MINOR indicates this is called from
1189`compilation-minor-mode'." 1188`compilation-minor-mode'."
1189 (setq buffer-read-only t)
1190 (make-local-variable 'compilation-current-error) 1190 (make-local-variable 'compilation-current-error)
1191 (make-local-variable 'compilation-messages-start) 1191 (make-local-variable 'compilation-messages-start)
1192 (make-local-variable 'compilation-error-screen-columns) 1192 (make-local-variable 'compilation-error-screen-columns)
@@ -1248,7 +1248,7 @@ Turning the mode on runs the normal hook `compilation-minor-mode-hook'."
1248 1248
1249(defun compilation-handle-exit (process-status exit-status msg) 1249(defun compilation-handle-exit (process-status exit-status msg)
1250 "Write MSG in the current buffer and hack its mode-line-process." 1250 "Write MSG in the current buffer and hack its mode-line-process."
1251 (let ((buffer-read-only nil) 1251 (let ((inhibit-read-only t)
1252 (status (if compilation-exit-message-function 1252 (status (if compilation-exit-message-function
1253 (funcall compilation-exit-message-function 1253 (funcall compilation-exit-message-function
1254 process-status exit-status msg) 1254 process-status exit-status msg)
diff --git a/lisp/server.el b/lisp/server.el
index 161c1f2b5d9..baf07a87186 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -946,6 +946,8 @@ With prefix arg, silently save all file-visiting buffers, then kill."
946 (remove-hook 'kill-buffer-query-functions 'server-kill-buffer-query-function) 946 (remove-hook 'kill-buffer-query-functions 'server-kill-buffer-query-function)
947 (remove-hook 'kill-emacs-query-functions 'server-kill-emacs-query-function) 947 (remove-hook 'kill-emacs-query-functions 'server-kill-emacs-query-function)
948 (remove-hook 'kill-buffer-hook 'server-kill-buffer)) 948 (remove-hook 'kill-buffer-hook 'server-kill-buffer))
949
950(add-hook 'server-unload-hook 'server-unload-hook)
949 951
950(provide 'server) 952(provide 'server)
951 953
diff --git a/lisp/shadowfile.el b/lisp/shadowfile.el
index b3427ac59e5..f047223cbae 100644
--- a/lisp/shadowfile.el
+++ b/lisp/shadowfile.el
@@ -837,6 +837,8 @@ look for files that have been changed and need to be copied to other systems."
837 (symbol-function 'shadow-orig-save-buffers-kill-emacs))) 837 (symbol-function 'shadow-orig-save-buffers-kill-emacs)))
838 (remove-hook 'write-file-hooks 'shadow-add-to-todo)) 838 (remove-hook 'write-file-hooks 'shadow-add-to-todo))
839 839
840(add-hook 'shadowfile-unload-hook 'shadowfile-unload-hook)
841
840(provide 'shadowfile) 842(provide 'shadowfile)
841 843
842;;; arch-tag: e2f4cdd7-2bab-4def-9130-9e69b412b79e 844;;; arch-tag: e2f4cdd7-2bab-4def-9130-9e69b412b79e
diff --git a/lisp/startup.el b/lisp/startup.el
index 1cee4e9d013..3fab203cf59 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -1159,7 +1159,7 @@ where FACE is a valid face specification, as it can be used with
1159 (emacs-version) 1159 (emacs-version)
1160 "\n" 1160 "\n"
1161 :face '(variable-pitch :height 0.5) 1161 :face '(variable-pitch :height 0.5)
1162 "Copyright (C) 2002 Free Software Foundation, Inc.") 1162 "Copyright (C) 2004 Free Software Foundation, Inc.")
1163 (and auto-save-list-file-prefix 1163 (and auto-save-list-file-prefix
1164 ;; Don't signal an error if the 1164 ;; Don't signal an error if the
1165 ;; directory for auto-save-list files 1165 ;; directory for auto-save-list files
@@ -1325,7 +1325,7 @@ More Manuals / Ordering Manuals How to order printed manuals from the FSF.
1325") 1325")
1326 (insert "\n\n" (emacs-version) 1326 (insert "\n\n" (emacs-version)
1327 " 1327 "
1328Copyright (C) 2002 Free Software Foundation, Inc.")) 1328Copyright (C) 2004 Free Software Foundation, Inc."))
1329 1329
1330 ;; No mouse menus, so give help using kbd commands. 1330 ;; No mouse menus, so give help using kbd commands.
1331 1331
@@ -1373,7 +1373,7 @@ If you have no Meta key, you may instead type ESC followed by the character.)")
1373 1373
1374 (insert "\n\n" (emacs-version) 1374 (insert "\n\n" (emacs-version)
1375 " 1375 "
1376Copyright (C) 2002 Free Software Foundation, Inc.") 1376Copyright (C) 2004 Free Software Foundation, Inc.")
1377 1377
1378 (if (and (eq (key-binding "\C-h\C-c") 'describe-copying) 1378 (if (and (eq (key-binding "\C-h\C-c") 'describe-copying)
1379 (eq (key-binding "\C-h\C-d") 'describe-distribution) 1379 (eq (key-binding "\C-h\C-d") 'describe-distribution)
diff --git a/lisp/strokes.el b/lisp/strokes.el
index cd3e82c4d3c..57f1e3355b2 100644
--- a/lisp/strokes.el
+++ b/lisp/strokes.el
@@ -1354,7 +1354,8 @@ If STROKES-MAP is not given, `strokes-global-map' will be used instead."
1354 :color-symbols 1354 :color-symbols
1355 `(("foreground" 1355 `(("foreground"
1356 . ,(frame-parameter nil 'foreground-color)))))) 1356 . ,(frame-parameter nil 'foreground-color))))))
1357 finally do (kill-region (1+ (point)) (point-max))) 1357 finally do (unless (eobp)
1358 (kill-region (1+ (point)) (point-max))))
1358 (view-buffer "*Strokes List*" nil) 1359 (view-buffer "*Strokes List*" nil)
1359 (set (make-local-variable 'view-mode-map) 1360 (set (make-local-variable 'view-mode-map)
1360 (let ((map (copy-keymap view-mode-map))) 1361 (let ((map (copy-keymap view-mode-map)))
@@ -1745,6 +1746,8 @@ Store XPM in buffer BUFNAME if supplied \(default is ` *strokes-xpm*'\)"
1745 (strokes-mode -1) 1746 (strokes-mode -1)
1746 (remove-hook 'kill-emacs-query-functions 'strokes-prompt-user-save-strokes)) 1747 (remove-hook 'kill-emacs-query-functions 'strokes-prompt-user-save-strokes))
1747 1748
1749(add-hooks 'strokes-unload-hook 'strokes-unload-hook)
1750
1748(run-hooks 'strokes-load-hook) 1751(run-hooks 'strokes-load-hook)
1749(provide 'strokes) 1752(provide 'strokes)
1750 1753
diff --git a/lisp/subr.el b/lisp/subr.el
index 6860dd57984..a06b136b642 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -1212,51 +1212,59 @@ any other non-digit terminates the character code and is then used as input."))
1212 code)) 1212 code))
1213 1213
1214(defun read-passwd (prompt &optional confirm default) 1214(defun read-passwd (prompt &optional confirm default)
1215 "Read a password, prompting with PROMPT. Echo `.' for each character typed. 1215 "Read a password, prompting with PROMPT, and return it.
1216End with RET, LFD, or ESC. DEL or C-h rubs out. C-u kills line. 1216If optional CONFIRM is non-nil, read the password twice to make sure.
1217If optional CONFIRM is non-nil, read password twice to make sure. 1217Optional DEFAULT is a default password to use instead of empty input.
1218Optional DEFAULT is a default password to use instead of empty input." 1218
1219 (if confirm 1219This function echoes `.' for each character that the user types.
1220 (let (success) 1220The user ends with RET, LFD, or ESC. DEL or C-h rubs out. C-u kills line.
1221 (while (not success) 1221C-g quits; if `inhibit-quit' was non-nil around this function,
1222 (let ((first (read-passwd prompt nil default)) 1222then it returns nil if the user types C-g.
1223 (second (read-passwd "Confirm password: " nil default))) 1223
1224 (if (equal first second) 1224Once the caller uses the password, it can erase the password
1225 (progn 1225by doing (clear-string STRING)."
1226 (and (arrayp second) (clear-string second)) 1226 (with-local-quit
1227 (setq success first)) 1227 (if confirm
1228 (and (arrayp first) (clear-string first)) 1228 (let (success)
1229 (and (arrayp second) (clear-string second)) 1229 (while (not success)
1230 (message "Password not repeated accurately; please start over") 1230 (let ((first (read-passwd prompt nil default))
1231 (sit-for 1)))) 1231 (second (read-passwd "Confirm password: " nil default)))
1232 success) 1232 (if (equal first second)
1233 (let ((pass nil) 1233 (progn
1234 (c 0) 1234 (and (arrayp second) (clear-string second))
1235 (echo-keystrokes 0) 1235 (setq success first))
1236 (cursor-in-echo-area t)) 1236 (and (arrayp first) (clear-string first))
1237 (while (progn (message "%s%s" 1237 (and (arrayp second) (clear-string second))
1238 prompt 1238 (message "Password not repeated accurately; please start over")
1239 (make-string (length pass) ?.)) 1239 (sit-for 1))))
1240 (setq c (read-char-exclusive nil t)) 1240 success)
1241 (and (/= c ?\r) (/= c ?\n) (/= c ?\e))) 1241 (let ((pass nil)
1242 (clear-this-command-keys) 1242 (c 0)
1243 (if (= c ?\C-u) 1243 (echo-keystrokes 0)
1244 (progn 1244 (cursor-in-echo-area t))
1245 (and (arrayp pass) (clear-string pass)) 1245 (while (progn (message "%s%s"
1246 (setq pass "")) 1246 prompt
1247 (if (and (/= c ?\b) (/= c ?\177)) 1247 (make-string (length pass) ?.))
1248 (let* ((new-char (char-to-string c)) 1248 (setq c (read-char-exclusive nil t))
1249 (new-pass (concat pass new-char))) 1249 (and (/= c ?\r) (/= c ?\n) (/= c ?\e)))
1250 (clear-this-command-keys)
1251 (if (= c ?\C-u)
1252 (progn
1250 (and (arrayp pass) (clear-string pass)) 1253 (and (arrayp pass) (clear-string pass))
1251 (clear-string new-char) 1254 (setq pass ""))
1252 (setq c ?\0) 1255 (if (and (/= c ?\b) (/= c ?\177))
1253 (setq pass new-pass)) 1256 (let* ((new-char (char-to-string c))
1254 (if (> (length pass) 0) 1257 (new-pass (concat pass new-char)))
1255 (let ((new-pass (substring pass 0 -1)))
1256 (and (arrayp pass) (clear-string pass)) 1258 (and (arrayp pass) (clear-string pass))
1257 (setq pass new-pass)))))) 1259 (clear-string new-char)
1258 (message nil) 1260 (setq c ?\0)
1259 (or pass default "")))) 1261 (setq pass new-pass))
1262 (if (> (length pass) 0)
1263 (let ((new-pass (substring pass 0 -1)))
1264 (and (arrayp pass) (clear-string pass))
1265 (setq pass new-pass))))))
1266 (message nil)
1267 (or pass default "")))))
1260 1268
1261;; This should be used by `call-interactively' for `n' specs. 1269;; This should be used by `call-interactively' for `n' specs.
1262(defun read-number (prompt &optional default) 1270(defun read-number (prompt &optional default)
@@ -1834,14 +1842,14 @@ See also `with-temp-file' and `with-output-to-string'."
1834 1842
1835(defmacro with-local-quit (&rest body) 1843(defmacro with-local-quit (&rest body)
1836 "Execute BODY, allowing quits to terminate BODY but not escape further. 1844 "Execute BODY, allowing quits to terminate BODY but not escape further.
1837When a quit terminates BODY, `with-local-quit' requests another quit when 1845When a quit terminates BODY, `with-local-quit' returns nil but
1838it finishes. That quit will be processed in turn, the next time quitting 1846requests another quit. That quit will be processed, the next time quitting
1839is again allowed." 1847is allowed once again."
1840 (declare (debug t) (indent 0)) 1848 (declare (debug t) (indent 0))
1841 `(condition-case nil 1849 `(condition-case nil
1842 (let ((inhibit-quit nil)) 1850 (let ((inhibit-quit nil))
1843 ,@body) 1851 ,@body)
1844 (quit (setq quit-flag t)))) 1852 (quit (setq quit-flag t) nil)))
1845 1853
1846(defmacro combine-after-change-calls (&rest body) 1854(defmacro combine-after-change-calls (&rest body)
1847 "Execute BODY, but don't call the after-change functions till the end. 1855 "Execute BODY, but don't call the after-change functions till the end.
@@ -2035,11 +2043,12 @@ STRING should be given if the last search was by `string-match' on STRING."
2035 2043
2036(defun looking-back (regexp &optional limit) 2044(defun looking-back (regexp &optional limit)
2037 "Return non-nil if text before point matches regular expression REGEXP. 2045 "Return non-nil if text before point matches regular expression REGEXP.
2038Like `looking-at' except backwards and slower. 2046Like `looking-at' except matches before point, and is slower.
2039LIMIT if non-nil speeds up the search by specifying how far back the 2047LIMIT if non-nil speeds up the search by specifying how far back the
2040match can start." 2048match can start."
2041 (save-excursion 2049 (not (null
2042 (re-search-backward (concat "\\(?:" regexp "\\)\\=") limit t))) 2050 (save-excursion
2051 (re-search-backward (concat "\\(?:" regexp "\\)\\=") limit t)))))
2043 2052
2044(defconst split-string-default-separators "[ \f\t\n\r\v]+" 2053(defconst split-string-default-separators "[ \f\t\n\r\v]+"
2045 "The default value of separators for `split-string'. 2054 "The default value of separators for `split-string'.
diff --git a/lisp/term.el b/lisp/term.el
index 7b0fd1aaf73..bc816e476e1 100644
--- a/lisp/term.el
+++ b/lisp/term.el
@@ -2,7 +2,8 @@
2 2
3;;; Copyright (C) 1988, 1990, 1992, 1994, 1995, 2004 Free Software Foundation, Inc. 3;;; Copyright (C) 1988, 1990, 1992, 1994, 1995, 2004 Free Software Foundation, Inc.
4 4
5;; Author: Per Bothner <bothner@cygnus.com> 5;; Author: Per Bothner <per@bothner.com>
6;; Maintainer: Dan Nicolaescu <dann@ics.uci.edu>, Per Bothner <per@bothner.com>
6;; Based on comint mode written by: Olin Shivers <shivers@cs.cmu.edu> 7;; Based on comint mode written by: Olin Shivers <shivers@cs.cmu.edu>
7;; Keywords: processes 8;; Keywords: processes
8 9
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index b98c9fc183d..f0547d6d596 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -1618,10 +1618,11 @@ Global `ispell-quit' set to start location to continue spell session."
1618 (set-buffer (get-buffer-create ispell-choices-buffer)) 1618 (set-buffer (get-buffer-create ispell-choices-buffer))
1619 (setq mode-line-format (concat "-- %b -- word: " word)) 1619 (setq mode-line-format (concat "-- %b -- word: " word))
1620 ;; XEmacs: no need for horizontal scrollbar in choices window 1620 ;; XEmacs: no need for horizontal scrollbar in choices window
1621 (and (fboundp 'set-specifier) 1621 (with-no-warnings
1622 (boundp 'horizontal-scrollbar-visible-p) 1622 (and (fboundp 'set-specifier)
1623 (set-specifier horizontal-scrollbar-visible-p nil 1623 (boundp 'horizontal-scrollbar-visible-p)
1624 (cons (current-buffer) nil))) 1624 (set-specifier horizontal-scrollbar-visible-p nil
1625 (cons (current-buffer) nil))))
1625 (erase-buffer) 1626 (erase-buffer)
1626 (if guess 1627 (if guess
1627 (progn 1628 (progn
@@ -1871,7 +1872,7 @@ Global `ispell-quit' set to start location to continue spell session."
1871 (if (and ispell-use-framepop-p (fboundp 'framepop-display-buffer)) 1872 (if (and ispell-use-framepop-p (fboundp 'framepop-display-buffer))
1872 (progn 1873 (progn
1873 (framepop-display-buffer (get-buffer ispell-choices-buffer)) 1874 (framepop-display-buffer (get-buffer ispell-choices-buffer))
1874 (get-buffer-window ispell-choices-buffer t) 1875;;; (get-buffer-window ispell-choices-buffer t)
1875 (select-window (previous-window))) ; *Choices* window 1876 (select-window (previous-window))) ; *Choices* window
1876 ;; standard selection by splitting a small buffer out of this window. 1877 ;; standard selection by splitting a small buffer out of this window.
1877 (let ((choices-window (get-buffer-window ispell-choices-buffer))) 1878 (let ((choices-window (get-buffer-window ispell-choices-buffer)))
@@ -2355,7 +2356,7 @@ Keeps argument list for future ispell invocations for no async support."
2355 (if extended-char-mode ; ~ extended character mode 2356 (if extended-char-mode ; ~ extended character mode
2356 (ispell-send-string (concat extended-char-mode "\n")))) 2357 (ispell-send-string (concat extended-char-mode "\n"))))
2357 (if ispell-async-processp 2358 (if ispell-async-processp
2358 (process-kill-without-query ispell-process)))) 2359 (set-process-query-on-exit-flag ispell-process nil))))
2359 2360
2360;;;###autoload 2361;;;###autoload
2361(defun ispell-kill-ispell (&optional no-error) 2362(defun ispell-kill-ispell (&optional no-error)
@@ -3286,19 +3287,23 @@ You can bind this to the key C-c i in GNUS or mail by adding to
3286 (cond 3287 (cond
3287 ((functionp 'sc-cite-regexp) ; sc 3.0 3288 ((functionp 'sc-cite-regexp) ; sc 3.0
3288 (concat "\\(" (sc-cite-regexp) "\\)" "\\|" 3289 (concat "\\(" (sc-cite-regexp) "\\)" "\\|"
3289 (ispell-non-empty-string sc-reference-tag-string))) 3290 (with-no-warnings
3291 (ispell-non-empty-string sc-reference-tag-string))))
3290 ((boundp 'sc-cite-regexp) ; sc 2.3 3292 ((boundp 'sc-cite-regexp) ; sc 2.3
3291 (concat "\\(" sc-cite-regexp "\\)" "\\|" 3293 (concat "\\(" sc-cite-regexp "\\)" "\\|"
3292 (ispell-non-empty-string sc-reference-tag-string))) 3294 (with-no-warnings
3295 (ispell-non-empty-string sc-reference-tag-string))))
3293 ((or (equal major-mode 'news-reply-mode) ;GNUS 4 & below 3296 ((or (equal major-mode 'news-reply-mode) ;GNUS 4 & below
3294 (equal major-mode 'message-mode)) ;GNUS 5 3297 (equal major-mode 'message-mode)) ;GNUS 5
3295 (concat "In article <" "\\|" 3298 (concat "In article <" "\\|"
3296 "[^,;&+=\n]+ <[^,;&+=]+> writes:" "\\|" 3299 "[^,;&+=\n]+ <[^,;&+=]+> writes:" "\\|"
3297 message-cite-prefix-regexp "\\|" 3300 (with-no-warnings message-cite-prefix-regexp)
3301 "\\|"
3298 default-prefix)) 3302 default-prefix))
3299 ((equal major-mode 'mh-letter-mode) ; mh mail message 3303 ((equal major-mode 'mh-letter-mode) ; mh mail message
3300 (concat "[^,;&+=\n]+ writes:" "\\|" 3304 (concat "[^,;&+=\n]+ writes:" "\\|"
3301 (ispell-non-empty-string mh-ins-buf-prefix))) 3305 (with-no-warnings
3306 (ispell-non-empty-string mh-ins-buf-prefix))))
3302 ((not internal-messagep) ; Assume nn sent us this message. 3307 ((not internal-messagep) ; Assume nn sent us this message.
3303 (concat "In [a-zA-Z.]+ you write:" "\\|" 3308 (concat "In [a-zA-Z.]+ you write:" "\\|"
3304 "In <[^,;&+=]+> [^,;&+=]+ writes:" "\\|" 3309 "In <[^,;&+=]+> [^,;&+=]+ writes:" "\\|"
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog
index 91a6c869a21..87f818cd70d 100644
--- a/lisp/url/ChangeLog
+++ b/lisp/url/ChangeLog
@@ -1,3 +1,25 @@
12004-10-16 Richard M. Stallman <rms@gnu.org>
2
3 * url.el (url-do-setup): Don't set url-passwd-entry-func.
4
5 * url-vars.el (url-passwd-entry-func): Var deleted.
6 (mm-mime-mule-charset-alist): Remove compatibility code for old Gnus.
7 (url-weekday-alist): Renamed from weekday-alist.
8 (url-monthabbrev-alist): Renamed from monthabbrev-alist.
9 (url-vars-unload-hook): Initialize hook var to hold the function.
10
11 * url-util.el (url-get-normalized-date): Use
12 url-weekday-alist and url-monthabbrev-alist.
13
14 * url-misc.el: Load cl at compile time.
15
16 * url-mailto.el: Don't load cl.
17 (url-mailto): Fix call to `push'.
18
19 * url-gw.el (url-open-telnet): Use read-passwd.
20
21 * url-auth.el (url-basic-auth, url-digest-auth): Use read-passwd.
22
12004-10-12 Simon Josefsson <jas@extundo.com> 232004-10-12 Simon Josefsson <jas@extundo.com>
2 24
3 * url-vars.el (url-gateway-method): Add new method `tls'. 25 * url-vars.el (url-gateway-method): Add new method `tls'.
diff --git a/lisp/url/url-auth.el b/lisp/url/url-auth.el
index 39bb730bebc..e92fdd1542c 100644
--- a/lisp/url/url-auth.el
+++ b/lisp/url/url-auth.el
@@ -78,7 +78,7 @@ instead of the pathname inheritance method."
78 ((and prompt (not byserv)) 78 ((and prompt (not byserv))
79 (setq user (read-string (url-auth-user-prompt url realm) 79 (setq user (read-string (url-auth-user-prompt url realm)
80 (user-real-login-name)) 80 (user-real-login-name))
81 pass (funcall url-passwd-entry-func "Password: ")) 81 pass (read-passwd "Password: "))
82 (set url-basic-auth-storage 82 (set url-basic-auth-storage
83 (cons (list server 83 (cons (list server
84 (cons path 84 (cons path
@@ -102,7 +102,7 @@ instead of the pathname inheritance method."
102 (progn 102 (progn
103 (setq user (read-string (url-auth-user-prompt url realm) 103 (setq user (read-string (url-auth-user-prompt url realm)
104 (user-real-login-name)) 104 (user-real-login-name))
105 pass (funcall url-passwd-entry-func "Password: ") 105 pass (read-passwd "Password: ")
106 retval (base64-encode-string (format "%s:%s" user pass)) 106 retval (base64-encode-string (format "%s:%s" user pass))
107 byserv (assoc server (symbol-value url-basic-auth-storage))) 107 byserv (assoc server (symbol-value url-basic-auth-storage)))
108 (setcdr byserv 108 (setcdr byserv
@@ -160,7 +160,7 @@ instead of hostname:portnum."
160 ((and prompt (not byserv)) 160 ((and prompt (not byserv))
161 (setq user (read-string (url-auth-user-prompt url realm) 161 (setq user (read-string (url-auth-user-prompt url realm)
162 (user-real-login-name)) 162 (user-real-login-name))
163 pass (funcall url-passwd-entry-func "Password: ") 163 pass (read-passwd "Password: ")
164 url-digest-auth-storage 164 url-digest-auth-storage
165 (cons (list server 165 (cons (list server
166 (cons path 166 (cons path
@@ -187,7 +187,7 @@ instead of hostname:portnum."
187 (progn 187 (progn
188 (setq user (read-string (url-auth-user-prompt url realm) 188 (setq user (read-string (url-auth-user-prompt url realm)
189 (user-real-login-name)) 189 (user-real-login-name))
190 pass (funcall url-passwd-entry-func "Password: ") 190 pass (read-passwd "Password: ")
191 retval (setq retval 191 retval (setq retval
192 (cons user 192 (cons user
193 (url-digest-auth-create-key 193 (url-digest-auth-create-key
diff --git a/lisp/url/url-gw.el b/lisp/url/url-gw.el
index 608827d7cee..933dd161004 100644
--- a/lisp/url/url-gw.el
+++ b/lisp/url/url-gw.el
@@ -186,7 +186,7 @@ linked Emacs under SunOS 4.x"
186 proc (concat 186 proc (concat
187 (or url-gateway-telnet-password 187 (or url-gateway-telnet-password
188 (setq url-gateway-telnet-password 188 (setq url-gateway-telnet-password
189 (funcall url-passwd-entry-func "Password: "))) 189 (read-passwd "Password: ")))
190 "\n")) 190 "\n"))
191 (erase-buffer) 191 (erase-buffer)
192 (url-wait-for-string url-gateway-prompt-pattern proc) 192 (url-wait-for-string url-gateway-prompt-pattern proc)
diff --git a/lisp/url/url-mailto.el b/lisp/url/url-mailto.el
index bcb6bad4179..f5192bcb03f 100644
--- a/lisp/url/url-mailto.el
+++ b/lisp/url/url-mailto.el
@@ -25,7 +25,6 @@
25 25
26;;; Code: 26;;; Code:
27 27
28(eval-when-compile (require 'cl))
29(require 'url-vars) 28(require 'url-vars)
30(require 'url-parse) 29(require 'url-parse)
31(require 'url-util) 30(require 'url-util)
@@ -85,7 +84,7 @@
85 (setq args (cons (list "x-url-from" source-url) args))) 84 (setq args (cons (list "x-url-from" source-url) args)))
86 85
87 (if (assoc "to" args) 86 (if (assoc "to" args)
88 (push to (cdr (assoc "to" args))) 87 (push (cdr (assoc "to" args)) to)
89 (setq args (cons (list "to" to) args))) 88 (setq args (cons (list "to" to) args)))
90 (setq subject (cdr-safe (assoc "subject" args))) 89 (setq subject (cdr-safe (assoc "subject" args)))
91 (if (fboundp url-mail-command) (funcall url-mail-command) (mail)) 90 (if (fboundp url-mail-command) (funcall url-mail-command) (mail))
diff --git a/lisp/url/url-misc.el b/lisp/url/url-misc.el
index ff2f1282137..ff18ef9b863 100644
--- a/lisp/url/url-misc.el
+++ b/lisp/url/url-misc.el
@@ -22,6 +22,7 @@
22;;; Boston, MA 02111-1307, USA. 22;;; Boston, MA 02111-1307, USA.
23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
24 24
25(eval-when-compile (require 'cl))
25(require 'url-vars) 26(require 'url-vars)
26(require 'url-parse) 27(require 'url-parse)
27(autoload 'Info-goto-node "info" "" t) 28(autoload 'Info-goto-node "info" "" t)
diff --git a/lisp/url/url-util.el b/lisp/url/url-util.el
index 5d1f73e0d5d..1d0bfcf0c48 100644
--- a/lisp/url/url-util.el
+++ b/lisp/url/url-util.el
@@ -192,13 +192,13 @@ Will not do anything if `url-show-status' is nil."
192 (nth 1 (current-time-zone)) 192 (nth 1 (current-time-zone))
193 "GMT")) 193 "GMT"))
194 (parsed (timezone-parse-date gmt)) 194 (parsed (timezone-parse-date gmt))
195 (day (cdr-safe (assoc (substring raw 0 3) weekday-alist))) 195 (day (cdr-safe (assoc (substring raw 0 3) url-weekday-alist)))
196 (year nil) 196 (year nil)
197 (month (car 197 (month (car
198 (rassoc 198 (rassoc
199 (string-to-int (aref parsed 1)) monthabbrev-alist))) 199 (string-to-int (aref parsed 1)) url-monthabbrev-alist)))
200 ) 200 )
201 (setq day (or (car-safe (rassoc day weekday-alist)) 201 (setq day (or (car-safe (rassoc day url-weekday-alist))
202 (substring raw 0 3)) 202 (substring raw 0 3))
203 year (aref parsed 0)) 203 year (aref parsed 0))
204 ;; This is needed for plexus servers, or the server will hang trying to 204 ;; This is needed for plexus servers, or the server will hang trying to
diff --git a/lisp/url/url-vars.el b/lisp/url/url-vars.el
index a33d8ba43e3..97a9b8dc252 100644
--- a/lisp/url/url-vars.el
+++ b/lisp/url/url-vars.el
@@ -191,19 +191,6 @@ from the ACCESS_proxy environment variables."
191 (string :tag "Proxy"))) 191 (string :tag "Proxy")))
192 :group 'url) 192 :group 'url)
193 193
194(defcustom url-passwd-entry-func nil
195 "*Symbol indicating which function to call to read in a password.
196It will be set up depending on whether you are running EFS or ange-ftp
197at startup if it is nil. This function should accept the prompt
198string as its first argument, and the default value as its second
199argument."
200 :type '(choice (const :tag "Guess" :value nil)
201 (const :tag "Use Ange-FTP" :value ange-ftp-read-passwd)
202 (const :tag "Use EFS" :value efs-read-passwd)
203 (const :tag "Use Password Package" :value read-passwd)
204 (function :tag "Other"))
205 :group 'url-hairy)
206
207(defcustom url-standalone-mode nil 194(defcustom url-standalone-mode nil
208 "*Rely solely on the cache?" 195 "*Rely solely on the cache?"
209 :type 'boolean 196 :type 'boolean
@@ -240,24 +227,6 @@ Should be an assoc list of headers/contents.")
240(defvar url-mime-encoding-string nil 227(defvar url-mime-encoding-string nil
241 "*String to send in the Accept-encoding: field in HTTP requests.") 228 "*String to send in the Accept-encoding: field in HTTP requests.")
242 229
243;; `mm-mime-mule-charset-alist' in Gnus 5.8/9 contains elements whose
244;; cars aren't valid MIME charsets/coding systems, at least in Emacs.
245;; This gets it correct by construction in Emacs. Fixme: DTRT for
246;; XEmacs -- its `coding-system-list' doesn't have the BASE-ONLY arg.
247(when (and (not (featurep 'xemacs))
248 (fboundp 'coding-system-list))
249 (setq mm-mime-mule-charset-alist
250 (apply
251 'nconc
252 (mapcar
253 (lambda (cs)
254 (when (and (coding-system-get cs 'mime-charset)
255 (not (eq t (coding-system-get cs 'safe-charsets))))
256 (list (cons (coding-system-get cs 'mime-charset)
257 (delq 'ascii
258 (coding-system-get cs 'safe-charsets))))))
259 (coding-system-list 'base-only)))))
260
261;; Perhaps the first few should actually be given decreasing `q's and 230;; Perhaps the first few should actually be given decreasing `q's and
262;; the list should be trimmed significantly. 231;; the list should be trimmed significantly.
263;; Fixme: do something sane if we don't have `sort-coding-systems' 232;; Fixme: do something sane if we don't have `sort-coding-systems'
@@ -381,14 +350,14 @@ Currently supported methods:
381 350
382(defvar url-setup-done nil "Has setup configuration been done?") 351(defvar url-setup-done nil "Has setup configuration been done?")
383 352
384(defconst weekday-alist 353(defconst url-weekday-alist
385 '(("Sunday" . 0) ("Monday" . 1) ("Tuesday" . 2) ("Wednesday" . 3) 354 '(("Sunday" . 0) ("Monday" . 1) ("Tuesday" . 2) ("Wednesday" . 3)
386 ("Thursday" . 4) ("Friday" . 5) ("Saturday" . 6) 355 ("Thursday" . 4) ("Friday" . 5) ("Saturday" . 6)
387 ("Tues" . 2) ("Thurs" . 4) 356 ("Tues" . 2) ("Thurs" . 4)
388 ("Sun" . 0) ("Mon" . 1) ("Tue" . 2) ("Wed" . 3) 357 ("Sun" . 0) ("Mon" . 1) ("Tue" . 2) ("Wed" . 3)
389 ("Thu" . 4) ("Fri" . 5) ("Sat" . 6))) 358 ("Thu" . 4) ("Fri" . 5) ("Sat" . 6)))
390 359
391(defconst monthabbrev-alist 360(defconst url-monthabbrev-alist
392 '(("Jan" . 1) ("Feb" . 2) ("Mar" . 3) ("Apr" . 4) ("May" . 5) ("Jun" . 6) 361 '(("Jan" . 1) ("Feb" . 2) ("Mar" . 3) ("Apr" . 4) ("May" . 5) ("Jun" . 6)
393 ("Jul" . 7) ("Aug" . 8) ("Sep" . 9) ("Oct" . 10) ("Nov" . 11) 362 ("Jul" . 7) ("Aug" . 8) ("Sep" . 9) ("Oct" . 10) ("Nov" . 11)
394 ("Dec" . 12))) 363 ("Dec" . 12)))
@@ -425,6 +394,8 @@ This should be set, e.g. by mail user agents rendering HTML to avoid
425(defun url-vars-unload-hook () 394(defun url-vars-unload-hook ()
426 (remove-hook 'set-language-environment-hook 'url-set-mime-charset-string)) 395 (remove-hook 'set-language-environment-hook 'url-set-mime-charset-string))
427 396
397(add-hook 'url-vars-unload-hook 'url-vars-unload-hook)
398
428(provide 'url-vars) 399(provide 'url-vars)
429 400
430;;; arch-tag: 29205e5f-c5ce-433c-8d5d-38cbaed64b49 401;;; arch-tag: 29205e5f-c5ce-433c-8d5d-38cbaed64b49
diff --git a/lisp/url/url.el b/lisp/url/url.el
index f7b1b717681..75ddfdc3a2f 100644
--- a/lisp/url/url.el
+++ b/lisp/url/url.el
@@ -113,26 +113,6 @@ Emacs."
113 noproxy "") "\\)")) 113 noproxy "") "\\)"))
114 url-proxy-services)))) 114 url-proxy-services))))
115 115
116 ;; Set the password entry funtion based on user defaults or guess
117 ;; based on which remote-file-access package they are using.
118 (cond
119 (url-passwd-entry-func nil) ; Already been set
120 ((fboundp 'read-passwd) ; Use secure password if available
121 (setq url-passwd-entry-func 'read-passwd))
122 ((or (featurep 'efs) ; Using EFS
123 (featurep 'efs-auto)) ; or autoloading efs
124 (if (not (fboundp 'read-passwd))
125 (autoload 'read-passwd "passwd" "Read in a password" nil))
126 (setq url-passwd-entry-func 'read-passwd))
127 ((or (featurep 'ange-ftp) ; Using ange-ftp
128 (and (boundp 'file-name-handler-alist)
129 (not (featurep 'xemacs)))) ; ??
130 (setq url-passwd-entry-func 'ange-ftp-read-passwd))
131 (t
132 (url-warn
133 'security
134 "(url-setup): Can't determine how to read passwords, winging it.")))
135
136 (url-setup-privacy-info) 116 (url-setup-privacy-info)
137 (run-hooks 'url-load-hook) 117 (run-hooks 'url-load-hook)
138 (setq url-setup-done t))) 118 (setq url-setup-done t)))
diff --git a/lisp/vc-arch.el b/lisp/vc-arch.el
index e32fc474d94..70dbdcc85f2 100644
--- a/lisp/vc-arch.el
+++ b/lisp/vc-arch.el
@@ -283,8 +283,8 @@ Return non-nil if FILE is unchanged."
283 (setq logdir (expand-file-name version logdir)) 283 (setq logdir (expand-file-name version logdir))
284 (setq logdir (expand-file-name archive logdir)) 284 (setq logdir (expand-file-name archive logdir))
285 (setq logdir (expand-file-name "patch-log" logdir)) 285 (setq logdir (expand-file-name "patch-log" logdir))
286 ;; Revision names go: base-0, patch-N, version-0, versionfix-N. 286 (dolist (file (if (file-directory-p logdir) (directory-files logdir)))
287 (dolist (file (directory-files logdir)) 287 ;; Revision names go: base-0, patch-N, version-0, versionfix-M.
288 (when (and (eq (aref file 0) ?v) (not sealed)) 288 (when (and (eq (aref file 0) ?v) (not sealed))
289 (setq sealed t rev-nb 0)) 289 (setq sealed t rev-nb 0))
290 (if (and (string-match "-\\([0-9]+\\)\\'" file) 290 (if (and (string-match "-\\([0-9]+\\)\\'" file)
diff --git a/lisp/vc-hooks.el b/lisp/vc-hooks.el
index fef1431fe7d..22ff9edd428 100644
--- a/lisp/vc-hooks.el
+++ b/lisp/vc-hooks.el
@@ -754,8 +754,8 @@ current, and kill the buffer that visits the link."
754 (set (make-local-variable 'backup-inhibited) t)) 754 (set (make-local-variable 'backup-inhibited) t))
755 ;; Let the backend setup any buffer-local things he needs. 755 ;; Let the backend setup any buffer-local things he needs.
756 (vc-call-backend (vc-backend buffer-file-name) 'find-file-hook)) 756 (vc-call-backend (vc-backend buffer-file-name) 'find-file-hook))
757 ((let* ((link (file-symlink-p buffer-file-name)) 757 ((let ((link-type (and (file-symlink-p buffer-file-name)
758 (link-type (and link (vc-backend (file-chase-links link))))) 758 (vc-backend (file-chase-links buffer-file-name)))))
759 (cond ((not link-type) nil) ;Nothing to do. 759 (cond ((not link-type) nil) ;Nothing to do.
760 ((eq vc-follow-symlinks nil) 760 ((eq vc-follow-symlinks nil)
761 (message 761 (message
diff --git a/lisp/view.el b/lisp/view.el
index b17cd52ae35..e184d68b117 100644
--- a/lisp/view.el
+++ b/lisp/view.el
@@ -117,12 +117,12 @@ functions that enable or disable view mode.")
117 117
118(defvar view-page-size nil 118(defvar view-page-size nil
119 "Default number of lines to scroll by View page commands. 119 "Default number of lines to scroll by View page commands.
120If nil then the local value of this is initially set to window size.") 120If nil that means use the window size.")
121(make-variable-buffer-local 'view-page-size) 121(make-variable-buffer-local 'view-page-size)
122 122
123(defvar view-half-page-size nil 123(defvar view-half-page-size nil
124 "Default number of lines to scroll by View half page commands. 124 "Default number of lines to scroll by View half page commands.
125If nil then the local value of this is initially set to half window size.") 125If nil that means use half the window size.")
126(make-variable-buffer-local 'view-half-page-size) 126(make-variable-buffer-local 'view-half-page-size)
127 127
128(defvar view-last-regexp nil) 128(defvar view-last-regexp nil)
@@ -453,8 +453,8 @@ Entry to view-mode runs the normal hook `view-mode-hook'."
453 ;; This is to guarantee that the buffer-read-only variable is restored. 453 ;; This is to guarantee that the buffer-read-only variable is restored.
454 (add-hook 'change-major-mode-hook 'view-mode-disable nil t) 454 (add-hook 'change-major-mode-hook 'view-mode-disable nil t)
455 (setq view-mode t 455 (setq view-mode t
456 view-page-size (view-page-size-default view-page-size) 456 view-page-size nil
457 view-half-page-size (or view-half-page-size (/ (view-window-size) 2)) 457 view-half-page-size nil
458 view-old-buffer-read-only buffer-read-only 458 view-old-buffer-read-only buffer-read-only
459 buffer-read-only t 459 buffer-read-only t
460 view-old-Helper-return-blurb (and (boundp 'Helper-return-blurb) 460 view-old-Helper-return-blurb (and (boundp 'Helper-return-blurb)
@@ -675,7 +675,8 @@ previous state and go to previous buffer or window."
675 675
676(defun view-set-half-page-size-default (lines) 676(defun view-set-half-page-size-default (lines)
677 ;; Get and maybe set half page size. 677 ;; Get and maybe set half page size.
678 (if (not lines) view-half-page-size 678 (if (not lines) (or view-half-page-size
679 (/ (view-window-size) 2))
679 (setq view-half-page-size 680 (setq view-half-page-size
680 (if (zerop (setq lines (prefix-numeric-value lines))) 681 (if (zerop (setq lines (prefix-numeric-value lines)))
681 (/ (view-window-size) 2) 682 (/ (view-window-size) 2)
@@ -803,13 +804,13 @@ Exit if end of text is visible and `view-scroll-auto-exit' is non-nil.
803\\[View-scroll-page-backward-set-page-size]. 804\\[View-scroll-page-backward-set-page-size].
804If LINES is more than a window-full, only the last window-full is shown." 805If LINES is more than a window-full, only the last window-full is shown."
805 (interactive "P") 806 (interactive "P")
806 (view-scroll-lines lines nil view-page-size nil)) 807 (view-scroll-lines lines nil (view-page-size-default view-page-size) nil))
807 808
808(defun View-scroll-page-backward (&optional lines) 809(defun View-scroll-page-backward (&optional lines)
809 "Scroll \"page size\" or prefix LINES lines backward in View mode. 810 "Scroll \"page size\" or prefix LINES lines backward in View mode.
810See also `View-scroll-page-forward'." 811See also `View-scroll-page-forward'."
811 (interactive "P") 812 (interactive "P")
812 (view-scroll-lines lines t view-page-size nil)) 813 (view-scroll-lines lines t (view-page-size-default view-page-size) nil))
813 814
814(defun View-scroll-page-forward-set-page-size (&optional lines) 815(defun View-scroll-page-forward-set-page-size (&optional lines)
815 "Scroll forward LINES lines in View mode, setting the \"page size\". 816 "Scroll forward LINES lines in View mode, setting the \"page size\".
diff --git a/lisp/whitespace.el b/lisp/whitespace.el
index 40a234f02d6..323c75ed6de 100644
--- a/lisp/whitespace.el
+++ b/lisp/whitespace.el
@@ -859,6 +859,8 @@ This is meant to be added buffer-locally to `write-file-functions'."
859 (remove-hook 'write-file-functions 'whitespace-write-file-hook t) 859 (remove-hook 'write-file-functions 'whitespace-write-file-hook t)
860 (remove-hook 'kill-buffer-hook 'whitespace-buffer)) 860 (remove-hook 'kill-buffer-hook 'whitespace-buffer))
861 861
862(add-hook 'whitespace-unload-hook 'whitespace-unload-hook)
863
862(provide 'whitespace) 864(provide 'whitespace)
863 865
864;;; arch-tag: 4ff44e87-b63c-402d-95a6-15e51e58bd0c 866;;; arch-tag: 4ff44e87-b63c-402d-95a6-15e51e58bd0c
diff --git a/man/ChangeLog b/man/ChangeLog
index 8aec01712ef..248c4adba41 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,3 +1,21 @@
12004-10-18 Luc Teirlinck <teirllm@auburn.edu>
2
3 * calc.texi (Reporting Bugs): Double up `@'.
4
52004-10-15 Reiner Steib <Reiner.Steib@gmx.de>
6
7 * gnus.texi (New Features): Add 5.11.
8
9 * message.texi (Resending): Remove wrong default value.
10
11 * gnus.texi (Mail Source Specifiers): Describe possible problems
12 of `pop3-leave-mail-on-server'. Add `pop3-movemail' and
13 `pop3-leave-mail-on-server' to the index.
14
152004-10-15 Katsumi Yamaoka <yamaoka@jpl.org>
16
17 * message.texi (Canceling News): Add how to set a password.
18
12004-10-12 Reiner Steib <Reiner.Steib@gmx.de> 192004-10-12 Reiner Steib <Reiner.Steib@gmx.de>
2 20
3 * gnus-faq.texi ([5.9]): Improve code for reply-in-news. 21 * gnus-faq.texi ([5.9]): Improve code for reply-in-news.
diff --git a/man/calc.texi b/man/calc.texi
index a77ba4eb266..ad0d40bad71 100644
--- a/man/calc.texi
+++ b/man/calc.texi
@@ -34286,11 +34286,10 @@ press @kbd{M-# t} to begin.
34286@appendix Reporting Bugs 34286@appendix Reporting Bugs
34287 34287
34288@noindent 34288@noindent
34289If you find a bug in Calc, send e-mail to Colin Walters, 34289If you find a bug in Calc, send e-mail to Jay Belanger,
34290 34290
34291@example 34291@example
34292walters@@debian.org @r{or} 34292belanger@@truman.edu
34293walters@@verbum.org
34294@end example 34293@end example
34295 34294
34296@noindent 34295@noindent
diff --git a/man/gnus.texi b/man/gnus.texi
index a62e9bcf149..ca9045bf5b9 100644
--- a/man/gnus.texi
+++ b/man/gnus.texi
@@ -885,7 +885,7 @@ New Features
885* Red Gnus:: Third time best---Gnus 5.4/5.5. 885* Red Gnus:: Third time best---Gnus 5.4/5.5.
886* Quassia Gnus:: Two times two is four, or Gnus 5.6/5.7. 886* Quassia Gnus:: Two times two is four, or Gnus 5.6/5.7.
887* Pterodactyl Gnus:: Pentad also starts with P, AKA Gnus 5.8/5.9. 887* Pterodactyl Gnus:: Pentad also starts with P, AKA Gnus 5.8/5.9.
888* Oort Gnus:: It's big. It's far out. Gnus 5.10. 888* Oort Gnus:: It's big. It's far out. Gnus 5.10/5.11.
889 889
890Customization 890Customization
891 891
@@ -13538,10 +13538,16 @@ and says what authentication scheme to use. The default is
13538 13538
13539@end table 13539@end table
13540 13540
13541@vindex pop3-movemail
13542@vindex pop3-leave-mail-on-server
13541If the @code{:program} and @code{:function} keywords aren't specified, 13543If the @code{:program} and @code{:function} keywords aren't specified,
13542@code{pop3-movemail} will be used. If the 13544@code{pop3-movemail} will be used. If the
13543@code{pop3-leave-mail-on-server} is non-@code{nil} the mail is to be 13545@code{pop3-leave-mail-on-server} is non-@code{nil} the mail is to be
13544left on the POP server after fetching. 13546left on the @acronym{POP} server after fetching when using
13547@code{pop3-movemail}. Note that POP servers maintain no state
13548information between sessions, so what the client believes is there and
13549what is actually there may not match up. If they do not, then the whole
13550thing can fall apart and leave you with a corrupt mailbox.
13545 13551
13546Here are some examples. Fetch from the default @acronym{POP} server, 13552Here are some examples. Fetch from the default @acronym{POP} server,
13547using the default user name, and default fetcher: 13553using the default user name, and default fetcher:
@@ -25050,7 +25056,7 @@ actually are people who are using Gnus. Who'd'a thunk it!
25050* Red Gnus:: Third time best---Gnus 5.4/5.5. 25056* Red Gnus:: Third time best---Gnus 5.4/5.5.
25051* Quassia Gnus:: Two times two is four, or Gnus 5.6/5.7. 25057* Quassia Gnus:: Two times two is four, or Gnus 5.6/5.7.
25052* Pterodactyl Gnus:: Pentad also starts with P, AKA Gnus 5.8/5.9. 25058* Pterodactyl Gnus:: Pentad also starts with P, AKA Gnus 5.8/5.9.
25053* Oort Gnus:: It's big. It's far out. Gnus 5.10. 25059* Oort Gnus:: It's big. It's far out. Gnus 5.10/5.11.
25054@end menu 25060@end menu
25055 25061
25056These lists are, of course, just @emph{short} overviews of the 25062These lists are, of course, just @emph{short} overviews of the
diff --git a/man/message.texi b/man/message.texi
index 6a52698ddb5..25f1d12d33b 100644
--- a/man/message.texi
+++ b/man/message.texi
@@ -224,7 +224,13 @@ only you can cancel your own messages, which is nice. The downside
224is that if you lose your @file{.emacs} file (which is where Gnus 224is that if you lose your @file{.emacs} file (which is where Gnus
225stores the secret cancel lock password (which is generated 225stores the secret cancel lock password (which is generated
226automatically the first time you use this feature)), you won't be 226automatically the first time you use this feature)), you won't be
227able to cancel your message. 227able to cancel your message. If you yourself want to manage a password,
228you can put something like the following in your @file{~/.gnus.el} file:
229
230@lisp
231(setq canlock-password "Salam Shalom"
232 canlock-password-for-verify canlock-password)
233@end lisp
228 234
229Whether to insert the header or not is controlled by the 235Whether to insert the header or not is controlled by the
230@code{message-insert-canlock} variable. 236@code{message-insert-canlock} variable.
@@ -309,8 +315,7 @@ and resend the message in the current buffer to that address.
309 315
310@vindex message-ignored-resent-headers 316@vindex message-ignored-resent-headers
311Headers that match the @code{message-ignored-resent-headers} regexp will 317Headers that match the @code{message-ignored-resent-headers} regexp will
312be removed before sending the message. The default is 318be removed before sending the message.
313@samp{^Return-receipt}.
314 319
315 320
316@node Bouncing 321@node Bouncing
diff --git a/nt/INSTALL b/nt/INSTALL
index 646054e07f4..09de93bca01 100644
--- a/nt/INSTALL
+++ b/nt/INSTALL
@@ -16,6 +16,9 @@
16 fixing first. The easiest way to do this and avoid future conflicts 16 fixing first. The easiest way to do this and avoid future conflicts
17 is to run the following command in this (emacs/nt) directory: 17 is to run the following command in this (emacs/nt) directory:
18 cvs update -kb 18 cvs update -kb
19 In addition to this file, you should also read INSTALL.CVS in the
20 parent directory, and make sure that you have a version of "touch.exe"
21 in your path, and that it will create files that do not yet exist.
19 22
20 To compile Emacs, you will need either Microsoft Visual C++ 2.0 or 23 To compile Emacs, you will need either Microsoft Visual C++ 2.0 or
21 later and nmake, or a Windows port of GCC 2.95 or later with Mingw 24 later and nmake, or a Windows port of GCC 2.95 or later with Mingw
@@ -31,10 +34,14 @@
31 like this, we recommend the use of the supported compilers mentioned 34 like this, we recommend the use of the supported compilers mentioned
32 in the previous paragraph. 35 in the previous paragraph.
33 36
37 You will also need a copy of the Posix cp, rm and mv programs. These
38 and other useful Posix utilities can be obtained from the Mingw or
39 Cygwin projects.
40
34 If you build Emacs on Windows 9X or ME, not on Windows 2K/XP or 41 If you build Emacs on Windows 9X or ME, not on Windows 2K/XP or
35 Windows NT, we suggest to install the Cygwin port of Bash. 42 Windows NT, we suggest to install the Cygwin port of Bash.
36 43
37 Please see http://www.mingw.org for pointers to GCC/Mingw binaries. 44 Please see http://www.mingw.org for pointers to GCC/Mingw and binaries.
38 45
39 For reference, here is a list of which builds of GNU make are known 46 For reference, here is a list of which builds of GNU make are known
40 to work or not, and whether they work in the presence and/or absence 47 to work or not, and whether they work in the presence and/or absence
diff --git a/src/ChangeLog b/src/ChangeLog
index 9fedb52f42c..7b22f043009 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,7 +1,58 @@
12004-10-18 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
2
3 * gtkutil.c (xg_update_scrollbar_pos): Change XClearWindow to
4 gdk_window_clear and move gdk_window_process_all_updates after
5 clear so events are sent to the X server in correct order.
6
72004-10-18 Kenichi Handa <handa@m17n.org>
8
9 * fontset.c (fs_load_font): Use fast_string_match_ignore_case for
10 comparing font names.
11 (fs_query_fontset): Use fast_string_match for comparing fontset
12 names.
13 (list_fontsets): Likewise.
14
15 * search.c (fast_string_match_ignore_case): New function.
16
17 * lisp.h (fast_string_match_ignore_case): Extern it.
18
192004-10-17 Kim F. Storm <storm@cua.dk>
20
21 * xdisp.c (overlay_arrow_at_row): Return overlay string rather
22 than bitmap if there is not left fringe.
23 (get_overlay_arrow_glyph_row): Also used on windows system.
24 (display_line): Display overlay string if no left fringe.
25
262004-10-16 Jason Rumney <jasonr@gnu.org>
27
28 * w32fns.c (w32_font_match): Encode font name being matched.
29
302004-10-16 Richard M. Stallman <rms@gnu.org>
31
32 * window.c (Fspecial_display_p): Doc fix.
33
342004-10-15 Stefan <monnier@iro.umontreal.ca>
35
36 * doc.c (Fsubstitute_command_keys): Fix remap-handling.
37 Don't ignore menus, because where-is-internal already does it for us.
38
392004-10-15 Kim F. Storm <storm@cua.dk>
40
41 * xdisp.c (redisplay_window): Only update fringes and vertical
42 border on window frames.
43
442004-10-14 Andreas Schwab <schwab@suse.de>
45
46 * m/ia64.h (DATA_SEG_BITS): Don't define.
47
12004-10-14 Kim F. Storm <storm@cua.dk> 482004-10-14 Kim F. Storm <storm@cua.dk>
2 49
3 * xterm.h: Include Xutil.h after keysym.h to work around bug 50 * xterm.h: Include Xutil.h after keysym.h to work around bug
4 (incorrectly recognising AltGr key) in some X versions. 51 in some X versions.
52
532004-10-13 Stefan Monnier <monnier@iro.umontreal.ca>
54
55 * fns.c (map_char_table): Add missing gcpros.
5 56
62004-10-13 Stefan Monnier <monnier@iro.umontreal.ca> 572004-10-13 Stefan Monnier <monnier@iro.umontreal.ca>
7 58
diff --git a/src/doc.c b/src/doc.c
index e6914d24038..82df9134f61 100644
--- a/src/doc.c
+++ b/src/doc.c
@@ -774,28 +774,18 @@ thus, \\=\\=\\=\\= puts \\=\\= into the output, and \\=\\=\\=\\[ puts \\=\\[ int
774 774
775 /* Save STRP in IDX. */ 775 /* Save STRP in IDX. */
776 idx = strp - SDATA (string); 776 idx = strp - SDATA (string);
777 tem = Fintern (make_string (start, length_byte), Qnil); 777 name = Fintern (make_string (start, length_byte), Qnil);
778 778
779 /* Ignore remappings unless there are no ordinary bindings. */ 779 /* Ignore remappings unless there are no ordinary bindings. */
780 tem = Fwhere_is_internal (tem, keymap, Qt, Qnil, Qt); 780 tem = Fwhere_is_internal (name, keymap, Qt, Qnil, Qt);
781 if (NILP (tem)) 781 if (NILP (tem))
782 tem = Fwhere_is_internal (tem, keymap, Qt, Qnil, Qnil); 782 tem = Fwhere_is_internal (name, keymap, Qt, Qnil, Qnil);
783 783
784 /* Note the Fwhere_is_internal can GC, so we have to take 784 /* Note the Fwhere_is_internal can GC, so we have to take
785 relocation of string contents into account. */ 785 relocation of string contents into account. */
786 strp = SDATA (string) + idx; 786 strp = SDATA (string) + idx;
787 start = SDATA (string) + start_idx; 787 start = SDATA (string) + start_idx;
788 788
789 /* Disregard menu bar bindings; it is positively annoying to
790 mention them when there's no menu bar, and it isn't terribly
791 useful even when there is a menu bar. */
792 if (!NILP (tem))
793 {
794 firstkey = Faref (tem, make_number (0));
795 if (EQ (firstkey, Qmenu_bar))
796 tem = Qnil;
797 }
798
799 if (NILP (tem)) /* but not on any keys */ 789 if (NILP (tem)) /* but not on any keys */
800 { 790 {
801 int offset = bufp - buf; 791 int offset = bufp - buf;
diff --git a/src/fontset.c b/src/fontset.c
index e99cc0ff6a3..7fbaee3c216 100644
--- a/src/fontset.c
+++ b/src/fontset.c
@@ -655,7 +655,7 @@ fs_load_font (f, c, fontname, id, face)
655 struct face *face; 655 struct face *face;
656{ 656{
657 Lisp_Object fontset; 657 Lisp_Object fontset;
658 Lisp_Object list, elt; 658 Lisp_Object list, elt, fullname;
659 int size = 0; 659 int size = 0;
660 struct font_info *fontp; 660 struct font_info *fontp;
661 int charset = CHAR_CHARSET (c); 661 int charset = CHAR_CHARSET (c);
@@ -701,10 +701,11 @@ fs_load_font (f, c, fontname, id, face)
701 font_info structure that are not set by (*load_font_func). */ 701 font_info structure that are not set by (*load_font_func). */
702 fontp->charset = charset; 702 fontp->charset = charset;
703 703
704 fullname = build_string (fontp->full_name);
704 fontp->vertical_centering 705 fontp->vertical_centering
705 = (STRINGP (Vvertical_centering_font_regexp) 706 = (STRINGP (Vvertical_centering_font_regexp)
706 && (fast_c_string_match_ignore_case 707 && (fast_string_match_ignore_case
707 (Vvertical_centering_font_regexp, fontp->full_name) >= 0)); 708 (Vvertical_centering_font_regexp, fullname) >= 0));
708 709
709 if (fontp->encoding[1] != FONT_ENCODING_NOT_DECIDED) 710 if (fontp->encoding[1] != FONT_ENCODING_NOT_DECIDED)
710 { 711 {
@@ -721,7 +722,6 @@ fs_load_font (f, c, fontname, id, face)
721 /* The font itself doesn't have information about encoding. */ 722 /* The font itself doesn't have information about encoding. */
722 int i; 723 int i;
723 724
724 fontname = fontp->full_name;
725 /* By default, encoding of ASCII chars is 0 (i.e. 0x00..0x7F), 725 /* By default, encoding of ASCII chars is 0 (i.e. 0x00..0x7F),
726 others is 1 (i.e. 0x80..0xFF). */ 726 others is 1 (i.e. 0x80..0xFF). */
727 fontp->encoding[0] = 0; 727 fontp->encoding[0] = 0;
@@ -733,8 +733,7 @@ fs_load_font (f, c, fontname, id, face)
733 elt = XCAR (list); 733 elt = XCAR (list);
734 if (CONSP (elt) 734 if (CONSP (elt)
735 && STRINGP (XCAR (elt)) && CONSP (XCDR (elt)) 735 && STRINGP (XCAR (elt)) && CONSP (XCDR (elt))
736 && (fast_c_string_match_ignore_case (XCAR (elt), fontname) 736 && (fast_string_match_ignore_case (XCAR (elt), fullname) >= 0))
737 >= 0))
738 { 737 {
739 Lisp_Object tmp; 738 Lisp_Object tmp;
740 739
@@ -848,18 +847,17 @@ fs_query_fontset (name, regexpp)
848 847
849 for (i = 0; i < ASIZE (Vfontset_table); i++) 848 for (i = 0; i < ASIZE (Vfontset_table); i++)
850 { 849 {
851 Lisp_Object fontset; 850 Lisp_Object fontset, this_name;
852 const unsigned char *this_name;
853 851
854 fontset = FONTSET_FROM_ID (i); 852 fontset = FONTSET_FROM_ID (i);
855 if (NILP (fontset) 853 if (NILP (fontset)
856 || !BASE_FONTSET_P (fontset)) 854 || !BASE_FONTSET_P (fontset))
857 continue; 855 continue;
858 856
859 this_name = SDATA (FONTSET_NAME (fontset)); 857 this_name = FONTSET_NAME (fontset);
860 if (regexpp 858 if (regexpp
861 ? fast_c_string_match_ignore_case (name, this_name) >= 0 859 ? fast_string_match (name, this_name) >= 0
862 : !strcmp (SDATA (name), this_name)) 860 : !strcmp (SDATA (name), SDATA (this_name)))
863 return i; 861 return i;
864 } 862 }
865 return -1; 863 return -1;
@@ -913,19 +911,18 @@ list_fontsets (f, pattern, size)
913 911
914 for (id = 0; id < ASIZE (Vfontset_table); id++) 912 for (id = 0; id < ASIZE (Vfontset_table); id++)
915 { 913 {
916 Lisp_Object fontset; 914 Lisp_Object fontset, name;
917 const unsigned char *name;
918 915
919 fontset = FONTSET_FROM_ID (id); 916 fontset = FONTSET_FROM_ID (id);
920 if (NILP (fontset) 917 if (NILP (fontset)
921 || !BASE_FONTSET_P (fontset) 918 || !BASE_FONTSET_P (fontset)
922 || !EQ (frame, FONTSET_FRAME (fontset))) 919 || !EQ (frame, FONTSET_FRAME (fontset)))
923 continue; 920 continue;
924 name = SDATA (FONTSET_NAME (fontset)); 921 name = FONTSET_NAME (fontset);
925 922
926 if (!NILP (regexp) 923 if (!NILP (regexp)
927 ? (fast_c_string_match_ignore_case (regexp, name) < 0) 924 ? (fast_string_match (regexp, name) < 0)
928 : strcmp (SDATA (pattern), name)) 925 : strcmp (SDATA (pattern), SDATA (name)))
929 continue; 926 continue;
930 927
931 if (size) 928 if (size)
diff --git a/src/gtkutil.c b/src/gtkutil.c
index fabdae74dc6..4d166a4d01e 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -2888,9 +2888,6 @@ xg_update_scrollbar_pos (f, scrollbar_id, top, left, width, height,
2888 gtk_fixed_move (GTK_FIXED (wfixed), wscroll, left, top); 2888 gtk_fixed_move (GTK_FIXED (wfixed), wscroll, left, top);
2889 gtk_widget_set_size_request (wscroll, width, height); 2889 gtk_widget_set_size_request (wscroll, width, height);
2890 2890
2891 /* Must force out update so changed scroll bars gets redrawn. */
2892 gdk_window_process_all_updates ();
2893
2894 /* Scroll bars in GTK has a fixed width, so if we say width 16, it 2891 /* Scroll bars in GTK has a fixed width, so if we say width 16, it
2895 will only be its fixed width (14 is default) anyway, the rest is 2892 will only be its fixed width (14 is default) anyway, the rest is
2896 blank. We are drawing the mode line across scroll bars when 2893 blank. We are drawing the mode line across scroll bars when
@@ -2917,9 +2914,11 @@ xg_update_scrollbar_pos (f, scrollbar_id, top, left, width, height,
2917 scroll bar so that there is some space (typically 1 pixel) between 2914 scroll bar so that there is some space (typically 1 pixel) between
2918 the scroll bar and the edge of the window and between the scroll 2915 the scroll bar and the edge of the window and between the scroll
2919 bar and the fringe. */ 2916 bar and the fringe. */
2917 gdk_window_clear (wscroll->window);
2920 2918
2921 XClearWindow (FRAME_X_DISPLAY (f), GTK_WIDGET_TO_X_WIN (wscroll)); 2919 /* Must force out update so changed scroll bars gets redrawn. */
2922 2920 gdk_window_process_all_updates ();
2921
2923 SET_FRAME_GARBAGED (f); 2922 SET_FRAME_GARBAGED (f);
2924 cancel_mouse_face (f); 2923 cancel_mouse_face (f);
2925 } 2924 }
diff --git a/src/lisp.h b/src/lisp.h
index 133c5c07c56..ce0fdf96e43 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -2792,6 +2792,7 @@ EXFUN (Fmatch_end, 1);
2792EXFUN (Flooking_at, 1); 2792EXFUN (Flooking_at, 1);
2793extern int fast_string_match P_ ((Lisp_Object, Lisp_Object)); 2793extern int fast_string_match P_ ((Lisp_Object, Lisp_Object));
2794extern int fast_c_string_match_ignore_case P_ ((Lisp_Object, const char *)); 2794extern int fast_c_string_match_ignore_case P_ ((Lisp_Object, const char *));
2795extern int fast_string_match_ignore_case P_ ((Lisp_Object, Lisp_Object));
2795extern int scan_buffer P_ ((int, int, int, int, int *, int)); 2796extern int scan_buffer P_ ((int, int, int, int, int *, int));
2796extern int scan_newline P_ ((int, int, int, int, int, int)); 2797extern int scan_newline P_ ((int, int, int, int, int, int));
2797extern int find_next_newline P_ ((int, int)); 2798extern int find_next_newline P_ ((int, int));
diff --git a/src/m/ia64.h b/src/m/ia64.h
index 7114382d513..947bb9d4562 100644
--- a/src/m/ia64.h
+++ b/src/m/ia64.h
@@ -133,8 +133,6 @@ extern void r_alloc_free ();
133 133
134#endif /* not NOT_C_CODE */ 134#endif /* not NOT_C_CODE */
135 135
136#define DATA_SEG_BITS 0x6000000000000000
137
138#define HAVE_TEXT_START 136#define HAVE_TEXT_START
139 137
140/* arch-tag: 9b8e9fb2-2e49-4c22-b68f-11a488e77c66 138/* arch-tag: 9b8e9fb2-2e49-4c22-b68f-11a488e77c66
diff --git a/src/search.c b/src/search.c
index 0375f353dd2..f7bee1b8683 100644
--- a/src/search.c
+++ b/src/search.c
@@ -493,6 +493,27 @@ fast_c_string_match_ignore_case (regexp, string)
493 immediate_quit = 0; 493 immediate_quit = 0;
494 return val; 494 return val;
495} 495}
496
497/* Like fast_string_match but ignore case. */
498
499int
500fast_string_match_ignore_case (regexp, string)
501 Lisp_Object regexp, string;
502{
503 int val;
504 struct re_pattern_buffer *bufp;
505
506 bufp = compile_pattern (regexp, 0, Vascii_downcase_table,
507 0, STRING_MULTIBYTE (string));
508 immediate_quit = 1;
509 re_match_object = string;
510
511 val = re_search (bufp, (char *) SDATA (string),
512 SBYTES (string), 0,
513 SBYTES (string), 0);
514 immediate_quit = 0;
515 return val;
516}
496 517
497/* The newline cache: remembering which sections of text have no newlines. */ 518/* The newline cache: remembering which sections of text have no newlines. */
498 519
diff --git a/src/w32fns.c b/src/w32fns.c
index 5cfc4adb0af..1e52155ab3b 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -5370,7 +5370,7 @@ x_to_w32_font (lpxstr, lplogfont)
5370 setup_coding_system 5370 setup_coding_system
5371 (Fcheck_coding_system (Vlocale_coding_system), &coding); 5371 (Fcheck_coding_system (Vlocale_coding_system), &coding);
5372 coding.src_multibyte = 1; 5372 coding.src_multibyte = 1;
5373 coding.dst_multibyte = 1; 5373 coding.dst_multibyte = 0;
5374 /* Need to set COMPOSITION_DISABLED, otherwise Emacs crashes in 5374 /* Need to set COMPOSITION_DISABLED, otherwise Emacs crashes in
5375 encode_coding_iso2022 trying to dereference a null pointer. */ 5375 encode_coding_iso2022 trying to dereference a null pointer. */
5376 coding.composing = COMPOSITION_DISABLED; 5376 coding.composing = COMPOSITION_DISABLED;
@@ -5607,12 +5607,14 @@ w32_font_match (fontname, pattern)
5607 char * fontname; 5607 char * fontname;
5608 char * pattern; 5608 char * pattern;
5609{ 5609{
5610 char *regex = alloca (strlen (pattern) * 2 + 3); 5610 char *font_name_copy;
5611 char *font_name_copy = alloca (strlen (fontname) + 1);
5612 char *ptr; 5611 char *ptr;
5612 Lisp_Object encoded_font_name;
5613 char *regex = alloca (strlen (pattern) * 2 + 3);
5613 5614
5614 /* Copy fontname so we can modify it during comparison. */ 5615 /* Convert fontname to unibyte for match. */
5615 strcpy (font_name_copy, fontname); 5616 encoded_font_name = string_make_unibyte (build_string (fontname));
5617 font_name_copy = SDATA (encoded_font_name);
5616 5618
5617 ptr = regex; 5619 ptr = regex;
5618 *ptr++ = '^'; 5620 *ptr++ = '^';
diff --git a/src/w32term.c b/src/w32term.c
index 3d50e93b761..9238b7959d5 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -1209,7 +1209,6 @@ w32_text_out (s, x, y,chars,nchars)
1209} 1209}
1210 1210
1211 1211
1212
1213static void x_set_glyph_string_clipping P_ ((struct glyph_string *)); 1212static void x_set_glyph_string_clipping P_ ((struct glyph_string *));
1214static void x_set_glyph_string_gc P_ ((struct glyph_string *)); 1213static void x_set_glyph_string_gc P_ ((struct glyph_string *));
1215static void x_draw_glyph_string_background P_ ((struct glyph_string *, 1214static void x_draw_glyph_string_background P_ ((struct glyph_string *,
@@ -2061,7 +2060,6 @@ x_draw_image_foreground (s)
2061} 2060}
2062 2061
2063 2062
2064
2065/* Draw a relief around the image glyph string S. */ 2063/* Draw a relief around the image glyph string S. */
2066 2064
2067static void 2065static void
@@ -2812,14 +2810,6 @@ x_new_focus_frame (dpyinfo, frame)
2812 if (old_focus && old_focus->auto_lower) 2810 if (old_focus && old_focus->auto_lower)
2813 x_lower_frame (old_focus); 2811 x_lower_frame (old_focus);
2814 2812
2815
2816
2817
2818
2819
2820
2821
2822
2823 if (dpyinfo->w32_focus_frame && dpyinfo->w32_focus_frame->auto_raise) 2813 if (dpyinfo->w32_focus_frame && dpyinfo->w32_focus_frame->auto_raise)
2824 pending_autoraise_frame = dpyinfo->w32_focus_frame; 2814 pending_autoraise_frame = dpyinfo->w32_focus_frame;
2825 else 2815 else
@@ -4688,7 +4678,6 @@ w32_read_socket (sd, expected, hold_quit)
4688 if (f) 4678 if (f)
4689 x_new_focus_frame (dpyinfo, f); 4679 x_new_focus_frame (dpyinfo, f);
4690 4680
4691
4692 dpyinfo->grabbed = 0; 4681 dpyinfo->grabbed = 0;
4693 check_visibility = 1; 4682 check_visibility = 1;
4694 break; 4683 break;
@@ -4906,7 +4895,6 @@ w32_read_socket (sd, expected, hold_quit)
4906} 4895}
4907 4896
4908 4897
4909
4910 4898
4911/*********************************************************************** 4899/***********************************************************************
4912 Text Cursor 4900 Text Cursor
diff --git a/src/window.c b/src/window.c
index 22ca145b206..6b244ca5353 100644
--- a/src/window.c
+++ b/src/window.c
@@ -3216,10 +3216,13 @@ display_buffer_1 (window)
3216} 3216}
3217 3217
3218DEFUN ("special-display-p", Fspecial_display_p, Sspecial_display_p, 1, 1, 0, 3218DEFUN ("special-display-p", Fspecial_display_p, Sspecial_display_p, 1, 1, 0,
3219 doc: /* Returns non-nil if a buffer named BUFFER-NAME would be created specially. 3219 doc: /* Returns non-nil if a buffer named BUFFER-NAME gets a special frame.
3220The value is actually t if the frame should be called with default frame 3220If the value is t, a frame would be created for that buffer
3221parameters, and a list of frame parameters if they were specified. 3221using the default frame parameters. If the value is a list,
3222See `special-display-buffer-names', and `special-display-regexps'. */) 3222it is a list of frame parameters that would be used
3223to make a frame for that buffer.
3224The variables `special-display-buffer-names'
3225and `special-display-regexps' control this. */)
3223 (buffer_name) 3226 (buffer_name)
3224 Lisp_Object buffer_name; 3227 Lisp_Object buffer_name;
3225{ 3228{
diff --git a/src/xdisp.c b/src/xdisp.c
index 434128ea487..81a535f6b0e 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -9521,11 +9521,13 @@ update_overlay_arrows (up_to_date)
9521} 9521}
9522 9522
9523 9523
9524/* Return overlay arrow string at row, or nil. */ 9524/* Return overlay arrow string to display at row.
9525 Return t if display as bitmap in left fringe.
9526 Return nil if no overlay arrow. */
9525 9527
9526static Lisp_Object 9528static Lisp_Object
9527overlay_arrow_at_row (f, row, pbitmap) 9529overlay_arrow_at_row (it, row, pbitmap)
9528 struct frame *f; 9530 struct it *it;
9529 struct glyph_row *row; 9531 struct glyph_row *row;
9530 int *pbitmap; 9532 int *pbitmap;
9531{ 9533{
@@ -9548,9 +9550,10 @@ overlay_arrow_at_row (f, row, pbitmap)
9548 && (MATRIX_ROW_START_CHARPOS (row) == marker_position (val))) 9550 && (MATRIX_ROW_START_CHARPOS (row) == marker_position (val)))
9549 { 9551 {
9550 val = overlay_arrow_string_or_property (var, pbitmap); 9552 val = overlay_arrow_string_or_property (var, pbitmap);
9551 if (FRAME_WINDOW_P (f)) 9553 if (FRAME_WINDOW_P (it->f)
9554 && WINDOW_LEFT_FRINGE_WIDTH (it->w) > 0)
9552 return Qt; 9555 return Qt;
9553 else if (STRINGP (val)) 9556 if (STRINGP (val))
9554 return val; 9557 return val;
9555 break; 9558 break;
9556 } 9559 }
@@ -14077,8 +14080,8 @@ usage: (trace-to-stderr STRING &rest OBJECTS) */)
14077 Building Desired Matrix Rows 14080 Building Desired Matrix Rows
14078 ***********************************************************************/ 14081 ***********************************************************************/
14079 14082
14080/* Return a temporary glyph row holding the glyphs of an overlay 14083/* Return a temporary glyph row holding the glyphs of an overlay arrow.
14081 arrow. Only used for non-window-redisplay windows. */ 14084 Used for non-window-redisplay windows, and for windows w/o left fringe. */
14082 14085
14083static struct glyph_row * 14086static struct glyph_row *
14084get_overlay_arrow_glyph_row (w, overlay_arrow_string) 14087get_overlay_arrow_glyph_row (w, overlay_arrow_string)
@@ -14957,11 +14960,11 @@ display_line (it)
14957 better to let it be displayed like cursors under X. */ 14960 better to let it be displayed like cursors under X. */
14958 if (! overlay_arrow_seen 14961 if (! overlay_arrow_seen
14959 && (overlay_arrow_string 14962 && (overlay_arrow_string
14960 = overlay_arrow_at_row (it->f, row, &overlay_arrow_bitmap), 14963 = overlay_arrow_at_row (it, row, &overlay_arrow_bitmap),
14961 !NILP (overlay_arrow_string))) 14964 !NILP (overlay_arrow_string)))
14962 { 14965 {
14963 /* Overlay arrow in window redisplay is a fringe bitmap. */ 14966 /* Overlay arrow in window redisplay is a fringe bitmap. */
14964 if (!FRAME_WINDOW_P (it->f)) 14967 if (STRINGP (overlay_arrow_string))
14965 { 14968 {
14966 struct glyph_row *arrow_row 14969 struct glyph_row *arrow_row
14967 = get_overlay_arrow_glyph_row (it->w, overlay_arrow_string); 14970 = get_overlay_arrow_glyph_row (it->w, overlay_arrow_string);
@@ -14986,10 +14989,12 @@ display_line (it)
14986 row->used[TEXT_AREA] = p2 - row->glyphs[TEXT_AREA]; 14989 row->used[TEXT_AREA] = p2 - row->glyphs[TEXT_AREA];
14987 } 14990 }
14988 } 14991 }
14989 14992 else
14993 {
14994 it->w->overlay_arrow_bitmap = overlay_arrow_bitmap;
14995 row->overlay_arrow_p = 1;
14996 }
14990 overlay_arrow_seen = 1; 14997 overlay_arrow_seen = 1;
14991 it->w->overlay_arrow_bitmap = overlay_arrow_bitmap;
14992 row->overlay_arrow_p = 1;
14993 } 14998 }
14994 14999
14995 /* Compute pixel dimensions of this line. */ 15000 /* Compute pixel dimensions of this line. */
diff --git a/src/xterm.h b/src/xterm.h
index 53f0081b215..bb1fe9ddc4c 100644
--- a/src/xterm.h
+++ b/src/xterm.h
@@ -21,8 +21,13 @@ Boston, MA 02111-1307, USA. */
21 21
22#include <X11/Xlib.h> 22#include <X11/Xlib.h>
23#include <X11/cursorfont.h> 23#include <X11/cursorfont.h>
24
25/* Include Xutil.h after keysym.h to work around a bug that prevents
26 correct recognition of AltGr key in some X versions. */
27
24#include <X11/keysym.h> 28#include <X11/keysym.h>
25#include <X11/Xutil.h> 29#include <X11/Xutil.h>
30
26#include <X11/Xatom.h> 31#include <X11/Xatom.h>
27#include <X11/Xresource.h> 32#include <X11/Xresource.h>
28 33