diff options
author | Stefan Monnier <[email protected]> | 2004-03-29 00:49:00 +0000 |
---|---|---|
committer | Stefan Monnier <[email protected]> | 2004-03-29 00:49:00 +0000 |
commit | 1e0b36be0a4ca370d09e224f77afad571932cd83 (patch) | |
tree | 2c19e32afe707f9590f9dc0ca09ad7c123a370c5 /src/callint.c | |
parent | c2f562eefa10b969845844f3632c97064c5d39be (diff) |
(Fcall_interactively): Use Finteractive_form.
Diffstat (limited to 'src/callint.c')
-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 21a6bd0b1a..a7933bb14d 100644 --- a/src/callint.c +++ b/src/callint.c @@ -1,5 +1,5 @@ /* Call a Lisp function interactively. - Copyright (C) 1985, 86, 93, 94, 95, 1997, 2000, 02, 2003 + Copyright (C) 1985, 86, 93, 94, 95, 1997, 2000, 02, 03, 2004 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -347,25 +347,17 @@ supply if the command inquires which events were used to invoke it. */) goto lose; specs = XVECTOR (fun)->contents[COMPILED_INTERACTIVE]; } - else if (!CONSP (fun)) - goto lose; - else if (funcar = XCAR (fun), EQ (funcar, Qautoload)) + else { + Lisp_Object form; GCPRO2 (function, prefix_arg); - do_autoload (fun, function); + Finteractive_form (function); UNGCPRO; - goto retry; - } - else if (EQ (funcar, Qlambda)) - { - specs = Fassq (Qinteractive, Fcdr (XCDR (fun))); - if (NILP (specs)) + if (CONSP (form)) + specs = filter_specs = Fcar (XCDR (form)); + else goto lose; - filter_specs = Fnth (make_number (1), specs); - specs = Fcar (Fcdr (specs)); } - else - goto lose; /* If either SPECS or STRING is set to a string, use it. */ if (STRINGP (specs)) |