]> git.eshelyaron.com Git - emacs.git/commitdiff
(outline-next-visible-heading): Fix the case with a header at end-of-file
authorEli Zaretskii <eliz@gnu.org>
Fri, 22 Dec 2006 22:57:15 +0000 (22:57 +0000)
committerEli Zaretskii <eliz@gnu.org>
Fri, 22 Dec 2006 22:57:15 +0000 (22:57 +0000)
with no final newline.

lisp/outline.el

index b44fd288bfc53e8bda7bc36a9576234e87b826b4..95594ebec9f8aedd63622fa0ddee9d925cac5dc1 100644 (file)
@@ -652,19 +652,24 @@ A heading line is one that starts with a `*' (or that
   (if (< arg 0)
       (beginning-of-line)
     (end-of-line))
-  (while (and (not (bobp)) (< arg 0))
-    (while (and (not (bobp))
-               (re-search-backward (concat "^\\(?:" outline-regexp "\\)")
-                                   nil 'move)
-               (outline-invisible-p)))
-    (setq arg (1+ arg)))
-  (while (and (not (eobp)) (> arg 0))
-    (while (and (not (eobp))
-               (re-search-forward (concat "^\\(?:" outline-regexp "\\)")
-                                  nil 'move)
-               (outline-invisible-p (match-beginning 0))))
-    (setq arg (1- arg)))
-  (beginning-of-line))
+  (let (found-heading-p)
+    (while (and (not (bobp)) (< arg 0))
+      (while (and (not (bobp))
+                 (setq found-heading-p
+                       (re-search-backward
+                        (concat "^\\(?:" outline-regexp "\\)")
+                        nil 'move))
+                 (outline-invisible-p)))
+      (setq arg (1+ arg)))
+    (while (and (not (eobp)) (> arg 0))
+      (while (and (not (eobp))
+                 (setq found-heading-p
+                       (re-search-forward
+                        (concat "^\\(?:" outline-regexp "\\)")
+                        nil 'move))
+                 (outline-invisible-p (match-beginning 0))))
+      (setq arg (1- arg)))
+    (if found-heading-p (beginning-of-line))))
 
 (defun outline-previous-visible-heading (arg)
   "Move to the previous heading line.