changeset 74823:dfa668ddf262

(outline-next-visible-heading): Fix the case with a header at end-of-file with no final newline.
author Eli Zaretskii <eliz@gnu.org>
date Fri, 22 Dec 2006 22:57:15 +0000
parents 1f7a9ccf8142
children 058e08ed672a
files lisp/outline.el
diffstat 1 files changed, 18 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/outline.el	Fri Dec 22 22:46:22 2006 +0000
+++ b/lisp/outline.el	Fri Dec 22 22:57:15 2006 +0000
@@ -652,19 +652,24 @@
   (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.