Synch to No Gnus 200601240158.
[elisp/gnus.git-] / lisp / gnus.el
index 8e59d26..d5f9e9e 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus.el --- a newsreader for GNU Emacs
 
-;; Copyright (C) 1987, 1988, 1989, 1990, 1993, 1994, 1995, 1996, 1997,
-;; 1998, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1987, 1988, 1989, 1990, 1993, 1994, 1995, 1996, 1997, 1998,
+;;   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
 ;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -23,8 +23,8 @@
 
 ;; 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.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
 
 ;;; Commentary:
 
 
 (require 'gnus-vers)
 
+;; These are defined afterwards with gnus-define-group-parameter
+(defvar gnus-ham-process-destinations)
+(defvar gnus-parameter-ham-marks-alist)
+(defvar gnus-parameter-spam-marks-alist)
+(defvar gnus-spam-autodetect)
+(defvar gnus-spam-autodetect-methods)
+(defvar gnus-spam-newsgroup-contents)
+(defvar gnus-spam-process-destinations)
+(defvar gnus-spam-process-newsgroups)
+
+
 (defgroup gnus nil
   "The coffee-brewing, all singing, all dancing, kitchen sink newsreader."
   :group 'news
@@ -278,7 +289,7 @@ is restarted, and sometimes reloaded."
   :group 'gnus)
 
 (defgroup gnus-exit nil
-  "Exiting gnus."
+  "Exiting Gnus."
   :link '(custom-manual "(gnus)Exiting Gnus")
   :group 'gnus)
 
@@ -352,7 +363,7 @@ be set in `.emacs' instead."
 ;; We define these group faces here to avoid the display
 ;; update forced when creating new faces.
 
-(defface gnus-group-news-1-face
+(defface gnus-group-news-1
   '((((class color)
       (background dark))
      (:foreground "PaleTurquoise" :bold t))
@@ -361,9 +372,12 @@ be set in `.emacs' instead."
      (:foreground "ForestGreen" :bold t))
     (t
      ()))
-  "Level 1 newsgroup face.")
+  "Level 1 newsgroup face."
+  :group 'gnus-group)
+;; backward-compatibility alias
+(put 'gnus-group-news-1-face 'face-alias 'gnus-group-news-1)
 
-(defface gnus-group-news-1-empty-face
+(defface gnus-group-news-1-empty
   '((((class color)
       (background dark))
      (:foreground "PaleTurquoise"))
@@ -372,9 +386,12 @@ be set in `.emacs' instead."
      (:foreground "ForestGreen"))
     (t
      ()))
-  "Level 1 empty newsgroup face.")
+  "Level 1 empty newsgroup face."
+  :group 'gnus-group)
+;; backward-compatibility alias
+(put 'gnus-group-news-1-empty-face 'face-alias 'gnus-group-news-1-empty)
 
-(defface gnus-group-news-2-face
+(defface gnus-group-news-2
   '((((class color)
       (background dark))
      (:foreground "turquoise" :bold t))
@@ -383,9 +400,12 @@ be set in `.emacs' instead."
      (:foreground "CadetBlue4" :bold t))
     (t
      ()))
-  "Level 2 newsgroup face.")
+  "Level 2 newsgroup face."
+  :group 'gnus-group)
+;; backward-compatibility alias
+(put 'gnus-group-news-2-face 'face-alias 'gnus-group-news-2)
 
-(defface gnus-group-news-2-empty-face
+(defface gnus-group-news-2-empty
   '((((class color)
       (background dark))
      (:foreground "turquoise"))
@@ -394,9 +414,12 @@ be set in `.emacs' instead."
      (:foreground "CadetBlue4"))
     (t
      ()))
-  "Level 2 empty newsgroup face.")
+  "Level 2 empty newsgroup face."
+  :group 'gnus-group)
+;; backward-compatibility alias
+(put 'gnus-group-news-2-empty-face 'face-alias 'gnus-group-news-2-empty)
 
-(defface gnus-group-news-3-face
+(defface gnus-group-news-3
   '((((class color)
       (background dark))
      (:bold t))
@@ -405,9 +428,12 @@ be set in `.emacs' instead."
      (:bold t))
     (t
      ()))
