aboutsummaryrefslogtreecommitdiffstats
path: root/src/callint.c
diff options
context:
space:
mode:
authorRichard M. Stallman <[email protected]>1992-07-26 19:36:03 +0000
committerRichard M. Stallman <[email protected]>1992-07-26 19:36:03 +0000
commit526148036b5ac6df341680f0de7fafc3022db986 (patch)
treeca91c83f3a4552871d45d0b9dac5dd39dae02970 /src/callint.c
parent1aa660887e3bc27a43c4e327373808132b03e152 (diff)
entered into RCS
Diffstat (limited to 'src/callint.c')
-rw-r--r--src/callint.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/callint.c b/src/callint.c
index ed090aa85a..45e885d264 100644
--- a/src/callint.c
+++ b/src/callint.c
@@ -33,6 +33,7 @@ Lisp_Object Qcall_interactively;
Lisp_Object Vcommand_history;
Lisp_Object Vcommand_debug_status, Qcommand_debug_status;
+Lisp_Object Qenable_recursive_minibuffers;
/* This comment supplies the doc string for interactive,
for make-docfile to see. We cannot put this in the real DEFUN
@@ -156,6 +157,8 @@ Otherwise, this is done only if an arg is read using the minibuffer.")
Lisp_Object funcar;
Lisp_Object specs;
Lisp_Object teml;
+ Lisp_Object enable;
+ int speccount = specpdl_ptr - specpdl;
Lisp_Object prefix_arg;
unsigned char *string;
@@ -179,6 +182,8 @@ Otherwise, this is done only if an arg is read using the minibuffer.")
retry:
+ enable = Fget (function, Qenable_recursive_minibuffers);
+
fun = indirect_function (function);
specs = Qnil;
@@ -299,6 +304,9 @@ Otherwise, this is done only if an arg is read using the minibuffer.")
gcpro3.nvars = (count + 1);
gcpro4.nvars = (count + 1);
+ if (!NILP (enable))
+ specbind (Qenable_recursive_minibuffers, Qt);
+
tem = string;
for (i = 1; *tem; i++)
{
@@ -474,6 +482,7 @@ Otherwise, this is done only if an arg is read using the minibuffer.")
if (tem) tem++;
else tem = (unsigned char *) "";
}
+ unbind_to (speccount, Qnil);
QUIT;
@@ -493,7 +502,6 @@ Otherwise, this is done only if an arg is read using the minibuffer.")
{
Lisp_Object val;
- int speccount = specpdl_ptr - specpdl;
specbind (Qcommand_debug_status, Qnil);
val = Ffuncall (count + 1, args);
@@ -541,6 +549,9 @@ syms_of_callint ()
Qcommand_debug_status = intern ("command-debug-status");
staticpro (&Qcommand_debug_status);
+ Qenable_recursive_minibuffers = intern ("enable-recursive-minibuffers");
+ staticpro (&Qenable_recursive_minibuffers);
+
DEFVAR_LISP ("prefix-arg", &Vprefix_arg,
"The value of the prefix argument for the next editing command.\n\
It may be a number, or the symbol `-' for just a minus sign as arg,\n\