aboutsummaryrefslogtreecommitdiffstats
path: root/src/eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c41
1 files changed, 38 insertions, 3 deletions
diff --git a/src/eval.c b/src/eval.c
index 77d435acbe6..ac98ca11bd4 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -596,6 +596,11 @@ The return value is BASE-VARIABLE. */)
596 error ("Cannot make an internal variable an alias"); 596 error ("Cannot make an internal variable an alias");
597 case SYMBOL_LOCALIZED: 597 case SYMBOL_LOCALIZED:
598 error ("Don't know how to make a localized variable an alias"); 598 error ("Don't know how to make a localized variable an alias");
599 case SYMBOL_PLAINVAL:
600 case SYMBOL_VARALIAS:
601 break;
602 default:
603 emacs_abort ();
599 } 604 }
600 605
601 /* http://lists.gnu.org/archive/html/emacs-devel/2008-04/msg00834.html 606 /* http://lists.gnu.org/archive/html/emacs-devel/2008-04/msg00834.html
@@ -640,6 +645,17 @@ default_toplevel_binding (Lisp_Object symbol)
640 if (EQ (specpdl_symbol (pdl), symbol)) 645 if (EQ (specpdl_symbol (pdl), symbol))
641 binding = pdl; 646 binding = pdl;
642 break; 647 break;
648
649 case SPECPDL_UNWIND:
650 case SPECPDL_UNWIND_PTR:
651 case SPECPDL_UNWIND_INT:
652 case SPECPDL_UNWIND_VOID:
653 case SPECPDL_BACKTRACE:
654 case SPECPDL_LET_LOCAL:
655 break;
656
657 default:
658 emacs_abort ();
643 } 659 }
644 } 660 }
645 return binding; 661 return binding;
@@ -689,7 +705,7 @@ If SYMBOL has a local binding, then this form affects the local
689binding. This is usually not what you want. Thus, if you need to 705binding. This is usually not what you want. Thus, if you need to
690load a file defining variables, with this form or with `defconst' or 706load a file defining variables, with this form or with `defconst' or
691`defcustom', you should always load that file _outside_ any bindings 707`defcustom', you should always load that file _outside_ any bindings
692for these variables. \(`defconst' and `defcustom' behave similarly in 708for these variables. (`defconst' and `defcustom' behave similarly in
693this respect.) 709this respect.)
694 710
695The optional argument DOCSTRING is a documentation string for the 711The optional argument DOCSTRING is a documentation string for the
@@ -1172,7 +1188,7 @@ suppresses the debugger).
1172When a handler handles an error, control returns to the `condition-case' 1188When a handler handles an error, control returns to the `condition-case'
1173and it executes the handler's BODY... 1189and it executes the handler's BODY...
1174with VAR bound to (ERROR-SYMBOL . SIGNAL-DATA) from the error. 1190with VAR bound to (ERROR-SYMBOL . SIGNAL-DATA) from the error.
1175\(If VAR is nil, the handler can't access that information.) 1191(If VAR is nil, the handler can't access that information.)
1176Then the value of the last BODY form is returned from the `condition-case' 1192Then the value of the last BODY form is returned from the `condition-case'
1177expression. 1193expression.
1178 1194
@@ -2350,7 +2366,7 @@ may be nil, a function, or a list of functions. Call each
2350function in order with arguments ARGS, stopping at the first 2366function in order with arguments ARGS, stopping at the first
2351one that returns nil, and return nil. Otherwise (if all functions 2367one that returns nil, and return nil. Otherwise (if all functions
2352return non-nil, or if there are no functions to call), return non-nil 2368return non-nil, or if there are no functions to call), return non-nil
2353\(do not rely on the precise return value in this case). 2369(do not rely on the precise return value in this case).
2354 2370
2355Do not use `make-local-variable' to make a hook variable buffer-local. 2371Do not use `make-local-variable' to make a hook variable buffer-local.
2356Instead, use `add-hook' and specify t for the LOCAL argument. 2372Instead, use `add-hook' and specify t for the LOCAL argument.
@@ -3462,6 +3478,17 @@ NFRAMES and BASE specify the activation frame to use, as in `backtrace-frame'.
3462 else 3478 else
3463 result = Fcons (Fcons (sym, val), result); 3479 result = Fcons (Fcons (sym, val), result);
3464 } 3480 }
3481 break;
3482
3483 case SPECPDL_UNWIND:
3484 case SPECPDL_UNWIND_PTR:
3485 case SPECPDL_UNWIND_INT:
3486 case SPECPDL_UNWIND_VOID:
3487 case SPECPDL_BACKTRACE:
3488 break;
3489
3490 default:
3491 emacs_abort ();
3465 } 3492 }
3466 } 3493 }
3467 } 3494 }
@@ -3504,6 +3531,14 @@ mark_specpdl (void)
3504 mark_object (specpdl_symbol (pdl)); 3531 mark_object (specpdl_symbol (pdl));
3505 mark_object (specpdl_old_value (pdl)); 3532 mark_object (specpdl_old_value (pdl));
3506 break; 3533 break;
3534
3535 case SPECPDL_UNWIND_PTR:
3536 case SPECPDL_UNWIND_INT:
3537 case SPECPDL_UNWIND_VOID:
3538 break;
3539
3540 default:
3541 emacs_abort ();
3507 } 3542 }
3508 } 3543 }
3509} 3544}