# HG changeset patch # User Karl Heuer # Date 766480706 0 # Node ID 027b7de8a571a82b7187fd6dd15d9c09190eca3e # Parent f6a18b7160b176744bc915eb91afdd051451c938 (debug, debugger-eval-expression): Preserve match-data. diff -r f6a18b7160b1 -r 027b7de8a571 lisp/emacs-lisp/debug.el --- a/lisp/emacs-lisp/debug.el Sat Apr 16 06:58:38 1994 +0000 +++ b/lisp/emacs-lisp/debug.el Sat Apr 16 07:18:26 1994 +0000 @@ -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 @@ 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 @@ (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 @@ (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 @@ (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)