mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-30 04:10:54 -08:00
(show-paren-function): Handle multibyte characters.
This commit is contained in:
parent
51a02226c2
commit
f8e2c40cde
1 changed files with 12 additions and 8 deletions
|
|
@ -104,7 +104,7 @@ after `show-paren-delay' seconds of Emacs idle time."
|
|||
(let ((beg (min pos oldpos)) (end (max pos oldpos)))
|
||||
(and (/= (char-syntax (char-after beg)) ?\$)
|
||||
(setq mismatch
|
||||
(not (eq (char-after (1- end))
|
||||
(not (eq (char-before end)
|
||||
;; This can give nil.
|
||||
(matching-paren (char-after beg))))))))
|
||||
;; If they don't properly match, use a different face,
|
||||
|
|
@ -137,9 +137,9 @@ after `show-paren-delay' seconds of Emacs idle time."
|
|||
;; highlight the paren at point to indicate misbalance.
|
||||
(let ((from (if (= dir 1)
|
||||
(point)
|
||||
(1- (point))))
|
||||
(forward-point -1)))
|
||||
(to (if (= dir 1)
|
||||
(1+ (point))
|
||||
(forward-point 1)
|
||||
(point))))
|
||||
(if show-paren-overlay-1
|
||||
(move-overlay show-paren-overlay-1
|
||||
|
|
@ -157,11 +157,15 @@ after `show-paren-delay' seconds of Emacs idle time."
|
|||
;; If it's an unmatched paren, turn off any such highlighting.
|
||||
(or (and (not (integerp pos))
|
||||
(delete-overlay show-paren-overlay))
|
||||
(if show-paren-overlay
|
||||
(move-overlay show-paren-overlay (- pos dir) pos
|
||||
(current-buffer))
|
||||
(setq show-paren-overlay
|
||||
(make-overlay (- pos dir) pos))))
|
||||
(save-excursion
|
||||
(goto-char pos)
|
||||
(if show-paren-overlay
|
||||
(move-overlay show-paren-overlay
|
||||
(forward-point (- dir))
|
||||
pos
|
||||
(current-buffer))
|
||||
(setq show-paren-overlay
|
||||
(make-overlay (forward-point (- dir)) pos)))))
|
||||
;; Always set the overlay face, since it varies.
|
||||
(overlay-put show-paren-overlay 'face face))
|
||||
(t
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue