summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2019-08-10 08:44:31 -0700
committerGlenn Morris <rgm@gnu.org>2019-08-10 08:44:31 -0700
commitf47fc426df57aef9f5d9b52578bf183ef9c8d47f (patch)
tree242f2bc9dd6f696c48465789ea8b2e25838b7d41
parentce26bb35391c82f4aadc557e22a504a60d0c19d7 (diff)
parente7818cb73ff042cb557332c7ea954fd512c87f69 (diff)
downloademacs-f47fc426df57aef9f5d9b52578bf183ef9c8d47f.tar.gz
Merge from origin/emacs-26
e7818cb Fix nnmail-expiry-wait docs and custom :types 8b7c776 * lisp/simple.el (kill-do-not-save-duplicates): Doc fix. (Bu...
-rw-r--r--doc/misc/gnus.texi50
-rw-r--r--lisp/gnus/gnus-cus.el8
-rw-r--r--lisp/gnus/nnmail.el35
-rw-r--r--lisp/simple.el2
4 files changed, 51 insertions, 44 deletions
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index dcba47aca05..32d98abd7e3 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -2916,9 +2916,9 @@ See also @code{gnus-total-expirable-newsgroups}.
If the group parameter has an element that looks like
@code{(expiry-wait . 10)}, this value will override any
@code{nnmail-expiry-wait} and @code{nnmail-expiry-wait-function}
-(@pxref{Expiring Mail}) when expiring expirable messages. The value
-can either be a number of days (not necessarily an integer) or the
-symbols @code{never} or @code{immediate}.
+settings (@pxref{Expiring Mail}) when expiring expirable messages.
+The value can be either a number of days (not necessarily an integer),
+or one of the symbols @code{never} or @code{immediate}.
@item expiry-target
@cindex expiry-target
@@ -15878,40 +15878,46 @@ don't really mix very well.
@vindex nnmail-expiry-wait
The @code{nnmail-expiry-wait} variable supplies the default time an
-expirable article has to live. Gnus starts counting days from when the
-message @emph{arrived}, not from when it was sent. The default is seven
-days.
+expirable article has to live. The value of this variable can be
+either a number of days (not necessarily an integer), or one of the
+symbols @code{immediate} or @code{never}, meaning an article is
+immediately or never expirable, respectively.
-Gnus also supplies a function that lets you fine-tune how long articles
-are to live, based on what group they are in. Let's say you want to
-have one month expiry period in the @samp{mail.private} group, a one day
-expiry period in the @samp{mail.junk} group, and a six day expiry period
-everywhere else:
+Gnus starts counting days from when the message @emph{arrived}, not
+from when it was sent. The default is seven days.
@vindex nnmail-expiry-wait-function
+The @code{nnmail-expiry-wait-function} variable lets you fine-tune how
+long articles are to live, based on what group they are in. When set
+to a function, its returned value, if non-@code{nil}, overrides that
+of @code{nnmail-expiry-wait}. Otherwise, the value of
+@code{nnmail-expiry-wait} is used instead.
+
+For example, let's say you want to have a one month expiry period in
+the @samp{mail.private} group, a one day expiry period in the
+@samp{mail.junk} group, and a six day expiry period everywhere else.
+This can be achieved as follows:
+
@lisp
(setq nnmail-expiry-wait-function
(lambda (group)
- (cond ((string= group "mail.private")
+ (cond ((string= group "mail.private")
31)
- ((string= group "mail.junk")
+ ((string= group "mail.junk")
1)
- ((string= group "important")
+ ((string= group "important")
'never)
- (t
+ (t
6))))
@end lisp
The group names this function is fed are ``unadorned'' group
names---no @samp{nnml:} prefixes and the like.
-The @code{nnmail-expiry-wait} variable and
-@code{nnmail-expiry-wait-function} function can either be a number (not
-necessarily an integer) or one of the symbols @code{immediate} or
-@code{never}.
-
-You can also use the @code{expiry-wait} group parameter to selectively
-change the expiry period (@pxref{Group Parameters}).
+As an alternative to the variables @code{nnmail-expiry-wait} or
+@code{nnmail-expiry-wait-function}, you can also use the
+@code{expiry-wait} group parameter to selectively change the expiry
+period (@pxref{Group Parameters}).
@vindex nnmail-expiry-target
The normal action taken when expiring articles is to delete them.
diff --git a/lisp/gnus/gnus-cus.el b/lisp/gnus/gnus-cus.el
index 3598ead7613..a4daf8cf483 100644
--- a/lisp/gnus/gnus-cus.el
+++ b/lisp/gnus/gnus-cus.el
@@ -140,10 +140,10 @@ rules as described later).")
:format "%v")) "\
When to expire.
-Overrides any `nnmail-expiry-wait' and `nnmail-expiry-wait-function'
-when expiring expirable messages. The value can either be a number of
-days (not necessarily an integer) or the symbols `never' or
-`immediate'.")
+Overrides any `nnmail-expiry-wait' or `nnmail-expiry-wait-function'
+settings when expiring expirable messages. The value can be
+either a number of days (not necessarily an integer), or one of
+the symbols `never' or `immediate'.")
(expiry-target (choice :tag "Expiry Target"
:value delete
diff --git a/lisp/gnus/nnmail.el b/lisp/gnus/nnmail.el
index de6b01774d6..33912f8cfa2 100644
--- a/lisp/gnus/nnmail.el
+++ b/lisp/gnus/nnmail.el
@@ -157,32 +157,33 @@ If nil, groups like \"mail.misc\" will end up in directories like
(defcustom nnmail-expiry-wait 7
"Expirable articles that are older than this will be expired.
-This variable can either be a number (which will be interpreted as a
-number of days) -- this doesn't have to be an integer. This variable
-can also be `immediate' and `never'."
+This variable can be either a number of days (not necessarily an
+integer), or one of the symbols `immediate' or `never', meaning
+an article is immediately or never expirable, respectively.
+For more granular control, see `nnmail-expiry-wait-function'."
:group 'nnmail-expire
- :type '(choice (const immediate)
- (number :tag "days")
- (const never)))
+ :type '(choice (const :tag "Immediate" immediate)
+ (const :tag "Never" never)
+ (number :tag "Days")))
(defcustom nnmail-expiry-wait-function nil
- "Variable that holds function to specify how old articles should be before they are expired.
-The function will be called with the name of the group that the expiry
-is to be performed in, and it should return an integer that says how
-many days an article can be stored before it is considered \"old\".
-It can also return the values `never' and `immediate'.
+ "Function to determine how old articles should be before they are expired.
+The function is called with the name of the group that the expiry
+is to be performed in, and should return a value supported by
+`nnmail-expiry-wait', which it overrides. If this variable is
+nil, the value of `nnmail-expiry-wait' is used instead.
E.g.:
\(setq nnmail-expiry-wait-function
- (lambda (newsgroup)
- (cond ((string-match \"private\" newsgroup) 31)
- ((string-match \"junk\" newsgroup) 1)
- ((string-match \"important\" newsgroup) \\='never)
- (t 7))))"
+ (lambda (group)
+ (cond ((string-match-p \"private\" group) 31)
+ ((string-match-p \"junk\" group) 1)
+ ((string-match-p \"important\" group) \\='never)
+ (t 7))))"
:group 'nnmail-expire
:type '(choice (const :tag "nnmail-expiry-wait" nil)
- (function :format "%v" nnmail-)))
+ (function :tag "Custom function")))
(defcustom nnmail-expiry-target 'delete
"Variable that says where expired messages should end up.
diff --git a/lisp/simple.el b/lisp/simple.el
index da20de4ad9c..3c5ea1ca75a 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -4461,7 +4461,7 @@ retrieved via \\[yank] \\[yank-pop]."
:version "23.2")
(defcustom kill-do-not-save-duplicates nil
- "Do not add a new string to `kill-ring' if it duplicates the last one.
+ "If non-nil, don't add a string to `kill-ring' if it duplicates the last one.
The comparison is done using `equal-including-properties'."
:type 'boolean
:group 'killing