diff src/callint.c @ 54629:f4cfaf943252

(Fcall_interactively): Use Finteractive_form.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Mon, 29 Mar 2004 00:49:00 +0000
parents 695cf19ef79e
children 77a99ef5c0ae
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))