*** empty log message ***
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 23:42:02 +0000 (23:42 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 23:42:02 +0000 (23:42 +0000)
39 files changed:
lisp/ChangeLog
lisp/gnus-art.el
lisp/gnus-async.el
lisp/gnus-bcklg.el
lisp/gnus-cache.el
lisp/gnus-cite.el
lisp/gnus-demon.el
lisp/gnus-dup.el
lisp/gnus-eform.el
lisp/gnus-gl.el
lisp/gnus-group.el
lisp/gnus-int.el
lisp/gnus-kill.el
lisp/gnus-load.el
lisp/gnus-logic.el
lisp/gnus-mh.el
lisp/gnus-move.el
lisp/gnus-msg.el
lisp/gnus-nocem.el
lisp/gnus-picon.el
lisp/gnus-salt.el
lisp/gnus-score.el
lisp/gnus-soup.el
lisp/gnus-spec.el
lisp/gnus-srvr.el
lisp/gnus-start.el
lisp/gnus-sum.el
lisp/gnus-topic.el
lisp/gnus-uu.el
lisp/gnus-vm.el
lisp/gnus-win.el
lisp/gnus-xmas.el
lisp/gnus.el
lisp/nndb.el
lisp/nnvirtual.el
lisp/nnweb.el
texi/ChangeLog
texi/Makefile
texi/gnus.texi

index 9f0c082..e3b7265 100644 (file)
@@ -1,3 +1,35 @@
+Tue Oct  8 00:15:04 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+       * gnus-nocem.el: Added customize support.
+
+Tue Oct  8 11:48:25 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
+
+       * gnus-group.el (gnus-group-mail-3-empty-face): Use magenta4.
+
+       * gnus.el (gnus-short-group-name): Would bug out on complex group
+       names. 
+       (gnus-splash-face): New face.
+       (gnus-group-startup-message): Use it.
+
+       * nnvirtual.el (nnvirtual-request-group): Respect
+       `always-rescan'. 
+
+       * gnus-load.el: Removed.
+
+       * gnus.el (gnus-check-backend-function): Require before
+       checking... 
+
+       * gnus-sum.el (gnus-summary-respool-article): Use it.
+
+       * gnus-load.el (gnus-mail-method-history): New variable.
+
+       * gnus-sum.el (gnus-summary-normal-unread-face): Use default
+       face. 
+
+Mon Oct  7 15:00:58 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
+
+       * gnus.el: Red Gnus v0.48 is released.
+
 Mon Oct  7 02:24:02 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
 
        * gnus-sum.el: Added customize support.
index 64255a7..227bfc1 100644 (file)
@@ -25,7 +25,7 @@
 
 ;;; Code:
 
-(require 'gnus-load)
+(require 'gnus)
 (require 'gnus-sum)
 (require 'article)
 (require 'gnus-spec)
index d6d9384..ee3fb8d 100644 (file)
@@ -25,7 +25,7 @@
 
 ;;; Code:
 
-(require 'gnus-load)
+(require 'gnus)
 (require 'gnus-sum)
 (require 'nntp)
 
index 855ca66..5f30c3c 100644 (file)
@@ -25,7 +25,7 @@
 
 ;;; Code:
 
-(require 'gnus-load)
+(require 'gnus)
 
 ;;;
 ;;; Buffering of read articles.
index 7e2d86a..c9d3a6d 100644 (file)
 
 ;;; Code:
 
-(require 'gnus-load)
+(require 'gnus)
 (require 'gnus-int)
 (require 'gnus-range)
 (require 'gnus-sum)
 (require 'gnus-start)
-(require 'gnus)
 
 (defgroup gnus-cache nil
   "Cache interface."
index 78f9103..1a200ec 100644 (file)
@@ -25,7 +25,6 @@
 
 ;;; Code:
 
-(require 'gnus-load)
 (require 'gnus)
 (require 'gnus-art)
 (require 'gnus-range)
index 0a25cc3..4255f40 100644 (file)
 
 ;;; Code:
 
-(require 'gnus-load)
+(require 'gnus)
 (require 'gnus-int)
 (require 'nnheader)
-(require 'gnus)
 (eval-and-compile
   (if (string-match "XEmacs" (emacs-version))
       (require 'itimer)
index eb1a1ef..6b93092 100644 (file)
@@ -30,9 +30,8 @@
 
 ;;; Code:
 
-(require 'gnus-load)
-(require 'gnus-art)
 (require 'gnus)
+(require 'gnus-art)
 
 (defgroup gnus-duplicate nil
   "Suppression of duplicate articles."
index 7a9e6b4..106461e 100644 (file)
@@ -25,9 +25,8 @@
 
 ;;; Code:
 
-(require 'gnus-load)
-(require 'gnus-win)
 (require 'gnus)
+(require 'gnus-win)
 
 ;;;
 ;;; Editing forms
index 2d4955e..2b7aa3e 100644 (file)
 
 (require 'gnus-score)
 (require 'cl)
-(require 'gnus-load)
+(require 'gnus)
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;; User variables
index bbcbd03..ad523a1 100644 (file)
@@ -25,7 +25,7 @@
 
 ;;; Code:
 
-(require 'gnus-load)
+(require 'gnus)
 (require 'gnus-start)
 (require 'nnmail)
 (require 'gnus-spec)
@@ -279,10 +279,10 @@ variable."
 (defface gnus-group-news-1-face 
   '((((class color)
       (background dark))
-     (:foreground "PaleTurquoise"))
+     (:foreground "PaleTurquoise" :bold t))
     (((class color)
       (background light))
-     (:foreground "ForestGreen"))
+     (:foreground "ForestGreen" :bold t))
     (t
      ()))
   "Level 1 newsgroup face.")
@@ -290,21 +290,21 @@ variable."
 (defface gnus-group-news-1-empty-face
   '((((class color)
       (background dark))
-     (:foreground "PaleTurquoise" :italic t))
+     (:foreground "PaleTurquoise"))
     (((class color)
       (background light))
-     (:foreground "ForestGreen" :italic t))
+     (:foreground "ForestGreen"))
     (t
-     (:italic t)))
+     ()))
   "Level 1 empty newsgroup face.")
 
 (defface gnus-group-news-2-face 
   '((((class color)
       (background dark))
-     (:foreground "turquoise"))
+     (:foreground "turquoise" :bold t))
     (((class color)
       (background light))
-     (:foreground "CadetBlue4"))
+     (:foreground "CadetBlue4" :bold t))
     (t
      ()))
   "Level 2 newsgroup face.")
@@ -312,21 +312,21 @@ variable."
 (defface gnus-group-news-2-empty-face
   '((((class color)
       (background dark))
-     (:foreground "turquoise" :italic t))
+     (:foreground "turquoise"))
     (((class color)
       (background light))
-     (:foreground "CadetBlue4" :italic t))
+     (:foreground "CadetBlue4"))
     (t
-     (:italic t)))
+     ()))
   "Level 2 empty newsgroup face.")
 
 (defface gnus-group-news-3-face 
   '((((class color)
       (background dark))
-     ())
+     (:bold t))
     (((class color)
       (background light))
-     ())
+     (:bold t))
     (t
      ()))
   "Level 3 newsgroup face.")
@@ -334,21 +334,21 @@ variable."
 (defface gnus-group-news-3-empty-face
   '((((class color)
       (background dark))
-     ( :italic t))
+     ())
     (((class color)
       (background light))
-     ( :italic t))
+     ())
     (t
-     (:italic t)))
+     ()))
   "Level 3 empty newsgroup face.")
 
 (defface gnus-group-news-low-face 
   '((((class color)
       (background dark))
-     (:foreground "DarkTurquoise"))
+     (:foreground "DarkTurquoise" :bold t))
     (((class color)
       (background light))
-     (:foreground "DarkGreen"))
+     (:foreground "DarkGreen" :bold t))
     (t
      ()))
   "Low level newsgroup face.")
@@ -356,12 +356,12 @@ variable."
 (defface gnus-group-news-low-empty-face
   '((((class color)
       (background dark))
-     (:foreground "DarkTurquoise" :italic t))
+     (:foreground "DarkTurquoise"))
     (((class color)
       (background light))
-     (:foreground "DarkGreen" :italic t))
+     (:foreground "DarkGreen"))
     (t
-     (:italic t)))
+     ()))
   "Low level empty newsgroup face.")
 
 (defface gnus-group-mail-1-face 
@@ -378,10 +378,10 @@ variable."
 (defface gnus-group-mail-1-empty-face
   '((((class color)
       (background dark))
-     (:foreground "aquamarine1" :bold t :italic t))
+     (:foreground "aquamarine1"))
     (((class color)
       (background light))
-     (:foreground "DeepPink3" :bold t :italic t))
+     (:foreground "DeepPink3"))
     (t
      (:italic t :bold t)))
   "Level 1 empty mailgroup face.")
@@ -400,12 +400,12 @@ variable."
 (defface gnus-group-mail-2-empty-face
   '((((class color)
       (background dark))
-     (:foreground "aquamarine2" :bold t :italic t))
+     (:foreground "aquamarine2" :bold t))
     (((class color)
       (background light))
-     (:foreground "HotPink3" :bold t :italic t))
+     (:foreground "HotPink3" :bold t))
     (t
-     (:italic t :bold t)))
+     (:bold t)))
   "Level 2 empty mailgroup face.")
 
 (defface gnus-group-mail-3-face 
@@ -414,7 +414,7 @@ variable."
      (:foreground "aquamarine3" :bold t))
     (((class color)
       (background light))
-     (:foreground "dark magenta" :bold t))
+     (:foreground "magenta4" :bold t))
     (t
      (:bold t)))
   "Level 3 mailgroup face.")
@@ -422,12 +422,12 @@ variable."
 (defface gnus-group-mail-3-empty-face
   '((((class color)
       (background dark))
-     (:foreground "aquamarine3" :bold t :italic t))
+     (:foreground "aquamarine3"))
     (((class color)
       (background light))
-     (:foreground "dark magenta" :bold t :italic t))
+     (:foreground "magenta4"))
     (t
-     (:italic t :bold t)))
+     ()))
   "Level 3 empty mailgroup face.")
 
 (defface gnus-group-mail-low-face 
@@ -444,12 +444,12 @@ variable."
 (defface gnus-group-mail-low-empty-face
   '((((class color)
       (background dark))
-     (:foreground "aquamarine4" :italic t :bold t))
+     (:foreground "aquamarine4" :bold t))
     (((class color)
       (background light))
-     (:foreground "DeepPink4" :italic t :bold t))
+     (:foreground "DeepPink4" :bold t))
     (t
-     (:italic t :bold t)))
+     (:bold t)))
   "Low level empty mailgroup face.")
 
 (defcustom gnus-group-highlight
@@ -473,19 +473,19 @@ variable."
     ;; Mail.
     ((and (= unread 0) (eq level 1)) .
      gnus-group-mail-1-empty-face)
-    ((and (eq level 1)) .
+    ((eq level 1) .
      gnus-group-mail-1-face)
     ((and (= unread 0) (eq level 2)) .
      gnus-group-mail-2-empty-face)
-    ((and (eq level 2)) .
+    ((eq level 2) .
      gnus-group-mail-2-face)
     ((and (= unread 0) (eq level 3)) .
      gnus-group-mail-3-empty-face)
-    ((and (eq level 3)) .
+    ((eq level 3) .
      gnus-group-mail-3-face)
-    ((and (= unread 0)) .
+    ((= unread 0) .
      gnus-group-mail-low-empty-face)
-    ((and) .
+    (t .
      gnus-group-mail-low-face))
   "Controls the highlighting of group buffer lines. 
 
index acd065b..05fd596 100644 (file)
@@ -25,7 +25,6 @@
 
 ;;; Code:
 
-(require 'gnus-load)
 (require 'gnus)
 
 (defcustom gnus-open-server-hook nil
index d4555cf..fe9e761 100644 (file)
@@ -26,7 +26,7 @@
 
 ;;; Code:
 
-(require 'gnus-load)
+(require 'gnus)
 (require 'gnus-art)
 (require 'gnus-range)
 
index 550099e..e69de29 100644 (file)
@@ -1,867 +0,0 @@
-;;; gnus-load.el --- various Gnus variables
-;; Copyright (C) 1996 Free Software Foundation, Inc.
-
-;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
-;; Keywords: news
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
-
-;;; Commentary:
-
-;;; Code:
-
-(require 'custom)
-(require 'gnus-util)
-(require 'nnheader)
-
-(defcustom gnus-directory (or (getenv "SAVEDIR") "~/News/")
-  "*Directory variable from which all other Gnus file variables are derived."
-  :group 'gnus-start
-  :type 'directory)
-
-(defcustom gnus-default-directory nil
-  "*Default directory for all Gnus buffers."
-  :group 'gnus-start
-  :type 'directory)
-
-;; Site dependent variables.  These variables should be defined in
-;; paths.el.
-
-(defvar gnus-default-nntp-server nil
-  "Specify a default NNTP server.
-This variable should be defined in paths.el, and should never be set
-by the user.
-If you want to change servers, you should use `gnus-select-method'.
-See the documentation to that variable.")
-
-;; Don't touch this variable.
-(defvar gnus-nntp-service "nntp"
-  "*NNTP service name (\"nntp\" or 119).
-This is an obsolete variable, which is scarcely used.  If you use an
-nntp server for your newsgroup and want to change the port number
-used to 899, you would say something along these lines:
-
- (setq gnus-select-method '(nntp \"my.nntp.server\" (nntp-port-number 899)))")
-
-(defvar gnus-nntpserver-file "/etc/nntpserver"
-  "*A file with only the name of the nntp server in it.")
-
-;; This function is used to check both the environment variable
-;; NNTPSERVER and the /etc/nntpserver file to see whether one can find
-;; an nntp server name default.
-(defun gnus-getenv-nntpserver ()
-  (or (getenv "NNTPSERVER")
-      (and (file-readable-p gnus-nntpserver-file)
-          (save-excursion
-            (set-buffer (get-buffer-create " *gnus nntp*"))
-            (buffer-disable-undo (current-buffer))
-            (insert-file-contents gnus-nntpserver-file)
-            (let ((name (buffer-string)))
-              (prog1
-                  (if (string-match "^[ \t\n]*$" name)
-                      nil
-                    name)
-                (kill-buffer (current-buffer))))))))
-
-(defcustom gnus-select-method
-  (nconc
-   (list 'nntp (or (condition-case ()
-                      (gnus-getenv-nntpserver)
-                    (error nil))
-                  (when (and gnus-default-nntp-server
-                             (not (string= gnus-default-nntp-server "")))
-                    gnus-default-nntp-server)
-                  (system-name)))
-   (if (or (null gnus-nntp-service)
-          (equal gnus-nntp-service "nntp"))
-       nil
-     (list gnus-nntp-service)))
-  "*Default method for selecting a newsgroup.
-This variable should be a list, where the first element is how the
-news is to be fetched, the second is the address.
-
-For instance, if you want to get your news via NNTP from
-\"flab.flab.edu\", you could say:
-
-(setq gnus-select-method '(nntp \"flab.flab.edu\"))
-
-If you want to use your local spool, say:
-
-(setq gnus-select-method (list 'nnspool (system-name)))
-
-If you use this variable, you must set `gnus-nntp-server' to nil.
-
-There is a lot more to know about select methods and virtual servers -
-see the manual for details.")
-
-(defvar gnus-message-archive-method 
-  `(nnfolder
-    "archive"
-    (nnfolder-directory ,(nnheader-concat message-directory "archive"))
-    (nnfolder-active-file 
-     ,(nnheader-concat message-directory "archive/active"))
-    (nnfolder-get-new-mail nil)
-    (nnfolder-inhibit-expiry t))
-  "*Method used for archiving messages you've sent.
-This should be a mail method.
-
-It's probably not a very effective to change this variable once you've
-run Gnus once.  After doing that, you must edit this server from the
-server buffer.")
-
-(defvar gnus-message-archive-group nil
-  "*Name of the group in which to save the messages you've written.
-This can either be a string, a list of strings; or an alist
-of regexps/functions/forms to be evaluated to return a string (or a list
-of strings).  The functions are called with the name of the current
-group (or nil) as a parameter.
-
-If you want to save your mail in one group and the news articles you
-write in another group, you could say something like:
-
- \(setq gnus-message-archive-group 
-        '((if (message-news-p)
-              \"misc-news\" 
-            \"misc-mail\")))
-
-Normally the group names returned by this variable should be
-unprefixed -- which implicitly means \"store on the archive server\".
-However, you may wish to store the message on some other server.  In
-that case, just return a fully prefixed name of the group --
-\"nnml+private:mail.misc\", for instance.")
-
-(defvar gnus-secondary-servers nil
-  "*List of NNTP servers that the user can choose between interactively.
-To make Gnus query you for a server, you have to give `gnus' a
-non-numeric prefix - `C-u M-x gnus', in short.")
-
-(defvar gnus-nntp-server nil
-  "*The name of the host running the NNTP server.
-This variable is semi-obsolete.         Use the `gnus-select-method'
-variable instead.")
-
-(defvar gnus-secondary-select-methods nil
-  "*A list of secondary methods that will be used for reading news.
-This is a list where each element is a complete select method (see
-`gnus-select-method').
-
-If, for instance, you want to read your mail with the nnml backend,
-you could set this variable:
-
-(setq gnus-secondary-select-methods '((nnml \"\")))")
-
-(defvar gnus-backup-default-subscribed-newsgroups
-  '("news.announce.newusers" "news.groups.questions" "gnu.emacs.gnus")
-  "Default default new newsgroups the first time Gnus is run.
-Should be set in paths.el, and shouldn't be touched by the user.")
-
-(defvar gnus-local-domain nil
-  "Local domain name without a host name.
-The DOMAINNAME environment variable is used instead if it is defined.
-If the `system-name' function returns the full Internet name, there is
-no need to set this variable.")
-
-(defvar gnus-local-organization nil
-  "String with a description of what organization (if any) the user belongs to.
-The ORGANIZATION environment variable is used instead if it is defined.
-If this variable contains a function, this function will be called
-with the current newsgroup name as the argument.  The function should
-return a string.
-
-In any case, if the string (either in the variable, in the environment
-variable, or returned by the function) is a file name, the contents of
-this file will be used as the organization.")
-
-;; Customization variables
-
-(defvar gnus-refer-article-method nil
-  "*Preferred method for fetching an article by Message-ID.
-If you are reading news from the local spool (with nnspool), fetching
-articles by Message-ID is painfully slow.  By setting this method to an
-nntp method, you might get acceptable results.
-
-The value of this variable must be a valid select method as discussed
-in the documentation of `gnus-select-method'.")
-
-(defvar gnus-group-faq-directory
-  '("/ftp@mirrors.aol.com:/pub/rtfm/usenet/"
-    "/ftp@sunsite.auc.dk:/pub/usenet/"
-    "/ftp@sunsite.doc.ic.ac.uk:/pub/usenet/news-faqs/"
-    "/ftp@src.doc.ic.ac.uk:/usenet/news-FAQS/"
-    "/ftp@ftp.seas.gwu.edu:/pub/rtfm/"
-    "/ftp@rtfm.mit.edu:/pub/usenet/"
-    "/ftp@ftp.uni-paderborn.de:/pub/FAQ/"
-    "/ftp@ftp.sunet.se:/pub/usenet/"
-    "/ftp@nctuccca.edu.tw:/USENET/FAQ/"
-    "/ftp@hwarang.postech.ac.kr:/pub/usenet/"
-    "/ftp@ftp.hk.super.net:/mirror/faqs/")
-  "*Directory where the group FAQs are stored.
-This will most commonly be on a remote machine, and the file will be
-fetched by ange-ftp.
-
-This variable can also be a list of directories.  In that case, the
-first element in the list will be used by default.  The others can
-be used when being prompted for a site.
-
-Note that Gnus uses an aol machine as the default directory.  If this
-feels fundamentally unclean, just think of it as a way to finally get
-something of value back from them.
-
-If the default site is too slow, try one of these:
-
-   North America: mirrors.aol.com               /pub/rtfm/usenet
-                 ftp.seas.gwu.edu               /pub/rtfm
-                 rtfm.mit.edu                   /pub/usenet
-   Europe:       ftp.uni-paderborn.de           /pub/FAQ
-                  src.doc.ic.ac.uk               /usenet/news-FAQS
-                 ftp.sunet.se                   /pub/usenet
-                 sunsite.auc.dk                 /pub/usenet
-   Asia:         nctuccca.edu.tw                /USENET/FAQ
-                 hwarang.postech.ac.kr          /pub/usenet
-                 ftp.hk.super.net               /mirror/faqs")
-
-(defvar gnus-use-cross-reference t
-  "*Non-nil means that cross referenced articles will be marked as read.
-If nil, ignore cross references.  If t, mark articles as read in
-subscribed newsgroups. If neither t nor nil, mark as read in all
-newsgroups.")
-
-(defvar gnus-process-mark ?#
-  "*Process mark.")
-
-(defvar gnus-asynchronous nil
-  "*If non-nil, Gnus will supply backends with data needed for async article fetching.")
-
-(defvar gnus-large-newsgroup 200
-  "*The number of articles which indicates a large newsgroup.
-If the number of articles in a newsgroup is greater than this value,
-confirmation is required for selecting the newsgroup.")
-
-(defvar gnus-use-long-file-name (not (memq system-type '(usg-unix-v xenix)))
-  "*Non-nil means that the default name of a file to save articles in is the group name.
-If it's nil, the directory form of the group name is used instead.
-
-If this variable is a list, and the list contains the element
-`not-score', long file names will not be used for score files; if it
-contains the element `not-save', long file names will not be used for
-saving; and if it contains the element `not-kill', long file names
-will not be used for kill files.
-
-Note that the default for this variable varies according to what system
-type you're using.  On `usg-unix-v' and `xenix' this variable defaults
-to nil while on all other systems it defaults to t.")
-
-(defvar gnus-kill-files-directory gnus-directory
-  "*Name of the directory where kill files will be stored (default \"~/News\").")
-
-(defvar gnus-save-score nil
-  "*If non-nil, save group scoring info.")
-
-(defvar gnus-use-undo t
-  "*If non-nil, allow undoing in Gnus group mode buffers.")
-
-(defvar gnus-use-adaptive-scoring nil
-  "*If non-nil, use some adaptive scoring scheme.
-If a list, then the values `word' and `line' are meaningful.  The
-former will perform adaption on individual words in the subject
-header while `line' will perform adaption on several headers.")
-
-(defvar gnus-use-cache 'passive
-  "*If nil, Gnus will ignore the article cache.
-If `passive', it will allow entering (and reading) articles
-explicitly entered into the cache.  If anything else, use the
-cache to the full extent of the law.")
-
-(defvar gnus-use-trees nil
-  "*If non-nil, display a thread tree buffer.")
-
-(defvar gnus-use-grouplens nil
-  "*If non-nil, use GroupLens ratings.")
-
-(defvar gnus-keep-backlog nil
-  "*If non-nil, Gnus will keep read articles for later re-retrieval.
-If it is a number N, then Gnus will only keep the last N articles
-read.  If it is neither nil nor a number, Gnus will keep all read
-articles.  This is not a good idea.")
-
-(defvar gnus-use-nocem nil
-  "*If non-nil, Gnus will read NoCeM cancel messages.")
-
-(defvar gnus-suppress-duplicates nil
-  "*If non-nil, Gnus will mark duplicate copies of the same article as read.")
-
-(defvar gnus-use-demon nil
-  "If non-nil, Gnus might use some demons.")
-
-(defvar gnus-use-scoring t
-  "*If non-nil, enable scoring.")
-
-(defvar gnus-use-picons nil
-  "*If non-nil, display picons.")
-
-(defvar gnus-summary-prepare-exit-hook nil
-  "*A hook called when preparing to exit from the summary buffer.
-It calls `gnus-summary-expire-articles' by default.")
-(add-hook 'gnus-summary-prepare-exit-hook 'gnus-summary-expire-articles)
-
-(defvar gnus-novice-user t
-  "*Non-nil means that you are a usenet novice.
-If non-nil, verbose messages may be displayed and confirmations may be
-required.")
-
-(defvar gnus-expert-user nil
-  "*Non-nil means that you will never be asked for confirmation about anything.
-And that means *anything*.")
-
-(defvar gnus-interactive-catchup t
-  "*If non-nil, require your confirmation when catching up a group.")
-
-(defvar gnus-interactive-exit t
-  "*If non-nil, require your confirmation when exiting Gnus.")
-
-(defvar gnus-extract-address-components 'gnus-extract-address-components
-  "*Function for extracting address components from a From header.
-Two pre-defined function exist: `gnus-extract-address-components',
-which is the default, quite fast, and too simplistic solution, and
-`mail-extract-address-components', which works much better, but is
-slower.")
-
-(defvar gnus-carpal nil
-  "*If non-nil, display clickable icons.")
-
-(defvar gnus-shell-command-separator ";"
-  "String used to separate to shell commands.")
-
-(defvar gnus-valid-select-methods
-  '(("nntp" post address prompt-address)
-    ("nnspool" post address)
-    ("nnvirtual" post-mail virtual prompt-address)
-    ("nnmbox" mail respool address)
-    ("nnml" mail respool address)
-    ("nnmh" mail respool address)
-    ("nndir" post-mail prompt-address)
-    ("nneething" none address prompt-address)
-    ("nndoc" none address prompt-address)
-    ("nnbabyl" mail address respool)
-    ("nnkiboze" post virtual)
-    ("nnsoup" post-mail address)
-    ("nndraft" post-mail)
-    ("nnfolder" mail respool address)
-    ("nngateway" none address prompt-address)
-    ("nnweb" none))
-  "An alist of valid select methods.
-The first element of each list lists should be a string with the name
-of the select method.  The other elements may be the category of
-this method (i. e., `post', `mail', `none' or whatever) or other
-properties that this method has (like being respoolable).
-If you implement a new select method, all you should have to change is
-this variable. I think.")
-
-(defvar gnus-updated-mode-lines '(group article summary tree)
-  "*List of buffers that should update their mode lines.
-The list may contain the symbols `group', `article' and `summary'.  If
-the corresponding symbol is present, Gnus will keep that mode line
-updated with information that may be pertinent.
-If this variable is nil, screen refresh may be quicker.")
-
-;; Added by Keinonen Kari <kk85613@cs.tut.fi>.
-(defvar gnus-mode-non-string-length nil
-  "*Max length of mode-line non-string contents.
-If this is nil, Gnus will take space as is needed, leaving the rest
-of the modeline intact.")
-
-(defvar gnus-auto-expirable-newsgroups nil
-  "*Groups in which to automatically mark read articles as expirable.
-If non-nil, this should be a regexp that should match all groups in
-which to perform auto-expiry.  This only makes sense for mail groups.")
-
-(defvar gnus-total-expirable-newsgroups nil
-  "*Groups in which to perform expiry of all read articles.
-Use with extreme caution.  All groups that match this regexp will be
-expiring - which means that all read articles will be deleted after
-(say) one week.         (This only goes for mail groups and the like, of
-course.)")
-
-(defvar gnus-group-uncollapsed-levels 1
-  "Number of group name elements to leave alone when making a short group name.")
-
-(defvar gnus-group-use-permanent-levels nil
-  "*If non-nil, once you set a level, Gnus will use this level.")
-
-;; Hooks.
-
-(defvar gnus-load-hook nil
-  "*A hook run while Gnus is loaded.")
-
-(defvar gnus-apply-kill-hook '(gnus-apply-kill-file)
-  "*A hook called to apply kill files to a group.
-This hook is intended to apply a kill file to the selected newsgroup.
-The function `gnus-apply-kill-file' is called by default.
-
-Since a general kill file is too heavy to use only for a few
-newsgroups, I recommend you to use a lighter hook function.  For
-example, if you'd like to apply a kill file to articles which contains
-a string `rmgroup' in subject in newsgroup `control', you can use the
-following hook:
-
- (setq gnus-apply-kill-hook
-      (list
-       (lambda ()
-         (cond ((string-match \"control\" gnus-newsgroup-name)
-                (gnus-kill \"Subject\" \"rmgroup\")
-                (gnus-expunge \"X\"))))))")
-
-(defvar gnus-group-change-level-function nil
-  "Function run when a group level is changed.
-It is called with three parameters -- GROUP, LEVEL and OLDLEVEL.")
-
-;;; Face thingies.
-
-(defvar gnus-visual 
-  '(summary-highlight group-highlight article-highlight 
-                     mouse-face
-                     summary-menu group-menu article-menu
-                     tree-highlight menu highlight
-                     browse-menu server-menu
-                     page-marker tree-menu binary-menu pick-menu
-                     grouplens-menu)
-  "Enable visual features.
-If `visual' is disabled, there will be no menus and few faces.  Most of
-the visual customization options below will be ignored.  Gnus will use
-less space and be faster as a result.")
-
-(defvar gnus-mouse-face
-  (condition-case ()
-      (if (gnus-visual-p 'mouse-face 'highlight)
-         (if (boundp 'gnus-mouse-face)
-             (or gnus-mouse-face 'highlight)
-           'highlight)
-       'default)
-    (error 'highlight))
-  "Face used for group or summary buffer mouse highlighting.
-The line beneath the mouse pointer will be highlighted with this
-face.")
-
-(defvar gnus-article-display-hook
-  (if (and (string-match "XEmacs" emacs-version)
-          (featurep 'xface))
-      '(gnus-article-hide-headers-if-wanted
-       gnus-article-hide-boring-headers
-       gnus-article-treat-overstrike
-       gnus-article-maybe-highlight
-       gnus-article-display-x-face)
-    '(gnus-article-hide-headers-if-wanted
-      gnus-article-hide-boring-headers
-      gnus-article-treat-overstrike
-      gnus-article-maybe-highlight))
-  "Controls how the article buffer will look.
-
-If you leave the list empty, the article will appear exactly as it is
-stored on the disk.  The list entries will hide or highlight various
-parts of the article, making it easier to find the information you
-want.")
-
-
-
-\f
-;;; Internal variables
-
-(defvar gnus-group-get-parameter-function 'gnus-group-get-parameter)
-(defvar gnus-original-article-buffer " *Original Article*")
-(defvar gnus-newsgroup-name nil)
-
-(defvar gnus-current-select-method nil
-  "The current method for selecting a newsgroup.")
-
-(defvar gnus-tree-buffer "*Tree*"
-  "Buffer where Gnus thread trees are displayed.")
-
-;; Dummy variable.
-(defvar gnus-use-generic-from nil)
-
-;; Variable holding the user answers to all method prompts.
-(defvar gnus-method-history nil)
-
-;; Variable holding the user answers to all group prompts.
-(defvar gnus-group-history nil)
-
-(defvar gnus-server-alist nil
-  "List of available servers.")
-
-(defvar gnus-predefined-server-alist
-  `(("cache"
-     (nnspool "cache"
-             (nnspool-spool-directory "~/News/cache/")
-             (nnspool-nov-directory "~/News/cache/")
-             (nnspool-active-file "~/News/cache/active"))))
-  "List of predefined (convenience) servers.")
-
-(defvar gnus-topic-indentation "") ;; Obsolete variable.
-
-(defconst gnus-article-mark-lists
-  '((marked . tick) (replied . reply)
-    (expirable . expire) (killed . killed)
-    (bookmarks . bookmark) (dormant . dormant)
-    (scored . score) (saved . save)
-    (cached . cache)))
-
-(defvar gnus-headers-retrieved-by nil)
-(defvar gnus-article-reply nil)
-(defvar gnus-override-method nil)
-(defvar gnus-article-check-size nil)
-(defvar gnus-opened-servers nil)
-
-(defvar gnus-current-kill-article nil)
-
-(defvar gnus-have-read-active-file nil)
-
-(defconst gnus-maintainer
-  "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)"
-  "The mail address of the Gnus maintainers.")
-
-(defvar gnus-info-nodes
-  '((gnus-group-mode "(gnus)The Group Buffer")
-    (gnus-summary-mode "(gnus)The Summary Buffer")
-    (gnus-article-mode "(gnus)The Article Buffer")
-    (mime/viewer-mode "(gnus)The Article Buffer")
-    (gnus-server-mode "(gnus)The Server Buffer")
-    (gnus-browse-mode "(gnus)Browse Foreign Server")
-    (gnus-tree-mode "(gnus)Tree Display"))
-  "Alist of major modes and related Info nodes.")
-
-(defvar gnus-group-buffer "*Group*")
-(defvar gnus-summary-buffer "*Summary*")
-(defvar gnus-article-buffer "*Article*")
-(defvar gnus-server-buffer "*Server*")
-
-(defvar gnus-buffer-list nil
-  "Gnus buffers that should be killed on exit.")
-
-(defvar gnus-slave nil
-  "Whether this Gnus is a slave or not.")
-
-(defvar gnus-variable-list
-  '(gnus-newsrc-options gnus-newsrc-options-n
-    gnus-newsrc-last-checked-date
-    gnus-newsrc-alist gnus-server-alist
-    gnus-killed-list gnus-zombie-list
-    gnus-topic-topology gnus-topic-alist
-    gnus-format-specs)
-  "Gnus variables saved in the quick startup file.")
-
-(defvar gnus-newsrc-alist nil
-  "Assoc list of read articles.
-gnus-newsrc-hashtb should be kept so that both hold the same information.")
-
-(defvar gnus-newsrc-hashtb nil
-  "Hashtable of gnus-newsrc-alist.")
-
-(defvar gnus-killed-list nil
-  "List of killed newsgroups.")
-
-(defvar gnus-killed-hashtb nil
-  "Hash table equivalent of gnus-killed-list.")
-
-(defvar gnus-zombie-list nil
-  "List of almost dead newsgroups.")
-
-(defvar gnus-description-hashtb nil
-  "Descriptions of newsgroups.")
-
-(defvar gnus-list-of-killed-groups nil
-  "List of newsgroups that have recently been killed by the user.")
-
-(defvar gnus-active-hashtb nil
-  "Hashtable of active articles.")
-
-(defvar gnus-moderated-list nil
-  "List of moderated newsgroups.")
-
-;; Save window configuration.
-(defvar gnus-prev-winconf nil)
-
-(defvar gnus-reffed-article-number nil)
-
-;;; Let the byte-compiler know that we know about this variable.
-(defvar rmail-default-rmail-file)
-
-(defvar gnus-dead-summary nil)
-
-;;; End of variables.
-
-;; Define some autoload functions Gnus might use.
-(eval-and-compile
-
-  ;; This little mapcar goes through the list below and marks the
-  ;; symbols in question as autoloaded functions.
-  (mapcar
-   (lambda (package)
-     (let ((interactive (nth 1 (memq ':interactive package))))
-       (mapcar
-       (lambda (function)
-         (let (keymap)
-           (when (consp function)
-             (setq keymap (car (memq 'keymap function)))
-             (setq function (car function)))
-           (autoload function (car package) nil interactive keymap)))
-       (if (eq (nth 1 package) ':interactive)
-           (cdddr package)
-         (cdr package)))))
-   '(("metamail" metamail-buffer)
-     ("info" Info-goto-node)
-     ("hexl" hexl-hex-string-to-integer)
-     ("pp" pp pp-to-string pp-eval-expression)
-     ("mail-extr" mail-extract-address-components)
-     ("nnmail" nnmail-split-fancy nnmail-article-group nnmail-date-to-time)
-     ("nnvirtual" nnvirtual-catchup-group nnvirtual-convert-headers)
-     ("timezone" timezone-make-date-arpa-standard timezone-fix-time
-      timezone-make-sortable-date timezone-make-time-string)
-     ("rmailout" rmail-output)
-     ("rmail" rmail-insert-rmail-file-header rmail-count-new-messages
-      rmail-show-message)
-     ("gnus-xmas" gnus-xmas-splash)
-     ("gnus-soup" :interactive t
-      gnus-group-brew-soup gnus-brew-soup gnus-soup-add-article
-      gnus-soup-send-replies gnus-soup-save-areas gnus-soup-pack-packet)
-     ("nnsoup" nnsoup-pack-replies)
-     ("score-mode" :interactive t gnus-score-mode)
-     ("gnus-mh" gnus-mh-mail-setup gnus-summary-save-article-folder
-      gnus-Folder-save-name gnus-folder-save-name)
-     ("gnus-mh" :interactive t gnus-summary-save-in-folder)
-     ("gnus-demon" gnus-demon-add-nocem gnus-demon-add-scanmail
-      gnus-demon-add-disconnection gnus-demon-add-handler
-      gnus-demon-remove-handler)
-     ("gnus-demon" :interactive t
-      gnus-demon-init gnus-demon-cancel)
-     ("gnus-salt" gnus-highlight-selected-tree gnus-possibly-generate-tree
-      gnus-tree-open gnus-tree-close gnus-carpal-setup-buffer)
-     ("gnus-nocem" gnus-nocem-scan-groups gnus-nocem-close
-      gnus-nocem-unwanted-article-p)
-     ("gnus-srvr" gnus-enter-server-buffer gnus-server-set-info)
-     ("gnus-srvr" gnus-browse-foreign-server)
-     ("gnus-cite" :interactive t
-      gnus-article-highlight-citation gnus-article-hide-citation-maybe
-      gnus-article-hide-citation gnus-article-fill-cited-article
-      gnus-article-hide-citation-in-followups)
-     ("gnus-kill" gnus-kill gnus-apply-kill-file-internal
-      gnus-kill-file-edit-file gnus-kill-file-raise-followups-to-author
-      gnus-execute gnus-expunge)
-     ("gnus-cache" gnus-cache-possibly-enter-article gnus-cache-save-buffers
-      gnus-cache-possibly-remove-articles gnus-cache-request-article
-      gnus-cache-retrieve-headers gnus-cache-possibly-alter-active
-      gnus-cache-enter-remove-article gnus-cached-article-p
-      gnus-cache-open gnus-cache-close gnus-cache-update-article)
-     ("gnus-cache" :interactive t gnus-jog-cache gnus-cache-enter-article
-      gnus-cache-remove-article gnus-summary-insert-cached-articles)
-     ("gnus-score" :interactive t
-      gnus-summary-increase-score gnus-summary-lower-score
-      gnus-score-flush-cache gnus-score-close
-      gnus-score-raise-same-subject-and-select
-      gnus-score-raise-same-subject gnus-score-default
-      gnus-score-raise-thread gnus-score-lower-same-subject-and-select
-      gnus-score-lower-same-subject gnus-score-lower-thread
-      gnus-possibly-score-headers gnus-summary-raise-score 
-      gnus-summary-set-score gnus-summary-current-score
-      gnus-score-followup-article)
-     ("gnus-score"
-      (gnus-summary-score-map keymap) gnus-score-save gnus-score-headers
-      gnus-current-score-file-nondirectory gnus-score-adaptive
-      gnus-score-find-trace gnus-score-file-name)
-     ("gnus-cus" :interactive t gnus-group-customize gnus-score-customize)
-     ("gnus-topic" :interactive t gnus-topic-mode)
-     ("gnus-topic" gnus-topic-remove-group)
-     ("gnus-salt" :interactive t gnus-pick-mode gnus-binary-mode)
-     ("gnus-uu" (gnus-uu-extract-map keymap) (gnus-uu-mark-map keymap))
-     ("gnus-uu" :interactive t
-      gnus-uu-digest-mail-forward gnus-uu-digest-post-forward
-      gnus-uu-mark-series gnus-uu-mark-region gnus-uu-mark-buffer
-      gnus-uu-mark-by-regexp gnus-uu-mark-all
-      gnus-uu-mark-sparse gnus-uu-mark-thread gnus-uu-decode-uu
-      gnus-uu-decode-uu-and-save gnus-uu-decode-unshar
-      gnus-uu-decode-unshar-and-save gnus-uu-decode-save
-      gnus-uu-decode-binhex gnus-uu-decode-uu-view
-      gnus-uu-decode-uu-and-save-view gnus-uu-decode-unshar-view
-      gnus-uu-decode-unshar-and-save-view gnus-uu-decode-save-view
-      gnus-uu-decode-binhex-view)
-     ("gnus-msg" (gnus-summary-send-map keymap)
-      gnus-mail-yank-original gnus-mail-send-and-exit
-      gnus-article-mail gnus-new-mail gnus-mail-reply
-      gnus-copy-article-buffer gnus-extended-version)
-     ("gnus-msg" :interactive t
-      gnus-group-post-news gnus-group-mail gnus-summary-post-news
-      gnus-summary-followup gnus-summary-followup-with-original
-      gnus-summary-cancel-article gnus-summary-supersede-article
-      gnus-post-news gnus-inews-news 
-      gnus-summary-reply gnus-summary-reply-with-original
-      gnus-summary-mail-forward gnus-summary-mail-other-window
-      gnus-bug)
-     ("gnus-picon" :interactive t gnus-article-display-picons
-      gnus-group-display-picons gnus-picons-article-display-x-face
-      gnus-picons-display-x-face)
-     ("gnus-gl" bbb-login bbb-logout bbb-grouplens-group-p 
-      gnus-grouplens-mode)
-     ("smiley" :interactive t gnus-smiley-display)
-     ("gnus" gnus-add-current-to-buffer-list gnus-add-shutdown)
-     ("gnus-win" gnus-configure-windows)
-     ("gnus-sum" gnus-summary-insert-line gnus-summary-read-group
-      gnus-list-of-unread-articles gnus-list-of-read-articles
-      gnus-offer-save-summaries gnus-make-thread-indent-array
-      gnus-summary-exit gnus-update-read-articles)
-     ("gnus-group" gnus-group-insert-group-line gnus-group-quit
-      gnus-group-list-groups gnus-group-first-unread-group
-      gnus-group-set-mode-line gnus-group-set-info gnus-group-save-newsrc
-      gnus-group-setup-buffer gnus-group-get-new-news
-      gnus-group-make-help-group gnus-group-update-group)
-     ("gnus-bcklg" gnus-backlog-request-article gnus-backlog-enter-article
-      gnus-backlog-remove-article)
-     ("gnus-art" gnus-article-read-summary-keys gnus-article-save
-      gnus-article-prepare gnus-article-set-window-start
-      gnus-article-show-all-headers gnus-article-next-page
-      gnus-article-prev-page gnus-request-article-this-buffer
-      gnus-article-mode gnus-article-setup-buffer gnus-narrow-to-page)
-     ("gnus-art" :interactive t
-      gnus-article-hide-headers gnus-article-hide-boring-headers
-      gnus-article-treat-overstrike gnus-article-word-wrap
-      gnus-article-remove-cr gnus-article-remove-trailing-blank-lines
-      gnus-article-display-x-face gnus-article-de-quoted-unreadable
-      gnus-article-mime-decode-quoted-printable gnus-article-hide-pgp
-      gnus-article-hide-pem gnus-article-hide-signature
-      gnus-article-strip-leading-blank-lines gnus-article-date-local
-      gnus-article-date-original gnus-article-date-lapsed
-      gnus-decode-rfc1522 gnus-article-show-all-headers
-      gnus-article-edit-mode gnus-article-edit-article
-      gnus-article-edit-done)
-     ("gnus-int" gnus-request-type)
-     ("gnus-start" gnus-newsrc-parse-options gnus-1 gnus-no-server-1
-      gnus-dribble-enter)
-     ("gnus-dup" gnus-dup-suppress-articles gnus-dup-enter-articles)
-     ("gnus-range" gnus-copy-sequence)
-     ("gnus-vm" gnus-vm-mail-setup)
-     ("gnus-eform" gnus-edit-form)
-     ("gnus-move" :interactive t
-      gnus-group-move-group-to-server gnus-change-server)
-     ("gnus-logic" gnus-score-advanced)
-     ("gnus-undo" gnus-undo-mode gnus-undo-register 
-      gnus-dup-unsuppress-article)
-     ("gnus-async" gnus-async-request-fetched-article gnus-async-prefetch-next
-      gnus-async-prefetch-article gnus-async-prefetch-remove-group)
-     ("article" article-decode-rfc1522)
-     ("gnus-vm" :interactive t gnus-summary-save-in-vm
-      gnus-summary-save-article-vm))))
-
-;;; gnus-sum.el thingies
-
-
-(defvar gnus-summary-line-format "%U\%R\%z\%I\%(%[%4L: %-20,20n%]%) %s\n"
-  "*The format specification of the lines in the summary buffer.
-
-It works along the same lines as a normal formatting string,
-with some simple extensions.
-
-%N   Article number, left padded with spaces (string)
-%S   Subject (string)
-%s   Subject if it is at the root of a thread, and \"\" otherwise (string)
-%n   Name of the poster (string)
-%a   Extracted name of the poster (string)
-%A   Extracted address of the poster (string)
-%F   Contents of the From: header (string)
-%x   Contents of the Xref: header (string)
-%D   Date of the article (string)
-%d   Date of the article (string) in DD-MMM format
-%M   Message-id of the article (string)
-%r   References of the article (string)
-%c   Number of characters in the article (integer)
-%L   Number of lines in the article (integer)
-%I   Indentation based on thread level (a string of spaces)
-%T   A string with two possible values: 80 spaces if the article
-     is on thread level two or larger and 0 spaces on level one
-%R   \"A\" if this article has been replied to, \" \" otherwise (character)
-%U   Status of this article (character, \"R\", \"K\", \"-\" or \" \")
-%[   Opening bracket (character, \"[\" or \"<\")
-%]   Closing bracket (character, \"]\" or \">\")
-%>   Spaces of length thread-level (string)
-%<   Spaces of length (- 20 thread-level) (string)
-%i   Article score (number)
-%z   Article zcore (character)
-%t   Number of articles under the current thread (number).
-%e   Whether the thread is empty or not (character).
-%l   GroupLens score (string).
-%P   The line number (number).
-%u   User defined specifier.  The next character in the format string should
-     be a letter.  Gnus will call the function gnus-user-format-function-X,
-     where X is the letter following %u.  The function will be passed the
-     current header as argument.  The function should return a string, which
-     will be inserted into the summary just like information from any other
-     summary specifier.
-
-Text between %( and %) will be highlighted with `gnus-mouse-face'
-when the mouse point is placed inside the area.         There can only be one
-such area.
-
-The %U (status), %R (replied) and %z (zcore) specs have to be handled
-with care.  For reasons of efficiency, Gnus will compute what column
-these characters will end up in, and \"hard-code\" that.  This means that
-it is illegal to have these specs after a variable-length spec.         Well,
-you might not be arrested, but your summary buffer will look strange,
-which is bad enough.
-
-The smart choice is to have these specs as for to the left as
-possible.
-
-This restriction may disappear in later versions of Gnus.")
-
-;;;
-;;; Skeleton keymaps
-;;;
-
-(defun gnus-suppress-keymap (keymap)
-  (suppress-keymap keymap)
-  (let ((keys `([delete] "\177" "\M-u"))) ;gnus-mouse-2 
-    (while keys
-      (define-key keymap (pop keys) 'undefined))))
-
-(defvar gnus-article-mode-map (make-keymap))
-(gnus-suppress-keymap gnus-article-mode-map)
-(defvar gnus-summary-mode-map (make-keymap))
-(gnus-suppress-keymap gnus-summary-mode-map)
-(defvar gnus-group-mode-map (make-keymap))
-(gnus-suppress-keymap gnus-group-mode-map)
-
-;;; Function aliases later to be redefined for XEmacs usage.
-
-(defalias 'gnus-make-overlay 'make-overlay)
-(defalias 'gnus-overlay-put 'overlay-put)
-(defalias 'gnus-move-overlay 'move-overlay)
-(defalias 'gnus-overlay-end 'overlay-end)
-(defalias 'gnus-extent-detached-p 'ignore)
-(defalias 'gnus-extent-start-open 'ignore)
-(defalias 'gnus-set-text-properties 'set-text-properties)
-(defalias 'gnus-group-remove-excess-properties 'ignore)
-(defalias 'gnus-topic-remove-excess-properties 'ignore)
-(defalias 'gnus-appt-select-lowest-window 'appt-select-lowest-window)
-(defalias 'gnus-mail-strip-quoted-names 'mail-strip-quoted-names)
-(defalias 'gnus-make-local-hook 'make-local-hook)
-(defalias 'gnus-add-hook 'add-hook)
-(defalias 'gnus-character-to-event 'identity)
-(defalias 'gnus-add-text-properties 'add-text-properties)
-(defalias 'gnus-put-text-property 'put-text-property)
-(defalias 'gnus-mode-line-buffer-identification 'identity)
-
-(provide 'gnus-load)
-
-;;; gnus-load.el ends here
index c26faab..f91da9b 100644 (file)
@@ -25,7 +25,7 @@
 
 ;;; Code:
 
-(require 'gnus-load)
+(require 'gnus)
 (require 'gnus-score)
 (require 'gnus-util)
 
index 94f2ac0..4002ea1 100644 (file)
 
 ;;; Code:
 
-(require 'gnus-load)
+(require 'gnus)
 (require 'mh-e)
 (require 'mh-comp)
-(require 'gnus)
 (require 'gnus-msg)
 (require 'gnus-sum)
 
index 9e669cc..6bdf14c 100644 (file)
 
 ;;; Code:
 
-(require 'gnus-load)
+(require 'gnus)
 (require 'gnus-start)
 (require 'gnus-int)
 (require 'gnus-range)
-(require 'gnus)
 
 ;;;
 ;;; Moving by comparing Message-ID's.
index dee6966..f7bfc06 100644 (file)
 
 ;;; Code:
 
-(require 'gnus-load)
+(require 'gnus)
 (require 'gnus-ems)
 (require 'message)
 (require 'gnus-art)
-(require 'gnus)
 
 ;; Added by Sudish Joseph <joseph@cis.ohio-state.edu>.
 (defvar gnus-post-method nil
@@ -760,7 +759,7 @@ If YANK is non-nil, include the original article."
   "Attempts to go through the Gnus source file and report what variables have been changed.
 The source file has to be in the Emacs load path."
   (interactive)
-  (let ((files '("gnus-load.el" "gnus-sum.el" "gnus-group.el"
+  (let ((files '("gnus.el" "gnus-sum.el" "gnus-group.el"
                 "gnus-art.el" "gnus-start.el"
                 "gnus-msg.el" "gnus-score.el" "gnus-win.el"
                 "nnmail.el" "message.el"))
index 94de18a..45ba72e 100644 (file)
 
 ;;; Code:
 
-(require 'gnus-load)
+(require 'gnus)
 (require 'nnmail)
 (require 'gnus-art)
 (require 'gnus-range)
 
-(defvar gnus-nocem-groups 
+(defgroup 'gnus-nocem nil
+  "NoCeM pseudo-cancellation treatment"
+  :group 'gnus-score)
+
+(defcustom gnus-nocem-groups 
   '("alt.nocem.misc" "news.admin.net-abuse.announce")
-  "*List of groups that will be searched for NoCeM messages.")
+  "List of groups that will be searched for NoCeM messages."
+  :group 'gnus-nocem
+  :type '(repeat (string :tag "Group")))
 
-(defvar gnus-nocem-issuers 
+(defcustom gnus-nocem-issuers 
  '("AutoMoose-1" "Automoose-1"   ; CancelMoose[tm]
    "rbraver@ohww.norman.ok.us"   ; Robert Braver
    "clewis@ferret.ocunix.on.ca;" ; Chris Lewis
    "snowhare@xmission.com"       ; Benjamin "Snowhare" Franz
    "red@redpoll.mrfs.oh.us (Richard E. Depew)"
    )
-  "*List of NoCeM issuers to pay attention to.")
+  "List of NoCeM issuers to pay attention to."
+  :group 'gnus-nocem
+  :type '(repeat string))
 
-(defvar gnus-nocem-directory 
+(defcustom gnus-nocem-directory 
   (nnheader-concat gnus-article-save-directory "NoCeM/")
-  "*Directory where NoCeM files will be stored.")
+  "*Directory where NoCeM files will be stored."
+  :group 'gnus-nocem
+  :type 'directory)
 
-(defvar gnus-nocem-expiry-wait 15
-  "*Number of days to keep NoCeM headers in the cache.")
+(defcustom gnus-nocem-expiry-wait 15
+  "*Number of days to keep NoCeM headers in the cache."
+  :group 'gnus-nocem
+  :type 'integer)
 
-(defvar gnus-nocem-verifyer 'mc-verify
+(defcustom gnus-nocem-verifyer 'mc-verify
   "*Function called to verify that the NoCeM message is valid.
 One likely value is `mc-verify'.  If the function in this variable
-isn't bound, the message will be used unconditionally.")
+isn't bound, the message will be used unconditionally."
+  :group 'gnus-nocem
+  :type '(radio (function-item mc-verify)
+               (function :tag "other")))
 
 ;;; Internal variables
 
index f52bf89..9c669bd 100644 (file)
@@ -25,7 +25,7 @@
 
 ;;; Code:
 
-(require 'gnus-load)
+(require 'gnus)
 (require 'xpm)
 (require 'annotations)
 
index 451a69c..1ed45e6 100644 (file)
@@ -24,7 +24,7 @@
 
 ;;; Code:
 
-(require 'gnus-load)
+(require 'gnus)
 (require 'gnus-sum)
 
 ;;;
index 658dcaf..4845bdf 100644 (file)
@@ -26,7 +26,7 @@
 
 ;;; Code:
 
-(require 'gnus-load)
+(require 'gnus)
 (require 'gnus-sum)
 (require 'gnus-range)
 
index 7b29fc8..28c16d1 100644 (file)
 
 ;;; Code:
 
-(require 'gnus-load)
+(require 'gnus)
 (require 'gnus-art)
 (require 'message)
 (require 'gnus-start)
-(require 'gnus)
 (require 'gnus-range)
 
 ;;; User Variables:
index ec2efe6..bc2d461 100644 (file)
@@ -25,7 +25,6 @@
 
 ;;; Code:
 
-(require 'gnus-load)
 (require 'gnus)
 
 ;;; Internal variables.
index f492757..b993da9 100644 (file)
@@ -25,9 +25,8 @@
 
 ;;; Code:
 
-(require 'gnus-load)
-(require 'gnus-spec)
 (require 'gnus)
+(require 'gnus-spec)
 (require 'gnus-group)
 (require 'gnus-int)
 (require 'gnus-range)
index 8375405..ae60605 100644 (file)
@@ -25,7 +25,6 @@
 
 ;;; Code:
 
-(require 'gnus-load)
 (require 'gnus)
 (require 'gnus-win)
 (require 'gnus-int)
index e85fbad..092b28a 100644 (file)
 
 ;;; Code:
 
-(require 'gnus-load)
+(require 'gnus)
 (require 'gnus-group)
 (require 'gnus-spec)
 (require 'gnus-range)
 (require 'gnus-int)
 (require 'gnus-undo)
-(require 'gnus)
 
 (defgroup gnus-summary nil
   "Summary buffers."
@@ -732,50 +731,54 @@ automatically when it is selected."
   "Face used for normal interest ancient articles.")
   
 (defface gnus-summary-high-unread-face
-  '((((class color)
-      (background dark))
-     (:foreground "PaleGreen" :bold t))
-    (((class color)
-      (background light))
-     (:foreground "DarkGreen" :bold t))
-    (t 
+  '((t 
      (:bold t)))
   "Face used for high interest unread articles.")
 
 (defface gnus-summary-low-unread-face
-  '((((class color)
-      (background dark))
-     (:foreground "PaleGreen" :italic t))
-    (((class color)
-      (background light))
-     (:foreground "DarkGreen" :italic t))
-    (t 
+  '((t 
      (:italic t)))
   "Face used for low interest unread articles.")
 
 (defface gnus-summary-normal-unread-face
+  '((t 
+     ()))
+  "Face used for normal interest unread articles.")
+  
+(defface gnus-summary-high-read-face
   '((((class color)
       (background dark))
-     (:foreground "PaleGreen"))
+     (:foreground "PaleGreen"
+                 :bold t))
     (((class color)
       (background light))
-     (:foreground "DarkGreen"))
+     (:foreground "DarkGreen"
+                 :bold t))
     (t 
-     ()))
-  "Face used for normal interest unread articles.")
-  
-(defface gnus-summary-high-read-face
-  '((t 
      (:bold t)))
   "Face used for high interest read articles.")
 
 (defface gnus-summary-low-read-face
-  '((t 
+  '((((class color)
+      (background dark))
+     (:foreground "PaleGreen"
+                 :italic t))
+    (((class color)
+      (background light))
+     (:foreground "DarkGreen"
+                 :italic t))
+    (t 
      (:italic t)))
   "Face used for low interest read articles.")
 
 (defface gnus-summary-normal-read-face
-  '((t 
+  '((((class color)
+      (background dark))
+     (:foreground "PaleGreen"))
+    (((class color)
+      (background light))
+     (:foreground "DarkGreen"))
+    (t 
      ()))
   "Face used for normal interest read articles.")
 
@@ -6608,7 +6611,7 @@ latter case, they will be copied into the relevant groups."
                (method
                 (gnus-completing-read 
                  methname "What backend do you want to use when respooling?"
-                 methods nil t nil 'gnus-method-history))
+                 methods nil t nil 'gnus-mail-method-history))
                ms)
           (cond
            ((zerop (length (setq ms (gnus-servers-using-backend method))))
index 2d64ac1..4ae61ae 100644 (file)
 
 ;;; Code:
 
-(require 'gnus-load)
+(require 'gnus)
 (require 'gnus-group)
 (require 'gnus-start)
-(require 'gnus)
 
 (defvar gnus-topic-mode nil
   "Minor mode for Gnus group buffers.")
index 8e6c247..00181a4 100644 (file)
@@ -26,7 +26,7 @@
 
 ;;; Code: 
 
-(require 'gnus-load)
+(require 'gnus)
 (require 'gnus-art)
 (require 'message)
 (require 'gnus-msg)
index c5d9716..11d99da 100644 (file)
@@ -34,7 +34,6 @@
 (require 'message)
 (require 'gnus)
 (require 'gnus-msg)
-(require 'gnus-load)
 
 (eval-when-compile
   (autoload 'vm-mode "vm")
index 9dd08d9..e148e53 100644 (file)
@@ -25,7 +25,7 @@
 
 ;;; Code:
 
-(require 'gnus-load)
+(require 'gnus)
 
 (defvar gnus-use-full-window t
   "*If non-nil, use the entire Emacs screen.")
index 41d4fc1..977ff34 100644 (file)
@@ -25,7 +25,6 @@
 
 ;;; Code:
 
-(require 'gnus-load)
 (require 'text-props)
 (defvar menu-bar-mode (featurep 'menubar))
 (require 'messagexmas)
@@ -579,8 +578,7 @@ pounce directly on the real variables themselves.")
        (insert (make-string (max 0 (* 2 (/ rest 3))) ?\n))))
     ;; Fontify some.
     (goto-char (point-min))
-    (when (search-forward "Praxis" nil t)
-      (put-text-property (match-beginning 0) (match-end 0) 'face 'bold))
+    (put-text-property (point-min) (point-max) 'face 'gnus-splash-face)
     (goto-char (point-min))
     (setq modeline-buffer-identification 
          (list (concat gnus-version ": *Group*")))
index 87e1418..5375c16 100644 (file)
@@ -42,7 +42,7 @@
   "Score and kill file handling."
   :group 'gnus )
 
-(defconst gnus-version-number "0.48"
+(defconst gnus-version-number "0.49"
   "Version number for this version of Gnus.")
 
 (defconst gnus-version (format "Red Gnus v%s" gnus-version-number)
 
 ;;; Splash screen.
 
+(defface gnus-splash-face 
+  '((((class color)
+      (background dark))
+     (:foreground "red"))
+    (((class color)
+      (background light))
+     (:foreground "red"))
+    (t
+     ()))
+  "Level 1 newsgroup face.")
+
 (defun gnus-splash ()
   (save-excursion
     (switch-to-buffer gnus-group-buffer)
         (rest (- wheight pheight)))
     (insert (make-string (max 0 (* 2 (/ rest 3))) ?\n)))
   ;; Fontify some.
-  (goto-char (point-min))
-  (when (search-forward "Praxis" nil t)
-    (put-text-property (match-beginning 0) (match-end 0) 'face 'bold))
+  (put-text-property (point-min) (point-max) 'face 'gnus-splash-face)
   (goto-char (point-min))
   (setq mode-line-buffer-identification gnus-version)
   (set-buffer-modified-p t))
 
 ;;; Do the rest.
 
-(require 'gnus-load)
+(require 'custom)
+(require 'gnus-util)
+(require 'nnheader)
+
+(defcustom gnus-directory (or (getenv "SAVEDIR") "~/News/")
+  "*Directory variable from which all other Gnus file variables are derived."
+  :group 'gnus-start
+  :type 'directory)
+
+(defcustom gnus-default-directory nil
+  "*Default directory for all Gnus buffers."
+  :group 'gnus-start
+  :type 'directory)
+
+;; Site dependent variables.  These variables should be defined in
+;; paths.el.
+
+(defvar gnus-default-nntp-server nil
+  "Specify a default NNTP server.
+This variable should be defined in paths.el, and should never be set
+by the user.
+If you want to change servers, you should use `gnus-select-method'.
+See the documentation to that variable.")
+
+;; Don't touch this variable.
+(defvar gnus-nntp-service "nntp"
+  "*NNTP service name (\"nntp\" or 119).
+This is an obsolete variable, which is scarcely used.  If you use an
+nntp server for your newsgroup and want to change the port number
+used to 899, you would say something along these lines:
+
+ (setq gnus-select-method '(nntp \"my.nntp.server\" (nntp-port-number 899)))")
+
+(defvar gnus-nntpserver-file "/etc/nntpserver"
+  "*A file with only the name of the nntp server in it.")
+
+;; This function is used to check both the environment variable
+;; NNTPSERVER and the /etc/nntpserver file to see whether one can find
+;; an nntp server name default.
+(defun gnus-getenv-nntpserver ()
+  (or (getenv "NNTPSERVER")
+      (and (file-readable-p gnus-nntpserver-file)
+          (save-excursion
+            (set-buffer (get-buffer-create " *gnus nntp*"))
+            (buffer-disable-undo (current-buffer))
+            (insert-file-contents gnus-nntpserver-file)
+            (let ((name (buffer-string)))
+              (prog1
+                  (if (string-match "^[ \t\n]*$" name)
+                      nil
+                    name)
+                (kill-buffer (current-buffer))))))))
+
+(defcustom gnus-select-method
+  (nconc
+   (list 'nntp (or (condition-case ()
+                      (gnus-getenv-nntpserver)
+                    (error nil))
+                  (when (and gnus-default-nntp-server
+                             (not (string= gnus-default-nntp-server "")))
+                    gnus-default-nntp-server)
+                  (system-name)))
+   (if (or (null gnus-nntp-service)
+          (equal gnus-nntp-service "nntp"))
+       nil
+     (list gnus-nntp-service)))
+  "*Default method for selecting a newsgroup.
+This variable should be a list, where the first element is how the
+news is to be fetched, the second is the address.
+
+For instance, if you want to get your news via NNTP from
+\"flab.flab.edu\", you could say:
+
+(setq gnus-select-method '(nntp \"flab.flab.edu\"))
+
+If you want to use your local spool, say:
+
+(setq gnus-select-method (list 'nnspool (system-name)))
+
+If you use this variable, you must set `gnus-nntp-server' to nil.
+
+There is a lot more to know about select methods and virtual servers -
+see the manual for details.")
+
+(defvar gnus-message-archive-method 
+  `(nnfolder
+    "archive"
+    (nnfolder-directory ,(nnheader-concat message-directory "archive"))
+    (nnfolder-active-file 
+     ,(nnheader-concat message-directory "archive/active"))
+    (nnfolder-get-new-mail nil)
+    (nnfolder-inhibit-expiry t))
+  "*Method used for archiving messages you've sent.
+This should be a mail method.
+
+It's probably not a very effective to change this variable once you've
+run Gnus once.  After doing that, you must edit this server from the
+server buffer.")
+
+(defvar gnus-message-archive-group nil
+  "*Name of the group in which to save the messages you've written.
+This can either be a string, a list of strings; or an alist
+of regexps/functions/forms to be evaluated to return a string (or a list
+of strings).  The functions are called with the name of the current
+group (or nil) as a parameter.
+
+If you want to save your mail in one group and the news articles you
+write in another group, you could say something like:
+
+ \(setq gnus-message-archive-group 
+        '((if (message-news-p)
+              \"misc-news\" 
+            \"misc-mail\")))
+
+Normally the group names returned by this variable should be
+unprefixed -- which implicitly means \"store on the archive server\".
+However, you may wish to store the message on some other server.  In
+that case, just return a fully prefixed name of the group --
+\"nnml+private:mail.misc\", for instance.")
+
+(defvar gnus-secondary-servers nil
+  "*List of NNTP servers that the user can choose between interactively.
+To make Gnus query you for a server, you have to give `gnus' a
+non-numeric prefix - `C-u M-x gnus', in short.")
+
+(defvar gnus-nntp-server nil
+  "*The name of the host running the NNTP server.
+This variable is semi-obsolete.         Use the `gnus-select-method'
+variable instead.")
+
+(defvar gnus-secondary-select-methods nil
+  "*A list of secondary methods that will be used for reading news.
+This is a list where each element is a complete select method (see
+`gnus-select-method').
+
+If, for instance, you want to read your mail with the nnml backend,
+you could set this variable:
+
+(setq gnus-secondary-select-methods '((nnml \"\")))")
+
+(defvar gnus-backup-default-subscribed-newsgroups
+  '("news.announce.newusers" "news.groups.questions" "gnu.emacs.gnus")
+  "Default default new newsgroups the first time Gnus is run.
+Should be set in paths.el, and shouldn't be touched by the user.")
+
+(defvar gnus-local-domain nil
+  "Local domain name without a host name.
+The DOMAINNAME environment variable is used instead if it is defined.
+If the `system-name' function returns the full Internet name, there is
+no need to set this variable.")
+
+(defvar gnus-local-organization nil
+  "String with a description of what organization (if any) the user belongs to.
+The ORGANIZATION environment variable is used instead if it is defined.
+If this variable contains a function, this function will be called
+with the current newsgroup name as the argument.  The function should
+return a string.
+
+In any case, if the string (either in the variable, in the environment
+variable, or returned by the function) is a file name, the contents of
+this file will be used as the organization.")
+
+;; Customization variables
+
+(defvar gnus-refer-article-method nil
+  "*Preferred method for fetching an article by Message-ID.
+If you are reading news from the local spool (with nnspool), fetching
+articles by Message-ID is painfully slow.  By setting this method to an
+nntp method, you might get acceptable results.
+
+The value of this variable must be a valid select method as discussed
+in the documentation of `gnus-select-method'.")
+
+(defvar gnus-group-faq-directory
+  '("/ftp@mirrors.aol.com:/pub/rtfm/usenet/"
+    "/ftp@sunsite.auc.dk:/pub/usenet/"
+    "/ftp@sunsite.doc.ic.ac.uk:/pub/usenet/news-faqs/"
+    "/ftp@src.doc.ic.ac.uk:/usenet/news-FAQS/"
+    "/ftp@ftp.seas.gwu.edu:/pub/rtfm/"
+    "/ftp@rtfm.mit.edu:/pub/usenet/"
+    "/ftp@ftp.uni-paderborn.de:/pub/FAQ/"
+    "/ftp@ftp.sunet.se:/pub/usenet/"
+    "/ftp@nctuccca.edu.tw:/USENET/FAQ/"
+    "/ftp@hwarang.postech.ac.kr:/pub/usenet/"
+    "/ftp@ftp.hk.super.net:/mirror/faqs/")
+  "*Directory where the group FAQs are stored.
+This will most commonly be on a remote machine, and the file will be
+fetched by ange-ftp.
+
+This variable can also be a list of directories.  In that case, the
+first element in the list will be used by default.  The others can
+be used when being prompted for a site.
+
+Note that Gnus uses an aol machine as the default directory.  If this
+feels fundamentally unclean, just think of it as a way to finally get
+something of value back from them.
+
+If the default site is too slow, try one of these:
+
+   North America: mirrors.aol.com               /pub/rtfm/usenet
+                 ftp.seas.gwu.edu               /pub/rtfm
+                 rtfm.mit.edu                   /pub/usenet
+   Europe:       ftp.uni-paderborn.de           /pub/FAQ
+                  src.doc.ic.ac.uk               /usenet/news-FAQS
+                 ftp.sunet.se                   /pub/usenet
+                 sunsite.auc.dk                 /pub/usenet
+   Asia:         nctuccca.edu.tw                /USENET/FAQ
+                 hwarang.postech.ac.kr          /pub/usenet
+                 ftp.hk.super.net               /mirror/faqs")
+
+(defvar gnus-use-cross-reference t
+  "*Non-nil means that cross referenced articles will be marked as read.
+If nil, ignore cross references.  If t, mark articles as read in
+subscribed newsgroups. If neither t nor nil, mark as read in all
+newsgroups.")
+
+(defvar gnus-process-mark ?#
+  "*Process mark.")
+
+(defvar gnus-asynchronous nil
+  "*If non-nil, Gnus will supply backends with data needed for async article fetching.")
+
+(defvar gnus-large-newsgroup 200
+  "*The number of articles which indicates a large newsgroup.
+If the number of articles in a newsgroup is greater than this value,
+confirmation is required for selecting the newsgroup.")
+
+(defvar gnus-use-long-file-name (not (memq system-type '(usg-unix-v xenix)))
+  "*Non-nil means that the default name of a file to save articles in is the group name.
+If it's nil, the directory form of the group name is used instead.
+
+If this variable is a list, and the list contains the element
+`not-score', long file names will not be used for score files; if it
+contains the element `not-save', long file names will not be used for
+saving; and if it contains the element `not-kill', long file names
+will not be used for kill files.
+
+Note that the default for this variable varies according to what system
+type you're using.  On `usg-unix-v' and `xenix' this variable defaults
+to nil while on all other systems it defaults to t.")
+
+(defvar gnus-kill-files-directory gnus-directory
+  "*Name of the directory where kill files will be stored (default \"~/News\").")
+
+(defvar gnus-save-score nil
+  "*If non-nil, save group scoring info.")
+
+(defvar gnus-use-undo t
+  "*If non-nil, allow undoing in Gnus group mode buffers.")
+
+(defvar gnus-use-adaptive-scoring nil
+  "*If non-nil, use some adaptive scoring scheme.
+If a list, then the values `word' and `line' are meaningful.  The
+former will perform adaption on individual words in the subject
+header while `line' will perform adaption on several headers.")
+
+(defvar gnus-use-cache 'passive
+  "*If nil, Gnus will ignore the article cache.
+If `passive', it will allow entering (and reading) articles
+explicitly entered into the cache.  If anything else, use the
+cache to the full extent of the law.")
+
+(defvar gnus-use-trees nil
+  "*If non-nil, display a thread tree buffer.")
+
+(defvar gnus-use-grouplens nil
+  "*If non-nil, use GroupLens ratings.")
+
+(defvar gnus-keep-backlog nil
+  "*If non-nil, Gnus will keep read articles for later re-retrieval.
+If it is a number N, then Gnus will only keep the last N articles
+read.  If it is neither nil nor a number, Gnus will keep all read
+articles.  This is not a good idea.")
+
+(defvar gnus-use-nocem nil
+  "*If non-nil, Gnus will read NoCeM cancel messages.")
+
+(defvar gnus-suppress-duplicates nil
+  "*If non-nil, Gnus will mark duplicate copies of the same article as read.")
+
+(defvar gnus-use-demon nil
+  "If non-nil, Gnus might use some demons.")
+
+(defvar gnus-use-scoring t
+  "*If non-nil, enable scoring.")
+
+(defvar gnus-use-picons nil
+  "*If non-nil, display picons.")
+
+(defvar gnus-summary-prepare-exit-hook nil
+  "*A hook called when preparing to exit from the summary buffer.
+It calls `gnus-summary-expire-articles' by default.")
+(add-hook 'gnus-summary-prepare-exit-hook 'gnus-summary-expire-articles)
+
+(defvar gnus-novice-user t
+  "*Non-nil means that you are a usenet novice.
+If non-nil, verbose messages may be displayed and confirmations may be
+required.")
+
+(defvar gnus-expert-user nil
+  "*Non-nil means that you will never be asked for confirmation about anything.
+And that means *anything*.")
+
+(defvar gnus-interactive-catchup t
+  "*If non-nil, require your confirmation when catching up a group.")
+
+(defvar gnus-interactive-exit t
+  "*If non-nil, require your confirmation when exiting Gnus.")
+
+(defvar gnus-extract-address-components 'gnus-extract-address-components
+  "*Function for extracting address components from a From header.
+Two pre-defined function exist: `gnus-extract-address-components',
+which is the default, quite fast, and too simplistic solution, and
+`mail-extract-address-components', which works much better, but is
+slower.")
+
+(defvar gnus-carpal nil
+  "*If non-nil, display clickable icons.")
+
+(defvar gnus-shell-command-separator ";"
+  "String used to separate to shell commands.")
+
+(defvar gnus-valid-select-methods
+  '(("nntp" post address prompt-address)
+    ("nnspool" post address)
+    ("nnvirtual" post-mail virtual prompt-address)
+    ("nnmbox" mail respool address)
+    ("nnml" mail respool address)
+    ("nnmh" mail respool address)
+    ("nndir" post-mail prompt-address)
+    ("nneething" none address prompt-address)
+    ("nndoc" none address prompt-address)
+    ("nnbabyl" mail address respool)
+    ("nnkiboze" post virtual)
+    ("nnsoup" post-mail address)
+    ("nndraft" post-mail)
+    ("nnfolder" mail respool address)
+    ("nngateway" none address prompt-address)
+    ("nnweb" none))
+  "An alist of valid select methods.
+The first element of each list lists should be a string with the name
+of the select method.  The other elements may be the category of
+this method (i. e., `post', `mail', `none' or whatever) or other
+properties that this method has (like being respoolable).
+If you implement a new select method, all you should have to change is
+this variable. I think.")
+
+(defvar gnus-updated-mode-lines '(group article summary tree)
+  "*List of buffers that should update their mode lines.
+The list may contain the symbols `group', `article' and `summary'.  If
+the corresponding symbol is present, Gnus will keep that mode line
+updated with information that may be pertinent.
+If this variable is nil, screen refresh may be quicker.")
+
+;; Added by Keinonen Kari <kk85613@cs.tut.fi>.
+(defvar gnus-mode-non-string-length nil
+  "*Max length of mode-line non-string contents.
+If this is nil, Gnus will take space as is needed, leaving the rest
+of the modeline intact.")
+
+(defvar gnus-auto-expirable-newsgroups nil
+  "*Groups in which to automatically mark read articles as expirable.
+If non-nil, this should be a regexp that should match all groups in
+which to perform auto-expiry.  This only makes sense for mail groups.")
+
+(defvar gnus-total-expirable-newsgroups nil
+  "*Groups in which to perform expiry of all read articles.
+Use with extreme caution.  All groups that match this regexp will be
+expiring - which means that all read articles will be deleted after
+(say) one week.         (This only goes for mail groups and the like, of
+course.)")
+
+(defvar gnus-group-uncollapsed-levels 1
+  "Number of group name elements to leave alone when making a short group name.")
+
+(defvar gnus-group-use-permanent-levels nil
+  "*If non-nil, once you set a level, Gnus will use this level.")
+
+;; Hooks.
+
+(defvar gnus-load-hook nil
+  "*A hook run while Gnus is loaded.")
+
+(defvar gnus-apply-kill-hook '(gnus-apply-kill-file)
+  "*A hook called to apply kill files to a group.
+This hook is intended to apply a kill file to the selected newsgroup.
+The function `gnus-apply-kill-file' is called by default.
+
+Since a general kill file is too heavy to use only for a few
+newsgroups, I recommend you to use a lighter hook function.  For
+example, if you'd like to apply a kill file to articles which contains
+a string `rmgroup' in subject in newsgroup `control', you can use the
+following hook:
+
+ (setq gnus-apply-kill-hook
+      (list
+       (lambda ()
+         (cond ((string-match \"control\" gnus-newsgroup-name)
+                (gnus-kill \"Subject\" \"rmgroup\")
+                (gnus-expunge \"X\"))))))")
+
+(defvar gnus-group-change-level-function nil
+  "Function run when a group level is changed.
+It is called with three parameters -- GROUP, LEVEL and OLDLEVEL.")
+
+;;; Face thingies.
+
+(defvar gnus-visual 
+  '(summary-highlight group-highlight article-highlight 
+                     mouse-face
+                     summary-menu group-menu article-menu
+                     tree-highlight menu highlight
+                     browse-menu server-menu
+                     page-marker tree-menu binary-menu pick-menu
+                     grouplens-menu)
+  "Enable visual features.
+If `visual' is disabled, there will be no menus and few faces.  Most of
+the visual customization options below will be ignored.  Gnus will use
+less space and be faster as a result.")
+
+(defvar gnus-mouse-face
+  (condition-case ()
+      (if (gnus-visual-p 'mouse-face 'highlight)
+         (if (boundp 'gnus-mouse-face)
+             (or gnus-mouse-face 'highlight)
+           'highlight)
+       'default)
+    (error 'highlight))
+  "Face used for group or summary buffer mouse highlighting.
+The line beneath the mouse pointer will be highlighted with this
+face.")
+
+(defvar gnus-article-display-hook
+  (if (and (string-match "XEmacs" emacs-version)
+          (featurep 'xface))
+      '(gnus-article-hide-headers-if-wanted
+       gnus-article-hide-boring-headers
+       gnus-article-treat-overstrike
+       gnus-article-maybe-highlight
+       gnus-article-display-x-face)
+    '(gnus-article-hide-headers-if-wanted
+      gnus-article-hide-boring-headers
+      gnus-article-treat-overstrike
+      gnus-article-maybe-highlight))
+  "Controls how the article buffer will look.
+
+If you leave the list empty, the article will appear exactly as it is
+stored on the disk.  The list entries will hide or highlight various
+parts of the article, making it easier to find the information you
+want.")
+
+
+
+\f
+;;; Internal variables
+
+(defvar gnus-group-get-parameter-function 'gnus-group-get-parameter)
+(defvar gnus-original-article-buffer " *Original Article*")
+(defvar gnus-newsgroup-name nil)
+
+(defvar gnus-current-select-method nil
+  "The current method for selecting a newsgroup.")
+
+(defvar gnus-tree-buffer "*Tree*"
+  "Buffer where Gnus thread trees are displayed.")
+
+;; Dummy variable.
+(defvar gnus-use-generic-from nil)
+
+;; Variable holding the user answers to all method prompts.
+(defvar gnus-method-history nil)
+
+;; Variable holding the user answers to all mail method prompts.
+(defvar gnus-mail-method-history nil)
+
+;; Variable holding the user answers to all group prompts.
+(defvar gnus-group-history nil)
+
+(defvar gnus-server-alist nil
+  "List of available servers.")
+
+(defvar gnus-predefined-server-alist
+  `(("cache"
+     (nnspool "cache"
+             (nnspool-spool-directory "~/News/cache/")
+             (nnspool-nov-directory "~/News/cache/")
+             (nnspool-active-file "~/News/cache/active"))))
+  "List of predefined (convenience) servers.")
+
+(defvar gnus-topic-indentation "") ;; Obsolete variable.
+
+(defconst gnus-article-mark-lists
+  '((marked . tick) (replied . reply)
+    (expirable . expire) (killed . killed)
+    (bookmarks . bookmark) (dormant . dormant)
+    (scored . score) (saved . save)
+    (cached . cache)))
+
+(defvar gnus-headers-retrieved-by nil)
+(defvar gnus-article-reply nil)
+(defvar gnus-override-method nil)
+(defvar gnus-article-check-size nil)
+(defvar gnus-opened-servers nil)
+
+(defvar gnus-current-kill-article nil)
+
+(defvar gnus-have-read-active-file nil)
+
+(defconst gnus-maintainer
+  "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)"
+  "The mail address of the Gnus maintainers.")
+
+(defvar gnus-info-nodes
+  '((gnus-group-mode "(gnus)The Group Buffer")
+    (gnus-summary-mode "(gnus)The Summary Buffer")
+    (gnus-article-mode "(gnus)The Article Buffer")
+    (mime/viewer-mode "(gnus)The Article Buffer")
+    (gnus-server-mode "(gnus)The Server Buffer")
+    (gnus-browse-mode "(gnus)Browse Foreign Server")
+    (gnus-tree-mode "(gnus)Tree Display"))
+  "Alist of major modes and related Info nodes.")
+
+(defvar gnus-group-buffer "*Group*")
+(defvar gnus-summary-buffer "*Summary*")
+(defvar gnus-article-buffer "*Article*")
+(defvar gnus-server-buffer "*Server*")
+
+(defvar gnus-buffer-list nil
+  "Gnus buffers that should be killed on exit.")
+
+(defvar gnus-slave nil
+  "Whether this Gnus is a slave or not.")
+
+(defvar gnus-variable-list
+  '(gnus-newsrc-options gnus-newsrc-options-n
+    gnus-newsrc-last-checked-date
+    gnus-newsrc-alist gnus-server-alist
+    gnus-killed-list gnus-zombie-list
+    gnus-topic-topology gnus-topic-alist
+    gnus-format-specs)
+  "Gnus variables saved in the quick startup file.")
+
+(defvar gnus-newsrc-alist nil
+  "Assoc list of read articles.
+gnus-newsrc-hashtb should be kept so that both hold the same information.")
+
+(defvar gnus-newsrc-hashtb nil
+  "Hashtable of gnus-newsrc-alist.")
+
+(defvar gnus-killed-list nil
+  "List of killed newsgroups.")
+
+(defvar gnus-killed-hashtb nil
+  "Hash table equivalent of gnus-killed-list.")
+
+(defvar gnus-zombie-list nil
+  "List of almost dead newsgroups.")
+
+(defvar gnus-description-hashtb nil
+  "Descriptions of newsgroups.")
+
+(defvar gnus-list-of-killed-groups nil
+  "List of newsgroups that have recently been killed by the user.")
+
+(defvar gnus-active-hashtb nil
+  "Hashtable of active articles.")
+
+(defvar gnus-moderated-list nil
+  "List of moderated newsgroups.")
+
+;; Save window configuration.
+(defvar gnus-prev-winconf nil)
+
+(defvar gnus-reffed-article-number nil)
+
+;;; Let the byte-compiler know that we know about this variable.
+(defvar rmail-default-rmail-file)
+
+(defvar gnus-dead-summary nil)
+
+;;; End of variables.
+
+;; Define some autoload functions Gnus might use.
+(eval-and-compile
+
+  ;; This little mapcar goes through the list below and marks the
+  ;; symbols in question as autoloaded functions.
+  (mapcar
+   (lambda (package)
+     (let ((interactive (nth 1 (memq ':interactive package))))
+       (mapcar
+       (lambda (function)
+         (let (keymap)
+           (when (consp function)
+             (setq keymap (car (memq 'keymap function)))
+             (setq function (car function)))
+           (autoload function (car package) nil interactive keymap)))
+       (if (eq (nth 1 package) ':interactive)
+           (cdddr package)
+         (cdr package)))))
+   '(("metamail" metamail-buffer)
+     ("info" Info-goto-node)
+     ("hexl" hexl-hex-string-to-integer)
+     ("pp" pp pp-to-string pp-eval-expression)
+     ("mail-extr" mail-extract-address-components)
+     ("nnmail" nnmail-split-fancy nnmail-article-group nnmail-date-to-time)
+     ("nnvirtual" nnvirtual-catchup-group nnvirtual-convert-headers)
+     ("timezone" timezone-make-date-arpa-standard timezone-fix-time
+      timezone-make-sortable-date timezone-make-time-string)
+     ("rmailout" rmail-output)
+     ("rmail" rmail-insert-rmail-file-header rmail-count-new-messages
+      rmail-show-message)
+     ("gnus-xmas" gnus-xmas-splash)
+     ("gnus-soup" :interactive t
+      gnus-group-brew-soup gnus-brew-soup gnus-soup-add-article
+      gnus-soup-send-replies gnus-soup-save-areas gnus-soup-pack-packet)
+     ("nnsoup" nnsoup-pack-replies)
+     ("score-mode" :interactive t gnus-score-mode)
+     ("gnus-mh" gnus-mh-mail-setup gnus-summary-save-article-folder
+      gnus-Folder-save-name gnus-folder-save-name)
+     ("gnus-mh" :interactive t gnus-summary-save-in-folder)
+     ("gnus-demon" gnus-demon-add-nocem gnus-demon-add-scanmail
+      gnus-demon-add-disconnection gnus-demon-add-handler
+      gnus-demon-remove-handler)
+     ("gnus-demon" :interactive t
+      gnus-demon-init gnus-demon-cancel)
+     ("gnus-salt" gnus-highlight-selected-tree gnus-possibly-generate-tree
+      gnus-tree-open gnus-tree-close gnus-carpal-setup-buffer)
+     ("gnus-nocem" gnus-nocem-scan-groups gnus-nocem-close
+      gnus-nocem-unwanted-article-p)
+     ("gnus-srvr" gnus-enter-server-buffer gnus-server-set-info)
+     ("gnus-srvr" gnus-browse-foreign-server)
+     ("gnus-cite" :interactive t
+      gnus-article-highlight-citation gnus-article-hide-citation-maybe
+      gnus-article-hide-citation gnus-article-fill-cited-article
+      gnus-article-hide-citation-in-followups)
+     ("gnus-kill" gnus-kill gnus-apply-kill-file-internal
+      gnus-kill-file-edit-file gnus-kill-file-raise-followups-to-author
+      gnus-execute gnus-expunge)
+     ("gnus-cache" gnus-cache-possibly-enter-article gnus-cache-save-buffers
+      gnus-cache-possibly-remove-articles gnus-cache-request-article
+      gnus-cache-retrieve-headers gnus-cache-possibly-alter-active
+      gnus-cache-enter-remove-article gnus-cached-article-p
+      gnus-cache-open gnus-cache-close gnus-cache-update-article)
+     ("gnus-cache" :interactive t gnus-jog-cache gnus-cache-enter-article
+      gnus-cache-remove-article gnus-summary-insert-cached-articles)
+     ("gnus-score" :interactive t
+      gnus-summary-increase-score gnus-summary-lower-score
+      gnus-score-flush-cache gnus-score-close
+      gnus-score-raise-same-subject-and-select
+      gnus-score-raise-same-subject gnus-score-default
+      gnus-score-raise-thread gnus-score-lower-same-subject-and-select
+      gnus-score-lower-same-subject gnus-score-lower-thread
+      gnus-possibly-score-headers gnus-summary-raise-score 
+      gnus-summary-set-score gnus-summary-current-score
+      gnus-score-followup-article)
+     ("gnus-score"
+      (gnus-summary-score-map keymap) gnus-score-save gnus-score-headers
+      gnus-current-score-file-nondirectory gnus-score-adaptive
+      gnus-score-find-trace gnus-score-file-name)
+     ("gnus-cus" :interactive t gnus-group-customize gnus-score-customize)
+     ("gnus-topic" :interactive t gnus-topic-mode)
+     ("gnus-topic" gnus-topic-remove-group)
+     ("gnus-salt" :interactive t gnus-pick-mode gnus-binary-mode)
+     ("gnus-uu" (gnus-uu-extract-map keymap) (gnus-uu-mark-map keymap))
+     ("gnus-uu" :interactive t
+      gnus-uu-digest-mail-forward gnus-uu-digest-post-forward
+      gnus-uu-mark-series gnus-uu-mark-region gnus-uu-mark-buffer
+      gnus-uu-mark-by-regexp gnus-uu-mark-all
+      gnus-uu-mark-sparse gnus-uu-mark-thread gnus-uu-decode-uu
+      gnus-uu-decode-uu-and-save gnus-uu-decode-unshar
+      gnus-uu-decode-unshar-and-save gnus-uu-decode-save
+      gnus-uu-decode-binhex gnus-uu-decode-uu-view
+      gnus-uu-decode-uu-and-save-view gnus-uu-decode-unshar-view
+      gnus-uu-decode-unshar-and-save-view gnus-uu-decode-save-view
+      gnus-uu-decode-binhex-view)
+     ("gnus-msg" (gnus-summary-send-map keymap)
+      gnus-mail-yank-original gnus-mail-send-and-exit
+      gnus-article-mail gnus-new-mail gnus-mail-reply
+      gnus-copy-article-buffer gnus-extended-version)
+     ("gnus-msg" :interactive t
+      gnus-group-post-news gnus-group-mail gnus-summary-post-news
+      gnus-summary-followup gnus-summary-followup-with-original
+      gnus-summary-cancel-article gnus-summary-supersede-article
+      gnus-post-news gnus-inews-news 
+      gnus-summary-reply gnus-summary-reply-with-original
+      gnus-summary-mail-forward gnus-summary-mail-other-window
+      gnus-bug)
+     ("gnus-picon" :interactive t gnus-article-display-picons
+      gnus-group-display-picons gnus-picons-article-display-x-face
+      gnus-picons-display-x-face)
+     ("gnus-gl" bbb-login bbb-logout bbb-grouplens-group-p 
+      gnus-grouplens-mode)
+     ("smiley" :interactive t gnus-smiley-display)
+     ("gnus" gnus-add-current-to-buffer-list gnus-add-shutdown)
+     ("gnus-win" gnus-configure-windows)
+     ("gnus-sum" gnus-summary-insert-line gnus-summary-read-group
+      gnus-list-of-unread-articles gnus-list-of-read-articles
+      gnus-offer-save-summaries gnus-make-thread-indent-array
+      gnus-summary-exit gnus-update-read-articles)
+     ("gnus-group" gnus-group-insert-group-line gnus-group-quit
+      gnus-group-list-groups gnus-group-first-unread-group
+      gnus-group-set-mode-line gnus-group-set-info gnus-group-save-newsrc
+      gnus-group-setup-buffer gnus-group-get-new-news
+      gnus-group-make-help-group gnus-group-update-group)
+     ("gnus-bcklg" gnus-backlog-request-article gnus-backlog-enter-article
+      gnus-backlog-remove-article)
+     ("gnus-art" gnus-article-read-summary-keys gnus-article-save
+      gnus-article-prepare gnus-article-set-window-start
+      gnus-article-show-all-headers gnus-article-next-page
+      gnus-article-prev-page gnus-request-article-this-buffer
+      gnus-article-mode gnus-article-setup-buffer gnus-narrow-to-page)
+     ("gnus-art" :interactive t
+      gnus-article-hide-headers gnus-article-hide-boring-headers
+      gnus-article-treat-overstrike gnus-article-word-wrap
+      gnus-article-remove-cr gnus-article-remove-trailing-blank-lines
+      gnus-article-display-x-face gnus-article-de-quoted-unreadable
+      gnus-article-mime-decode-quoted-printable gnus-article-hide-pgp
+      gnus-article-hide-pem gnus-article-hide-signature
+      gnus-article-strip-leading-blank-lines gnus-article-date-local
+      gnus-article-date-original gnus-article-date-lapsed
+      gnus-decode-rfc1522 gnus-article-show-all-headers
+      gnus-article-edit-mode gnus-article-edit-article
+      gnus-article-edit-done)
+     ("gnus-int" gnus-request-type)
+     ("gnus-start" gnus-newsrc-parse-options gnus-1 gnus-no-server-1
+      gnus-dribble-enter)
+     ("gnus-dup" gnus-dup-suppress-articles gnus-dup-enter-articles)
+     ("gnus-range" gnus-copy-sequence)
+     ("gnus-vm" gnus-vm-mail-setup)
+     ("gnus-eform" gnus-edit-form)
+     ("gnus-move" :interactive t
+      gnus-group-move-group-to-server gnus-change-server)
+     ("gnus-logic" gnus-score-advanced)
+     ("gnus-undo" gnus-undo-mode gnus-undo-register 
+      gnus-dup-unsuppress-article)
+     ("gnus-async" gnus-async-request-fetched-article gnus-async-prefetch-next
+      gnus-async-prefetch-article gnus-async-prefetch-remove-group)
+     ("article" article-decode-rfc1522)
+     ("gnus-vm" :interactive t gnus-summary-save-in-vm
+      gnus-summary-save-article-vm))))
+
+;;; gnus-sum.el thingies
+
+
+(defvar gnus-summary-line-format "%U\%R\%z\%I\%(%[%4L: %-20,20n%]%) %s\n"
+  "*The format specification of the lines in the summary buffer.
+
+It works along the same lines as a normal formatting string,
+with some simple extensions.
+
+%N   Article number, left padded with spaces (string)
+%S   Subject (string)
+%s   Subject if it is at the root of a thread, and \"\" otherwise (string)
+%n   Name of the poster (string)
+%a   Extracted name of the poster (string)
+%A   Extracted address of the poster (string)
+%F   Contents of the From: header (string)
+%x   Contents of the Xref: header (string)
+%D   Date of the article (string)
+%d   Date of the article (string) in DD-MMM format
+%M   Message-id of the article (string)
+%r   References of the article (string)
+%c   Number of characters in the article (integer)
+%L   Number of lines in the article (integer)
+%I   Indentation based on thread level (a string of spaces)
+%T   A string with two possible values: 80 spaces if the article
+     is on thread level two or larger and 0 spaces on level one
+%R   \"A\" if this article has been replied to, \" \" otherwise (character)
+%U   Status of this article (character, \"R\", \"K\", \"-\" or \" \")
+%[   Opening bracket (character, \"[\" or \"<\")
+%]   Closing bracket (character, \"]\" or \">\")
+%>   Spaces of length thread-level (string)
+%<   Spaces of length (- 20 thread-level) (string)
+%i   Article score (number)
+%z   Article zcore (character)
+%t   Number of articles under the current thread (number).
+%e   Whether the thread is empty or not (character).
+%l   GroupLens score (string).
+%P   The line number (number).
+%u   User defined specifier.  The next character in the format string should
+     be a letter.  Gnus will call the function gnus-user-format-function-X,
+     where X is the letter following %u.  The function will be passed the
+     current header as argument.  The function should return a string, which
+     will be inserted into the summary just like information from any other
+     summary specifier.
+
+Text between %( and %) will be highlighted with `gnus-mouse-face'
+when the mouse point is placed inside the area.         There can only be one
+such area.
+
+The %U (status), %R (replied) and %z (zcore) specs have to be handled
+with care.  For reasons of efficiency, Gnus will compute what column
+these characters will end up in, and \"hard-code\" that.  This means that
+it is illegal to have these specs after a variable-length spec.         Well,
+you might not be arrested, but your summary buffer will look strange,
+which is bad enough.
+
+The smart choice is to have these specs as for to the left as
+possible.
+
+This restriction may disappear in later versions of Gnus.")
+
+;;;
+;;; Skeleton keymaps
+;;;
+
+(defun gnus-suppress-keymap (keymap)
+  (suppress-keymap keymap)
+  (let ((keys `([delete] "\177" "\M-u"))) ;gnus-mouse-2 
+    (while keys
+      (define-key keymap (pop keys) 'undefined))))
+
+(defvar gnus-article-mode-map (make-keymap))
+(gnus-suppress-keymap gnus-article-mode-map)
+(defvar gnus-summary-mode-map (make-keymap))
+(gnus-suppress-keymap gnus-summary-mode-map)
+(defvar gnus-group-mode-map (make-keymap))
+(gnus-suppress-keymap gnus-group-mode-map)
+
+;;; Function aliases later to be redefined for XEmacs usage.
+
+(defalias 'gnus-make-overlay 'make-overlay)
+(defalias 'gnus-overlay-put 'overlay-put)
+(defalias 'gnus-move-overlay 'move-overlay)
+(defalias 'gnus-overlay-end 'overlay-end)
+(defalias 'gnus-extent-detached-p 'ignore)
+(defalias 'gnus-extent-start-open 'ignore)
+(defalias 'gnus-set-text-properties 'set-text-properties)
+(defalias 'gnus-group-remove-excess-properties 'ignore)
+(defalias 'gnus-topic-remove-excess-properties 'ignore)
+(defalias 'gnus-appt-select-lowest-window 'appt-select-lowest-window)
+(defalias 'gnus-mail-strip-quoted-names 'mail-strip-quoted-names)
+(defalias 'gnus-make-local-hook 'make-local-hook)
+(defalias 'gnus-add-hook 'add-hook)
+(defalias 'gnus-character-to-event 'identity)
+(defalias 'gnus-add-text-properties 'add-text-properties)
+(defalias 'gnus-put-text-property 'put-text-property)
+(defalias 'gnus-mode-line-buffer-identification 'identity)
 
 \f
 
@@ -727,7 +1574,7 @@ just the host name."
     (when (string-match ":" group)
       (cond ((string-match "+" group)
             (let* ((plus (string-match "+" group))
-                   (colon (string-match ":" group))
+                   (colon (string-match ":" group (or plus 0)))
                    (dot (string-match "\\." group)))
               (setq foreign (concat
                              (substring group (+ 1 plus)
@@ -740,8 +1587,7 @@ just the host name."
            (t
             (let* ((colon (string-match ":" group)))
               (setq foreign (concat (substring group 0 (+ 1 colon)))
-                    group (substring group (+ 1 colon)))
-              ))))
+                    group (substring group (+ 1 colon)))))))
     ;; collapse group name leaving LEVELS uncollapsed elements
     (while group
       (if (and (string-match "\\." group) (> levels 0))
@@ -873,6 +1719,8 @@ If NEWSGROUP is nil, return the global kill file name instead."
   "Check whether GROUP supports function FUNC."
   (let ((method (if (stringp group) (car (gnus-find-method-for-group group))
                  group)))
+    (unless (featurep method)
+      (require method))
     (fboundp (intern (format "%s-%s" method func)))))
 
 (defun gnus-methods-using (feature)
index a7029ab..c5ce5d5 100644 (file)
@@ -31,7 +31,6 @@
 ;; Register nndb with known select methods.
 
 (require 'gnus)
-(require 'gnus-load)
 (require 'nnmail)
 
 (setq gnus-valid-select-methods
index b8c9a2d..d42559b 100644 (file)
@@ -216,7 +216,8 @@ virtual group.")
     (setq nnvirtual-current-group nil)
     (nnheader-report 'nnvirtual "No component groups in %s" group))
    (t
-    (unless dont-check
+    (when (or (not dont-check)
+             nnvirtual-always-rescan)
       (nnvirtual-create-mapping))
     (setq nnvirtual-current-group group)
     (let ((len (length nnvirtual-mapping)))
index 9f08176..3c25662 100644 (file)
 (defun nnweb-altavista-wash-article ()
   (goto-char (point-min))
   (let ((case-fold-search t))
-    (re-search-forward "^<strong>" nil t)
-    (delete-region (point-min) (match-beginning 0))
+    (when (re-search-forward "^<strong>" nil t)
+      (delete-region (point-min) (match-beginning 0)))
     (goto-char (point-min))
     (while (looking-at "<strong>\\([^ ]+\\) +</strong> +\\(.*\\)$")
       (replace-match "\\1: \\2" t)
index 920ae63..f44fa53 100644 (file)
@@ -1,3 +1,7 @@
+Tue Oct  8 13:16:41 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
+
+       * Makefile (all): Make custom.
+
 Wed Oct  2 01:32:49 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
 
        * gnus.texi (Group Timestamps): New.
index fa3b7f9..16c6fc5 100644 (file)
@@ -6,13 +6,19 @@ LATEX=latex
 DVIPS=dvips
 PERL=perl
 
-all: gnus message
+all: gnus message custom widget
 
 most: texi2latexi.elc latex latexps
 
 gnus: gnus.texi
        $(MAKEINFO) gnus.texi $(INFOSWI)
 
+custom: custom.texi
+       $(MAKEINFO) custom.texi $(INFOSWI)
+
+widget: widget.texi
+       $(MAKEINFO) widget.texi $(INFOSWI)
+
 message: message.texi
        $(MAKEINFO) message.texi $(INFOSWI)
 
index 6d67a1d..e75c548 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename gnus
-@settitle Red Gnus 0.48 Manual
+@settitle Red Gnus 0.49 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
@@ -287,7 +287,7 @@ into another language, under the above conditions for modified versions.
 @tex
 
 @titlepage
-@title Red Gnus 0.48 Manual
+@title Red Gnus 0.49 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
@@ -13450,7 +13450,7 @@ D. Hall,
 Magnus Hammerin,
 Raja R. Harinath,
 Marc Horowitz,
-Ishikawa Ichiro,
+Ishikawa Ichiro, @c Ishikawa
 Francois Felix Ingrand,
 Lee Iverson, 
 Fred Johansen, 
@@ -13461,12 +13461,12 @@ Nat Makarevitch,
 Timo Metzemakers,
 Richard Mlynarik,
 Lantz Moore,
-MORIOKA Tomohiko,
+Morioka Tomohiko, @c Morioka
 Hrvoje Niksic,
 Andy Norman,
 Ken Olstad,
-Masaharu Onishi,
-Hideki Ono,
+Masaharu Onishi, @c Onishi
+Hideki Ono, @c Ono
 Ulrich Pfeifer,
 Colin Rafferty,
 Bart Robinson,
@@ -13487,7 +13487,7 @@ Barry A. Warsaw,
 Christoph Wedler,
 Joe Wells,
 and
-Katsumi Yamaoka.
+Katsumi Yamaoka. @c Yamaoka
 
 Apologies to everybody that I've forgotten, of which there are many, I'm
 sure.