changeset 873:0abaf590e0ca

entered into RCS
author Richard M. Stallman <rms@gnu.org>
date Sun, 26 Jul 1992 19:36:03 +0000
parents 336ffe2bd537
children b945f592b94d
files src/callint.c
diffstat 1 files changed, 12 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/callint.c	Sat Jul 25 00:36:12 1992 +0000
+++ b/src/callint.c	Sun Jul 26 19:36:03 1992 +0000
@@ -33,6 +33,7 @@
 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 @@
   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 @@
 
  retry:
 
+  enable = Fget (function, Qenable_recursive_minibuffers);
+
   fun = indirect_function (function);
 
   specs = Qnil;
@@ -299,6 +304,9 @@
   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 @@
       if (tem) tem++;
       else tem = (unsigned char *) "";
     }
+  unbind_to (speccount, Qnil);
 
   QUIT;
 
@@ -493,7 +502,6 @@
 
   {
     Lisp_Object val;
-    int speccount = specpdl_ptr - specpdl;
     specbind (Qcommand_debug_status, Qnil);
 
     val = Ffuncall (count + 1, args);
@@ -541,6 +549,9 @@
   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\