# HG changeset patch # User Stefan Monnier # Date 1285019109 -7200 # Node ID 0e1478bb5f00e80f7748f836a6732d0ee0b70c73 # Parent 2ecf65f18c7ce71e14faa43e28aa24358de2f939 * lisp/simple.el (blink-matching-open): Use syntax-class. * lisp/emacs-lisp/lisp.el (up-list): Don't do nothing silently. diff -r 2ecf65f18c7c -r 0e1478bb5f00 lisp/ChangeLog --- a/lisp/ChangeLog Mon Sep 20 16:57:01 2010 +0200 +++ b/lisp/ChangeLog Mon Sep 20 23:45:09 2010 +0200 @@ -1,5 +1,9 @@ 2010-09-20 Stefan Monnier + * 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. diff -r 2ecf65f18c7c -r 0e1478bb5f00 lisp/emacs-lisp/lisp.el --- a/lisp/emacs-lisp/lisp.el Mon Sep 20 16:57:01 2010 +0200 +++ b/lisp/emacs-lisp/lisp.el Mon Sep 20 23:45:09 2010 +0200 @@ -141,15 +141,19 @@ 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) diff -r 2ecf65f18c7c -r 0e1478bb5f00 lisp/simple.el --- a/lisp/simple.el Mon Sep 20 16:57:01 2010 +0200 +++ b/lisp/simple.el Mon Sep 20 23:45:09 2010 +0200 @@ -5525,9 +5525,10 @@ ;; 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))))))