emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: require inside functions. (was: Changes in calendar/time-date.el)


From: Richard Stallman
Subject: Re: require inside functions. (was: Changes in calendar/time-date.el)
Date: Fri, 08 Apr 2005 23:38:33 -0400

    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))




reply via email to

[Prev in Thread] Current Thread [Next in Thread]