-  "Level 3 newsgroup face.")
+  "Level 3 newsgroup face."
+  :group 'gnus-group)
+;; backward-compatibility alias
+(put 'gnus-group-news-3-face 'face-alias 'gnus-group-news-3)
 
-(defface gnus-group-news-3-empty-face
+(defface gnus-group-news-3-empty
   '((((class color)
       (background dark))
      ())
@@ -416,9 +442,12 @@ be set in `.emacs' instead."
      ())
     (t
      ()))
-  "Level 3 empty newsgroup face.")
+  "Level 3 empty newsgroup face."
+  :group 'gnus-group)
+;; backward-compatibility alias
+(put 'gnus-group-news-3-empty-face 'face-alias 'gnus-group-news-3-empty)
 
-(defface gnus-group-news-4-face
+(defface gnus-group-news-4
   '((((class color)
       (background dark))
      (:bold t))
@@ -427,9 +456,12 @@ be set in `.emacs' instead."
      (:bold t))
     (t
      ()))
-  "Level 4 newsgroup face.")
+  "Level 4 newsgroup face."
+  :group 'gnus-group)
+;; backward-compatibility alias
+(put 'gnus-group-news-4-face 'face-alias 'gnus-group-news-4)
 
-(defface gnus-group-news-4-empty-face
+(defface gnus-group-news-4-empty
   '((((class color)
       (background dark))
      ())
@@ -438,9 +470,12 @@ be set in `.emacs' instead."
      ())
     (t
      ()))
-  "Level 4 empty newsgroup face.")
+  "Level 4 empty newsgroup face."
+  :group 'gnus-group)
+;; backward-compatibility alias
+(put 'gnus-group-news-4-empty-face 'face-alias 'gnus-group-news-4-empty)
 
-(defface gnus-group-news-5-face
+(defface gnus-group-news-5
   '((((class color)
       (background dark))
      (:bold t))
@@ -449,9 +484,12 @@ be set in `.emacs' instead."
      (:bold t))
     (t
      ()))
-  "Level 5 newsgroup face.")
+  "Level 5 newsgroup face."
+  :group 'gnus-group)
+;; backward-compatibility alias
+(put 'gnus-group-news-5-face 'face-alias 'gnus-group-news-5)
 
-(defface gnus-group-news-5-empty-face
+(defface gnus-group-news-5-empty
   '((((class color)
       (background dark))
      ())
@@ -460,9 +498,12 @@ be set in `.emacs' instead."
      ())
     (t
      ()))
-  "Level 5 empty newsgroup face.")
+  "Level 5 empty newsgroup face."
+  :group 'gnus-group)
+;; backward-compatibility alias
+(put 'gnus-group-news-5-empty-face 'face-alias 'gnus-group-news-5-empty)
 
-(defface gnus-group-news-6-face
+(defface gnus-group-news-6
   '((((class color)
       (background dark))
      (:bold t))
@@ -471,9 +512,12 @@ be set in `.emacs' instead."
      (:bold t))
     (t
      ()))
-  "Level 6 newsgroup face.")
+  "Level 6 newsgroup face."
+  :group 'gnus-group)
+;; backward-compatibility alias
+(put 'gnus-group-news-6-face 'face-alias 'gnus-group-news-6)
 
-(defface gnus-group-news-6-empty-face
+(defface gnus-group-news-6-empty
   '((((class color)
       (background dark))
      ())
@@ -482,9 +526,12 @@ be set in `.emacs' instead."
      ())
     (t
      ()))
-  "Level 6 empty newsgroup face.")
+  "Level 6 empty newsgroup face."
+  :group 'gnus-group)
+;; backward-compatibility alias
+(put 'gnus-group-news-6-empty-face 'face-alias 'gnus-group-news-6-empty)
 
-(defface gnus-group-news-low-face
+(defface gnus-group-news-low
   '((((class color)
       (background dark))
      (:foreground "DarkTurquoise" :bold t))
@@ -493,9 +540,12 @@ be set in `.emacs' instead."
      (:foreground "DarkGreen" :bold t))
     (t
      ()))
