]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/simple.el (blink-matching-open): Use syntax-class.
authorStefan Monnier <monnier@iro.umontreal.ca>
Mon, 20 Sep 2010 21:45:09 +0000 (23:45 +0200)
committerStefan Monnier <monnier@iro.umontreal.ca>
Mon, 20 Sep 2010 21:45:09 +0000 (23:45 +0200)
* lisp/emacs-lisp/lisp.el (up-list): Don't do nothing silently.

lisp/ChangeLog
lisp/emacs-lisp/lisp.el
lisp/simple.el

index dadc344e9fc7c88053ea2ab40d3afe273a9699d8..96c953452fa9d94f49672b3b59db2c5c68f5cd90 100644 (file)
@@ -1,5 +1,9 @@
 2010-09-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+       * emacs-lisp/lisp.el (up-list): Don't do nothing silently.
+
+       * simple.el (blink-matching-open): Use syntax-class.
+
        * progmodes/pascal.el (pascal-mode): Use define-derived-mode.
        Set invisibility spec for pascal's outline mode.
        (pascal-outline-change): Clean up calling convention.
index e799dcd77c154ad8212d5a85c306da5c2f4264b2..cfb56eb32328d13ae4794fb74eb2fd709a35b676 100644 (file)
@@ -141,15 +141,19 @@ A negative argument means move backward but still to a less deep spot.
 This command assumes point is not in a string or comment."
   (interactive "^p")
   (or arg (setq arg 1))
-  (let ((inc (if (> arg 0) 1 -1)))
+  (let ((inc (if (> arg 0) 1 -1))
+        pos)
     (while (/= arg 0)
-      (if forward-sexp-function
+      (if (null forward-sexp-function)
+          (goto-char (or (scan-lists (point) inc 1) (buffer-end arg)))
           (condition-case err
-              (while (let ((pos (point)))
+              (while (progn (setq pos (point))
                        (forward-sexp inc)
                        (/= (point) pos)))
             (scan-error (goto-char (nth 2 err))))
-        (goto-char (or (scan-lists (point) inc 1) (buffer-end arg))))
+        (if (= (point) pos)
+            (signal 'scan-error
+                    (list "Unbalanced parentheses" (point) (point)))))
       (setq arg (- arg inc)))))
 
 (defun kill-sexp (&optional arg)
index 1ab737d5ec14faf4364ecc5aefccab046c40c8b5..ca20a57ec9c3d460dd260303d9e1df2424544d82 100644 (file)
@@ -5525,9 +5525,10 @@ The function should return non-nil if the two tokens do not match.")
                         ;; backward-sexp skips backward over prefix chars,
                         ;; so move back to the matching paren.
                         (while (and (< (point) (1- oldpos))
-                                    (let ((code (car (syntax-after (point)))))
-                                      (or (eq (logand 65536 code) 6)
-                                          (eq (logand 1048576 code) 1048576))))
+                                    (let ((code (syntax-after (point))))
+                                      (or (eq (syntax-class code) 6)
+                                          (eq (logand 1048576 (car code))
+                                              1048576))))
                           (forward-char 1))
                         (point))
                     (error nil))))))