emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master efb2146: Fix 'timer-next-integral-multiple-of-time'


From: Eli Zaretskii
Subject: [Emacs-diffs] master efb2146: Fix 'timer-next-integral-multiple-of-time'
Date: Sat, 20 Oct 2018 05:53:54 -0400 (EDT)

branch: master
commit efb214622a0f4e077c09e721d134552dfe76ef70
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>

    Fix 'timer-next-integral-multiple-of-time'
    
    * lisp/emacs-lisp/timer.el
    (timer-next-integral-multiple-of-time): Fix recent change for
    fractional values of SECS.  (Bug#33071)
    * test/lisp/emacs-lisp/timer-tests.el
    (timer-next-integral-multiple-of-time-2): New test.
---
 lisp/emacs-lisp/timer.el            | 2 +-
 test/lisp/emacs-lisp/timer-tests.el | 8 ++++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/lisp/emacs-lisp/timer.el b/lisp/emacs-lisp/timer.el
index 927e640..e140738 100644
--- a/lisp/emacs-lisp/timer.el
+++ b/lisp/emacs-lisp/timer.el
@@ -101,7 +101,7 @@ of SECS seconds since the epoch.  SECS may be a fraction."
                       time
                     (encode-time time 1000000000000)))
         (hz (cdr ticks-hz))
-        (s-ticks (* secs hz))
+        (s-ticks (round (* secs hz)))
         (more-ticks (+ (car ticks-hz) s-ticks)))
     (encode-time (cons (- more-ticks (% more-ticks s-ticks)) hz))))
 
diff --git a/test/lisp/emacs-lisp/timer-tests.el 
b/test/lisp/emacs-lisp/timer-tests.el
index c5971ee..7a5b926 100644
--- a/test/lisp/emacs-lisp/timer-tests.el
+++ b/test/lisp/emacs-lisp/timer-tests.el
@@ -44,4 +44,12 @@
           (timer-next-integral-multiple-of-time '(0 0 0 1) (1+ (ash 1 53)))
           (list (ash 1 (- 53 16)) 1))))
 
+(ert-deftest timer-next-integral-multiple-of-time-2 ()
+  "Test bug#33071."
+  (let* ((tc (current-time))
+         (tce (encode-time tc 100))
+         (nt (timer-next-integral-multiple-of-time tc 0.01))
+         (nte (encode-time nt 100)))
+    (should (= (car nte) (1+ (car tce))))))
+
 ;;; timer-tests.el ends here



reply via email to

[Prev in Thread] Current Thread [Next in Thread]