Add support for lexical variables to the debugger's `e' command.
authorStefan Monnier <monnier@iro.umontreal.ca>
Fri, 26 Jul 2013 07:38:18 +0000 (03:38 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Fri, 26 Jul 2013 07:38:18 +0000 (03:38 -0400)
commit56ea72917a7a700e29cf6c115fd1cd75ad782e9e
tree1a9220717c6333b376d45ebc044ad8ed71cfda37
parentf6b1502430653fac080f76a08edd2eb690f92146
Add support for lexical variables to the debugger's `e' command.
* lisp/emacs-lisp/debug.el (debug): Don't let-bind the debugger-outer-*
vars, except for debugger-outer-match-data.
(debugger-frame-number): Move check for "on a function call" from
callers into it.  Add `skip-base' argument.
(debugger-frame, debugger-frame-clear): Simplify accordingly.
(debugger-env-macro): Only reset the state stored in non-variables,
i.e. current-buffer and match-data.
(debugger-eval-expression): Rewrite using backtrace-eval.
* lisp/subr.el (internal--called-interactively-p--get-frame): Remove.
(called-interactively-p):
* lisp/emacs-lisp/edebug.el (edebug--called-interactively-skip): Use the new
`base' arg of backtrace-frame instead.
* src/eval.c (set_specpdl_old_value): New function.
(unbind_to): Minor simplification.
(get_backtrace_frame): New function.
(Fbacktrace_frame): Use it.  Add `base' argument.
(backtrace_eval_unrewind, Fbacktrace_eval): New functions.
(syms_of_eval): Export backtrace-eval.
* src/xterm.c (x_focus_changed): Simplify.
etc/NEWS
lisp/ChangeLog
lisp/emacs-lisp/debug.el
lisp/emacs-lisp/edebug.el
lisp/subr.el
src/ChangeLog
src/eval.c
src/xterm.c