Commit ece435a5 authored by Ken Raeburn's avatar Ken Raeburn

(load_depth): New variable.

	(Fload, load_unwind, init_lread): Set it to the load recursion
	depth; set load_in_progress as a simple boolean based on the
	current load_depth.  (Bug#3892)
parent 0b5546d6
2009-07-21 Ken Raeburn <raeburn@raeburn.org>
* lread.c (load_depth): New variable.
(Fload, load_unwind, init_lread): Set it to the load recursion
depth; set load_in_progress as a simple boolean based on the
current load_depth. (Bug#3892)
2009-07-20 Adrian Robert <Adrian.B.Robert@gmail.com>
* nsfont.m (ns_has_attribute): Remove.
......
......@@ -100,6 +100,9 @@ extern Lisp_Object Qfile_exists_p;
/* non-zero if inside `load' */
int load_in_progress;
/* Depth of nested `load' invocations. */
int load_depth;
/* Directory in which the sources were found. */
Lisp_Object Vsource_directory;
......@@ -1250,7 +1253,8 @@ Return t if the file exists and loads successfully. */)
specbind (Qinhibit_file_name_operation, Qnil);
load_descriptor_list
= Fcons (make_number (fileno (stream)), load_descriptor_list);
load_in_progress++;
load_depth++;
load_in_progress = 1;
if (! version || version >= 22)
readevalloop (Qget_file_char, stream, hist_file_name,
Feval, 0, Qnil, Qnil, Qnil, Qnil);
......@@ -1312,7 +1316,8 @@ load_unwind (arg) /* used as unwind-protect function in load */
fclose (stream);
UNBLOCK_INPUT;
}
if (--load_in_progress < 0) load_in_progress = 0;
if (--load_depth < 0) load_depth = 0;
load_in_progress = load_depth > 0;
return Qnil;
}
......@@ -4129,6 +4134,7 @@ init_lread ()
Vvalues = Qnil;
load_in_progress = 0;
load_depth = 0;
Vload_file_name = Qnil;
load_descriptor_list = Qnil;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment