diff src/eval.c @ 91073:4bc33ffdda1a

Merge from emacs--devo--0 Patches applied: * emacs--devo--0 (patch 902-908) - Update from CVS - Merge from emacs--rel--22 * emacs--rel--22 (patch 131-137) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 261-262) - Update from CVS Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-278
author Miles Bader <miles@gnu.org>
date Sat, 27 Oct 2007 09:12:07 +0000
parents 1251cabc40b7 b210bba3f477
children 53108e6cea98
line wrap: on
line diff
--- a/src/eval.c	Sat Oct 27 00:30:50 2007 +0000
+++ b/src/eval.c	Sat Oct 27 09:12:07 2007 +0000
@@ -2194,7 +2194,14 @@
   /* Preserve the match data.  */
   record_unwind_save_match_data ();
 
-  /* Value saved here is to be restored into Vautoload_queue.  */
+  /* If autoloading gets an error (which includes the error of failing
+     to define the function being called), we use Vautoload_queue
+     to undo function definitions and `provide' calls made by
+     the function.  We do this in the specific case of autoloading
+     because autoloading is not an explicit request "load this file",
+     but rather a request to "call this function".
+     
+     The value saved here is to be restored into Vautoload_queue.  */
   record_unwind_protect (un_autoload, Vautoload_queue);
   Vautoload_queue = Qt;
   Fload (Fcar (Fcdr (fundef)), Qnil, Qt, Qnil, Qt);