Mercurial > emacs
changeset 110448:0e1478bb5f00
* lisp/simple.el (blink-matching-open): Use syntax-class.
* lisp/emacs-lisp/lisp.el (up-list): Don't do nothing silently.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Mon, 20 Sep 2010 23:45:09 +0200 |
parents | 2ecf65f18c7c |
children | 45304f108596 |
files | lisp/ChangeLog lisp/emacs-lisp/lisp.el lisp/simple.el |
diffstat | 3 files changed, 16 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- 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 <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.
--- 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)
--- 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))))))