2000-09-11 Gerd Moellmann <gerd@gnu.org>
+ * lread.c (init_lread): Set Vloads_in_progress to nil.
+ (Fload): Show list of recursively loaded files, when signaling an
+ error.
+
* lread.c (Vloads_in_progress): New variable.
(record_load_unwind): New function.
(Fload): Check for recursive loads.
/* Check if we're loading this file again while another load
of the same file is already in progress. */
if (!NILP (Fmember (found, Vloads_in_progress)))
- error ("Recursive load of file `%s'", XSTRING (file)->data);
+ Fsignal (Qerror, Fcons (build_string ("Recursive load"),
+ Fcons (found, Vloads_in_progress)));
record_unwind_protect (record_load_unwind, Vloads_in_progress);
Vloads_in_progress = Fcons (found, Vloads_in_progress);
load_descriptor_list = Qnil;
Vstandard_input = Qt;
+ Vloads_in_progress = Qnil;
}
/* Print a warning, using format string FORMAT, that directory DIRNAME