* 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
This commit is contained in:
Bastien Guerry 2013-01-23 10:43:29 +01:00
parent 3544e11a34
commit d6f9c03fbb
2 changed files with 21 additions and 15 deletions

View file

@ -1,3 +1,9 @@
2013-01-23 Bastien Guerry <bzg@gnu.org>
* 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 <dmantipov@yandex.ru>
* play/gametree.el (gametree-break-line-here): Use point-marker.

View file

@ -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)