return env->intern (env, "nil");
}
-static void
-signal_wrong_type_argument (emacs_env *env, const char *predicate,
- emacs_value arg)
-{
- emacs_value symbol = env->intern (env, "wrong-type-argument");
- emacs_value elements[2] = {env->intern (env, predicate), arg};
- emacs_value data = env->funcall (env, env->intern (env, "list"), 2, elements);
- env->non_local_exit_signal (env, symbol, data);
-}
-
static void
signal_errno (emacs_env *env, const char *function)
{
void *data)
{
assert (nargs == 2);
- const double until_seconds = env->extract_float (env, args[0]);
+ const struct timespec until = env->extract_time (env, args[0]);
if (env->non_local_exit_check (env))
return NULL;
- if (until_seconds <= 0)
- {
- signal_wrong_type_argument (env, "cl-plusp", args[0]);
- return NULL;
- }
const bool process_input = env->is_not_nil (env, args[1]);
- const struct timespec until = dtotimespec (until_seconds);
const struct timespec amount = make_timespec(0, 10000000);
while (true)
{
;; Interactively, run for 5 seconds to give the
;; user time to quit. In batch mode, run only
;; briefly since the user can't quit.
- (float-time (time-add nil (if noninteractive 0.1 5)))
+ (time-add nil (if noninteractive 0.1 5))
;; should_quit or process_input
arg))
'finished))