From d6f9c03fbb8ae9a268bf6c8ab9651d9c831e8865 Mon Sep 17 00:00:00 2001 From: Bastien Guerry Date: Wed, 23 Jan 2013 10:43:29 +0100 Subject: [PATCH] * paren.el (show-paren-function): Make sure an overlay exists before trying to delete it. Also use `pos' as a position only when it is an integer. See this thread: http://thread.gmane.org/gmane.emacs.devel/156498 --- lisp/ChangeLog | 6 ++++++ lisp/paren.el | 30 +++++++++++++++--------------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 3797a87751d..d783443f528 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2013-01-23 Bastien Guerry + + * paren.el (show-paren-function): Make sure an overlay exists + before trying to delete it. Also use `pos' as a position only + when it is an integer. + 2013-01-23 Dmitry Antipov * play/gametree.el (gametree-break-line-here): Use point-marker. diff --git a/lisp/paren.el b/lisp/paren.el index b87c8bde89a..bf2238d4907 100644 --- a/lisp/paren.el +++ b/lisp/paren.el @@ -243,23 +243,23 @@ matching parenthesis is highlighted in `show-paren-style' after ;; ;; Turn on highlighting for the matching paren, if found. ;; If it's an unmatched paren, turn off any such highlighting. - (unless (integerp pos) - (delete-overlay show-paren-overlay)) - (let ((to (if (or (eq show-paren-style 'expression) - (and (eq show-paren-style 'mixed) - (not (pos-visible-in-window-p pos)))) - (point) - pos)) - (from (if (or (eq show-paren-style 'expression) + (if (not (integerp pos)) + (when show-paren-overlay (delete-overlay show-paren-overlay)) + (let ((to (if (or (eq show-paren-style 'expression) (and (eq show-paren-style 'mixed) (not (pos-visible-in-window-p pos)))) - pos - (save-excursion - (goto-char pos) - (- (point) dir))))) - (if show-paren-overlay - (move-overlay show-paren-overlay from to (current-buffer)) - (setq show-paren-overlay (make-overlay from to nil t)))) + (point) + pos)) + (from (if (or (eq show-paren-style 'expression) + (and (eq show-paren-style 'mixed) + (not (pos-visible-in-window-p pos)))) + pos + (save-excursion + (goto-char pos) + (- (point) dir))))) + (if show-paren-overlay + (move-overlay show-paren-overlay from to (current-buffer)) + (setq show-paren-overlay (make-overlay from to nil t))))) ;; ;; Always set the overlay face, since it varies. (overlay-put show-paren-overlay 'priority show-paren-priority) -- 2.39.2