# HG changeset patch # User Stefan Monnier # Date 1014621954 0 # Node ID a604392198d78e8b1f5f494d6e351abe0812c147 # Parent 73799bd459a3b75235d20f17dd2201c61bb2aa7e (ielm-match-data): New var. (inferior-emacs-lisp-mode): Make it buffer-local. (ielm-eval-input): Use it to preserve match-data between inputs. diff -r 73799bd459a3 -r a604392198d7 lisp/ielm.el --- a/lisp/ielm.el Sun Feb 24 20:37:24 2002 +0000 +++ b/lisp/ielm.el Mon Feb 25 07:25:54 2002 +0000 @@ -103,6 +103,9 @@ (defvar *** nil "Third-most-recent value evaluated in IELM.") +(defvar ielm-match-data nil + "Match data saved at the end of last command.") + ;;; System variables (defvar ielm-working-buffer nil @@ -313,6 +316,7 @@ (let ((*save *) (**save **) (***save ***)) + (set-match-data ielm-match-data) (save-excursion (set-buffer ielm-working-buffer) (condition-case err @@ -330,7 +334,8 @@ (error (setq ielm-result (ielm-format-error err)) (setq ielm-error-type "Eval error")) (quit (setq ielm-result "Quit during evaluation") - (setq ielm-error-type "Eval error"))))) + (setq ielm-error-type "Eval error")))) + (setq ielm-match-data (match-data))) (setq ielm-error-type "IELM error") (setq ielm-result "More than one sexp in input")))) @@ -451,6 +456,7 @@ (make-local-variable '**) (setq *** nil) (make-local-variable '***) + (set (make-local-variable 'ielm-match-data) nil) ;; font-lock support (make-local-variable 'font-lock-defaults)