# HG changeset patch # User Stefan Monnier # Date 1080521340 0 # Node ID f4cfaf943252b5fdeabd640cd10b15714c956b5c # Parent d0210728ec3f605549296084908dfe0aac7a53b7 (Fcall_interactively): Use Finteractive_form. diff -r d0210728ec3f -r f4cfaf943252 src/callint.c --- 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))