diff options
| author | Stefan Monnier | 2004-03-29 00:49:00 +0000 |
|---|---|---|
| committer | Stefan Monnier | 2004-03-29 00:49:00 +0000 |
| commit | 1e0b36be0a4ca370d09e224f77afad571932cd83 (patch) | |
| tree | 2c19e32afe707f9590f9dc0ca09ad7c123a370c5 /src | |
| parent | c2f562eefa10b969845844f3632c97064c5d39be (diff) | |
| download | emacs-1e0b36be0a4ca370d09e224f77afad571932cd83.tar.gz emacs-1e0b36be0a4ca370d09e224f77afad571932cd83.zip | |
(Fcall_interactively): Use Finteractive_form.
Diffstat (limited to 'src')
| -rw-r--r-- | src/callint.c | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/src/callint.c b/src/callint.c index 21a6bd0b1ad..a7933bb14d5 100644 --- a/src/callint.c +++ b/src/callint.c | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* Call a Lisp function interactively. | 1 | /* Call a Lisp function interactively. |
| 2 | Copyright (C) 1985, 86, 93, 94, 95, 1997, 2000, 02, 2003 | 2 | Copyright (C) 1985, 86, 93, 94, 95, 1997, 2000, 02, 03, 2004 |
| 3 | Free Software Foundation, Inc. | 3 | Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | This file is part of GNU Emacs. | 5 | This file is part of GNU Emacs. |
| @@ -347,25 +347,17 @@ supply if the command inquires which events were used to invoke it. */) | |||
| 347 | goto lose; | 347 | goto lose; |
| 348 | specs = XVECTOR (fun)->contents[COMPILED_INTERACTIVE]; | 348 | specs = XVECTOR (fun)->contents[COMPILED_INTERACTIVE]; |
| 349 | } | 349 | } |
| 350 | else if (!CONSP (fun)) | 350 | else |
| 351 | goto lose; | ||
| 352 | else if (funcar = XCAR (fun), EQ (funcar, Qautoload)) | ||
| 353 | { | 351 | { |
| 352 | Lisp_Object form; | ||
| 354 | GCPRO2 (function, prefix_arg); | 353 | GCPRO2 (function, prefix_arg); |
| 355 | do_autoload (fun, function); | 354 | Finteractive_form (function); |
| 356 | UNGCPRO; | 355 | UNGCPRO; |
| 357 | goto retry; | 356 | if (CONSP (form)) |
| 358 | } | 357 | specs = filter_specs = Fcar (XCDR (form)); |
| 359 | else if (EQ (funcar, Qlambda)) | 358 | else |
| 360 | { | ||
| 361 | specs = Fassq (Qinteractive, Fcdr (XCDR (fun))); | ||
| 362 | if (NILP (specs)) | ||
| 363 | goto lose; | 359 | goto lose; |
| 364 | filter_specs = Fnth (make_number (1), specs); | ||
| 365 | specs = Fcar (Fcdr (specs)); | ||
| 366 | } | 360 | } |
| 367 | else | ||
| 368 | goto lose; | ||
| 369 | 361 | ||
| 370 | /* If either SPECS or STRING is set to a string, use it. */ | 362 | /* If either SPECS or STRING is set to a string, use it. */ |
| 371 | if (STRINGP (specs)) | 363 | if (STRINGP (specs)) |