]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fcurrent_idle_time): New function.
authorRichard M. Stallman <rms@gnu.org>
Sun, 20 Aug 2006 12:06:20 +0000 (12:06 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sun, 20 Aug 2006 12:06:20 +0000 (12:06 +0000)
(syms_of_keyboard): defsubr it.

src/keyboard.c

index fed6fbc79dd63f8811f24cbb245bdb3b15c31ee7..13ab529998234955d0b8c07d3c3b151ae38eda9f 100644 (file)
@@ -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;
+}
 \f
 /* 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);