-  "Low level newsgroup face.")
+  "Low level newsgroup face."
+  :group 'gnus-group)
+;; backward-compatibility alias
+(put 'gnus-group-news-low-face 'face-alias 'gnus-group-news-low)
 
-(defface gnus-group-news-low-empty-face
+(defface gnus-group-news-low-empty
   '((((class color)
       (background dark))
      (:foreground "DarkTurquoise"))
@@ -504,9 +554,12 @@ be set in `.emacs' instead."
      (:foreground "DarkGreen"))
     (t
      ()))
-  "Low level empty newsgroup face.")
+  "Low level empty newsgroup face."
+  :group 'gnus-group)
+;; backward-compatibility alias
+(put 'gnus-group-news-low-empty-face 'face-alias 'gnus-group-news-low-empty)
 
-(defface gnus-group-mail-1-face
+(defface gnus-group-mail-1
   '((((class color)
       (background dark))
      (:foreground "aquamarine1" :bold t))
@@ -515,9 +568,12 @@ be set in `.emacs' instead."
      (:foreground "DeepPink3" :bold t))
     (t
      (:bold t)))
-  "Level 1 mailgroup face.")
+  "Level 1 mailgroup face."
+  :group 'gnus-group)
+;; backward-compatibility alias
+(put 'gnus-group-mail-1-face 'face-alias 'gnus-group-mail-1)
 
-(defface gnus-group-mail-1-empty-face
+(defface gnus-group-mail-1-empty
   '((((class color)
       (background dark))
      (:foreground "aquamarine1"))
@@ -526,9 +582,12 @@ be set in `.emacs' instead."
      (:foreground "DeepPink3"))
     (t
      (:italic t :bold t)))
-  "Level 1 empty mailgroup face.")
+  "Level 1 empty mailgroup face."
+  :group 'gnus-group)
+;; backward-compatibility alias
+(put 'gnus-group-mail-1-empty-face 'face-alias 'gnus-group-mail-1-empty)
 
-(defface gnus-group-mail-2-face
+(defface gnus-group-mail-2
   '((((class color)
       (background dark))
      (:foreground "aquamarine2" :bold t))
@@ -537,9 +596,12 @@ be set in `.emacs' instead."
      (:foreground "HotPink3" :bold t))
     (t
      (:bold t)))
-  "Level 2 mailgroup face.")
+  "Level 2 mailgroup face."
+  :group 'gnus-group)
+;; backward-compatibility alias
+(put 'gnus-group-mail-2-face 'face-alias 'gnus-group-mail-2)
 
-(defface gnus-group-mail-2-empty-face
+(defface gnus-group-mail-2-empty
   '((((class color)
       (background dark))
      (:foreground "aquamarine2"))
@@ -548,9 +610,12 @@ be set in `.emacs' instead."
      (:foreground "HotPink3"))
     (t
      (:bold t)))
-  "Level 2 empty mailgroup face.")
+  "Level 2 empty mailgroup face."
+  :group 'gnus-group)
+;; backward-compatibility alias
+(put 'gnus-group-mail-2-empty-face 'face-alias 'gnus-group-mail-2-empty)
 
-(defface gnus-group-mail-3-face
+(defface gnus-group-mail-3
   '((((class color)
       (background dark))
      (:foreground "aquamarine3" :bold t))
@@ -559,9 +624,12 @@ be set in `.emacs' instead."
      (:foreground "magenta4" :bold t))
     (t
      (:bold t)))
