(do_autoload): Preserve match data.
authorRichard M. Stallman <rms@gnu.org>
Fri, 9 Apr 1999 19:21:52 +0000 (19:21 +0000)
committerRichard M. Stallman <rms@gnu.org>
Fri, 9 Apr 1999 19:21:52 +0000 (19:21 +0000)
src/eval.c

index 6d9c0ed..b9a8937 100644 (file)
@@ -1649,12 +1649,15 @@ do_autoload (fundef, funname)
   CHECK_SYMBOL (funname, 0);
   GCPRO3 (fun, funname, fundef);
 
-  /* Value saved here is to be restored into Vautoload_queue */
+  /* Preserve the match data.  */
+  record_unwind_protect (Fset_match_data, Fmatch_data (Qnil, Qnil));
+  
+  /* 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, noninteractive ? Qt : Qnil, Qnil, Qt);
 
-  /* Save the old autoloads, in case we ever do an unload. */
+  /* Save the old autoloads, in case we ever do an unload.  */
   queue = Vautoload_queue;
   while (CONSP (queue))
     {
@@ -1664,7 +1667,7 @@ do_autoload (fundef, funname)
 
       /* Note: This test is subtle.  The cdr of an autoload-queue entry
         may be an atom if the autoload entry was generated by a defalias
-        or fset. */
+        or fset.  */
       if (CONSP (second))
        Fput (first, Qautoload, (Fcdr (second)));