# HG changeset patch # User Ken Raeburn # Date 1248507377 0 # Node ID 3750eeb20ab99b87ea733d413fa1f5111284a2c9 # Parent 85bf43e7dadaddd4c68c2a09dab9bea349bcc331 * lread.c: Rewrite 2009-07-21 changes. (load_depth): Deleted. (Qload_in_progress): New variable. (load_unwind): Don't reference load_depth or load_in_progress. (Fload): Likewise; specbind Qload_in_progress instead. (init_lread): Don't initialize load_depth. (syms_of_lread): Initialize and protect Qload_in_progress. diff -r 85bf43e7dada -r 3750eeb20ab9 src/ChangeLog --- a/src/ChangeLog Fri Jul 24 15:43:22 2009 +0000 +++ b/src/ChangeLog Sat Jul 25 07:36:17 2009 +0000 @@ -1,3 +1,13 @@ +2009-07-25 Ken Raeburn + + * lread.c: Rewrite 2009-07-21 changes. + (load_depth): Deleted. + (Qload_in_progress): New variable. + (load_unwind): Don't reference load_depth or load_in_progress. + (Fload): Likewise; specbind Qload_in_progress instead. + (init_lread): Don't initialize load_depth. + (syms_of_lread): Initialize and protect Qload_in_progress. + 2009-07-24 Adrian Robert * nsfont.m (ns_findfonts): Correctly return fallback in match case. diff -r 85bf43e7dada -r 3750eeb20ab9 src/lread.c --- a/src/lread.c Fri Jul 24 15:43:22 2009 +0000 +++ b/src/lread.c Sat Jul 25 07:36:17 2009 +0000 @@ -99,9 +99,7 @@ /* non-zero if inside `load' */ int load_in_progress; - -/* Depth of nested `load' invocations. */ -int load_depth; +static Lisp_Object Qload_in_progress; /* Directory in which the sources were found. */ Lisp_Object Vsource_directory; @@ -1253,8 +1251,7 @@ specbind (Qinhibit_file_name_operation, Qnil); load_descriptor_list = Fcons (make_number (fileno (stream)), load_descriptor_list); - load_depth++; - load_in_progress = 1; + specbind (Qload_in_progress, Qt); if (! version || version >= 22) readevalloop (Qget_file_char, stream, hist_file_name, Feval, 0, Qnil, Qnil, Qnil, Qnil); @@ -1316,8 +1313,6 @@ fclose (stream); UNBLOCK_INPUT; } - if (--load_depth < 0) load_depth = 0; - load_in_progress = load_depth > 0; return Qnil; } @@ -4134,7 +4129,6 @@ Vvalues = Qnil; load_in_progress = 0; - load_depth = 0; Vload_file_name = Qnil; load_descriptor_list = Qnil; @@ -4258,6 +4252,8 @@ DEFVAR_BOOL ("load-in-progress", &load_in_progress, doc: /* Non-nil if inside of `load'. */); + Qload_in_progress = intern ("load-in-progress"); + staticpro (&Qload_in_progress); DEFVAR_LISP ("after-load-alist", &Vafter_load_alist, doc: /* An alist of expressions to be evalled when particular files are loaded.