-  "Level 3 mailgroup face.")
+  "Level 3 mailgroup face."
+  :group 'gnus-group)
+;; backward-compatibility alias
+(put 'gnus-group-mail-3-face 'face-alias 'gnus-group-mail-3)
 
-(defface gnus-group-mail-3-empty-face
+(defface gnus-group-mail-3-empty
   '((((class color)
       (background dark))
      (:foreground "aquamarine3"))
@@ -570,9 +638,12 @@ be set in `.emacs' instead."
      (:foreground "magenta4"))
     (t
      ()))
-  "Level 3 empty mailgroup face.")
+  "Level 3 empty mailgroup face."
+  :group 'gnus-group)
+;; backward-compatibility alias
+(put 'gnus-group-mail-3-empty-face 'face-alias 'gnus-group-mail-3-empty)
 
-(defface gnus-group-mail-low-face
+(defface gnus-group-mail-low
   '((((class color)
       (background dark))
      (:foreground "aquamarine4" :bold t))
@@ -581,9 +652,12 @@ be set in `.emacs' instead."
      (:foreground "DeepPink4" :bold t))
     (t
      (:bold t)))
-  "Low level mailgroup face.")
+  "Low level mailgroup face."
+  :group 'gnus-group)
+;; backward-compatibility alias
+(put 'gnus-group-mail-low-face 'face-alias 'gnus-group-mail-low)
 
-(defface gnus-group-mail-low-empty-face
+(defface gnus-group-mail-low-empty
   '((((class color)
       (background dark))
      (:foreground "aquamarine4"))
@@ -592,20 +666,28 @@ be set in `.emacs' instead."
      (:foreground "DeepPink4"))
     (t
      (:bold t)))
-  "Low level empty mailgroup face.")
+  "Low level empty mailgroup face."
+  :group 'gnus-group)
+;; backward-compatibility alias
+(put 'gnus-group-mail-low-empty-face 'face-alias 'gnus-group-mail-low-empty)
 
 ;; Summary mode faces.
 
-(defface gnus-summary-selected-face '((t
-                                      (:underline t)))
-  "Face used for selected articles.")
+(defface gnus-summary-selected '((t (:underline t)))
+  "Face used for selected articles."
+  :group 'gnus-summary)
+;; backward-compatibility alias
+(put 'gnus-summary-selected-face 'face-alias 'gnus-summary-selected)
 
-(defface gnus-summary-cancelled-face
+(defface gnus-summary-cancelled
   '((((class color))
      (:foreground "yellow" :background "black")))
-  "Face used for cancelled articles.")
+  "Face used for cancelled articles."
+  :group 'gnus-summary)
+;; backward-compatibility alias
+(put 'gnus-summary-cancelled-face 'face-alias 'gnus-summary-cancelled)
 
-(defface gnus-summary-high-ticked-face
+(defface gnus-summary-high-ticked
   '((((class color)
       (background dark))
      (:foreground "pink" :bold t))
@@ -614,9 +696,12 @@ be set in `.emacs' instead."
      (:foreground "firebrick" :bold t))
     (t
      (:bold t)))
-  "Face used for high interest ticked articles.")
+  "Face used for high interest ticked articles."
+  :group 'gnus-summary)
+;; backward-compatibility alias
+(put 'gnus-summary-high-ticked-face 'face-alias 'gnus-summary-high-ticked)
 
-(defface gnus-summary-low-ticked-face
+(defface gnus-summary-low-ticked
   '((((class color)
       (background dark))
      (:foreground "pink" :italic t))
@@ -625,9 +710,12 @@ be set in `.emacs' instead."
      (:foreground "firebrick" :italic t))
     (t
      (:italic t)))
-  "Face used for low interest ticked articles.")
+  "Face used for low interest ticked articles."
+  :group 'gnus-summary)
+;; backward-compatibility alias
+(put 'gnus-summary-low-ticked-face 'face-alias 'gnus-summary-low-ticked)
 
-(defface gnus-summary-normal-ticked-face
+(defface gnus-summary-normal-ticked
   '((((class color)
       (background dark))
      (:foreground "pink"))
@@ -636,9 +724,12 @@ be set in `.emacs' instead."
      (:foreground "firebrick"))
     (t
      ()))
