Synch with Oort Gnus.
authoryamaoka <yamaoka>
Tue, 24 Jul 2001 12:49:50 +0000 (12:49 +0000)
committeryamaoka <yamaoka>
Tue, 24 Jul 2001 12:49:50 +0000 (12:49 +0000)
lisp/ChangeLog
lisp/gnus-delay.el
texi/ChangeLog
texi/gnus-ja.texi
texi/gnus.texi

index 24b4654..5cd1142 100644 (file)
@@ -1,3 +1,8 @@
+2001-07-24  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+       * 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  <zsh@cs.rochester.edu>
        From Karl Kleinpaste <karl@charcoal.com>
 
index b0146fa..797c2e9 100644 (file)
 (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
-<digits><units> for <units> 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:
+
+* <digits><units> for <units> 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)
index 82b774c..e9dfb64 100644 (file)
@@ -1,3 +1,9 @@
+2001-07-24  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+       * 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  <zsh@cs.rochester.edu>
        From Karl Kleinpaste <karl@charcoal.com>
 
index ea04c40..694fa06 100644 (file)
@@ -11980,7 +11980,7 @@ Quoted Readable \e$BId9f2=$rI|9f2=$7$^$9!#\e(B
 \e$B$b$7$/$O<!$N$h$&$J$b$N\e(B:
 @lisp
 (setq nnmail-split-methods
-      '(("duplicates" "^Gnus-Warning:")
+      '(("duplicates" "^Gnus-Warning:.*duplicate")
         ;; \e$BB>$NK!B'!#\e(B
         [...]))
 @end lisp
index 0b4ef32..6d06468 100644 (file)
@@ -12659,7 +12659,7 @@ methods:
 Or something like:
 @lisp
 (setq nnmail-split-methods
-      '(("duplicates" "^Gnus-Warning:")
+      '(("duplicates" "^Gnus-Warning:.*duplicate")
         ;; Other rules.
         [...]))
 @end lisp