:link '(custom-manual "(gnus)Article Caching")
:group 'gnus)
+(defgroup gnus-registry nil
+ "Article Registry."
+ :group 'gnus)
+
(defgroup gnus-start nil
"Starting your favorite newsreader."
:group 'gnus)
:link '(custom-manual "(gnus)Exiting Gnus")
:group 'gnus)
-(defconst gnus-version-number "0.13"
+(defconst gnus-version-number "0.17"
"Version number for this version of Gnus.")
(defconst gnus-version (format "Oort Gnus v%s" gnus-version-number)
(defface gnus-summary-high-undownloaded-face
'((((class color)
(background light))
- (:bold t :foreground "cyan4" :bold nil))
+ (:bold t :foreground "cyan4"))
(((class color) (background dark))
- (:bold t :foreground "LightGray" :bold nil))
+ (:bold t :foreground "LightGray"))
(t (:inverse-video t :bold t)))
"Face used for high interest uncached articles.")
"Add the current buffer to the list of Gnus buffers."
(push (current-buffer) gnus-buffers))
+(defmacro gnus-kill-buffer (buffer)
+ "Kill BUFFER and remove from the list of Gnus buffers."
+ `(let ((buf ,buffer))
+ (when (gnus-buffer-exists-p buf)
+ (setq gnus-buffers (delete (get-buffer buf) gnus-buffers))
+ (kill-buffer buf))))
+
(defun gnus-buffers ()
"Return a list of live Gnus buffers."
(while (and gnus-buffers
(defmacro gnus-define-group-parameter (param &rest rest)
"Define a group parameter PARAM.
REST is a plist of following:
-:type One of `bool', `list' or `nil'.
+:type One of `bool', `list' or nil.
:function The name of the function.
:function-document The documentation of the function.
:parameter-type The type for customizing the parameter.
"*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.
-If it is `nil', no confirmation is required."
+If it is nil, no confirmation is required."
:group 'gnus-group-select
:type '(choice (const :tag "No limit" nil)
integer))
:type 'boolean)
(defcustom gnus-shell-command-separator ";"
- "String used to separate to shell commands."
+ "String used to separate shell commands."
:group 'gnus-files
:type 'string)
;; There should be special validation for this.
(define-widget 'gnus-email-address 'string
- "An email address")
+ "An email address.")
(gnus-define-group-parameter
to-address
This number will be prompted as the initial value of the number of
articles to list when the group is a large newsgroup (see
-`gnus-large-newsgroup'). If it is `nil', the default value is the
+`gnus-large-newsgroup'). If it is nil, the default value is the
total number of articles in the group.")
;; group parameters for spam processing added by Ted Zlatanov <tzz@lifelogs.com>
(choice
(variable-item gnus-group-spam-classification-spam)
(variable-item gnus-group-spam-classification-ham)
- (other :tag "Unclassified" nil))))
+ (const :tag "Unclassified" nil))))
:parameter-type '(list :tag "Group contents spam/ham classification"
(choice :tag "Group contents classification for spam sorting"
(variable-item gnus-group-spam-classification-spam)
(variable-item gnus-group-spam-classification-ham)
- (other :tag "Unclassified" nil)))
+ (const :tag "Unclassified" nil)))
:parameter-document
"The spam classification (spam, ham, or neither) of this group.
When a spam group is entered, all unread articles are marked as spam.")
"The BBDB summary exit ham processor.
Only applicable to non-spam (unclassified and ham) groups.")
+ (defvar gnus-group-ham-exit-processor-copy "copy"
+ "The ham copy exit ham processor.
+Only applicable to non-spam (unclassified and ham) groups.")
+
(gnus-define-group-parameter
spam-process
:type list
(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-BBDB)
+ (variable-item gnus-group-ham-exit-processor-copy))))
:function-document
"Which spam or ham processors will be applied to the GROUP articles at summary exit."
:variable gnus-spam-process-newsgroups
(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-BBDB)
+ (variable-item gnus-group-ham-exit-processor-copy))))
:parameter-document
"Which spam processors will be applied to the spam or ham GROUP articles at summary exit.")
spam-process-destination
:parameter-type '(choice :tag "Destination for spam-processed articles at summary exit"
(string :tag "Move to a group")
- (other :tag "Expire" nil))
+ (const :tag "Expire" nil))
:function-document
"Where spam-processed articles will go at summary exit."
:variable gnus-spam-process-destinations
another group, or expire them (the default). If non-nil, this should
be a list of group name regexps that should match all groups in which
to do spam-processed article moving, associated with the destination
-group or `nil' for explicit expiration. This only makes sense for
+group or nil for explicit expiration. This only makes sense for
mail groups."
:variable-group spam
:variable-type '(repeat
(choice
:tag "Destination for spam-processed articles at summary exit"
(string :tag "Move to a group")
- (other :tag "Expire" nil))))
+ (const :tag "Expire" nil))))
:parameter-document
"Where spam-processed articles will go at summary exit.")
:parameter-type '(choice
:tag "Destination for ham articles at summary exit from a spam group"
(string :tag "Move to a group")
- (other :tag "Do nothing" nil))
+ (const :tag "Do nothing" nil))
:function-document
"Where ham articles will go at summary exit from a spam group."
:variable gnus-ham-process-destinations
another group, or do nothing (the default). If non-nil, this should
be a list of group name regexps that should match all groups in which
to do ham article moving, associated with the destination
-group or `nil' for explicit ignoring. This only makes sense for
+group or nil for explicit ignoring. This only makes sense for
mail groups, and only works in spam groups."
:variable-group spam
:variable-type '(repeat
(choice
:tag "Destination for ham articles at summary exit from spam group"
(string :tag "Move to a group")
- (other :tag "Expire" nil))))
+ (const :tag "Expire" nil))))
:parameter-document
"Where ham articles will go at summary exit from a spam group."))
"Whether Gnus is plugged or not.")
(defcustom gnus-agent-cache t
- "Whether Gnus use agent cache.
-You also need to enable `gnus-agent'."
+ "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)
"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-group-charset-alist' variable and is only used on groups not
covered by that variable."
:type 'symbol
:group 'gnus-charset)
(defcustom gnus-other-frame-parameters nil
"Frame parameters used by `gnus-other-frame' to create a Gnus frame.
-This should be an alist for FSF Emacs, or a plist for XEmacs."
+This should be an alist for Emacs, or a plist for XEmacs."
:group 'gnus-start
:type (if (featurep 'xemacs)
'(repeat (list :inline t :format "%v"
(defvar gnus-agent-gcc-header "X-Gnus-Agent-Gcc")
(defvar gnus-agent-meta-information-header "X-Gnus-Agent-Meta-Information")
+(defvar gnus-agent-target-move-group-header "X-Gnus-Agent-Move-To")
(defvar gnus-draft-meta-information-header "X-Draft-From")
(defvar gnus-group-get-parameter-function 'gnus-group-get-parameter)
(defvar gnus-original-article-buffer " *Original Article*")
gnus-article-decode-HZ
gnus-article-wash-html
gnus-article-unsplit-urls
- 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
(defsubst gnus-method-to-full-server-name (method)
(format "%s+%s" (car method) (nth 1 method)))
-(defun gnus-group-prefixed-name (group method)
- "Return the whole name from GROUP and 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)))
(if (or (not method)
- (gnus-server-equal method "native")
+ (and (not full) (gnus-server-equal method "native"))
(string-match ":" group))
group
(concat (gnus-method-to-server-name method) ":" group)))
+(defun gnus-group-guess-prefixed-name (group)
+ "Guess the whole name from GROUP and METHOD."
+ (gnus-group-prefixed-name group (gnus-find-method-for-group
+ group)))
+
+(defun gnus-group-full-name (group method)
+ "Return the full name from GROUP and METHOD, even if the method is
+native."
+ (gnus-group-prefixed-name group method t))
+
+(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)))
+
(defun gnus-group-real-prefix (group)
"Return the prefix of the current group name."
(if (string-match "^[^:]+:" group)
(substring group 0 (match-end 0))
""))
+(defun gnus-summary-buffer-name (group)
+ "Return the summary buffer name of GROUP."
+ (concat "*Summary " (gnus-group-decoded-name group) "*"))
+
(defun gnus-group-method (group)
"Return the server or method used for selecting GROUP.
You should probably use `gnus-find-method-for-group' instead."