-  "Face used for normal interest ticked articles.")
+  "Face used for normal interest ticked articles."
+  :group 'gnus-summary)
+;; backward-compatibility alias
+(put 'gnus-summary-normal-ticked-face 'face-alias 'gnus-summary-normal-ticked)
 
-(defface gnus-summary-high-ancient-face
+(defface gnus-summary-high-ancient
   '((((class color)
       (background dark))
      (:foreground "SkyBlue" :bold t))
@@ -647,9 +738,12 @@ be set in `.emacs' instead."
      (:foreground "RoyalBlue" :bold t))
     (t
      (:bold t)))
-  "Face used for high interest ancient articles.")
+  "Face used for high interest ancient articles."
+  :group 'gnus-summary)
+;; backward-compatibility alias
+(put 'gnus-summary-high-ancient-face 'face-alias 'gnus-summary-high-ancient)
 
-(defface gnus-summary-low-ancient-face
+(defface gnus-summary-low-ancient
   '((((class color)
       (background dark))
      (:foreground "SkyBlue" :italic t))
@@ -658,9 +752,12 @@ be set in `.emacs' instead."
      (:foreground "RoyalBlue" :italic t))
     (t
      (:italic t)))
-  "Face used for low interest ancient articles.")
+  "Face used for low interest ancient articles."
+  :group 'gnus-summary)
+;; backward-compatibility alias
+(put 'gnus-summary-low-ancient-face 'face-alias 'gnus-summary-low-ancient)
 
-(defface gnus-summary-normal-ancient-face
+(defface gnus-summary-normal-ancient
   '((((class color)
       (background dark))
      (:foreground "SkyBlue"))
@@ -669,56 +766,80 @@ be set in `.emacs' instead."
      (:foreground "RoyalBlue"))
     (t
      ()))
-  "Face used for normal interest ancient articles.")
+  "Face used for normal interest ancient articles."
+  :group 'gnus-summary)
+;; backward-compatibility alias
+(put 'gnus-summary-normal-ancient-face 'face-alias 'gnus-summary-normal-ancient)
 
-(defface gnus-summary-high-undownloaded-face
+(defface gnus-summary-high-undownloaded
    '((((class color)
        (background light))
       (:bold t :foreground "cyan4"))
      (((class color) (background dark))
       (:bold t :foreground "LightGray"))
      (t (:inverse-video t :bold t)))
-  "Face used for high interest uncached articles.")
+  "Face used for high interest uncached articles."
+  :group 'gnus-summary)
+;; backward-compatibility alias
+(put 'gnus-summary-high-undownloaded-face 'face-alias 'gnus-summary-high-undownloaded)
 
-(defface gnus-summary-low-undownloaded-face
+(defface gnus-summary-low-undownloaded
    '((((class color)
        (background light))
       (:italic t :foreground "cyan4" :bold nil))
      (((class color) (background dark))
       (:italic t :foreground "LightGray" :bold nil))
      (t (:inverse-video t :italic t)))
-  "Face used for low interest uncached articles.")
+  "Face used for low interest uncached articles."
+  :group 'gnus-summary)
+;; backward-compatibility alias
+(put 'gnus-summary-low-undownloaded-face 'face-alias 'gnus-summary-low-undownloaded)
 
-(defface gnus-summary-normal-undownloaded-face
+(defface gnus-summary-normal-undownloaded
    '((((class color)
        (background light))
       (:foreground "cyan4" :bold nil))
      (((class color) (background dark))
       (:foreground "LightGray" :bold nil))
      (t (:inverse-video t)))
-  "Face used for normal interest uncached articles.")
+  "Face used for normal interest uncached articles."
+  :group 'gnus-summary)
+;; backward-compatibility alias
+(put 'gnus-summary-normal-undownloaded-face 'face-alias 'gnus-summary-normal-undownloaded)
 
-(defface gnus-summary-high-unread-face
+(defface gnus-summary-high-unread
   '((t
      (:bold t)))
-  "Face used for high interest unread articles.")
+  "Face used for high interest unread articles."
+  :group 'gnus-summary)
+;; backward-compatibility alias
+(put 'gnus-summary-high-unread-face 'face-alias 'gnus-summary-high-unread)
 
-(defface gnus-summary-low-unread-face
+(defface gnus-summary-low-unread
   '((t
      (:italic t)))
-  "Face used for low interest unread articles.")
+  "Face used for low interest unread articles."
+  :group 'gnus-summary)
+;; backward-compatibility alias
+(put 'gnus-summary-low-unread-face 'face-alias 'gnus-summary-low-unread)
 
-(defface gnus-summary-normal-unread-face
+(defface gnus-summary-normal-unread
   '((t
      ()))
-  "Face used for normal interest unread articles.")
+  "Face used for normal interest unread articles."
+  :group 'gnus-summary)
+;; backward-compatibility alias
+(put 'gnus-summary-normal-unread-face 'face-alias 'gnus-summary-normal-unread)
 
-(defface gnus-summary-incorporated-face
+(defface gnus-summary-incorporated
   '((t
      ()))
-  "Face used for incorporated articles.")
+  "Face used for incorporated articles."
+  :group 'gnus-summary)
+;; backward-compatibility alias
+(put 'gnus-summary-incorporated-face 'face-alias 'gnus-summary-incorporated)
 
-(defface gnus-summary-high-read-face
+(defface gnus-summary-high-read
   '((((class color)
       (background dark))
      (:foreground "PaleGreen"
@@ -729,9 +850,12 @@ be set in `.emacs' instead."
                  :bold t))
     (t
      (:bold t)))
