It is not _file_ foo, but _function_ foo that did (require 'bar). Why is it useful to record that? For what purpose?
It isn't particularly useful, but it is hard to avoid. Frequire does the same things, whether `require' was called from a Lisp function or from code at top level in a file. However, my change turns off recording in the case where no file is being loaded. Does this give good results? *** fns.c 18 Jan 2005 19:52:01 -0500 1.382 --- fns.c 08 Apr 2005 22:22:22 -0400 *************** *** 66,71 **** --- 66,72 ---- extern int minibuffer_auto_raise; extern Lisp_Object minibuf_window; extern Lisp_Object Vlocale_coding_system; + extern Lisp_Object Vloads_in_progress; Lisp_Object Qstring_lessp, Qprovide, Qrequire; Lisp_Object Qyes_or_no_p_history; *************** *** 3444,3452 **** CHECK_SYMBOL (feature); /* Record the presence of `require' in this file ! even if the feature specified is already loaded. */ ! LOADHIST_ATTACH (Fcons (Qrequire, feature)); ! tem = Fmemq (feature, Vfeatures); if (NILP (tem)) --- 3445,3459 ---- CHECK_SYMBOL (feature); /* Record the presence of `require' in this file ! even if the feature specified is already loaded. ! But not more than once in any file, ! and not when we aren't loading a file. */ ! if (! NILP (Vloads_in_progress)) ! { ! tem = Fcons (Qrequire, feature); ! if (NILP (Fmember (tem, Vcurrent_load_list))) ! LOADHIST_ATTACH (tem); ! } tem = Fmemq (feature, Vfeatures); if (NILP (tem)) _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel