Commit cf1c8cd9 authored by Karl Heuer's avatar Karl Heuer
Browse files

(debug, debugger-eval-expression): Preserve match-data.

parent f02256ef
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
(defvar debug-function-list nil (defvar debug-function-list nil
"List of functions currently set for debug on entry.") "List of functions currently set for debug on entry.")
(defvar debugger-outer-match-data)
(defvar debugger-outer-track-mouse) (defvar debugger-outer-track-mouse)
(defvar debugger-outer-last-command) (defvar debugger-outer-last-command)
(defvar debugger-outer-this-command) (defvar debugger-outer-this-command)
...@@ -56,7 +57,6 @@ any other args you like. In that case, the list of args after the ...@@ -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." first will be printed into the backtrace buffer."
(message "Entering debugger...") (message "Entering debugger...")
(let (debugger-value (let (debugger-value
(debugger-match-data (match-data))
(debug-on-error nil) (debug-on-error nil)
(debug-on-quit nil) (debug-on-quit nil)
(debugger-buffer (let ((default-major-mode 'fundamental-mode)) (debugger-buffer (let ((default-major-mode 'fundamental-mode))
...@@ -67,6 +67,7 @@ first will be printed into the backtrace buffer." ...@@ -67,6 +67,7 @@ first will be printed into the backtrace buffer."
(executing-macro nil) (executing-macro nil)
;; Save the outer values of these vars for the `e' command ;; Save the outer values of these vars for the `e' command
;; before we replace the values. ;; before we replace the values.
(debugger-outer-match-data (match-data))
(debugger-outer-track-mouse track-mouse) (debugger-outer-track-mouse track-mouse)
(debugger-outer-last-command last-command) (debugger-outer-last-command last-command)
(debugger-outer-this-command this-command) (debugger-outer-this-command this-command)
...@@ -148,7 +149,7 @@ first will be printed into the backtrace buffer." ...@@ -148,7 +149,7 @@ first will be printed into the backtrace buffer."
(erase-buffer) (erase-buffer)
(fundamental-mode)) (fundamental-mode))
(kill-buffer debugger-buffer)) (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 ;; Put into effect the modified values of these variables
;; in case the user set them with the `e' command. ;; in case the user set them with the `e' command.
(setq track-mouse debugger-outer-track-mouse) (setq track-mouse debugger-outer-track-mouse)
...@@ -297,7 +298,9 @@ Applies to the frame whose line point is on in the backtrace." ...@@ -297,7 +298,9 @@ Applies to the frame whose line point is on in the backtrace."
(standard-input debugger-outer-standard-input) (standard-input debugger-outer-standard-input)
(standard-output debugger-outer-standard-output) (standard-output debugger-outer-standard-output)
(cursor-in-echo-area debugger-outer-cursor-in-echo-area)) (cursor-in-echo-area debugger-outer-cursor-in-echo-area))
(store-match-data debugger-outer-match-data)
(prog1 (eval-expression exp) (prog1 (eval-expression exp)
(setq debugger-outer-match-data (match-data))
(setq debugger-outer-track-mouse track-mouse) (setq debugger-outer-track-mouse track-mouse)
(setq debugger-outer-last-command last-command) (setq debugger-outer-last-command last-command)
(setq debugger-outer-this-command this-command) (setq debugger-outer-this-command this-command)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment