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
This commit is contained in:
Paul Eggert 2012-09-13 09:23:06 -07:00
parent d607d30302
commit c18e885bdd
6 changed files with 25 additions and 6 deletions

View file

@ -1,3 +1,8 @@
2012-09-13 Paul Eggert <eggert@cs.ucla.edu>
Use a more backwards-compatible timer format (Bug#12430).
* NEWS: Document it, plus fix a typo.
2012-09-13 Jan Djärv <jan.h.d@swipnet.se>
* NEWS (--with-x-toolkit): Mention that Gtk+ 3 is now default.

View file

@ -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.

View file

@ -1,3 +1,10 @@
2012-09-13 Paul Eggert <eggert@cs.ucla.edu>
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 <handa@gnu.org>
* language/chinese.el ("Chinese-GB", "Chinese-BIG5")

View file

@ -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."

View file

@ -1,3 +1,10 @@
2012-09-13 Paul Eggert <eggert@cs.ucla.edu>
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 <dmantipov@yandex.ru>
Function to mark objects and remove killed buffers at once.

View file

@ -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))