emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r101111: * lisp/emacs-lisp/lisp.el (u


From: Stefan Monnier
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r101111: * lisp/emacs-lisp/lisp.el (up-list): Obey forward-sexp-function if set.
Date: Tue, 17 Aug 2010 22:18:40 +0200
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 101111
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Tue 2010-08-17 22:18:40 +0200
message:
  * lisp/emacs-lisp/lisp.el (up-list): Obey forward-sexp-function if set.
modified:
  lisp/ChangeLog
  lisp/emacs-lisp/lisp.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2010-08-17 16:32:08 +0000
+++ b/lisp/ChangeLog    2010-08-17 20:18:40 +0000
@@ -1,5 +1,7 @@
 2010-08-17  Stefan Monnier  <address@hidden>
 
+       * 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.

=== modified file 'lisp/emacs-lisp/lisp.el'
--- a/lisp/emacs-lisp/lisp.el   2010-05-08 18:47:07 +0000
+++ b/lisp/emacs-lisp/lisp.el   2010-08-17 20:18:40 +0000
@@ -142,7 +142,13 @@
   (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)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]