specpdl = (struct specbinding *) xmalloc (specpdl_size * sizeof (struct specbinding));
specpdl_ptr = specpdl;
max_specpdl_size = 600;
- max_lisp_eval_depth = 200;
+ max_lisp_eval_depth = 300;
Vrun_hooks = Qnil;
}
{
Lisp_Object documentation;
+ if (!SYMBOLP (variable))
+ return Qnil;
+
documentation = Fget (variable, Qvariable_documentation);
if (INTEGERP (documentation) && XINT (documentation) < 0)
return Qt;
extern int gc_in_progress;
extern int waiting_for_input;
Lisp_Object debugger_value;
+ Lisp_Object string;
quit_error_check ();
immediate_quit = 0;
/* If no handler is present now, try to run the debugger,
and if that fails, throw to top level. */
find_handler_clause (Qerror, conditions, error_symbol, data, &debugger_value);
- Fthrow (Qtop_level, Qt);
+ if (catchlist != 0)
+ Fthrow (Qtop_level, Qt);
+
+ if (! EQ (data, memory_signal_data))
+ data = Fcons (error_symbol, data);
+
+ string = Ferror_message_string (data);
+ fatal (XSTRING (string)->data, 0, 0);
}
/* Return nonzero iff LIST is a non-nil atom or
return Qnil;
}
-DEFUN ("run-hook-with-args",
- Frun_hook_with_args, Srun_hook_with_args, 1, MANY, 0,
+DEFUN ("run-hook-with-args", Frun_hook_with_args,
+ Srun_hook_with_args, 1, MANY, 0,
"Run HOOK with the specified arguments ARGS.\n\
HOOK should be a symbol, a hook variable. If HOOK has a non-nil\n\
value, that value may be a function or a list of functions to be\n\
return run_hook_with_args (nargs, args, to_completion);
}
-DEFUN ("run-hook-with-args-until-success",
- Frun_hook_with_args_until_success, Srun_hook_with_args_until_success,
- 1, MANY, 0,
+DEFUN ("run-hook-with-args-until-success", Frun_hook_with_args_until_success,
+ Srun_hook_with_args_until_success, 1, MANY, 0,
"Run HOOK with the specified arguments ARGS.\n\
HOOK should be a symbol, a hook variable. Its value should\n\
be a list of functions. We call those functions, one by one,\n\
return run_hook_with_args (nargs, args, until_success);
}
-DEFUN ("run-hook-with-args-until-failure",
- Frun_hook_with_args_until_failure, Srun_hook_with_args_until_failure,
- 1, MANY, 0,
+DEFUN ("run-hook-with-args-until-failure", Frun_hook_with_args_until_failure,
+ Srun_hook_with_args_until_failure, 1, MANY, 0,
"Run HOOK with the specified arguments ARGS.\n\
HOOK should be a symbol, a hook variable. Its value should\n\
be a list of functions. We call those functions, one by one,\n\
if (BUFFER_OBJFWDP (ovalue) || KBOARD_OBJFWDP (ovalue))
store_symval_forwarding (symbol, ovalue, value);
else
- Fset (symbol, value);
+ set_internal (symbol, value, 1);
}
void
else if (NILP (specpdl_ptr->symbol))
Fprogn (specpdl_ptr->old_value);
else
- Fset (specpdl_ptr->symbol, specpdl_ptr->old_value);
+ set_internal (specpdl_ptr->symbol, specpdl_ptr->old_value, 1);
}
if (NILP (Vquit_flag) && quitf) Vquit_flag = Qt;