Пример #1
0
static bool
module_eq (emacs_env *env, emacs_value a, emacs_value b)
{
  check_main_thread ();
  if (module_non_local_exit_check (env) != emacs_funcall_exit_return)
    return false;
  return EQ (value_to_lisp (a), value_to_lisp (b));
}
Пример #2
0
static bool
module_is_not_nil (emacs_env *env, emacs_value value)
{
  check_main_thread ();
  if (module_non_local_exit_check (env) != emacs_funcall_exit_return)
    return false;
  return ! NILP (value_to_lisp (value));
}
Пример #3
0
/* Like for `signal', DATA must be a list.  */
static void
module_non_local_exit_signal (emacs_env *env, emacs_value sym, emacs_value data)
{
  check_main_thread ();
  if (module_non_local_exit_check (env) == emacs_funcall_exit_return)
    module_non_local_exit_signal_1 (env, value_to_lisp (sym),
				    value_to_lisp (data));
}
Пример #4
0
static void
module_non_local_exit_throw (emacs_env *env, emacs_value tag, emacs_value value)
{
  check_main_thread ();
  if (module_non_local_exit_check (env) == emacs_funcall_exit_return)
    module_non_local_exit_throw_1 (env, value_to_lisp (tag),
				   value_to_lisp (value));
}
Пример #5
0
static void
module_set_user_ptr (emacs_env *env, emacs_value uptr, void *ptr)
{
  /* FIXME: This function should return bool because it can fail.  */
  MODULE_FUNCTION_BEGIN ();
  check_main_thread ();
  if (module_non_local_exit_check (env) != emacs_funcall_exit_return)
    return;
  Lisp_Object lisp = value_to_lisp (uptr);
  if (! USER_PTRP (lisp))
    module_wrong_type (env, Quser_ptr, lisp);
  XUSER_PTR (lisp)->p = ptr;
}