aboutsummaryrefslogtreecommitdiffstats
path: root/src/eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/eval.c b/src/eval.c
index 7f043daa555..0eb1482ee0b 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -2292,7 +2292,7 @@ static Lisp_Object run_hook_with_args P_ ((int, Lisp_Object *,
2292 enum run_hooks_condition)); 2292 enum run_hooks_condition));
2293 2293
2294DEFUN ("run-hooks", Frun_hooks, Srun_hooks, 0, MANY, 0, 2294DEFUN ("run-hooks", Frun_hooks, Srun_hooks, 0, MANY, 0,
2295 doc: /* Run each hook in HOOKS. Major mode functions use this. 2295 doc: /* Run each hook in HOOKS.
2296Each argument should be a symbol, a hook variable. 2296Each argument should be a symbol, a hook variable.
2297These symbols are processed in the order specified. 2297These symbols are processed in the order specified.
2298If a hook symbol has a non-nil value, that value may be a function 2298If a hook symbol has a non-nil value, that value may be a function
@@ -2300,6 +2300,9 @@ or a list of functions to be called to run the hook.
2300If the value is a function, it is called with no arguments. 2300If the value is a function, it is called with no arguments.
2301If it is a list, the elements are called, in order, with no arguments. 2301If it is a list, the elements are called, in order, with no arguments.
2302 2302
2303Major modes should not use this function directly to run their mode
2304hook; they should use `run-mode-hooks' instead.
2305
2303Do not use `make-local-variable' to make a hook variable buffer-local. 2306Do not use `make-local-variable' to make a hook variable buffer-local.
2304Instead, use `add-hook' and specify t for the LOCAL argument. 2307Instead, use `add-hook' and specify t for the LOCAL argument.
2305usage: (run-hooks &rest HOOKS) */) 2308usage: (run-hooks &rest HOOKS) */)
@@ -3127,10 +3130,10 @@ unbind_to (count, value)
3127 int count; 3130 int count;
3128 Lisp_Object value; 3131 Lisp_Object value;
3129{ 3132{
3130 int quitf = !NILP (Vquit_flag); 3133 Lisp_Object quitf = Vquit_flag;
3131 struct gcpro gcpro1; 3134 struct gcpro gcpro1, gcpro2;
3132 3135
3133 GCPRO1 (value); 3136 GCPRO2 (value, quitf);
3134 Vquit_flag = Qnil; 3137 Vquit_flag = Qnil;
3135 3138
3136 while (specpdl_ptr != specpdl + count) 3139 while (specpdl_ptr != specpdl + count)
@@ -3179,8 +3182,8 @@ unbind_to (count, value)
3179 } 3182 }
3180 } 3183 }
3181 3184
3182 if (NILP (Vquit_flag) && quitf) 3185 if (NILP (Vquit_flag) && !NILP (quitf))
3183 Vquit_flag = Qt; 3186 Vquit_flag = quitf;
3184 3187
3185 UNGCPRO; 3188 UNGCPRO;
3186 return value; 3189 return value;