From 2baf5e7610491eedb042b89056324d7f79e8a288 Mon Sep 17 00:00:00 2001 From: Ken Raeburn Date: Sat, 25 Jul 2009 07:36:17 +0000 Subject: [PATCH] * 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. --- src/ChangeLog | 10 ++++++++++ src/lread.c | 12 ++++-------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 7814f8a637e..00cc2e38a88 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -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 --git a/src/lread.c b/src/lread.c index ec62c7a8933..8741bff6284 100644 --- a/src/lread.c +++ b/src/lread.c @@ -99,9 +99,7 @@ extern Lisp_Object Qfile_exists_p; /* 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 @@ 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_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 @@ load_unwind (arg) /* used as unwind-protect function in load */ fclose (stream); UNBLOCK_INPUT; } - if (--load_depth < 0) load_depth = 0; - load_in_progress = load_depth > 0; return Qnil; } @@ -4134,7 +4129,6 @@ init_lread () Vvalues = Qnil; load_in_progress = 0; - load_depth = 0; Vload_file_name = Qnil; load_descriptor_list = Qnil; @@ -4258,6 +4252,8 @@ customize `jka-compr-load-suffixes' rather than the present variable. */); 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. -- 2.39.2