]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/paren.el (show-paren-function): Don't show escaped parens.
authorJuri Linkov <juri@jurta.org>
Sat, 10 Sep 2011 11:28:19 +0000 (14:28 +0300)
committerJuri Linkov <juri@jurta.org>
Sat, 10 Sep 2011 11:28:19 +0000 (14:28 +0300)
Let-bind `unescaped' to `t' when paren is not escaped.

Fixes: debbugs:9461
lisp/ChangeLog
lisp/paren.el

index d1a219dfb8d7f78d8d50459f07009d895279b6db..311c02e64b3d4ef663b6f09984183f44c1684b94 100644 (file)
@@ -1,3 +1,8 @@
+2011-09-10  Juri Linkov  <juri@jurta.org>
+
+       * paren.el (show-paren-function): Don't show escaped parens.
+       Let-bind `unescaped' to `t' when paren is not escaped.  (Bug#9461)
+
 2011-09-10  Eli Zaretskii  <eliz@gnu.org>
 
        * mail/sendmail.el (mml-to-mime, mml-attach-file)
index 8bd96b9317ad7e05d649357d08b9bf09d701c419..fb5c0bf36e927dcd53f3f2c9136f86522c8f7f1c 100644 (file)
@@ -135,13 +135,23 @@ in `show-paren-style' after `show-paren-delay' seconds of Emacs idle time."
 ;; and show it until input arrives.
 (defun show-paren-function ()
   (if show-paren-mode
-      (let ((oldpos (point))
-           (dir (cond ((eq (syntax-class (syntax-after (1- (point)))) 5) -1)
-                       ((eq (syntax-class (syntax-after (point)))      4) 1)))
-           pos mismatch face)
+      (let* ((oldpos (point))
+            (dir (cond ((eq (syntax-class (syntax-after (1- (point)))) 5) -1)
+                       ((eq (syntax-class (syntax-after (point)))      4) 1)))
+            (unescaped
+             (when dir
+               ;; Verify an even number of quoting characters precede the paren.
+               ;; Follow the same logic as in `blink-matching-open'.
+               (= (if (= dir -1) 1 0)
+                  (logand 1 (- (point)
+                               (save-excursion
+                                 (if (= dir -1) (forward-char -1))
+                                 (skip-syntax-backward "/\\")
+                                 (point)))))))
+            pos mismatch face)
        ;;
        ;; Find the other end of the sexp.
-       (when dir
+       (when unescaped
          (save-excursion
            (save-restriction
              ;; Determine the range within which to look for a match.