From 9e1b4251d15e618eb6ee880a18a723900a1b46af Mon Sep 17 00:00:00 2001 From: Kai Grossjohann Date: Tue, 24 Jul 2001 12:18:30 +0000 Subject: [PATCH] * gnus-delay.el (gnus-delay-default-hour): New variable. (gnus-delay-article): Allow specific date in YYYY-MM-DD format. * gnus.texi (Duplicates): Make split method regexp more specific, in case other `Gnus-Warning' headers are added in the future. Suggested by Karl Kleinpaste. --- lisp/ChangeLog | 5 ++++ lisp/gnus-delay.el | 73 +++++++++++++++++++++++++++++----------------- texi/ChangeLog | 6 ++++ texi/gnus.texi | 2 +- 4 files changed, 58 insertions(+), 28 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f9769ee9f..7c6b17b59 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2001-07-24 Kai Gro,A_(Bjohann + + * gnus-delay.el (gnus-delay-default-hour): New variable. + (gnus-delay-article): Allow specific date in YYYY-MM-DD format. + 2001-07-23 22:00:00 ShengHuo ZHU From Karl Kleinpaste diff --git a/lisp/gnus-delay.el b/lisp/gnus-delay.el index ee02cfae7..ac37224f2 100644 --- a/lisp/gnus-delay.el +++ b/lisp/gnus-delay.el @@ -38,36 +38,55 @@ (defvar gnus-delay-default-delay "3d" "*Default length of delay.") +(defvar gnus-delay-default-hour 8 + "*If deadline is given as date, then assume this time of day.") + (defun gnus-delay-article (delay) "Delay this article by some time. -DELAY is a string, giving the length of the time. Possible values are - for in minutes (`m'), hours (`h'), days (`d'), -weeks (`w'), months (`M'), or years (`Y')." +DELAY is a string, giving the length of the time. Possible values are: + +* for in minutes (`m'), hours (`h'), days (`d'), + weeks (`w'), months (`M'), or years (`Y'); + +* YYYY-MM-DD for a specific date. The time of day is given by the + variable `gnus-delay-default-hour', minute and second are zero." (interactive - (list (read-string "Length of delay (units in [mhdwMY]): " - gnus-delay-default-delay))) - (let (num unit days deadline) - (unless (string-match "\\([0-9]+\\)\\s-*\\([mhdwMY]\\)" delay) - (error "Malformed delay `%s'" delay)) - (setq num (match-string 1 delay)) - (setq unit (match-string 2 delay)) - ;; Start from seconds, then multiply into needed units. - (setq num (string-to-number num)) - (cond ((string= unit "Y") - (setq delay (* num 60 60 24 365))) - ((string= unit "M") - (setq delay (* num 60 60 24 30))) - ((string= unit "w") - (setq delay (* num 60 60 24 7))) - ((string= unit "d") - (setq delay (* num 60 60 24))) - ((string= unit "h") - (setq delay (* num 60 60))) - (t - (setq delay (* num 60)))) - (setq deadline (message-make-date - (seconds-to-time (+ (time-to-seconds (current-time)) - delay)))) + (list (read-string + "Target date (YYYY-MM-DD) or length of delay (units in [mhdwMY]): " + gnus-delay-default-delay))) + (let (num unit days year month day deadline) + (cond ((string-match + "\\([0-9][0-9][0-9]?[0-9]?\\)-\\([0-9]+\\)-\\([0-9]+\\)" + delay) + (setq year (string-to-number (match-string 1 delay)) + month (string-to-number (match-string 2 delay)) + day (string-to-number (match-string 3 delay))) + (setq deadline + (message-make-date + (encode-time 0 0 ; second and minute + gnus-delay-default-hour + day month year)))) + ((string-match "\\([0-9]+\\)\\s-*\\([mhdwMY]\\)" delay) + (setq num (match-string 1 delay)) + (setq unit (match-string 2 delay)) + ;; Start from seconds, then multiply into needed units. + (setq num (string-to-number num)) + (cond ((string= unit "Y") + (setq delay (* num 60 60 24 365))) + ((string= unit "M") + (setq delay (* num 60 60 24 30))) + ((string= unit "w") + (setq delay (* num 60 60 24 7))) + ((string= unit "d") + (setq delay (* num 60 60 24))) + ((string= unit "h") + (setq delay (* num 60 60))) + (t + (setq delay (* num 60)))) + (setq deadline (message-make-date + (seconds-to-time (+ (time-to-seconds (current-time)) + delay))))) + (t (error "Malformed delay `%s'" delay))) (message-add-header (format "%s: %s" gnus-delay-header deadline))) (set-buffer-modified-p t) (nndraft-request-create-group gnus-delay-group) diff --git a/texi/ChangeLog b/texi/ChangeLog index 82b774cb4..e9dfb64d5 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,9 @@ +2001-07-24 Kai Gro,A_(Bjohann + + * gnus.texi (Duplicates): Make split method regexp more specific, + in case other `Gnus-Warning' headers are added in the future. + Suggested by Karl Kleinpaste. + 2001-07-23 22:00:00 ShengHuo ZHU From Karl Kleinpaste diff --git a/texi/gnus.texi b/texi/gnus.texi index b778643b6..0f5114bc7 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -12683,7 +12683,7 @@ methods: Or something like: @lisp (setq nnmail-split-methods - '(("duplicates" "^Gnus-Warning:") + '(("duplicates" "^Gnus-Warning:.*duplicate") ;; Other rules. [...])) @end lisp -- 2.34.1