tags 433666 + fixed-upstream patch
thanks

Alexander Klauer <[EMAIL PROTECTED]> writes:

> 1. Start a new text file with:
>
> emacs test.tex
>
> tex-mode should start automatically.
>
> 2. Type a dollar sign ("$") into the edit window
>
> 3. emacs immediately complains about "mismatched parentheses".

This bug has just been fixed upstream in the release branch for Emacs
22.2, here are the changelog entry and the patch:

2007-10-16  Glenn Morris  <[EMAIL PROTECTED]>

        * simple.el (blink-matching-open): Don't report false errors with
        the `$' syntax class.


Index: simple.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/simple.el,v
retrieving revision 1.859.2.10
retrieving revision 1.859.2.11
diff -u -r1.859.2.10 -r1.859.2.11
--- simple.el   7 Oct 2007 00:30:18 -0000       1.859.2.10
+++ simple.el   16 Oct 2007 02:05:55 -0000      1.859.2.11
@@ -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.



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to