Mercurial > emacs
changeset 72445:30a779a4fc54
(Fcurrent_idle_time): New function.
(syms_of_keyboard): defsubr it.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sun, 20 Aug 2006 12:06:20 +0000 |
parents | efffd34acd8e |
children | 44f03dd44abf |
files | src/keyboard.c |
diffstat | 1 files changed, 30 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/keyboard.c Fri Aug 18 16:17:20 2006 +0000 +++ b/src/keyboard.c Sun Aug 20 12:06:20 2006 +0000 @@ -4543,6 +4543,35 @@ UNGCPRO; return nexttime; } + +DEFUN ("current-idle-time", Fcurrent_idle_time, Scurrent_idle_time, 0, 0, 0, + /* Return the current length of Emacs idleness. +The value is returned as a list of three integers. The first has the +most significant 16 bits of the seconds, while the second has the +least significant 16 bits. The third integer gives the microsecond +count. + +The microsecond count is zero on systems that do not provide +resolution finer than a second. */) + () +{ + EMACS_TIME now, idleness_now; + Lisp_Object result[3]; + + EMACS_GET_TIME (now); + if (! EMACS_TIME_NEG_P (timer_idleness_start_time)) + { + EMACS_SUB_TIME (idleness_now, now, timer_idleness_start_time); + + XSETINT (result[0], (EMACS_SECS (idleness_now) >> 16) & 0xffff); + XSETINT (result[1], (EMACS_SECS (idleness_now) >> 0) & 0xffff); + XSETINT (result[2], EMACS_USECS (idleness_now)); + + return Flist (3, result); + } + + return Qnil; +} /* Caches for modify_event_symbol. */ static Lisp_Object accent_key_syms; @@ -11131,6 +11160,7 @@ menu_bar_items_vector = Qnil; staticpro (&menu_bar_items_vector); + defsubr (&Scurrent_idle_time); defsubr (&Sevent_convert_list); defsubr (&Sread_key_sequence); defsubr (&Sread_key_sequence_vector);