diff options
author | Tom Tromey <tromey@redhat.com> | 2013-08-19 21:53:07 -0600 |
---|---|---|
committer | Tom Tromey <tromey@redhat.com> | 2013-08-19 21:53:07 -0600 |
commit | 6d75555c5cc3d2a629646cee7629e67530fa7a36 (patch) | |
tree | 3852804dd234ad613ea8691332e10b92c027e87d /lisp/emacs-lisp/timer.el | |
parent | cc231cbe45d27a1906d268fb72d3b4105a2e9c65 (diff) | |
parent | 8c2f38aaab7a7a2f0605416fc2ee38701e41ab61 (diff) | |
download | emacs-6d75555c5cc3d2a629646cee7629e67530fa7a36.tar.gz emacs-6d75555c5cc3d2a629646cee7629e67530fa7a36.tar.bz2 emacs-6d75555c5cc3d2a629646cee7629e67530fa7a36.zip |
merge from trunk
Diffstat (limited to 'lisp/emacs-lisp/timer.el')
-rw-r--r-- | lisp/emacs-lisp/timer.el | 34 |
1 files changed, 16 insertions, 18 deletions
diff --git a/lisp/emacs-lisp/timer.el b/lisp/emacs-lisp/timer.el index 0aa31f717ed..1ee3cec15a6 100644 --- a/lisp/emacs-lisp/timer.el +++ b/lisp/emacs-lisp/timer.el @@ -55,31 +55,29 @@ (defsubst timer--check (timer) (or (timerp timer) (signal 'wrong-type-argument (list #'timerp timer)))) +(defun timer--time-setter (timer time) + (timer--check timer) + (setf (timer--high-seconds timer) (pop time)) + (let ((low time) (usecs 0) (psecs 0)) + (when (consp time) + (setq low (pop time)) + (when time + (setq usecs (pop time)) + (when time + (setq psecs (car time))))) + (setf (timer--low-seconds timer) low) + (setf (timer--usecs timer) usecs) + (setf (timer--psecs timer) psecs) + time)) + ;; Pseudo field `time'. (defun timer--time (timer) + (declare (gv-setter timer--time-setter)) (list (timer--high-seconds timer) (timer--low-seconds timer) (timer--usecs timer) (timer--psecs timer))) -(gv-define-simple-setter timer--time - (lambda (timer time) - (timer--check timer) - (setf (timer--high-seconds timer) (pop time)) - (let ((low time) (usecs 0) (psecs 0)) - (if (consp time) - (progn - (setq low (pop time)) - (if time - (progn - (setq usecs (pop time)) - (if time - (setq psecs (car time))))))) - (setf (timer--low-seconds timer) low) - (setf (timer--usecs timer) usecs) - (setf (timer--psecs timer) psecs)))) - - (defun timer-set-time (timer time &optional delta) "Set the trigger time of TIMER to TIME. TIME must be in the internal format returned by, e.g., `current-time'. |