diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2010-08-17 22:18:40 +0200 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2010-08-17 22:18:40 +0200 |
commit | afa22f7ce71a818dd61cf3dc4c21b0c01b2e63fe (patch) | |
tree | 0f1d7c5d9825254651f60723553e2efd18728090 | |
parent | 0cc5642708811f2a2e19fe87072e1076837abf99 (diff) | |
download | emacs-afa22f7ce71a818dd61cf3dc4c21b0c01b2e63fe.tar.gz |
* lisp/emacs-lisp/lisp.el (up-list): Obey forward-sexp-function if set.
-rw-r--r-- | lisp/ChangeLog | 2 | ||||
-rw-r--r-- | lisp/emacs-lisp/lisp.el | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index db60b546e6d..2803ec0a488 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,7 @@ 2010-08-17 Stefan Monnier <monnier@iro.umontreal.ca> + * emacs-lisp/lisp.el (up-list): Obey forward-sexp-function if set. + Font-lock '...' strings, plus various simplifications and fixes. * progmodes/octave-mod.el (octave-font-lock-keywords): Use regexp-opt. (octave-font-lock-close-quotes): New function. diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el index 4ef6dab8968..c728abab496 100644 --- a/lisp/emacs-lisp/lisp.el +++ b/lisp/emacs-lisp/lisp.el @@ -142,7 +142,13 @@ This command assumes point is not in a string or comment." (or arg (setq arg 1)) (let ((inc (if (> arg 0) 1 -1))) (while (/= arg 0) - (goto-char (or (scan-lists (point) inc 1) (buffer-end arg))) + (if forward-sexp-function + (condition-case err + (while (let ((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)))) (setq arg (- arg inc))))) (defun kill-sexp (&optional arg) |