Mercurial > emacs
changeset 54629:f4cfaf943252
(Fcall_interactively): Use Finteractive_form.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Mon, 29 Mar 2004 00:49:00 +0000 |
parents | d0210728ec3f |
children | d6dd8c390fc2 |
files | src/callint.c |
diffstat | 1 files changed, 8 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/src/callint.c Mon Mar 29 00:48:39 2004 +0000 +++ b/src/callint.c Mon Mar 29 00:49:00 2004 +0000 @@ -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 @@ 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; + if (CONSP (form)) + specs = filter_specs = Fcar (XCDR (form)); + else + goto lose; } - else if (EQ (funcar, Qlambda)) - { - specs = Fassq (Qinteractive, Fcdr (XCDR (fun))); - if (NILP (specs)) - 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))