-  "Face used for high interest read articles.")
+  "Face used for high interest read articles."
+  :group 'gnus-summary)
+;; backward-compatibility alias
+(put 'gnus-summary-high-read-face 'face-alias 'gnus-summary-high-read)
 
-(defface gnus-summary-low-read-face
+(defface gnus-summary-low-read
   '((((class color)
       (background dark))
      (:foreground "PaleGreen"
@@ -742,9 +866,12 @@ be set in `.emacs' instead."
                  :italic t))
     (t
      (:italic t)))
-  "Face used for low interest read articles.")
+  "Face used for low interest read articles."
+  :group 'gnus-summary)
+;; backward-compatibility alias
+(put 'gnus-summary-low-read-face 'face-alias 'gnus-summary-low-read)
 
-(defface gnus-summary-normal-read-face
+(defface gnus-summary-normal-read
   '((((class color)
       (background dark))
      (:foreground "PaleGreen"))
@@ -753,7 +880,10 @@ be set in `.emacs' instead."
      (:foreground "DarkGreen"))
     (t
      ()))
-  "Face used for normal interest read articles.")
+  "Face used for normal interest read articles."
+  :group 'gnus-summary)
+;; backward-compatibility alias
+(put 'gnus-summary-normal-read-face 'face-alias 'gnus-summary-normal-read)
 
 
 ;;;
@@ -797,7 +927,7 @@ be set in `.emacs' instead."
 (eval-and-compile
   (autoload 'gnus-play-jingle "gnus-audio"))
 
-(defface gnus-splash-face
+(defface gnus-splash
   '((((class color)
       (background dark))
      (:foreground "#888888"))
@@ -806,7 +936,10 @@ be set in `.emacs' instead."
      (:foreground "#888888"))
     (t
      ()))
