changeset 79094:a28250ba40a4

Re-fill copyright header. (blink-matching-open): Don't report false errors with the `$' syntax class.
author Glenn Morris <rgm@gnu.org>
date Tue, 16 Oct 2007 02:05:55 +0000
parents cc9515f436e3
children f92551297d22
files lisp/simple.el
diffstat 1 files changed, 15 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/simple.el	Mon Oct 15 17:39:35 2007 +0000
+++ b/lisp/simple.el	Tue Oct 16 02:05:55 2007 +0000
@@ -1,7 +1,8 @@
 ;;; simple.el --- basic editing commands for Emacs
 
 ;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-;;   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+;;   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+;;   Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
 ;; Keywords: internal
@@ -4485,7 +4486,8 @@
 	   matching-paren
 	   open-paren-line-string
 	   old-start
-	   new-start)
+	   new-start
+	   isdollar)
       (save-excursion
 	(save-restriction
 	  ;; Don't search for matching paren within minibuffer prompt.
@@ -4503,7 +4505,7 @@
 	    (error nil)))
 	(and blinkpos
 	     ;; Not syntax '$'.
-	     (not (eq (syntax-class (syntax-after blinkpos)) 8))
+	     (not (setq isdollar (eq (syntax-class (syntax-after blinkpos)) 8)))
 	     (setq matching-paren
 		   (let ((syntax (syntax-after blinkpos)))
 		     (and (consp syntax)
@@ -4511,12 +4513,19 @@
 			  (cdr syntax)))))
 	(cond
 	 ((not blinkpos)
-	  (unless (and blink-matching-paren-distance (> new-start old-start))
+	  ;; Don't complain when `$' with no blinkpos, because it
+	  ;; could just be the first one in the buffer.
+	  (unless (or (eq (syntax-class (syntax-after (1- oldpos))) 8)
+		      (and blink-matching-paren-distance
+			   (> new-start old-start))
 	    ;; When `blink-matching-paren-distance' is non-nil and we
 	    ;; didn't find a matching paren within that many characters
 	    ;; don't display a message.
-	    (message "Unmatched parenthesis")))
-	 ((not (or (eq matching-paren (char-before oldpos))
+		      (message "Unmatched parenthesis"))))
+	 ;; isdollar is for:
+	 ;; http://lists.gnu.org/archive/html/emacs-devel/2007-10/msg00871.html
+	  ((not (or isdollar
+		    (eq matching-paren (char-before oldpos))
 		   ;; The cdr might hold a new paren-class info rather than
 		   ;; a matching-char info, in which case the two CDRs
 		   ;; should match.