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


From: Richard M. Stallman
Subject: [Emacs-diffs] Changes to emacs/src/eval.c
Date: Fri, 12 Jul 2002 07:16:42 -0400

Index: emacs/src/eval.c
diff -c emacs/src/eval.c:1.191 emacs/src/eval.c:1.192
*** emacs/src/eval.c:1.191      Thu Jul 11 10:11:04 2002
--- emacs/src/eval.c    Fri Jul 12 07:16:42 2002
***************
*** 1453,1459 ****
       Lisp_Object error_symbol, data;
  {
    /* When memory is full, ERROR-SYMBOL is nil,
!      and DATA is (REAL-ERROR-SYMBOL . REAL-DATA).  */
    register struct handler *allhandlers = handlerlist;
    Lisp_Object conditions;
    extern int gc_in_progress;
--- 1453,1460 ----
       Lisp_Object error_symbol, data;
  {
    /* When memory is full, ERROR-SYMBOL is nil,
!      and DATA is (REAL-ERROR-SYMBOL . REAL-DATA).
!      That is a special case--don't do this in other situations.  */
    register struct handler *allhandlers = handlerlist;
    Lisp_Object conditions;
    extern int gc_in_progress;
***************
*** 1474,1495 ****
    else
      real_error_symbol = error_symbol;
  
  #ifdef HAVE_X_WINDOWS
    if (display_hourglass_p)
      cancel_hourglass ();
  #endif
  
    /* This hook is used by edebug.  */
!   if (! NILP (Vsignal_hook_function))
      call2 (Vsignal_hook_function, error_symbol, data);
  
    conditions = Fget (real_error_symbol, Qerror_conditions);
  
    /* Remember from where signal was called.  Skip over the frame for
       `signal' itself.  If a frame for `error' follows, skip that,
!      too.  */
    Vsignaling_function = Qnil;
!   if (backtrace_list)
      {
        bp = backtrace_list->next;
        if (bp && bp->function && EQ (*bp->function, Qerror))
--- 1475,1501 ----
    else
      real_error_symbol = error_symbol;
  
+ #if 0 /* rms: I don't know why this was here,
+        but it is surely wrong for an error that is handled.  */
  #ifdef HAVE_X_WINDOWS
    if (display_hourglass_p)
      cancel_hourglass ();
  #endif
+ #endif 
  
    /* This hook is used by edebug.  */
!   if (! NILP (Vsignal_hook_function)
!       && ! NILP (error_symbol))
      call2 (Vsignal_hook_function, error_symbol, data);
  
    conditions = Fget (real_error_symbol, Qerror_conditions);
  
    /* Remember from where signal was called.  Skip over the frame for
       `signal' itself.  If a frame for `error' follows, skip that,
!      too.  Don't do this when ERROR_SYMBOL is nil, because that
!      is a memory-full error.  */
    Vsignaling_function = Qnil;
!   if (backtrace_list && !NILP (error_symbol))
      {
        bp = backtrace_list->next;
        if (bp && bp->function && EQ (*bp->function, Qerror))
***************
*** 1511,1523 ****
        clause = find_handler_clause (handlerlist->handler, conditions,
                                    error_symbol, data, &debugger_value);
  
- #if 0 /* Most callers are not prepared to handle gc if this returns.
-        So, since this feature is not very useful, take it out.  */
-       /* If have called debugger and user wants to continue,
-        just return nil.  */
-       if (EQ (clause, Qlambda))
-       return debugger_value;
- #else
        if (EQ (clause, Qlambda))
        {
          /* We can't return values to code which signaled an error, but we
--- 1517,1522 ----
***************
*** 1527,1533 ****
          else
            error ("Cannot return from the debugger in an error");
        }
- #endif
  
        if (!NILP (clause))
        {
--- 1526,1531 ----



reply via email to

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