-  "Face for the splash screen.")
+  "Face for the splash screen."
+  :group 'gnus)
+;; backward-compatibility alias
+(put 'gnus-splash-face 'face-alias 'gnus-splash)
 
 (defun gnus-splash ()
   (save-excursion
@@ -875,8 +1008,13 @@ be set in `.emacs' instead."
    ((and (fboundp 'find-image)
         (display-graphic-p)
         (let* ((bg (face-background 'default))
-               (fg (face-foreground 'gnus-splash-face))
+               (fg (face-foreground 'gnus-splash))
                (data-directory (nnheader-find-etc-directory "images/gnus"))
+               (image-load-path (cond (data-directory
+                                       (list data-directory))
+                                      ((boundp 'image-load-path)
+                                       (symbol-value 'image-load-path))
+                                      (t load-path)))
                (image (find-image
                        `((:type xpm :file "gnus.xpm"
                                 :color-symbols
@@ -956,7 +1094,7 @@ be set in `.emacs' instead."
           (rest (- wheight pheight)))
       (insert (make-string (max 0 (* 2 (/ rest 3))) ?\n)))
     ;; Fontify some.
-    (put-text-property (point-min) (point-max) 'face 'gnus-splash-face)
+    (put-text-property (point-min) (point-max) 'face 'gnus-splash)
     (setq gnus-simple-splash t)))
   (goto-char (point-min))
   (setq mode-line-buffer-identification (concat " " gnus-version))
@@ -992,17 +1130,18 @@ For example:
   :type '(repeat (cons regexp
                       (repeat sexp))))
 
-(defvar gnus-group-parameters-more nil)
-
-(defvar gnus-colon-keywords
-  (eval-when-compile
-    (when (boundp 'dgnushack-colon-keywords)
-      (symbol-value 'dgnushack-colon-keywords)))
-  "List of the colon keywords should be bound at run-time.  This variable
-defaults to a proper value only if this file is byte-compiled by make.")
+(defcustom gnus-parameters-case-fold-search 'default
+  "If it is t, ignore case of group names specified in `gnus-parameters'.
+If it is nil, don't ignore case.  If it is `default', which is for the
+backward compatibility, use the value of `case-fold-search'."
+  :version "22.1"
+  :group 'gnus-group-various
+  :type '(choice :format "%{%t%}:\n %[Value Menu%] %v"
+                (const :tag "Use `case-fold-search'" default)
+                (const nil)
+                (const t)))
 
-(dolist (keyword gnus-colon-keywords)
-  (set keyword keyword))
+(defvar gnus-group-parameters-more nil)
 
 (defmacro gnus-define-group-parameter (param &rest rest)
   "Define a group parameter PARAM.
@@ -2306,7 +2445,8 @@ following hook:
   "Function run when a group level is changed.
 It is called with three parameters -- GROUP, LEVEL and OLDLEVEL."
   :group 'gnus-group-levels
-  :type 'function)
+  :type '(choice (const nil)
+                function))
 
 ;;; Face thingies.
 
@@ -2910,14 +3050,6 @@ gnus-registry.el will populate this if it's loaded.")
       gnus-group-split-update)
      ("gnus-delay" gnus-delay-initialize))))
 
-(eval-and-compile
-  (unless (featurep 'xemacs)
-    (autoload 'x-face-mule-gnus-article-display-x-face "x-face-mule")))
-
-(unless (and (fboundp 'base64-encode-string)
-            (subrp (symbol-function 'base64-encode-string)))
-  (require 'base64))
-
 ;; To search articles with Namazu.
 (autoload 'gnus-namazu-search "gnus-namazu" nil t)
 (autoload 'gnus-namazu-create-index "gnus-namazu" nil t)
@@ -3441,11 +3573,8 @@ that that variable is buffer-local to the summary buffers."
                    (push name-method gnus-server-method-cache))
                  (throw 'server-name (car name-method))))
              server-alist))
-     (let ((alists (list gnus-server-alist
-                         gnus-predefined-server-alist)))
-       (if gnus-select-method
-           (push (list (cons "native" gnus-select-method)) alists))
-       alists))
+     (list gnus-server-alist
+          gnus-predefined-server-alist))
 
     (let* ((name (if (member (cadr method) '(nil ""))
                      (format "%s" (car method))
@@ -3720,7 +3849,10 @@ You should probably use `gnus-find-method-for-group' instead."
 
 (defun gnus-parameters-get-parameter (group)
   "Return the group parameters for GROUP from `gnus-parameters'."
-  (let (params-list)
+  (let ((case-fold-search (if (eq gnus-parameters-case-fold-search 'default)
+                             case-fold-search
+                           gnus-parameters-case-fold-search))
+       params-list)
     (dolist (elem gnus-parameters)
       (when (string-match (car elem) group)
        (setq params-list