When set to ENABLE, the default, `gnus-agent-expire' will expire old
contents from a group's local storage. This value may be overridden
to disable expiration in specific categories, topics, and groups. Of
-course, you could change gnus-agent-enable-expiration to DISABLE then
+course, you could change `gnus-agent-enable-expiration' to DISABLE then
enable expiration per categories, topics, and groups."
:version "22.1"
:group 'gnus-agent
;;;
(defmacro gnus-agent-with-refreshed-group (group &rest body)
- "Performs the body then updates the group's line in the group
-buffer. Automatically blocks multiple updates due to recursion."
+ "Perform the body then update the group's line in the group buffer.
+Automatically block multiple updates due to recursion."
`(prog1 (let ((gnus-agent-inhibit-update-total-fetched-for t)) ,@body)
(when (and gnus-agent-need-update-total-fetched-for
(not gnus-agent-inhibit-update-total-fetched-for))
- (with-current-buffer gnus-group-buffer
- (setq gnus-agent-need-update-total-fetched-for nil)
- (gnus-group-update-group ,group t)))))
+ (with-current-buffer gnus-group-buffer
+ (setq gnus-agent-need-update-total-fetched-for nil)
+ (gnus-group-update-group ,group t)))))
(defun gnus-agent-read-file (file)
"Load FILE and do a `read' there."
(defun gnus-agentize ()
"Allow Gnus to be an offline newsreader.
-The gnus-agentize function is now called internally by gnus when
-gnus-agent is set. If you wish to avoid calling gnus-agentize,
+The `gnus-agentize' function is now called internally by gnus when
+`gnus-agent' is set. If you wish to avoid calling `gnus-agentize',
customize `gnus-agent' to nil.
This will modify the `gnus-setup-news-hook', and
(agent-predicate . gnus-agent-predicate)))))))
(defun gnus-agent-fetch-headers (group)
- "Fetch interesting headers into the agent. The group's overview
-file will be updated to include the headers while a list of available
-article numbers will be returned."
+ "Fetch interesting headers into the agent.
+The group's overview file will be updated to include the headers while a
+list of available article numbers will be returned."
(let* ((fetch-all (and gnus-agent-consider-all-articles
;; Do not fetch all headers if the predicate
;; implies that we only consider unread articles.
(defun gnus-agent-update-files-total-fetched-for (group delta
&optional method path)
- "Update, or set, the total disk space used by the articles that the
-agent has fetched."
+ "Update or set total disk space used by articles that the agent has fetched."
(when gnus-agent-total-fetched-hashtb
(gnus-agent-with-refreshed-group
group
(defun gnus-agent-update-view-total-fetched-for
(group agent-over &optional method path)
- "Update, or set, the total disk space used by the .agentview and
-.overview files. These files are calculated separately as they can be
-modified."
+ "Update or set the total disk space used by the .agentview and .overview files.
+These files are calculated separately as they can be modified."
(when gnus-agent-total-fetched-hashtb
(gnus-agent-with-refreshed-group
group
If ADDRESS matches author's mail address, it will remove things like
advertisements. For example:
-\((\"@yoo-hoo\\\\.co\\\\.jp\\\\\\='\" . \"\\n_+\\nDo You Yoo-hoo!\\\\?\\n.*\\n.*\\n\"))
-"
+\((\"@yoo-hoo\\\\.co\\\\.jp\\\\\\='\" . \"\\n_+\\nDo You Yoo-hoo!\\\\?\\n.*\\n.*\\n\"))"
:type '(repeat
(cons
(regexp :tag "Address")
Gnus provides the following functions:
-* gnus-summary-save-in-rmail (Rmail format)
-* gnus-summary-save-in-mail (Unix mail format)
-* gnus-summary-save-in-folder (MH folder)
-* gnus-summary-save-in-file (article format)
-* gnus-summary-save-body-in-file (article body)
-* gnus-summary-save-in-vm (use VM's folder format)
-* gnus-summary-write-to-file (article format -- overwrite)
-* gnus-summary-write-body-to-file (article body -- overwrite)
-* gnus-summary-save-in-pipe (article format)
+* `gnus-summary-save-in-rmail' (Rmail format)
+* `gnus-summary-save-in-mail' (Unix mail format)
+* `gnus-summary-save-in-folder' (MH folder)
+* `gnus-summary-save-in-file' (article format)
+* `gnus-summary-save-body-in-file' (article body)
+* `gnus-summary-save-in-vm' (use VM's folder format)
+* `gnus-summary-write-to-file' (article format -- overwrite)
+* `gnus-summary-write-body-to-file' (article body -- overwrite)
+* `gnus-summary-save-in-pipe' (article format)
The symbol of each function may have the following properties:
(setcdr type (cons (cons 'charset charset) (cdr type)))))))
(defun gnus-mime-view-part-as-charset (&optional handle arg event)
- "Insert the MIME part under point into the current buffer using the
-specified charset."
+ "Insert MIME part under point into current buffer using specified charset."
(interactive (list nil current-prefix-arg last-nonmenu-event)
gnus-article-mode)
(save-excursion
(point)))))))
(defun gnus-block-private-groups (group)
- "Allows images in newsgroups to be shown, blocks images in all
-other groups."
+ "Allows images in newsgroups to be shown, blocks images in all other groups."
(if (or (gnus-news-group-p group)
(gnus-member-of-valid 'global group)
(member group gnus-global-groups))
(define-derived-mode gnus-article-edit-mode message-mode "Article Edit"
"Major mode for editing articles.
-This is an extended text-mode.
+This is an extended `text-mode'.
\\{gnus-article-edit-mode-map}"
(make-local-variable 'gnus-article-edit-done-function)
;;; Commentary:
;; This package provides utility functions for intersections of gnus
-;; and dired. To enable the gnus-dired-mode minor mode which will
+;; and Dired. To enable the gnus-dired-mode minor mode which will
;; have the effect of installing keybindings in dired-mode, place the
;; following in your ~/.gnus:
;; (require 'gnus-dired) ;, isn't needed due to autoload cookies
;; (add-hook 'dired-mode-hook #'turn-on-gnus-dired-mode)
-;; Note that if you visit dired buffers before your ~/.gnus file has
-;; been read, those dired buffers won't have the keybindings in
+;; Note that if you visit Dired buffers before your ~/.gnus file has
+;; been read, those Dired buffers won't have the keybindings in
;; effect. To get around that problem, you may want to add the above
;; statements to your ~/.emacs instead.
(function :tag "Other")))
(define-minor-mode gnus-dired-mode
- "Minor mode for intersections of gnus and dired.
+ "Minor mode for intersections of gnus and Dired.
\\{gnus-dired-mode-map}"
:keymap gnus-dired-mode-map
;; Method to attach files to a mail composition.
(defun gnus-dired-attach (files-to-attach)
- "Attach dired's marked files to a gnus message composition.
+ "Attach Dired's marked files to a gnus message composition.
If called non-interactively, FILES-TO-ATTACH should be a list of
filenames."
(interactive
(autoload 'mailcap-parse-mailcaps "mailcap" "" t)
(defun gnus-dired-find-file-mailcap (&optional file-name arg)
- "In dired, visit FILE-NAME according to the mailcap file.
+ "In Dired, visit FILE-NAME according to the mailcap file.
If ARG is non-nil, open it in a new buffer."
(interactive (list
(file-name-sans-versions (dired-get-filename) t)
"File no longer exists; type \\`g' to update Dired buffer")))))
(defun gnus-dired-print (&optional file-name print-to)
- "In dired, print FILE-NAME according to the mailcap file.
+ "In Dired, print FILE-NAME according to the mailcap file.
If there is no print command, print in a PostScript image. If the
optional argument PRINT-TO is nil, send the image to the printer.
created.
This command uses the process/prefix convention, so if you
-process-mark several articles, they will all be attached."
+`process-mark' several articles, they will all be attached."
(interactive "P" gnus-summary-mode)
(let ((buffers (message-buffers))
destination)
* `(regexp file-name ...)'
If the `regexp' matches the group name, the first `file-name'
will be used as the home score file. (Multiple filenames are
- allowed so that one may use gnus-score-file-single-match-alist to
+ allowed so that one may use `gnus-score-file-single-match-alist' to
set this variable.)
* A function.
'gnus-search-ignored-newsgroups "28.1")
(defcustom gnus-search-ignored-newsgroups ""
- "A regexp to match newsgroups in the active file that should
-be skipped when searching."
+ "Regexp matching newsgroups in the active file to skip when searching."
:version "24.1"
:type 'regexp)
(defcustom gnus-search-mu-switches nil
"A list of strings, to be given as additional arguments to mu.
-Note that this should be a list. I.e., do NOT use the following:
+Note that this should be a list. I.e., do NOT use the following:
(setq gnus-search-mu-switches \"-u -r\")
Instead, use this:
(setq gnus-search-mu-switches \\='(\"-u\" \"-r\"))
(defcustom gnus-search-mu-remove-prefix (expand-file-name "~/Mail/")
"A prefix to remove from the mu results to get a group name.
-Usually this will be set to the path to your mail directory. This
+Usually this will be set to the path to your mail directory. This
can also be set per-server."
:version "29.1"
:type 'directory)
(defun gnus-search-thread (header &optional group server)
"Find articles in the thread containing HEADER from GROUP on SERVER.
-If gnus-refer-thread-use-search is nil only the current group is
+If `gnus-refer-thread-use-search' is nil only the current group is
checked for articles; if t all groups on the server containing
the article's group will be searched; if a list then all servers
in this list will be searched. If possible the newly found
For example:
\(gnus-sieve-string-list \\='(\"to\" \"cc\"))
- => \"[\\\"to\\\", \\\"cc\\\"]\"
-"
+ => \"[\\\"to\\\", \\\"cc\\\"]\""
(concat "[\"" (mapconcat #'identity list "\", \"") "\"]"))
(defun gnus-sieve-test-list (list)
(sit-for 0))
(defcustom message-beginning-of-line t
- "Whether \\<message-mode-map>\\[message-beginning-of-line]\
- goes to beginning of header values."
+ "Whether \\<message-mode-map>\\[message-beginning-of-line] goes to beginning of header values."
:version "22.1"
:group 'message-buffers
:link '(custom-manual "(message)Movement")
When called without a prefix argument, header value spanning
multiple lines is treated as a single line. Otherwise, even if
N is 1, when point is on a continuation header line, it will be
-moved to the beginning "
+moved to the beginning."
(interactive "^p" message-mode)
(cond
;; Go to beginning of header or beginning of line.
;;; Commentary:
-;; Some code is stolen from w3 and url packages. Some are moved from
+;; Some code is stolen from w3 and url packages. Some are moved from
;; nnweb.
;; TODO: Support POST, cookie.
(delete-region b (+ b 2)))))))
(defvar mm-w3m-setup nil
- "Whether gnus-article-mode has been setup to use emacs-w3m.")
+ "Whether `gnus-article-mode' has been setup to use emacs-w3m.")
;; External.
(declare-function w3m-detect-meta-charset "ext:w3m" ())
(declare-function w3m-region "ext:w3m" (start end &optional url charset))
(defun mm-setup-w3m ()
- "Setup gnus-article-mode to use emacs-w3m."
+ "Setup `gnus-article-mode' to use emacs-w3m."
(unless mm-w3m-setup
(require 'w3m)
(unless (assq 'gnus-article-mode w3m-cid-retrieve-function-alist)
;;; Configuration/helper functions
(defun mml-signencrypt-style (method &optional style)
- "Function for setting/getting the signencrypt-style used. Takes two
-arguments, the method (e.g. \"pgp\") and optionally the mode
-\(e.g. combined). If the mode is omitted, the current value is returned.
+ "Function for setting/getting the signencrypt-style used.
+Takes two arguments, the method (e.g. \"pgp\") and optionally the mode
+\(e.g. combined). If the mode is omitted, the current value is
+returned.
For example, if you prefer to use combined sign & encrypt with
smime, putting the following in your Gnus startup file will
;; ===========
;; nndiary is a mail back end designed to handle mails as diary event
-;; reminders. It is now fully documented in the Gnus manual.
+;; reminders. It is now fully documented in the Gnus manual.
;; Bugs / Todo:
;; * We could allow a keyword like `ask' in X-Diary-* headers, that would mean
;; "ask for value upon reception of the message".
;; * We could add an optional header X-Diary-Reminders to specify a special
-;; reminders value for this message. Suggested by Jody Klymak.
+;; reminders value for this message. Suggested by Jody Klymak.
;; * We should check messages validity in other circumstances than just
-;; moving an article from somewhere else (request-accept). For instance,
+;; moving an article from somewhere else (request-accept). For instance,
;; when editing / saving and so on.
;; Remarks:
;; =======
-;; * nnoo. NNDiary is very similar to nnml. This makes the idea of using nnoo
-;; (to derive nndiary from nnml) natural. However, my experience with nnoo
+;; * nnoo. NNDiary is very similar to nnml. This makes the idea of using nnoo
+;; (to derive nndiary from nnml) natural. However, my experience with nnoo
;; is that for reasonably complex back ends like this one, nnoo is a burden
-;; rather than an help. It's tricky to use, not everything can be inherited,
+;; rather than an help. It's tricky to use, not everything can be inherited,
;; what can be inherited and when is not very clear, and you've got to be
;; very careful because a little mistake can fuck up your other back ends,
;; especially because their variables will be use instead of your real ones.
;; IMHO, nnoo is actually badly designed. A much simpler, and yet more
;; powerful one would be to make *real* functions and variables for a new
-;; back end based on another. Lisp is a reflexive language so that's a very
+;; back end based on another. Lisp is a reflexive language so that's a very
;; easy thing to do: inspect the function's form, replace occurrences of
;; <nnfrom> (even in strings) with <nnto>, and you're done.
;; * nndiary-get-new-mail, nndiary-mail-source and nndiary-split-methods:
;; NNDiary has some experimental parts, in the sense Gnus normally uses only
-;; one mail back ends for mail retrieval and splitting. This back end is
-;; also an attempt to make it behave differently. For Gnus developers: as
+;; one mail back ends for mail retrieval and splitting. This back end is
+;; also an attempt to make it behave differently. For Gnus developers: as
;; you can see if you snarf into the code, that was not a very difficult
-;; thing to do. Something should be done about the respooling breakage
+;; thing to do. Something should be done about the respooling breakage
;; though.
(defvoo nnimap-server-port nil
"The IMAP port used.
-If nnimap-stream is `ssl', this will default to `imaps'. If not,
+If `nnimap-stream' is `ssl', this will default to `imaps'. If not,
it will default to `imap'.")
(defvoo nnimap-use-namespaces nil
If in Gnus your folder names in all start with (e.g.) `INBOX',
you probably want to set this to t. The effects of this are
purely cosmetic, but changing this variable will affect the
-names of your nnimap groups. ")
+names of your nnimap groups.")
(defvoo nnimap-stream 'undecided
"How nnimap talks to the IMAP server.
(defvoo nnimap-expunge 'on-exit
"When to expunge deleted messages.
If `never', deleted articles are marked with the IMAP \\Delete
-flag but not automatically expunged. If `immediately', deleted
+flag but not automatically expunged. If `immediately', deleted
articles are immediately expunged (this requires the server to
-support the UID EXPUNGE command). If `on-exit', deleted articles
+support the UID EXPUNGE command). If `on-exit', deleted articles
are flagged, and all flagged articles are expunged when the group
is closed.
For backwards compatibility, this variable may also be set to t
-or nil. If the server supports UID EXPUNGE, both t and nil are
-equivalent to `immediately'. If the server does not support UID
+or nil. If the server supports UID EXPUNGE, both t and nil are
+equivalent to `immediately'. If the server does not support UID
EXPUNGE nil is equivalent to `never', while t will immediately
expunge ALL articles that are currently flagged as deleted
(i.e., potentially not only the article that was just deleted).")
(defvar nnmail-incoming-coding-system
mm-text-coding-system
- "Coding system used in reading inbox")
+ "Coding system used in reading inbox.")
(defcustom nnmail-pathname-coding-system nil
"Coding system for file name."
:type 'regexp)
(defun nnmail-ignore-broken-references ()
- "Ignore the References line and use In-Reply-To
+ "Ignore the References line and use In-Reply-To.
Eudora has a broken References line, but an OK In-Reply-To."
(goto-char (point-min))
;; Commentary on the code: nnmairix sits between Gnus and the "real"
;; back end which handles the mail (currently nnml, nnimap and
-;; nnmaildir were tested). I know this is all a bit hacky, but so far
+;; nnmaildir were tested). I know this is all a bit hacky, but so far
;; it works for me. This is the first back end I've written for Gnus,
;; so I'd appreciate any comments, suggestions, bug reports (and, of
;; course, patches) for improving nnmairix.
its maildir mail folders (e.g. the Dovecot IMAP server or mutt).")
(defvoo nnmairix-default-group nil
- "Default search group. This is the group which is used for all
-temporary searches, e.g. nnmairix-search.")
+ "Default search group.
+This is the group which is used for all temporary searches,
+e.g. nnmairix-search.")
;;; === Internal variables
(defvar nntp--report-1 nil)
(defun nntp-report (&rest args)
- "Report an error from the nntp backend. The first string in ARGS
-can be a format string. For some commands, the failed command may be
-retried once before actually displaying the error report."
+ "Report an error from the nntp backend.
+The first string in ARGS can be a format string. For some commands, the
+failed command may be retried once before actually displaying the error
+report."
(if nntp--report-1
(progn
;; Throw out to nntp-with-open-group-error so that the connection may
(defun nnvirtual-update-read-and-marked (read-p update-p)
"Copy marks from the virtual group to the component groups.
If READ-P is not nil, update the (un)read status of the components.
-If UPDATE-P is not nil, call gnus-group-update-group on the components."
+If UPDATE-P is not nil, call `gnus-group-update-group' on the
+components."
(when nnvirtual-current-group
(let ((unreads (and read-p
(nnvirtual-partition-sequence
(defun nnvirtual-partition-sequence (articles)
"Return an association list of component article numbers.
-These are indexed by elements of nnvirtual-component-groups, based on
+These are indexed by elements of `nnvirtual-component-groups', based on
the sequence ARTICLES of virtual article numbers. ARTICLES should be
sorted, and can be a compressed sequence. If any of the article
numbers has no corresponding component article, then it is left out of
:type '(repeat sexp))
(defcustom spam-stat-process-directory-age 90
- "Max. age of files to be processed in directory, in days.
+ "Maximum age of files to be processed in directory, in days.
When using `spam-stat-process-spam-directory' or
`spam-stat-process-non-spam-directory', only files that have
been touched in this many days will be considered. Without
:type 'integer)
(defvar spam-stat-last-saved-at nil
- "Time stamp of last change of spam-stat-file on this run")
+ "Time stamp of last change of `spam-stat-file' on this run.")
(defvar spam-stat-syntax-table
(let ((table (copy-syntax-table text-mode-syntax-table)))
;; Saving and Loading
(defun spam-stat-save (&optional force)
- "Save the `spam-stat' hash table as lisp file.
+ "Save the `spam-stat' hash table as Lisp file.
With a prefix argument save unconditionally."
(interactive "P")
(when (or force spam-stat-dirty)
(add-hook 'bbdb-change-hook #'spam-clear-cache-BBDB))
(defun spam-enter-ham-BBDB (addresses &optional remove)
- "Enter an address into the BBDB; implies ham (non-spam) sender"
+ "Enter an address into the BBDB; implies ham (non-spam) sender."
(dolist (from addresses)
(when (stringp from)
(let* ((parsed-address (gnus-extract-address-components from))
(bbdb-gethash (downcase net))))
(defun spam-check-BBDB ()
- "Mail from people in the BBDB is classified as ham or non-spam"
+ "Mail from people in the BBDB is classified as ham or non-spam."
(let ((net (message-fetch-field "from")))
(when net
(setq net (nth 1 (gnus-extract-address-components net)))