emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/src/eval.c [lexbind]


From: Miles Bader
Subject: [Emacs-diffs] Changes to emacs/src/eval.c [lexbind]
Date: Wed, 08 Dec 2004 18:57:10 -0500

Index: emacs/src/eval.c
diff -c emacs/src/eval.c:1.189.2.17 emacs/src/eval.c:1.189.2.18
*** emacs/src/eval.c:1.189.2.17 Fri Nov 12 04:21:16 2004
--- emacs/src/eval.c    Wed Dec  8 23:36:24 2004
***************
*** 216,222 ****
    specpdl_size = 50;
    specpdl = (struct specbinding *) xmalloc (specpdl_size * sizeof (struct 
specbinding));
    specpdl_ptr = specpdl;
!   max_specpdl_size = 600;
    max_lisp_eval_depth = 300;
  
    Vrun_hooks = Qnil;
--- 216,222 ----
    specpdl_size = 50;
    specpdl = (struct specbinding *) xmalloc (specpdl_size * sizeof (struct 
specbinding));
    specpdl_ptr = specpdl;
!   max_specpdl_size = 1000;
    max_lisp_eval_depth = 300;
  
    Vrun_hooks = Qnil;
***************
*** 588,594 ****
  unconditionally for that argument.  (`p' is a good way to do this.)  */)
       ()
  {
!   return (INTERACTIVE && interactive_p (1)) ? Qt : Qnil;
  }
  
  
--- 588,594 ----
  unconditionally for that argument.  (`p' is a good way to do this.)  */)
       ()
  {
!   return interactive_p (1) ? Qt : Qnil;
  }
  
  
***************
*** 625,631 ****
    /* If this isn't a byte-compiled function, there may be a frame at
       the top for Finteractive_p.  If so, skip it.  */
    fun = Findirect_function (*btp->function);
!   if (SUBRP (fun) && XSUBR (fun) == &Sinteractive_p)
      btp = btp->next;
  
    /* If we're running an Emacs 18-style byte-compiled function, there
--- 625,632 ----
    /* If this isn't a byte-compiled function, there may be a frame at
       the top for Finteractive_p.  If so, skip it.  */
    fun = Findirect_function (*btp->function);
!   if (SUBRP (fun) && (XSUBR (fun) == &Sinteractive_p
!                     || XSUBR (fun) == &Scalled_interactively_p))
      btp = btp->next;
  
    /* If we're running an Emacs 18-style byte-compiled function, there
***************
*** 823,828 ****
--- 824,844 ----
      {
        if (NILP (tem))
        Fset_default (sym, Feval (Fcar (tail)));
+       else
+       { /* Check if there is really a global binding rather than just a let
+            binding that shadows the global unboundness of the var.  */
+         volatile struct specbinding *pdl = specpdl_ptr;
+         while (--pdl >= specpdl)
+           {
+             if (EQ (pdl->symbol, sym) && !pdl->func
+                 && EQ (pdl->old_value, Qunbound))
+               {
+                 message_with_string ("Warning: defvar ignored because %s is 
let-bound",
+                                      SYMBOL_NAME (sym), 1);
+                 break;
+               }
+           }
+       }
        tail = Fcdr (tail);
        tem = Fcar (tail);
        if (!NILP (tem))
***************
*** 1232,1240 ****
    /* Save the value in the tag.  */
    catch->val = value;
  
!   /* Restore the polling-suppression count.  */
    set_poll_suppress_count (catch->poll_suppress_count);
    interrupt_input_blocked = catch->interrupt_input_blocked;
  
    do
      {
--- 1248,1257 ----
    /* Save the value in the tag.  */
    catch->val = value;
  
!   /* Restore certain special C variables.  */
    set_poll_suppress_count (catch->poll_suppress_count);
    interrupt_input_blocked = catch->interrupt_input_blocked;
+   handling_signal = 0;
  
    do
      {




reply via email to

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