summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorKarl Heuer <kwzh@gnu.org>1994-04-16 07:18:26 +0000
committerKarl Heuer <kwzh@gnu.org>1994-04-16 07:18:26 +0000
commitcf1c8cd91d095ca655e10ef192f58453b005339d (patch)
tree38be57afcf0da95b8bfb71bd4ebb5210117f2dc4 /lisp/emacs-lisp
parentf02256ef9a904d39894d919387f3e04a6fafb100 (diff)
downloademacs-cf1c8cd91d095ca655e10ef192f58453b005339d.tar.gz
emacs-cf1c8cd91d095ca655e10ef192f58453b005339d.tar.bz2
emacs-cf1c8cd91d095ca655e10ef192f58453b005339d.zip
(debug, debugger-eval-expression): Preserve match-data.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/debug.el7
1 files changed, 5 insertions, 2 deletions
diff --git a/lisp/emacs-lisp/debug.el b/lisp/emacs-lisp/debug.el
index 68a26d8ebab..f8d2940c0e6 100644
--- a/lisp/emacs-lisp/debug.el
+++ b/lisp/emacs-lisp/debug.el
@@ -30,6 +30,7 @@
(defvar debug-function-list nil
"List of functions currently set for debug on entry.")
+(defvar debugger-outer-match-data)
(defvar debugger-outer-track-mouse)
(defvar debugger-outer-last-command)
(defvar debugger-outer-this-command)
@@ -56,7 +57,6 @@ any other args you like. In that case, the list of args after the
first will be printed into the backtrace buffer."
(message "Entering debugger...")
(let (debugger-value
- (debugger-match-data (match-data))
(debug-on-error nil)
(debug-on-quit nil)
(debugger-buffer (let ((default-major-mode 'fundamental-mode))
@@ -67,6 +67,7 @@ first will be printed into the backtrace buffer."
(executing-macro nil)
;; Save the outer values of these vars for the `e' command
;; before we replace the values.
+ (debugger-outer-match-data (match-data))
(debugger-outer-track-mouse track-mouse)
(debugger-outer-last-command last-command)
(debugger-outer-this-command this-command)
@@ -148,7 +149,7 @@ first will be printed into the backtrace buffer."
(erase-buffer)
(fundamental-mode))
(kill-buffer debugger-buffer))
- (store-match-data debugger-match-data)))
+ (store-match-data debugger-outer-match-data)))
;; Put into effect the modified values of these variables
;; in case the user set them with the `e' command.
(setq track-mouse debugger-outer-track-mouse)
@@ -297,7 +298,9 @@ Applies to the frame whose line point is on in the backtrace."
(standard-input debugger-outer-standard-input)
(standard-output debugger-outer-standard-output)
(cursor-in-echo-area debugger-outer-cursor-in-echo-area))
+ (store-match-data debugger-outer-match-data)
(prog1 (eval-expression exp)
+ (setq debugger-outer-match-data (match-data))
(setq debugger-outer-track-mouse track-mouse)
(setq debugger-outer-last-command last-command)
(setq debugger-outer-this-command this-command)