diff options
Diffstat (limited to 'src/eval.c')
| -rw-r--r-- | src/eval.c | 41 | 
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.  */)        error ("Cannot make an internal variable an alias");      case SYMBOL_LOCALIZED:        error ("Don't know how to make a localized variable an alias"); +    case SYMBOL_PLAINVAL: +    case SYMBOL_VARALIAS: +      break; +    default: +      emacs_abort ();      }    /* http://lists.gnu.org/archive/html/emacs-devel/2008-04/msg00834.html @@ -640,6 +645,17 @@ default_toplevel_binding (Lisp_Object symbol)  	  if (EQ (specpdl_symbol (pdl), symbol))  	    binding = pdl;  	  break; + +	case SPECPDL_UNWIND: +	case SPECPDL_UNWIND_PTR: +	case SPECPDL_UNWIND_INT: +	case SPECPDL_UNWIND_VOID: +	case SPECPDL_BACKTRACE: +	case SPECPDL_LET_LOCAL: +	  break; + +	default: +	  emacs_abort ();  	}      }    return binding; @@ -689,7 +705,7 @@ If SYMBOL has a local binding, then this form affects the local  binding.  This is usually not what you want.  Thus, if you need to  load a file defining variables, with this form or with `defconst' or  `defcustom', you should always load that file _outside_ any bindings -for these variables.  \(`defconst' and `defcustom' behave similarly in +for these variables.  (`defconst' and `defcustom' behave similarly in  this respect.)  The optional argument DOCSTRING is a documentation string for the @@ -1172,7 +1188,7 @@ suppresses the debugger).  When a handler handles an error, control returns to the `condition-case'  and it executes the handler's BODY...  with VAR bound to (ERROR-SYMBOL . SIGNAL-DATA) from the error. -\(If VAR is nil, the handler can't access that information.) +(If VAR is nil, the handler can't access that information.)  Then the value of the last BODY form is returned from the `condition-case'  expression. @@ -2350,7 +2366,7 @@ may be nil, a function, or a list of functions.  Call each  function in order with arguments ARGS, stopping at the first  one that returns nil, and return nil.  Otherwise (if all functions  return non-nil, or if there are no functions to call), return non-nil -\(do not rely on the precise return value in this case). +(do not rely on the precise return value in this case).  Do not use `make-local-variable' to make a hook variable buffer-local.  Instead, 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'.  	      else  		result = Fcons (Fcons (sym, val), result);  	    } +	    break; + +	  case SPECPDL_UNWIND: +	  case SPECPDL_UNWIND_PTR: +	  case SPECPDL_UNWIND_INT: +	  case SPECPDL_UNWIND_VOID: +	  case SPECPDL_BACKTRACE: +	    break; + +	  default: +	    emacs_abort ();  	  }        }    } @@ -3504,6 +3531,14 @@ mark_specpdl (void)  	  mark_object (specpdl_symbol (pdl));  	  mark_object (specpdl_old_value (pdl));  	  break; + +	case SPECPDL_UNWIND_PTR: +	case SPECPDL_UNWIND_INT: +	case SPECPDL_UNWIND_VOID: +	  break; + +	default: +	  emacs_abort ();  	}      }  }  | 
