]> git.eshelyaron.com Git - emacs.git/commitdiff
(timer-set-time): Don't set usecs to nil.
authorRichard M. Stallman <rms@gnu.org>
Sun, 24 Mar 1996 02:05:38 +0000 (02:05 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sun, 24 Mar 1996 02:05:38 +0000 (02:05 +0000)
(timer-duration): Return nil if junk at end of string.
Handle just a number--treat it as number of seconds.

lisp/timer.el

index 95e41965fce2551d4dc1777a25acad89f4131558..bbf59d185d6bc0f85fee98a35cf750e4e10844e7 100644 (file)
@@ -51,7 +51,9 @@ fire repeatedly that many seconds apart."
       (error "Invalid timer"))
   (aset timer 1 (car time))
   (aset timer 2 (if (consp (cdr time)) (car (cdr time)) (cdr time)))
-  (aset timer 3 (if (consp (cdr time)) (nth 2 time) 0))
+  (aset timer 3 (or (and (consp (cdr time)) (consp (cdr (cdr time)))
+                        (nth 2 time))
+                   0))
   (aset timer 4 (and (numberp delta) (> delta 0) delta))
   timer)
 
@@ -216,7 +218,9 @@ fire repeatedly that many seconds apart."
          ;; Delete from queue.
          (cancel-timer timer)
          ;; Run handler
-         (apply (aref timer 5) (aref timer 6))
+         (condition-case nil
+             (apply (aref timer 5) (aref timer 6))
+           (error nil))
          ;; Re-schedule if requested.
          (if (aref timer 4)
              (if (aref timer 7)
@@ -391,7 +395,10 @@ If the user does not answer after SECONDS seconds, return DEFAULT-VALUE."
                  secs (+ secs (* count itemsize)))
          (setq secs nil
                start (length string)))))
-    secs))
+    (if (= start (length string))
+       secs
+      (if (string-match "\\`[0-9.]+\\'" string)
+         (string-to-number string)))))
 \f
 (provide 'timer)