1 ;;; gnus-load.el --- various Gnus variables
2 ;; Copyright (C) 1996 Free Software Foundation, Inc.
4 ;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
7 ;; This file is part of GNU Emacs.
9 ;; GNU Emacs is free software; you can redistribute it and/or modify
10 ;; it under the terms of the GNU General Public License as published by
11 ;; the Free Software Foundation; either version 2, or (at your option)
14 ;; GNU Emacs is distributed in the hope that it will be useful,
15 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
16 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 ;; GNU General Public License for more details.
19 ;; You should have received a copy of the GNU General Public License
20 ;; along with GNU Emacs; see the file COPYING. If not, write to the
21 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
22 ;; Boston, MA 02111-1307, USA.
31 (defvar gnus-directory (or (getenv "SAVEDIR") "~/News/")
32 "*Directory variable from which all other Gnus file variables are derived.")
34 ;; Site dependent variables. These variables should be defined in
37 (defvar gnus-default-nntp-server nil
38 "Specify a default NNTP server.
39 This variable should be defined in paths.el, and should never be set
41 If you want to change servers, you should use `gnus-select-method'.
42 See the documentation to that variable.")
44 ;; Don't touch this variable.
45 (defvar gnus-nntp-service "nntp"
46 "*NNTP service name (\"nntp\" or 119).
47 This is an obsolete variable, which is scarcely used. If you use an
48 nntp server for your newsgroup and want to change the port number
49 used to 899, you would say something along these lines:
51 (setq gnus-select-method '(nntp \"my.nntp.server\" (nntp-port-number 899)))")
53 (defvar gnus-nntpserver-file "/etc/nntpserver"
54 "*A file with only the name of the nntp server in it.")
56 ;; This function is used to check both the environment variable
57 ;; NNTPSERVER and the /etc/nntpserver file to see whether one can find
58 ;; an nntp server name default.
59 (defun gnus-getenv-nntpserver ()
60 (or (getenv "NNTPSERVER")
61 (and (file-readable-p gnus-nntpserver-file)
63 (set-buffer (get-buffer-create " *gnus nntp*"))
64 (buffer-disable-undo (current-buffer))
65 (insert-file-contents gnus-nntpserver-file)
66 (let ((name (buffer-string)))
68 (if (string-match "^[ \t\n]*$" name)
71 (kill-buffer (current-buffer))))))))
73 (defvar gnus-select-method
75 (list 'nntp (or (condition-case ()
76 (gnus-getenv-nntpserver)
78 (if (and gnus-default-nntp-server
79 (not (string= gnus-default-nntp-server "")))
80 gnus-default-nntp-server)
82 (if (or (null gnus-nntp-service)
83 (equal gnus-nntp-service "nntp"))
85 (list gnus-nntp-service)))
86 "*Default method for selecting a newsgroup.
87 This variable should be a list, where the first element is how the
88 news is to be fetched, the second is the address.
90 For instance, if you want to get your news via NNTP from
91 \"flab.flab.edu\", you could say:
93 (setq gnus-select-method '(nntp \"flab.flab.edu\"))
95 If you want to use your local spool, say:
97 (setq gnus-select-method (list 'nnspool (system-name)))
99 If you use this variable, you must set `gnus-nntp-server' to nil.
101 There is a lot more to know about select methods and virtual servers -
102 see the manual for details.")
104 (defvar gnus-message-archive-method
107 (nnfolder-directory ,(nnheader-concat message-directory "archive"))
108 (nnfolder-active-file
109 ,(nnheader-concat message-directory "archive/active"))
110 (nnfolder-get-new-mail nil)
111 (nnfolder-inhibit-expiry t))
112 "*Method used for archiving messages you've sent.
113 This should be a mail method.
115 It's probably not a very effective to change this variable once you've
116 run Gnus once. After doing that, you must edit this server from the
119 (defvar gnus-message-archive-group nil
120 "*Name of the group in which to save the messages you've written.
121 This can either be a string, a list of strings; or an alist
122 of regexps/functions/forms to be evaluated to return a string (or a list
123 of strings). The functions are called with the name of the current
124 group (or nil) as a parameter.
126 If you want to save your mail in one group and the news articles you
127 write in another group, you could say something like:
129 \(setq gnus-message-archive-group
130 '((if (message-news-p)
134 Normally the group names returned by this variable should be
135 unprefixed -- which implictly means \"store on the archive server\".
136 However, you may wish to store the message on some other server. In
137 that case, just return a fully prefixed name of the group --
138 \"nnml+private:mail.misc\", for instance.")
140 (defvar gnus-secondary-servers nil
141 "*List of NNTP servers that the user can choose between interactively.
142 To make Gnus query you for a server, you have to give `gnus' a
143 non-numeric prefix - `C-u M-x gnus', in short.")
145 (defvar gnus-nntp-server nil
146 "*The name of the host running the NNTP server.
147 This variable is semi-obsolete. Use the `gnus-select-method'
150 (defvar gnus-secondary-select-methods nil
151 "*A list of secondary methods that will be used for reading news.
152 This is a list where each element is a complete select method (see
153 `gnus-select-method').
155 If, for instance, you want to read your mail with the nnml backend,
156 you could set this variable:
158 (setq gnus-secondary-select-methods '((nnml \"\")))")
160 (defvar gnus-backup-default-subscribed-newsgroups
161 '("news.announce.newusers" "news.groups.questions" "gnu.emacs.gnus")
162 "Default default new newsgroups the first time Gnus is run.
163 Should be set in paths.el, and shouldn't be touched by the user.")
165 (defvar gnus-local-domain nil
166 "Local domain name without a host name.
167 The DOMAINNAME environment variable is used instead if it is defined.
168 If the `system-name' function returns the full Internet name, there is
169 no need to set this variable.")
171 (defvar gnus-local-organization nil
172 "String with a description of what organization (if any) the user belongs to.
173 The ORGANIZATION environment variable is used instead if it is defined.
174 If this variable contains a function, this function will be called
175 with the current newsgroup name as the argument. The function should
178 In any case, if the string (either in the variable, in the environment
179 variable, or returned by the function) is a file name, the contents of
180 this file will be used as the organization.")
182 ;; Customization variables
184 (defvar gnus-refer-article-method nil
185 "*Preferred method for fetching an article by Message-ID.
186 If you are reading news from the local spool (with nnspool), fetching
187 articles by Message-ID is painfully slow. By setting this method to an
188 nntp method, you might get acceptable results.
190 The value of this variable must be a valid select method as discussed
191 in the documentation of `gnus-select-method'.")
193 (defvar gnus-group-faq-directory
194 '("/ftp@mirrors.aol.com:/pub/rtfm/usenet/"
195 "/ftp@sunsite.auc.dk:/pub/usenet/"
196 "/ftp@sunsite.doc.ic.ac.uk:/pub/usenet/news-faqs/"
197 "/ftp@src.doc.ic.ac.uk:/usenet/news-FAQS/"
198 "/ftp@ftp.seas.gwu.edu:/pub/rtfm/"
199 "/ftp@rtfm.mit.edu:/pub/usenet/"
200 "/ftp@ftp.uni-paderborn.de:/pub/FAQ/"
201 "/ftp@ftp.sunet.se:/pub/usenet/"
202 "/ftp@nctuccca.edu.tw:/USENET/FAQ/"
203 "/ftp@hwarang.postech.ac.kr:/pub/usenet/"
204 "/ftp@ftp.hk.super.net:/mirror/faqs/")
205 "*Directory where the group FAQs are stored.
206 This will most commonly be on a remote machine, and the file will be
209 This variable can also be a list of directories. In that case, the
210 first element in the list will be used by default. The others can
211 be used when being prompted for a site.
213 Note that Gnus uses an aol machine as the default directory. If this
214 feels fundamentally unclean, just think of it as a way to finally get
215 something of value back from them.
217 If the default site is too slow, try one of these:
219 North America: mirrors.aol.com /pub/rtfm/usenet
220 ftp.seas.gwu.edu /pub/rtfm
221 rtfm.mit.edu /pub/usenet
222 Europe: ftp.uni-paderborn.de /pub/FAQ
223 src.doc.ic.ac.uk /usenet/news-FAQS
224 ftp.sunet.se /pub/usenet
225 sunsite.auc.dk /pub/usenet
226 Asia: nctuccca.edu.tw /USENET/FAQ
227 hwarang.postech.ac.kr /pub/usenet
228 ftp.hk.super.net /mirror/faqs")
230 (defvar gnus-use-cross-reference t
231 "*Non-nil means that cross referenced articles will be marked as read.
232 If nil, ignore cross references. If t, mark articles as read in
233 subscribed newsgroups. If neither t nor nil, mark as read in all
236 (defvar gnus-process-mark ?#
239 (defvar gnus-asynchronous nil
240 "*If non-nil, Gnus will supply backends with data needed for async article fetching.")
242 (defvar gnus-large-newsgroup 200
243 "*The number of articles which indicates a large newsgroup.
244 If the number of articles in a newsgroup is greater than this value,
245 confirmation is required for selecting the newsgroup.")
247 (defvar gnus-use-long-file-name (not (memq system-type '(usg-unix-v xenix)))
248 "*Non-nil means that the default name of a file to save articles in is the group name.
249 If it's nil, the directory form of the group name is used instead.
251 If this variable is a list, and the list contains the element
252 `not-score', long file names will not be used for score files; if it
253 contains the element `not-save', long file names will not be used for
254 saving; and if it contains the element `not-kill', long file names
255 will not be used for kill files.
257 Note that the default for this variable varies according to what system
258 type you're using. On `usg-unix-v' and `xenix' this variable defaults
259 to nil while on all other systems it defaults to t.")
261 (defvar gnus-kill-files-directory gnus-directory
262 "*Name of the directory where kill files will be stored (default \"~/News\").")
264 (defvar gnus-save-score nil
265 "*If non-nil, save group scoring info.")
267 (defvar gnus-use-undo t
268 "*If non-nil, allow undoing in Gnus group mode buffers.")
270 (defvar gnus-use-adaptive-scoring nil
271 "*If non-nil, use some adaptive scoring scheme.
272 If a list, then the values `word' and `line' are meaningful. The
273 former will perform adaption on individual words in the subject
274 header while `line' will perform adaption on several headers.")
276 (defvar gnus-use-cache 'passive
277 "*If nil, Gnus will ignore the article cache.
278 If `passive', it will allow entering (and reading) articles
279 explicitly entered into the cache. If anything else, use the
280 cache to the full extent of the law.")
282 (defvar gnus-use-trees nil
283 "*If non-nil, display a thread tree buffer.")
285 (defvar gnus-use-grouplens nil
286 "*If non-nil, use GroupLens ratings.")
288 (defvar gnus-keep-backlog nil
289 "*If non-nil, Gnus will keep read articles for later re-retrieval.
290 If it is a number N, then Gnus will only keep the last N articles
291 read. If it is neither nil nor a number, Gnus will keep all read
292 articles. This is not a good idea.")
294 (defvar gnus-use-nocem nil
295 "*If non-nil, Gnus will read NoCeM cancel messages.")
297 (defvar gnus-suppress-duplicates nil
298 "*If non-nil, Gnus will mark duplicate copies of the same article as read.")
300 (defvar gnus-use-demon nil
301 "If non-nil, Gnus might use some demons.")
303 (defvar gnus-use-scoring t
304 "*If non-nil, enable scoring.")
306 (defvar gnus-use-picons nil
307 "*If non-nil, display picons.")
309 (defvar gnus-summary-prepare-exit-hook nil
310 "*A hook called when preparing to exit from the summary buffer.
311 It calls `gnus-summary-expire-articles' by default.")
312 (add-hook 'gnus-summary-prepare-exit-hook 'gnus-summary-expire-articles)
314 (defvar gnus-novice-user t
315 "*Non-nil means that you are a usenet novice.
316 If non-nil, verbose messages may be displayed and confirmations may be
319 (defvar gnus-expert-user nil
320 "*Non-nil means that you will never be asked for confirmation about anything.
321 And that means *anything*.")
323 (defvar gnus-interactive-catchup t
324 "*If non-nil, require your confirmation when catching up a group.")
326 (defvar gnus-interactive-exit t
327 "*If non-nil, require your confirmation when exiting Gnus.")
329 (defvar gnus-extract-address-components 'gnus-extract-address-components
330 "*Function for extracting address components from a From header.
331 Two pre-defined function exist: `gnus-extract-address-components',
332 which is the default, quite fast, and too simplistic solution, and
333 `mail-extract-address-components', which works much better, but is
336 (defvar gnus-carpal nil
337 "*If non-nil, display clickable icons.")
339 (defvar gnus-shell-command-separator ";"
340 "String used to separate to shell commands.")
342 (defvar gnus-valid-select-methods
343 '(("nntp" post address prompt-address)
344 ("nnspool" post address)
345 ("nnvirtual" post-mail virtual prompt-address)
346 ("nnmbox" mail respool address)
347 ("nnml" mail respool address)
348 ("nnmh" mail respool address)
349 ("nndir" post-mail prompt-address address)
350 ("nneething" none address prompt-address)
351 ("nndoc" none address prompt-address)
352 ("nnbabyl" mail address respool)
353 ("nnkiboze" post virtual)
354 ("nnsoup" post-mail address)
355 ("nndraft" post-mail)
356 ("nnfolder" mail respool address))
357 "An alist of valid select methods.
358 The first element of each list lists should be a string with the name
359 of the select method. The other elements may be the category of
360 this method (ie. `post', `mail', `none' or whatever) or other
361 properties that this method has (like being respoolable).
362 If you implement a new select method, all you should have to change is
363 this variable. I think.")
365 (defvar gnus-updated-mode-lines '(group article summary tree)
366 "*List of buffers that should update their mode lines.
367 The list may contain the symbols `group', `article' and `summary'. If
368 the corresponding symbol is present, Gnus will keep that mode line
369 updated with information that may be pertinent.
370 If this variable is nil, screen refresh may be quicker.")
372 ;; Added by Keinonen Kari <kk85613@cs.tut.fi>.
373 (defvar gnus-mode-non-string-length nil
374 "*Max length of mode-line non-string contents.
375 If this is nil, Gnus will take space as is needed, leaving the rest
376 of the modeline intact.")
378 (defvar gnus-auto-expirable-newsgroups nil
379 "*Groups in which to automatically mark read articles as expirable.
380 If non-nil, this should be a regexp that should match all groups in
381 which to perform auto-expiry. This only makes sense for mail groups.")
383 (defvar gnus-total-expirable-newsgroups nil
384 "*Groups in which to perform expiry of all read articles.
385 Use with extreme caution. All groups that match this regexp will be
386 expiring - which means that all read articles will be deleted after
387 (say) one week. (This only goes for mail groups and the like, of
390 (defvar gnus-group-uncollapsed-levels 1
391 "Number of group name elements to leave alone when making a short group name.")
393 (defvar gnus-group-use-permanent-levels nil
394 "*If non-nil, once you set a level, Gnus will use this level.")
398 (defvar gnus-load-hook nil
399 "*A hook run while Gnus is loaded.")
401 (defvar gnus-apply-kill-hook '(gnus-apply-kill-file)
402 "*A hook called to apply kill files to a group.
403 This hook is intended to apply a kill file to the selected newsgroup.
404 The function `gnus-apply-kill-file' is called by default.
406 Since a general kill file is too heavy to use only for a few
407 newsgroups, I recommend you to use a lighter hook function. For
408 example, if you'd like to apply a kill file to articles which contains
409 a string `rmgroup' in subject in newsgroup `control', you can use the
412 (setq gnus-apply-kill-hook
415 (cond ((string-match \"control\" gnus-newsgroup-name)
416 (gnus-kill \"Subject\" \"rmgroup\")
417 (gnus-expunge \"X\"))))))")
419 (defvar gnus-group-change-level-function nil
420 "Function run when a group level is changed.
421 It is called with three parameters -- GROUP, LEVEL and OLDLEVEL.")
424 ;;; Internal variables
426 (defvar gnus-original-article-buffer " *Original Article*")
427 (defvar gnus-newsgroup-name nil)
429 (defvar gnus-current-select-method nil
430 "The current method for selecting a newsgroup.")
432 (defvar gnus-tree-buffer "*Tree*"
433 "Buffer where Gnus thread trees are displayed.")
436 (defvar gnus-use-generic-from nil)
438 ;; Variable holding the user answers to all method prompts.
439 (defvar gnus-method-history nil)
441 ;; Variable holding the user answers to all group prompts.
442 (defvar gnus-group-history nil)
444 (defvar gnus-server-alist nil
445 "List of available servers.")
447 (defvar gnus-topic-indentation "") ;; Obsolete variable.
449 (defconst gnus-article-mark-lists
450 '((marked . tick) (replied . reply)
451 (expirable . expire) (killed . killed)
452 (bookmarks . bookmark) (dormant . dormant)
453 (scored . score) (saved . save)
456 (defvar gnus-headers-retrieved-by nil)
457 (defvar gnus-article-reply nil)
458 (defvar gnus-override-method nil)
459 (defvar gnus-article-check-size nil)
460 (defvar gnus-opened-servers nil)
462 (defvar gnus-current-kill-article nil)
464 (defvar gnus-have-read-active-file nil)
466 (defconst gnus-maintainer
467 "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)"
468 "The mail address of the Gnus maintainers.")
470 (defvar gnus-info-nodes
471 '((gnus-group-mode "(gnus)The Group Buffer")
472 (gnus-summary-mode "(gnus)The Summary Buffer")
473 (gnus-article-mode "(gnus)The Article Buffer")
474 (gnus-server-mode "(gnus)The Server Buffer")
475 (gnus-browse-mode "(gnus)Browse Foreign Server")
476 (gnus-tree-mode "(gnus)Tree Display"))
477 "Alist of major modes and related Info nodes.")
479 (defvar gnus-group-buffer "*Group*")
480 (defvar gnus-summary-buffer "*Summary*")
481 (defvar gnus-article-buffer "*Article*")
482 (defvar gnus-server-buffer "*Server*")
484 (defvar gnus-buffer-list nil
485 "Gnus buffers that should be killed on exit.")
487 (defvar gnus-slave nil
488 "Whether this Gnus is a slave or not.")
490 (defvar gnus-variable-list
491 '(gnus-newsrc-options gnus-newsrc-options-n
492 gnus-newsrc-last-checked-date
493 gnus-newsrc-alist gnus-server-alist
494 gnus-killed-list gnus-zombie-list
495 gnus-topic-topology gnus-topic-alist
497 "Gnus variables saved in the quick startup file.")
499 (defvar gnus-newsrc-alist nil
500 "Assoc list of read articles.
501 gnus-newsrc-hashtb should be kept so that both hold the same information.")
503 (defvar gnus-newsrc-hashtb nil
504 "Hashtable of gnus-newsrc-alist.")
506 (defvar gnus-killed-list nil
507 "List of killed newsgroups.")
509 (defvar gnus-killed-hashtb nil
510 "Hash table equivalent of gnus-killed-list.")
512 (defvar gnus-zombie-list nil
513 "List of almost dead newsgroups.")
515 (defvar gnus-description-hashtb nil
516 "Descriptions of newsgroups.")
518 (defvar gnus-list-of-killed-groups nil
519 "List of newsgroups that have recently been killed by the user.")
521 (defvar gnus-active-hashtb nil
522 "Hashtable of active articles.")
524 (defvar gnus-moderated-list nil
525 "List of moderated newsgroups.")
527 ;; Save window configuration.
528 (defvar gnus-prev-winconf nil)
530 (defvar gnus-reffed-article-number nil)
532 ;;; Let the byte-compiler know that we know about this variable.
533 (defvar rmail-default-rmail-file)
535 (defvar gnus-dead-summary nil)
537 ;;; End of variables.
539 ;; Define some autoload functions Gnus might use.
542 ;; This little mapcar goes through the list below and marks the
543 ;; symbols in question as autoloaded functions.
546 (let ((interactive (nth 1 (memq ':interactive package))))
550 (when (consp function)
551 (setq keymap (car (memq 'keymap function)))
552 (setq function (car function)))
553 (autoload function (car package) nil interactive keymap)))
554 (if (eq (nth 1 package) ':interactive)
557 '(("metamail" metamail-buffer)
558 ("info" Info-goto-node)
559 ("hexl" hexl-hex-string-to-integer)
560 ("pp" pp pp-to-string pp-eval-expression)
561 ("mail-extr" mail-extract-address-components)
562 ("nnmail" nnmail-split-fancy nnmail-article-group)
563 ("nnvirtual" nnvirtual-catchup-group nnvirtual-convert-headers)
564 ("timezone" timezone-make-date-arpa-standard timezone-fix-time
565 timezone-make-sortable-date timezone-make-time-string)
566 ("rmailout" rmail-output)
567 ("rmail" rmail-insert-rmail-file-header rmail-count-new-messages
569 ("gnus-soup" :interactive t
570 gnus-group-brew-soup gnus-brew-soup gnus-soup-add-article
571 gnus-soup-send-replies gnus-soup-save-areas gnus-soup-pack-packet)
572 ("nnsoup" nnsoup-pack-replies)
573 ("score-mode" :interactive t gnus-score-mode)
574 ("gnus-mh" gnus-mh-mail-setup gnus-summary-save-article-folder
575 gnus-Folder-save-name gnus-folder-save-name)
576 ("gnus-mh" :interactive t gnus-summary-save-in-folder)
577 ("gnus-vis" gnus-group-make-menu-bar gnus-summary-make-menu-bar
578 gnus-server-make-menu-bar gnus-article-make-menu-bar
579 gnus-browse-make-menu-bar gnus-highlight-selected-summary
580 gnus-summary-highlight-line gnus-carpal-setup-buffer
581 gnus-group-highlight-line
582 gnus-article-add-button gnus-insert-next-page-button
583 gnus-insert-prev-page-button gnus-visual-turn-off-edit-menu)
584 ("gnus-vis" :interactive t
585 gnus-article-push-button gnus-article-press-button
586 gnus-article-highlight gnus-article-highlight-some
587 gnus-article-highlight-headers gnus-article-highlight-signature
588 gnus-article-add-buttons gnus-article-add-buttons-to-head
589 gnus-article-next-button gnus-article-prev-button)
590 ("gnus-demon" gnus-demon-add-nocem gnus-demon-add-scanmail
591 gnus-demon-add-disconnection gnus-demon-add-handler
592 gnus-demon-remove-handler)
593 ("gnus-demon" :interactive t
594 gnus-demon-init gnus-demon-cancel)
595 ("gnus-salt" gnus-highlight-selected-tree gnus-possibly-generate-tree
596 gnus-tree-open gnus-tree-close)
597 ("gnus-nocem" gnus-nocem-scan-groups gnus-nocem-close
598 gnus-nocem-unwanted-article-p)
599 ("gnus-srvr" gnus-enter-server-buffer gnus-server-set-info)
600 ("gnus-srvr" gnus-browse-foreign-server)
601 ("gnus-cite" :interactive t
602 gnus-article-highlight-citation gnus-article-hide-citation-maybe
603 gnus-article-hide-citation gnus-article-fill-cited-article
604 gnus-article-hide-citation-in-followups)
605 ("gnus-kill" gnus-kill gnus-apply-kill-file-internal
606 gnus-kill-file-edit-file gnus-kill-file-raise-followups-to-author
607 gnus-execute gnus-expunge)
608 ("gnus-cache" gnus-cache-possibly-enter-article gnus-cache-save-buffers
609 gnus-cache-possibly-remove-articles gnus-cache-request-article
610 gnus-cache-retrieve-headers gnus-cache-possibly-alter-active
611 gnus-cache-enter-remove-article gnus-cached-article-p
612 gnus-cache-open gnus-cache-close gnus-cache-update-article)
613 ("gnus-cache" :interactive t gnus-jog-cache gnus-cache-enter-article
614 gnus-cache-remove-article)
615 ("gnus-score" :interactive t
616 gnus-summary-increase-score gnus-summary-lower-score
617 gnus-score-flush-cache gnus-score-close
618 gnus-score-raise-same-subject-and-select
619 gnus-score-raise-same-subject gnus-score-default
620 gnus-score-raise-thread gnus-score-lower-same-subject-and-select
621 gnus-score-lower-same-subject gnus-score-lower-thread
622 gnus-possibly-score-headers gnus-summary-raise-score
623 gnus-summary-set-score gnus-summary-current-score)
625 (gnus-summary-score-map keymap) gnus-score-save gnus-score-headers
626 gnus-current-score-file-nondirectory gnus-score-adaptive
627 gnus-score-find-trace gnus-score-file-name)
628 ("gnus-edit" :interactive t gnus-score-customize)
629 ("gnus-topic" :interactive t gnus-topic-mode)
630 ("gnus-topic" gnus-topic-remove-group)
631 ("gnus-salt" :interactive t gnus-pick-mode gnus-binary-mode)
632 ("gnus-uu" (gnus-uu-extract-map keymap) (gnus-uu-mark-map keymap))
633 ("gnus-uu" :interactive t
634 gnus-uu-digest-mail-forward gnus-uu-digest-post-forward
635 gnus-uu-mark-series gnus-uu-mark-region gnus-uu-mark-buffer
636 gnus-uu-mark-by-regexp gnus-uu-mark-all
637 gnus-uu-mark-sparse gnus-uu-mark-thread gnus-uu-decode-uu
638 gnus-uu-decode-uu-and-save gnus-uu-decode-unshar
639 gnus-uu-decode-unshar-and-save gnus-uu-decode-save
640 gnus-uu-decode-binhex gnus-uu-decode-uu-view
641 gnus-uu-decode-uu-and-save-view gnus-uu-decode-unshar-view
642 gnus-uu-decode-unshar-and-save-view gnus-uu-decode-save-view
643 gnus-uu-decode-binhex-view)
644 ("gnus-msg" (gnus-summary-send-map keymap)
645 gnus-mail-yank-original gnus-mail-send-and-exit
646 gnus-article-mail gnus-new-mail gnus-mail-reply
647 gnus-copy-article-buffer gnus-extended-version)
648 ("gnus-msg" :interactive t
649 gnus-group-post-news gnus-group-mail gnus-summary-post-news
650 gnus-summary-followup gnus-summary-followup-with-original
651 gnus-summary-cancel-article gnus-summary-supersede-article
652 gnus-post-news gnus-inews-news
653 gnus-summary-reply gnus-summary-reply-with-original
654 gnus-summary-mail-forward gnus-summary-mail-other-window
656 ("gnus-picon" :interactive t gnus-article-display-picons
657 gnus-group-display-picons gnus-picons-article-display-x-face
658 gnus-picons-display-x-face)
659 ("gnus-gl" bbb-login bbb-logout bbb-grouplens-group-p
661 ("smiley" :interactive t gnus-smiley-display)
662 ("gnus" gnus-add-current-to-buffer-list gnus-add-shutdown)
663 ("gnus-win" gnus-configure-windows)
664 ("gnus-sum" gnus-summary-insert-line gnus-summary-read-group
665 gnus-list-of-unread-articles gnus-list-of-read-articles
666 gnus-offer-save-summaries gnus-make-thread-indent-array
668 ("gnus-group" gnus-group-insert-group-line gnus-group-quit
669 gnus-group-list-groups gnus-group-first-unread-group
670 gnus-group-set-mode-line gnus-group-set-info gnus-group-save-newsrc
671 gnus-group-setup-buffer gnus-group-get-new-news
672 gnus-group-make-help-group gnus-group-update-group)
673 ("gnus-bcklg" gnus-backlog-request-article gnus-backlog-enter-article
674 gnus-backlog-remove-article)
675 ("gnus-art" gnus-article-read-summary-keys gnus-article-save
676 gnus-article-prepare gnus-article-set-window-start
677 gnus-article-show-all-headers gnus-article-next-page
678 gnus-article-prev-page gnus-request-article-this-buffer
679 gnus-article-mode gnus-article-setup-buffer gnus-narrow-to-page)
680 ("gnus-art" :interactive t
681 gnus-article-hide-headers gnus-article-hide-boring-headers
682 gnus-article-treat-overstrike gnus-article-word-wrap
683 gnus-article-remove-cr gnus-article-remove-trailing-blank-lines
684 gnus-article-display-x-face gnus-article-de-quoted-unreadable
685 gnus-article-mime-decode-quoted-printable gnus-article-hide-pgp
686 gnus-article-hide-pem gnus-article-hide-signature
687 gnus-article-strip-leading-blank-lines gnus-article-date-local
688 gnus-article-date-original gnus-article-date-lapsed
689 gnus-decode-rfc1522 gnus-article-show-all-headers
690 gnus-article-edit-mode gnus-article-edit-article
691 gnus-article-edit-done)
692 ("gnus-int" gnus-request-type)
693 ("gnus-start" gnus-newsrc-parse-options gnus-1 gnus-no-server-1
695 ("gnus-dup" gnus-dup-suppress-articles gnus-dup-enter-articles)
696 ("gnus-range" gnus-copy-sequence)
697 ("gnus-vm" gnus-vm-mail-setup)
698 ("gnus-eform" gnus-edit-form)
699 ("gnus-move" :interactive t
700 gnus-group-move-group-to-server gnus-change-server)
701 ("gnus-logic" gnus-score-advanced)
702 ("gnus-undo" gnus-undo-mode gnus-undo-register)
703 ("gnus-async" gnus-async-request-fetched-article gnus-async-prefetch-next
704 gnus-async-prefetch-article gnus-async-prefetch-remove-group)
705 ("gnus-vm" :interactive t gnus-summary-save-in-vm
706 gnus-summary-save-article-vm))))
708 ;;; gnus-sum.el thingies
711 (defvar gnus-summary-line-format "%U\%R\%z\%I\%(%[%4L: %-20,20n%]%) %s\n"
712 "*The format specification of the lines in the summary buffer.
714 It works along the same lines as a normal formatting string,
715 with some simple extensions.
717 %N Article number, left padded with spaces (string)
719 %s Subject if it is at the root of a thread, and \"\" otherwise (string)
720 %n Name of the poster (string)
721 %a Extracted name of the poster (string)
722 %A Extracted address of the poster (string)
723 %F Contents of the From: header (string)
724 %x Contents of the Xref: header (string)
725 %D Date of the article (string)
726 %d Date of the article (string) in DD-MMM format
727 %M Message-id of the article (string)
728 %r References of the article (string)
729 %c Number of characters in the article (integer)
730 %L Number of lines in the article (integer)
731 %I Indentation based on thread level (a string of spaces)
732 %T A string with two possible values: 80 spaces if the article
733 is on thread level two or larger and 0 spaces on level one
734 %R \"A\" if this article has been replied to, \" \" otherwise (character)
735 %U Status of this article (character, \"R\", \"K\", \"-\" or \" \")
736 %[ Opening bracket (character, \"[\" or \"<\")
737 %] Closing bracket (character, \"]\" or \">\")
738 %> Spaces of length thread-level (string)
739 %< Spaces of length (- 20 thread-level) (string)
740 %i Article score (number)
741 %z Article zcore (character)
742 %t Number of articles under the current thread (number).
743 %e Whether the thread is empty or not (character).
744 %l GroupLens score (string).
745 %P The line number (number).
746 %u User defined specifier. The next character in the format string should
747 be a letter. Gnus will call the function gnus-user-format-function-X,
748 where X is the letter following %u. The function will be passed the
749 current header as argument. The function should return a string, which
750 will be inserted into the summary just like information from any other
753 Text between %( and %) will be highlighted with `gnus-mouse-face'
754 when the mouse point is placed inside the area. There can only be one
757 The %U (status), %R (replied) and %z (zcore) specs have to be handled
758 with care. For reasons of efficiency, Gnus will compute what column
759 these characters will end up in, and \"hard-code\" that. This means that
760 it is illegal to have these specs after a variable-length spec. Well,
761 you might not be arrested, but your summary buffer will look strange,
764 The smart choice is to have these specs as for to the left as
767 This restriction may disappear in later versions of Gnus.")
773 (defun gnus-suppress-keymap (keymap)
774 (suppress-keymap keymap)
775 (let ((keys `([delete] "\177" "\M-u"))) ;gnus-mouse-2
777 (define-key keymap (pop keys) 'undefined))))
779 (defvar gnus-article-mode-map (make-keymap))
780 (gnus-suppress-keymap gnus-article-mode-map)
781 (defvar gnus-summary-mode-map (make-keymap))
782 (gnus-suppress-keymap gnus-summary-mode-map)
783 (defvar gnus-group-mode-map (make-keymap))
784 (gnus-suppress-keymap gnus-group-mode-map)
786 ;;; Function aliases later to be redefined for XEmacs usage.
788 (defalias 'gnus-make-overlay 'make-overlay)
789 (defalias 'gnus-overlay-put 'overlay-put)
790 (defalias 'gnus-move-overlay 'move-overlay)
791 (defalias 'gnus-overlay-end 'overlay-end)
792 (defalias 'gnus-extent-detached-p 'ignore)
793 (defalias 'gnus-extent-start-open 'ignore)
794 (defalias 'gnus-set-text-properties 'set-text-properties)
795 (defalias 'gnus-group-remove-excess-properties 'ignore)
796 (defalias 'gnus-topic-remove-excess-properties 'ignore)
797 (defalias 'gnus-appt-select-lowest-window 'appt-select-lowest-window)
798 (defalias 'gnus-mail-strip-quoted-names 'mail-strip-quoted-names)
799 (defalias 'gnus-make-local-hook 'make-local-hook)
800 (defalias 'gnus-add-hook 'add-hook)
801 (defalias 'gnus-character-to-event 'identity)
802 (defalias 'gnus-add-text-properties 'add-text-properties)
803 (defalias 'gnus-put-text-property 'put-text-property)
804 (defalias 'gnus-mode-line-buffer-identification 'identity)
808 ;;; gnus-load.el ends here