(sit_for): Signal error if TIMEOUT is not a number in case arg comes
authorKim F. Storm <storm@cua.dk>
Tue, 11 Jul 2006 22:55:29 +0000 (22:55 +0000)
committerKim F. Storm <storm@cua.dk>
Tue, 11 Jul 2006 22:55:29 +0000 (22:55 +0000)
directly from a Lisp variable.

src/ChangeLog
src/dispnew.c

index 182dea1..02b5111 100644 (file)
@@ -3,6 +3,7 @@
        * dispnew.c (sit_for): Reduce number of args from 5 to 3.
        Now just one TIMEOUT arg that can be a Lisp float or Lisp int.
        Combine args DISPLAY and INITIAL_DISPLAY into one arg DO_DISPLAY.
+       Signal error if TIMEOUT is not a number.
        Undo 2006-06-14 change for non-preemptive display if TIMEOUT < 0.
        The rework of sit_for args also fixes several incorrect Qt args
        which should have been 1.
index 3519e2d..018717e 100644 (file)
@@ -6519,17 +6519,21 @@ sit_for (timeout, reading, do_display)
   if (do_display >= 2)
     redisplay_preserve_echo_area (2);
 
-  if (FLOATP (timeout))
+  if (INTEGERP (timeout))
     {
-      double seconds = XFLOAT_DATA (timeout);
+      sec = XFASTINT (timeout);
+      usec = 0;
+    }
+  else if (FLOATP (timeout))
+    {
+      double seconds;
+
+      seconds = XFLOAT_DATA (timeout);
       sec = (int) seconds;
       usec = (int) ((seconds - sec) * 1000000);
     }
   else
-    {
-      sec = XFASTINT (timeout);
-      usec = 0;
-    }
+    wrong_type_argument (Qnumberp, timeout);
 
   if (sec == 0 && usec == 0)
     return Qt;