diff lisp/paren.el @ 43830:78c2427665f0

(show-paren-function): Move back in other direction to verify the match is correct.
author Richard M. Stallman <rms@gnu.org>
date Mon, 11 Mar 2002 09:14:28 +0000
parents 3ab0eeb4df95
children 97c0efea1010
line wrap: on
line diff
--- a/lisp/paren.el	Mon Mar 11 09:10:19 2002 +0000
+++ b/lisp/paren.el	Mon Mar 11 09:14:28 2002 +0000
@@ -155,6 +155,14 @@
 	      (condition-case ()
 		  (setq pos (scan-sexps (point) dir))
 		(error (setq pos t mismatch t)))
+	      ;; Move back the other way and verify we get back to the
+	      ;; starting point.  If not, these two parens don't really match.
+	      ;; Maybe the one at point is escaped and doesn't really count.
+	      (when (integerp pos)
+		(unless (condition-case ()
+			    (eq (point) (scan-sexps pos (- dir)))
+			  (error nil))
+		  (setq pos nil)))
 	      ;; If found a "matching" paren, see if it is the right
 	      ;; kind of paren to match the one we started at.
 	      (when (integerp pos)