Mercurial > emacs
changeset 66333:087e7eef40d2
(build_load_history): Replace STREAM arg with ENTIRE.
(readevalloop): Compute ENTIRE properly.
(syms_of_lread) <load-history>: Doc fix.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sun, 23 Oct 2005 17:25:43 +0000 |
parents | 980fac484006 |
children | 1bd74e01cf90 |
files | src/lread.c |
diffstat | 1 files changed, 21 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lread.c Sun Oct 23 17:18:09 2005 +0000 +++ b/src/lread.c Sun Oct 23 17:25:43 2005 +0000 @@ -1198,33 +1198,34 @@ /* Merge the list we've accumulated of globals from the current input source into the load_history variable. The details depend on whether - the source has an associated file name or not. */ + the source has an associated file name or not. + + FILENAME is the file name that we are loading from. + ENTIRE is 1 if loading that entire file, 0 if evaluating part of it. */ static void -build_load_history (stream, source) - FILE *stream; - Lisp_Object source; +build_load_history (filename, entire) + Lisp_Object filename; + int entire; { register Lisp_Object tail, prev, newelt; register Lisp_Object tem, tem2; - register int foundit, loading; - - loading = stream || !NARROWED; + register int foundit = 0; tail = Vload_history; prev = Qnil; - foundit = 0; + while (CONSP (tail)) { tem = XCAR (tail); /* Find the feature's previous assoc list... */ - if (!NILP (Fequal (source, Fcar (tem)))) + if (!NILP (Fequal (filename, Fcar (tem)))) { foundit = 1; - /* If we're loading, remove it. */ - if (loading) + /* If we're loading the entire file, remove old data. */ + if (entire) { if (NILP (prev)) Vload_history = XCDR (tail); @@ -1256,10 +1257,10 @@ QUIT; } - /* If we're loading, cons the new assoc onto the front of load-history, - the most-recently-loaded position. Also do this if we didn't find - an existing member for the current source. */ - if (loading || !foundit) + /* If we're loading an entire file, cons the new assoc onto the + front of load-history, the most-recently-loaded position. Also + do this if we didn't find an existing member for the file. */ + if (entire || !foundit) Vload_history = Fcons (Fnreverse (Vcurrent_load_list), Vload_history); } @@ -1414,7 +1415,9 @@ } } - build_load_history (stream, sourcename); + build_load_history (sourcename, + stream || (start == BEG && end == Z)); + UNGCPRO; unbind_to (count, Qnil); @@ -3896,8 +3899,8 @@ and means that SYMBOL was an autoload before this file redefined it as a function. -For a preloaded file, the file name recorded is relative to the main Lisp -directory. These names are converted to absolute by `file-loadhist-lookup'. */); +During preloading, the file name recorded is relative to the main Lisp +directory. These file names are converted to absolute at startup. */); Vload_history = Qnil; DEFVAR_LISP ("load-file-name", &Vload_file_name,