]> git.eshelyaron.com Git - emacs.git/commitdiff
(outline-next-visible-heading): Rewritten to handle
authorRichard M. Stallman <rms@gnu.org>
Wed, 19 Jul 1995 03:19:03 +0000 (03:19 +0000)
committerRichard M. Stallman <rms@gnu.org>
Wed, 19 Jul 1995 03:19:03 +0000 (03:19 +0000)
backwards motion and handle beg/end of buffer properly.

lisp/textmodes/outline.el

index b169396ef20bfe058597c5d79e320306b7362084..84d95ef36e7364712d039e6a00dd62107e013191 100644 (file)
@@ -331,16 +331,18 @@ A heading line is one that starts with a `*' (or that
   (if (< arg 0)
       (beginning-of-line)
     (end-of-line))
-  (let (found)
-    (or (while (and found (> arg 0))
-         (setq found nil)
-         (while (not found)
-           (setq found
-                 (and (re-search-backward (concat "^\\(" outline-regexp "\\)")
-                                          nil t)
-                      (outline-visible))))
-         (setq arg (1- arg)))
-       (error "")))
+  (while (and (not (bobp)) (< arg 0))
+    (while (and (not (bobp))
+               (re-search-backward (concat "^\\(" outline-regexp "\\)")
+                                   nil 'move)
+               (not (outline-visible))))
+    (setq arg (1+ arg)))
+  (while (and (not (eobp)) (> arg 0))
+    (while (and (not (eobp))
+               (re-search-forward (concat "^\\(" outline-regexp "\\)")
+                                  nil 'move)
+               (not (outline-visible))))
+    (setq arg (1- arg)))
   (beginning-of-line))
 
 (defun outline-previous-visible-heading (arg)