From c18e885bdd2607ec1784c3e1585e581459408932 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 13 Sep 2012 09:23:06 -0700 Subject: [PATCH] Use a more backwards-compatible timer format. * etc/NEWS: Document it. * lisp/emacs-lisp/timer.el (timer): PSECS is now at the end, rather than being right after USECS, as that better supports old code that inadvisedly looked directly at the timer vector. * src/keyboard.c (decode_timer): Get PSECS from the 8th (origin-0) vector element, not from the 4th, since PSECS is now at the end. (Fcurrent_idle_time): Doc fix. Fixes: debbugs:12430 --- etc/ChangeLog | 5 +++++ etc/NEWS | 2 +- lisp/ChangeLog | 7 +++++++ lisp/emacs-lisp/timer.el | 6 +++--- src/ChangeLog | 7 +++++++ src/keyboard.c | 4 ++-- 6 files changed, 25 insertions(+), 6 deletions(-) diff --git a/etc/ChangeLog b/etc/ChangeLog index 26e9ada74da..66c229eaf78 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog @@ -1,3 +1,8 @@ +2012-09-13 Paul Eggert + + Use a more backwards-compatible timer format (Bug#12430). + * NEWS: Document it, plus fix a typo. + 2012-09-13 Jan Djärv * NEWS (--with-x-toolkit): Mention that Gtk+ 3 is now default. diff --git a/etc/NEWS b/etc/NEWS index cbf13c2e87d..4c6ceae1688 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -110,7 +110,7 @@ file-attributes and format-time-string, have been changed accordingly. Old-format time stamps are still accepted. ** The format of timers in timer-list and timer-idle-list is now -[HIGH-SECONDS LOW-SECONDS USECS PSECS REPEAT-DELAY FUNCTION ARGS IDLE-DELAY]. +[TRIGGERED-P HI-SECS LO-SECS USECS REPEAT-DELAY FUNCTION ARGS IDLE-DELAY PSECS]. The PSECS slot is new, and uses picosecond resolution. It can be accessed via the new timer--psecs accessor. diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 6b132bb9134..5e51c67e8e8 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2012-09-13 Paul Eggert + + Use a more backwards-compatible timer format (Bug#12430). + * emacs-lisp/timer.el (timer): PSECS is now at the end, rather than + being right after USECS, as that better supports old code that + inadvisedly looked directly at the timer vector. + 2012-09-13 Kenichi Handa * language/chinese.el ("Chinese-GB", "Chinese-BIG5") diff --git a/lisp/emacs-lisp/timer.el b/lisp/emacs-lisp/timer.el index a66d5972d82..2248dde8c03 100644 --- a/lisp/emacs-lisp/timer.el +++ b/lisp/emacs-lisp/timer.el @@ -28,8 +28,8 @@ ;;; Code: ;; Layout of a timer vector: -;; [triggered-p high-seconds low-seconds usecs psecs repeat-delay -;; function args idle-delay] +;; [triggered-p high-seconds low-seconds usecs repeat-delay +;; function args idle-delay psecs] ;; triggered-p is nil if the timer is active (waiting to be triggered), ;; t if it is inactive ("already triggered", in theory) @@ -42,7 +42,7 @@ (:type vector) (:conc-name timer--)) (triggered t) - high-seconds low-seconds usecs psecs repeat-delay function args idle-delay) + high-seconds low-seconds usecs repeat-delay function args idle-delay psecs) (defun timerp (object) "Return t if OBJECT is a timer." diff --git a/src/ChangeLog b/src/ChangeLog index 153a0b59c62..a7fe68646d0 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2012-09-13 Paul Eggert + + Use a more backwards-compatible timer format (Bug#12430). + * keyboard.c (decode_timer): Get PSECS from the 8th (origin-0) + vector element, not from the 4th, since PSECS is now at the end. + (Fcurrent_idle_time): Doc fix. + 2012-09-13 Dmitry Antipov Function to mark objects and remove killed buffers at once. diff --git a/src/keyboard.c b/src/keyboard.c index aec9028ae94..45638bc412b 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -4330,7 +4330,7 @@ decode_timer (Lisp_Object timer, EMACS_TIME *result) if (! NILP (vector[0])) return 0; - return decode_time_components (vector[1], vector[2], vector[3], vector[4], + return decode_time_components (vector[1], vector[2], vector[3], vector[8], result, 0); } @@ -4532,7 +4532,7 @@ in the same style as (current-time). The value when Emacs is not idle is nil. -NSEC is a multiple of the system clock resolution. */) +PSEC is a multiple of the system clock resolution. */) (void) { if (EMACS_TIME_VALID_P (timer_idleness_start_time)) -- 2.39.2