diff options
| author | Richard M. Stallman | 1992-07-26 19:36:03 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1992-07-26 19:36:03 +0000 |
| commit | 526148036b5ac6df341680f0de7fafc3022db986 (patch) | |
| tree | ca91c83f3a4552871d45d0b9dac5dd39dae02970 /src | |
| parent | 1aa660887e3bc27a43c4e327373808132b03e152 (diff) | |
| download | emacs-526148036b5ac6df341680f0de7fafc3022db986.tar.gz emacs-526148036b5ac6df341680f0de7fafc3022db986.zip | |
entered into RCS
Diffstat (limited to 'src')
| -rw-r--r-- | src/callint.c | 13 |
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; | |||
| 33 | Lisp_Object Vcommand_history; | 33 | Lisp_Object Vcommand_history; |
| 34 | 34 | ||
| 35 | Lisp_Object Vcommand_debug_status, Qcommand_debug_status; | 35 | Lisp_Object Vcommand_debug_status, Qcommand_debug_status; |
| 36 | Lisp_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\ |
| 546 | It may be a number, or the symbol `-' for just a minus sign as arg,\n\ | 557 | It may be a number, or the symbol `-' for just a minus sign as arg,\n\ |