* spam.el (spam-use-spamoracle): new variable
[gnus] / lisp / gnus.el
index 0edde74..d4c8063 100644 (file)
 (require 'mm-util)
 (require 'nnheader)
 
-;; Make sure it was the right mm-util.
-(unless (fboundp 'mm-guess-mime-charset)
-  (error "Wrong `mm-util' found in `load-path'.  Make sure the Gnus one is found first."))
-
 (defgroup gnus nil
   "The coffee-brewing, all singing, all dancing, kitchen sink newsreader."
   :group 'news
@@ -286,10 +282,10 @@ is restarted, and sometimes reloaded."
   :link '(custom-manual "(gnus)Exiting Gnus")
   :group 'gnus)
 
-(defconst gnus-version-number "0.20"
+(defconst gnus-version-number "5.10.3"
   "Version number for this version of Gnus.")
 
-(defconst gnus-version (format "Oort Gnus v%s" gnus-version-number)
+(defconst gnus-version (format "Gnus v%s" gnus-version-number)
   "Version string for this version of Gnus.")
 
 (defcustom gnus-inhibit-startup-message nil
@@ -323,6 +319,7 @@ be set in `.emacs' instead."
   (defalias 'gnus-appt-select-lowest-window 'appt-select-lowest-window)
   (defalias 'gnus-mail-strip-quoted-names 'mail-strip-quoted-names)
   (defalias 'gnus-character-to-event 'identity)
+  (defalias 'gnus-assq-delete-all 'assq-delete-all)
   (defalias 'gnus-add-text-properties 'add-text-properties)
   (defalias 'gnus-put-text-property 'put-text-property)
   (defvar gnus-mode-line-image-cache t)
@@ -852,6 +849,7 @@ be set in `.emacs' instead."
     (storm "#666699" "#99ccff")
     (pdino "#9999cc" "#99ccff")
     (purp "#9999cc" "#666699")
+    (no "#000000" "#ff0000")
     (neutral "#b4b4b4" "#878787")
     (september "#bf9900" "#ffcc00"))
   "Color alist used for the Gnus logo.")
@@ -1755,6 +1753,26 @@ articles to list when the group is a large newsgroup (see
 `gnus-large-newsgroup').  If it is nil, the default value is the
 total number of articles in the group.")
 
+;; The Gnus registry's ignored groups
+(gnus-define-group-parameter
+ registry-ignore
+ :type list
+ :function-document
+ "Whether this group should be ignored by the registry."
+ :variable gnus-registry-ignored-groups
+ :variable-default nil
+ :variable-document
+ "*Groups in which the registry should be turned off."
+ :variable-group gnus-registry
+ :variable-type '(repeat
+                 (list
+                  (regexp :tag "Group Name Regular Expression")
+                  (boolean :tag "Ignored")))
+ :parameter-type '(boolean :tag "Group Ignored by the Registry")
+ :parameter-document
+ "Whether the Gnus Registry should ignore this group.")
+
 ;; group parameters for spam processing added by Ted Zlatanov <tzz@lifelogs.com>
 (defcustom gnus-install-group-spam-parameters t
   "*Disable the group parameters for spam detection.  
@@ -1825,6 +1843,9 @@ When a spam group is entered, all unread articles are marked as spam.")
     "The Gmane reporting summary exit spam processor.
 Only applicable to NNTP groups with articles from Gmane.  See spam-report.el")
 
+  (defvar gnus-group-spam-exit-processor-spamoracle "spamoracle-spam"
+    "The spamoracle summary exit spam processor.")
+
   (defvar gnus-group-ham-exit-processor-ifile "ifile-ham"
     "The ifile summary exit ham processor.
 Only applicable to non-spam (unclassified and ham) groups.")
@@ -1849,6 +1870,10 @@ Only applicable to non-spam (unclassified and ham) groups.")
     "The ham copy exit ham processor.
 Only applicable to non-spam (unclassified and ham) groups.")
 
+  (defvar gnus-group-ham-exit-processor-spamoracle "spamoracle-ham"
+    "The spamoracle summary exit ham processor. 
+Only applicable to non-spam (unclassified and ham) groups.")
+
   (gnus-define-group-parameter
    spam-process
    :type list
@@ -1861,12 +1886,14 @@ Only applicable to non-spam (unclassified and ham) groups.")
                                   (variable-item gnus-group-spam-exit-processor-bogofilter)
                                   (variable-item gnus-group-spam-exit-processor-blacklist)
                                   (variable-item gnus-group-spam-exit-processor-report-gmane)
+                                  (variable-item gnus-group-spam-exit-processor-spamoracle)
                                   (variable-item gnus-group-ham-exit-processor-bogofilter)
                                   (variable-item gnus-group-ham-exit-processor-ifile)
                                   (variable-item gnus-group-ham-exit-processor-stat)
                                   (variable-item gnus-group-ham-exit-processor-whitelist)
                                   (variable-item gnus-group-ham-exit-processor-BBDB)
-                                  (variable-item gnus-group-ham-exit-processor-copy))))
+                                  (variable-item gnus-group-ham-exit-processor-copy)
+                                  (variable-item gnus-group-ham-exit-processor-spamoracle))))
    :function-document
    "Which spam or ham processors will be applied to the GROUP articles at summary exit."
    :variable gnus-spam-process-newsgroups
@@ -1875,8 +1902,7 @@ Only applicable to non-spam (unclassified and ham) groups.")
    "*Groups in which to automatically process spam or ham articles with
 a backend on summary exit.  If non-nil, this should be a list of group
 name regexps that should match all groups in which to do automatic
-spam processing, associated with the appropriate processor.  This only makes sense
-for mail groups."
+spam processing, associated with the appropriate processor."
    :variable-group spam
    :variable-type '(repeat :tag "Spam/Ham Processors" 
                           (list :tag "Spam Summary Exit Processor Choices"
@@ -2120,14 +2146,15 @@ face."
   "Whether Gnus is plugged or not.")
 
 (defcustom gnus-agent-cache t
-  "Controls use of the agent cache while plugged.  When set, Gnus will prefer
-using the locally stored content rather than re-fetching it from the server.
-You also need to enable `gnus-agent' for this to have any affect."
+  "Controls use of the agent cache while plugged.
+When set, Gnus will prefer using the locally stored content rather
+than re-fetching it from the server.  You also need to enable
+`gnus-agent' for this to have any affect."
   :version "21.3"
   :group 'gnus-agent
   :type 'boolean)
 
-(defcustom gnus-default-charset (mm-guess-mime-charset)
+(defcustom gnus-default-charset 'undecided
   "Default charset assumed to be used when viewing non-ASCII characters.
 This variable is overridden on a group-to-group basis by the
 `gnus-group-charset-alist' variable and is only used on groups not
@@ -2135,9 +2162,13 @@ covered by that variable."
   :type 'symbol
   :group 'gnus-charset)
 
+;; Fixme: Doc reference to agent.
 (defcustom gnus-agent t
   "Whether we want to use the Gnus agent or not.
-Putting (gnus-agentize) in ~/.gnus is obsolete by (setq gnus-agent t)."
+
+You may customize gnus-agent to disable its use.  However, some
+backends have started to use the agent as a client-side cache.
+Disabling the agent may result in noticable loss of performance."
   :version "21.3"
   :group 'gnus-agent
   :type 'boolean)
@@ -2288,8 +2319,6 @@ such as a mark that says whether an article is stored in the cache
   '(gnus-newsrc-options gnus-newsrc-options-n
                        gnus-newsrc-last-checked-date
                        gnus-newsrc-alist gnus-server-alist
-                       gnus-registry-alist
-                       gnus-registry-headers-alist
                        gnus-killed-list gnus-zombie-list
                        gnus-topic-topology gnus-topic-alist
                        gnus-agent-covered-methods gnus-format-specs)
@@ -2303,10 +2332,6 @@ gnus-newsrc-hashtb should be kept so that both hold the same information.")
   "Assoc list of registry data.
 gnus-registry.el will populate this if it's loaded.")
 
-(defvar gnus-registry-headers-alist nil
-  "Assoc list of registry header data.
-gnus-registry.el will populate this if it's loaded.")
-
 (defvar gnus-newsrc-hashtb nil
   "Hashtable of gnus-newsrc-alist.")
 
@@ -3801,11 +3826,11 @@ current display is used."
          (switch-to-buffer gnus-group-buffer)
        (funcall gnus-other-frame-function arg)
        (add-hook 'gnus-exit-gnus-hook
-                 (lambda nil
-                   (when (and (frame-live-p gnus-other-frame-object)
-                              (cdr (frame-list)))
-                     (delete-frame gnus-other-frame-object))
-                   (setq gnus-other-frame-object nil)))))))
+                 '(lambda nil
+                    (when (and (frame-live-p gnus-other-frame-object)
+                               (cdr (frame-list)))
+                      (delete-frame gnus-other-frame-object))
+                    (setq gnus-other-frame-object nil)))))))
 
 ;;(setq thing ?                                ; this is a comment
 ;;      more 'yes)