(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
:link '(custom-manual "(gnus)Exiting Gnus")
:group 'gnus)
-(defconst gnus-version-number "0.17"
+(defconst gnus-version-number "5.10.2"
"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
When a spam group is entered, all unread articles are marked as spam.")
(defvar gnus-group-spam-exit-processor-ifile "ifile"
- "The ifile summary exit spam processor.
-Only applicable to spam groups.")
+ "The ifile summary exit spam processor.")
(defvar gnus-group-spam-exit-processor-stat "stat"
- "The spam-stat summary exit spam processor.
-Only applicable to spam groups.")
+ "The spam-stat summary exit spam processor.")
(defvar gnus-group-spam-exit-processor-bogofilter "bogofilter"
- "The Bogofilter summary exit spam processor.
-Only applicable to spam groups.")
+ "The Bogofilter summary exit spam processor.")
(defvar gnus-group-spam-exit-processor-blacklist "blacklist"
- "The Blacklist summary exit spam processor.
-Only applicable to spam groups.")
+ "The Blacklist summary exit spam processor.")
+
+ (defvar gnus-group-spam-exit-processor-report-gmane "report-gmane"
+ "The Gmane reporting summary exit spam processor.
+Only applicable to NNTP groups with articles from Gmane. See spam-report.el")
(defvar gnus-group-ham-exit-processor-ifile "ifile-ham"
"The ifile summary exit ham processor.
(variable-item gnus-group-spam-exit-processor-stat)
(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-ham-exit-processor-bogofilter)
(variable-item gnus-group-ham-exit-processor-ifile)
(variable-item gnus-group-ham-exit-processor-stat)
"*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"
(variable-item gnus-group-spam-exit-processor-stat)
(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-ham-exit-processor-bogofilter)
(variable-item gnus-group-ham-exit-processor-ifile)
(variable-item gnus-group-ham-exit-processor-stat)
: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
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)
"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.")
(format "%s+%s" (car method) (nth 1 method)))
(defun gnus-group-prefixed-name (group method &optional full)
- "Return the whole name from GROUP and METHOD. Call with full set to
-get the fully qualified group name (even if the server is native)."
- (and (stringp method) (setq method (gnus-server-to-method method)))
+ "Return the whole name from GROUP and METHOD.
+Call with full set to get the fully qualified group name (even if the
+server is native)."
+ (when (stringp method)
+ (setq method (gnus-server-to-method method)))
(if (or (not method)
(and (not full) (gnus-server-equal method "native"))
- (string-match ":" group))
+ ;;;!!! This might not be right. We'll see...
+ ;(string-match ":" group)
+ )
group
(concat (gnus-method-to-server-name method) ":" group)))
(defun gnus-group-guess-full-name (group)
"Guess the full name from GROUP, even if the method is native."
- (gnus-group-full-name group (gnus-find-method-for-group group)))
+ (if (gnus-group-prefixed-p group)
+ group
+ (gnus-group-full-name group (gnus-find-method-for-group group))))
(defun gnus-group-real-prefix (group)
"Return the prefix of the current group name."
(substring group 0 (match-end 0))
""))
+(defun gnus-group-short-name (group)
+ "Return the short group name."
+ (let ((prefix (gnus-group-real-prefix group)))
+ (if (< 0 (length prefix))
+ (substring group (length prefix) nil)
+ group)))
+
+(defun gnus-group-prefixed-p (group)
+ "Return the prefix of the current group name."
+ (< 0 (length (gnus-group-real-prefix group))))
+
(defun gnus-summary-buffer-name (group)
"Return the summary buffer name of GROUP."
(concat "*Summary " (gnus-group-decoded-name group) "*"))