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,