]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix two more minor Gnus typos
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 21 Oct 2017 02:16:29 +0000 (19:16 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 21 Oct 2017 02:17:04 +0000 (19:17 -0700)
* lisp/gnus/mail-source.el (mail-source-delete-old-incoming):
The old code had two minor bugs: first, it multiplied by 1/65536
instead of by 1/86400.  Second, it called current-time twice and
glued part of the two results together, resulting in a race.
Fix both bugs by simplifying the code and using
time-to-number-of-days.

lisp/gnus/mail-source.el

index 3befd46620e0bd79d3fef97632f680d84546211a..93f03be72d00a00d8deac977b275a765fb8ddd2e 100644 (file)
@@ -591,25 +591,21 @@ Return the number of files that were found."
 If CONFIRM is non-nil, ask for confirmation before removing a file."
   (interactive "P")
   (require 'gnus-util)
-  (let* ((high2days (/ 65536.0 60 60 24));; convert high bits to days
-        (low2days  (/ 1.0 65536.0))     ;; convert low bits to days
+  (let* ((now (current-time))
         (diff (if (natnump age) age 30));; fallback, if no valid AGE given
-        currday files)
+        files)
     (setq files (directory-files
                 mail-source-directory t
                 (concat "\\`"
-                        (regexp-quote mail-source-incoming-file-prefix)))
-         currday (* (car (current-time)) high2days)
-         currday (+ currday (* low2days (nth 1 (current-time)))))
+                        (regexp-quote mail-source-incoming-file-prefix))))
     (while files
       (let* ((ffile (car files))
             (bfile (replace-regexp-in-string "\\`.*/\\([^/]+\\)\\'" "\\1"
                                              ffile))
-            (filetime (nth 5 (file-attributes ffile)))
-            (fileday (* (car filetime) high2days))
-            (fileday (+ fileday (* low2days (nth 1 filetime)))))
+            (filetime (nth 5 (file-attributes ffile))))
        (setq files (cdr files))
-       (when (and (> (- currday fileday) diff)
+       (when (and (> (time-to-number-of-days (time-subtract now filetime))
+                     diff)
                   (if confirm
                       (y-or-n-p
                        (format-message "\