aboutsummaryrefslogtreecommitdiffstats
path: root/src/callint.c
diff options
context:
space:
mode:
authorStefan Monnier <[email protected]>2004-03-29 00:49:00 +0000
committerStefan Monnier <[email protected]>2004-03-29 00:49:00 +0000
commit1e0b36be0a4ca370d09e224f77afad571932cd83 (patch)
tree2c19e32afe707f9590f9dc0ca09ad7c123a370c5 /src/callint.c
parentc2f562eefa10b969845844f3632c97064c5d39be (diff)
(Fcall_interactively): Use Finteractive_form.
Diffstat (limited to 'src/callint.c')
-rw-r--r--src/callint.c22
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))