(sit_for): Signal error if TIMEOUT is not a number in case arg comes

directly from a Lisp variable.
This commit is contained in:
Kim F. Storm 2006-07-11 22:55:29 +00:00
parent bac4dbd166
commit 8e09f23fbf
2 changed files with 12 additions and 7 deletions

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

View file

@ -6519,17 +6519,21 @@ sit_for (timeout, reading, do_display)
if (do_display >= 2)
redisplay_preserve_echo_area (2);
if (FLOATP (timeout))
{
double seconds = XFLOAT_DATA (timeout);
sec = (int) seconds;
usec = (int) ((seconds - sec) * 1000000);
}
else
if (INTEGERP (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
wrong_type_argument (Qnumberp, timeout);
if (sec == 0 && usec == 0)
return Qt;