emacs-devel
[Top][All Lists]
Advanced

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

Re: require inside functions.


From: Lute Kamstra
Subject: Re: require inside functions.
Date: Wed, 13 Apr 2005 11:11:21 +0200
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux)

Richard Stallman <address@hidden> writes:

[...]

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

Did you perhaps mean to use load_in_progress instead of Vloads_in_progress?

Lute.


Index: src/fns.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/fns.c,v
retrieving revision 1.384
diff -c -r1.384 fns.c
*** src/fns.c   10 Apr 2005 19:02:24 -0000      1.384
--- src/fns.c   13 Apr 2005 08:42:48 -0000
***************
*** 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;
--- 66,72 ----
  extern int minibuffer_auto_raise;
  extern Lisp_Object minibuf_window;
  extern Lisp_Object Vlocale_coding_system;
! extern int load_in_progress;
  
  Lisp_Object Qstring_lessp, Qprovide, Qrequire;
  Lisp_Object Qyes_or_no_p_history;
***************
*** 3460,3466 ****
       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)))
--- 3460,3466 ----
       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 (load_in_progress)
      {
        tem = Fcons (Qrequire, feature);
        if (NILP (Fmember (tem, Vcurrent_load_list)))
Index: src/lread.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/lread.c,v
retrieving revision 1.329
diff -c -r1.329 lread.c
*** src/lread.c 10 Apr 2005 00:28:37 -0000      1.329
--- src/lread.c 13 Apr 2005 08:42:51 -0000
***************
*** 1,6 ****
  /* Lisp parsing and input streams.
     Copyright (C) 1985, 1986, 1987, 1988, 1989, 1993, 1994, 1995, 1997, 1998,
!      1999, 2000, 2001, 2003, 2004  Free Software Foundation, Inc.
  
  This file is part of GNU Emacs.
  
--- 1,6 ----
  /* Lisp parsing and input streams.
     Copyright (C) 1985, 1986, 1987, 1988, 1989, 1993, 1994, 1995, 1997, 1998,
!      1999, 2000, 2001, 2003, 2004, 2005  Free Software Foundation, Inc.
  
  This file is part of GNU Emacs.
  
***************
*** 193,199 ****
  /* A list of file names for files being loaded in Fload.  Used to
     check for recursive loads.  */
  
! Lisp_Object Vloads_in_progress;
  
  /* Non-zero means load dangerous compiled Lisp files.  */
  
--- 193,199 ----
  /* A list of file names for files being loaded in Fload.  Used to
     check for recursive loads.  */
  
! static Lisp_Object Vloads_in_progress;
  
  /* Non-zero means load dangerous compiled Lisp files.  */
  




reply via email to

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