From: Noah Friedman Date: Mon, 17 Aug 2015 19:59:12 +0000 (-0700) Subject: (blink-matching-open): Restore point before calling minibuffer-message. X-Git-Tag: emacs-25.0.90~1374 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=b892438d7a424e61f174d8b8a57e78077aa96a0c;p=emacs.git (blink-matching-open): Restore point before calling minibuffer-message. --- diff --git a/lisp/simple.el b/lisp/simple.el index 00c25db07d7..a9ef93e191c 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -7005,8 +7005,11 @@ The function should return non-nil if the two tokens do not match.") (delete-overlay blink-matching--overlay))))) (t (save-excursion - (goto-char blinkpos) - (let ((open-paren-line-string + (let* ((orig-pos (prog1 + (point) + (goto-char blinkpos))) + + (open-paren-line-string ;; Show what precedes the open in its line, if anything. (cond ((save-excursion (skip-chars-backward " \t") (not (bolp))) @@ -7034,6 +7037,9 @@ The function should return non-nil if the two tokens do not match.") (buffer-substring blinkpos (1+ blinkpos)))) ;; There is nothing to show except the char itself. (t (buffer-substring blinkpos (1+ blinkpos)))))) + ;; Because minibuffer-message causes a full redisplay, go back + ;; to the original point before that happens. + (goto-char orig-pos) (minibuffer-message "Matches %s" (substring-no-properties open-paren-line-string)))))))))