From: Richard M. Stallman Date: Sun, 20 Aug 2006 12:06:20 +0000 (+0000) Subject: (Fcurrent_idle_time): New function. X-Git-Tag: emacs-pretest-22.0.90~955 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=ff458d812f881e04585bef6bdb96e3cd0ddd905d;p=emacs.git (Fcurrent_idle_time): New function. (syms_of_keyboard): defsubr it. --- diff --git a/src/keyboard.c b/src/keyboard.c index fed6fbc79dd..13ab5299982 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -4543,6 +4543,35 @@ timer_check (do_it_now) 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 @@ syms_of_keyboard () 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);