Synch to No Gnus 200506270911.
[elisp/gnus.git-] / lisp / gnus.el
index d8b38fc..7c1d455 100644 (file)
@@ -37,7 +37,6 @@
 
 (require 'wid-edit)
 (require 'nnheader)
-(autoload 'message-y-or-n-p "message" nil nil 'macro)
 
 (require 'gnus-vers)
 
@@ -353,7 +352,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))
@@ -362,9 +361,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"))
@@ -373,9 +375,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))
@@ -384,9 +389,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"))
@@ -395,9 +403,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))
@@ -406,9 +417,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))
      ())
@@ -417,9 +431,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))
@@ -428,9 +445,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))
      ())
@@ -439,9 +459,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))
@@ -450,9 +473,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))
      ())
@@ -461,9 +487,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))
@@ -472,9 +501,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))
      ())
@@ -483,9 +515,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))
@@ -494,9 +529,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"))
@@ -505,9 +543,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))
@@ -516,9 +557,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"))
@@ -527,9 +571,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))
@@ -538,9 +585,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"))
@@ -549,9 +599,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))
@@ -560,9 +613,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"))
@@ -571,9 +627,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))
@@ -582,9 +641,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"))
@@ -593,20 +655,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))
@@ -615,9 +685,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))
@@ -626,9 +699,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"))
@@ -637,9 +713,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))
@@ -648,9 +727,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))
@@ -659,9 +741,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"))
@@ -670,56 +755,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"
@@ -730,9 +839,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"
@@ -743,9 +855,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"))
@@ -754,7 +869,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)
 
 
 ;;;
@@ -798,7 +916,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"))
@@ -807,7 +925,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
@@ -876,7 +997,7 @@ 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 (find-image
                        `((:type xpm :file "gnus.xpm"
@@ -957,7 +1078,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))
@@ -995,16 +1116,6 @@ For example:
 
 (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.")
-
-(dolist (keyword gnus-colon-keywords)
-  (set keyword keyword))
-
 (defmacro gnus-define-group-parameter (param &rest rest)
   "Define a group parameter PARAM.
 REST is a plist of following:
@@ -2911,14 +3022,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)
@@ -4080,7 +4183,7 @@ If NEWSGROUP is nil, return the global kill file name instead."
       (setq valids (cdr valids)))
     outs))
 
-(eval-when-compile
+(eval-and-compile
   (autoload 'message-y-or-n-p "message" nil nil 'macro))
 
 (defun gnus-read-group (prompt &optional default)