* lisp/emacs-lisp/lisp.el (up-list): Fix forward movement.
authorStefan Monnier <monnier@iro.umontreal.ca>
Mon, 23 May 2011 16:40:16 +0000 (13:40 -0300)
committerStefan Monnier <monnier@iro.umontreal.ca>
Mon, 23 May 2011 16:40:16 +0000 (13:40 -0300)
Fixes: debbugs:8708

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

index 1098bdd..31444f9 100644 (file)
@@ -1,3 +1,7 @@
+2011-05-23  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * emacs-lisp/lisp.el (up-list): Fix forward movement (bug#8708).
+
 2011-05-23  Ken Manheimer  <ken.manheimer@gmail.com>
 
        * allout.el (allout-inhibit-auto-fill-on-headline): Create new
index ef0c49b..ece96fe 100644 (file)
@@ -145,12 +145,12 @@ This command assumes point is not in a string or comment."
     (while (/= arg 0)
       (if (null forward-sexp-function)
           (goto-char (or (scan-lists (point) inc 1) (buffer-end arg)))
-          (condition-case err
-              (while (progn (setq pos (point))
-                       (forward-sexp inc)
-                       (/= (point) pos)))
-            (scan-error (goto-char (nth 2 err))))
-        (if (= (point) pos)
+       (condition-case err
+           (while (progn (setq pos (point))
+                         (forward-sexp inc)
+                         (/= (point) pos)))
+         (scan-error (goto-char (nth (if (> arg 0) 3 2) err))))
+       (if (= (point) pos)
             (signal 'scan-error
                     (list "Unbalanced parentheses" (point) (point)))))
       (setq arg (- arg inc)))))