aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard M. Stallman1992-07-26 19:36:03 +0000
committerRichard M. Stallman1992-07-26 19:36:03 +0000
commit526148036b5ac6df341680f0de7fafc3022db986 (patch)
treeca91c83f3a4552871d45d0b9dac5dd39dae02970 /src
parent1aa660887e3bc27a43c4e327373808132b03e152 (diff)
downloademacs-526148036b5ac6df341680f0de7fafc3022db986.tar.gz
emacs-526148036b5ac6df341680f0de7fafc3022db986.zip
entered into RCS
Diffstat (limited to 'src')
-rw-r--r--src/callint.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/callint.c b/src/callint.c
index ed090aa85a3..45e885d2648 100644
--- a/src/callint.c
+++ b/src/callint.c
@@ -33,6 +33,7 @@ Lisp_Object Qcall_interactively;
33Lisp_Object Vcommand_history; 33Lisp_Object Vcommand_history;
34 34
35Lisp_Object Vcommand_debug_status, Qcommand_debug_status; 35Lisp_Object Vcommand_debug_status, Qcommand_debug_status;
36Lisp_Object Qenable_recursive_minibuffers;
36 37
37/* This comment supplies the doc string for interactive, 38/* This comment supplies the doc string for interactive,
38 for make-docfile to see. We cannot put this in the real DEFUN 39 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.")
156 Lisp_Object funcar; 157 Lisp_Object funcar;
157 Lisp_Object specs; 158 Lisp_Object specs;
158 Lisp_Object teml; 159 Lisp_Object teml;
160 Lisp_Object enable;
161 int speccount = specpdl_ptr - specpdl;
159 162
160 Lisp_Object prefix_arg; 163 Lisp_Object prefix_arg;
161 unsigned char *string; 164 unsigned char *string;
@@ -179,6 +182,8 @@ Otherwise, this is done only if an arg is read using the minibuffer.")
179 182
180 retry: 183 retry:
181 184
185 enable = Fget (function, Qenable_recursive_minibuffers);
186
182 fun = indirect_function (function); 187 fun = indirect_function (function);
183 188
184 specs = Qnil; 189 specs = Qnil;
@@ -299,6 +304,9 @@ Otherwise, this is done only if an arg is read using the minibuffer.")
299 gcpro3.nvars = (count + 1); 304 gcpro3.nvars = (count + 1);
300 gcpro4.nvars = (count + 1); 305 gcpro4.nvars = (count + 1);
301 306
307 if (!NILP (enable))
308 specbind (Qenable_recursive_minibuffers, Qt);
309
302 tem = string; 310 tem = string;
303 for (i = 1; *tem; i++) 311 for (i = 1; *tem; i++)
304 { 312 {
@@ -474,6 +482,7 @@ Otherwise, this is done only if an arg is read using the minibuffer.")
474 if (tem) tem++; 482 if (tem) tem++;
475 else tem = (unsigned char *) ""; 483 else tem = (unsigned char *) "";
476 } 484 }
485 unbind_to (speccount, Qnil);
477 486
478 QUIT; 487 QUIT;
479 488
@@ -493,7 +502,6 @@ Otherwise, this is done only if an arg is read using the minibuffer.")
493 502
494 { 503 {
495 Lisp_Object val; 504 Lisp_Object val;
496 int speccount = specpdl_ptr - specpdl;
497 specbind (Qcommand_debug_status, Qnil); 505 specbind (Qcommand_debug_status, Qnil);
498 506
499 val = Ffuncall (count + 1, args); 507 val = Ffuncall (count + 1, args);
@@ -541,6 +549,9 @@ syms_of_callint ()
541 Qcommand_debug_status = intern ("command-debug-status"); 549 Qcommand_debug_status = intern ("command-debug-status");
542 staticpro (&Qcommand_debug_status); 550 staticpro (&Qcommand_debug_status);
543 551
552 Qenable_recursive_minibuffers = intern ("enable-recursive-minibuffers");
553 staticpro (&Qenable_recursive_minibuffers);
554
544 DEFVAR_LISP ("prefix-arg", &Vprefix_arg, 555 DEFVAR_LISP ("prefix-arg", &Vprefix_arg,
545 "The value of the prefix argument for the next editing command.\n\ 556 "The value of the prefix argument for the next editing command.\n\
546It may be a number, or the symbol `-' for just a minus sign as arg,\n\ 557It may be a number, or the symbol `-' for just a minus sign as arg,\n\