From 29779b2d7bb3d3810ec36754ea9a6856f29744b2 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Fri, 13 Apr 2007 01:17:51 +0000 Subject: [PATCH] * outline.el (outline-get-next-sibling): Clarify docstring. (outline-get-last-sibling): Handle case where we are at the first heading. Clarify docstring. --- lisp/ChangeLog | 6 ++++++ lisp/outline.el | 22 +++++++++++++--------- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 29e8c5b3c99..e5ecd6e0817 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2007-04-12 Chong Yidong + + * outline.el (outline-get-next-sibling): Clarify docstring. + (outline-get-last-sibling): Handle case where we are at the first + heading. Clarify docstring. + 2007-04-12 Nick Roberts * progmodes/gud.el (gud-minor-mode-map): Make go button same same diff --git a/lisp/outline.el b/lisp/outline.el index 579997754f2..d0c121a12c4 100644 --- a/lisp/outline.el +++ b/lisp/outline.el @@ -1000,7 +1000,8 @@ Stop at the first and last subheadings of a superior heading." (error "No following same-level heading")))))) (defun outline-get-next-sibling () - "Move to next heading of the same level, and return point or nil if none." + "Move to next heading of the same level, and return point. +If there is no such heading, return nil." (let ((level (funcall outline-level))) (outline-next-visible-heading 1) (while (and (not (eobp)) (> (funcall outline-level) level)) @@ -1026,15 +1027,18 @@ Stop at the first and last subheadings of a superior heading." (error "No previous same-level heading")))))) (defun outline-get-last-sibling () - "Move to previous heading of the same level, and return point or nil if none." - (let ((level (funcall outline-level))) + "Move to previous heading of the same level, and return point. +If there is no such heading, return nil." + (let ((opoint (point)) + (level (funcall outline-level))) (outline-previous-visible-heading 1) - (while (and (> (funcall outline-level) level) - (not (bobp))) - (outline-previous-visible-heading 1)) - (if (< (funcall outline-level) level) - nil - (point)))) + (when (and (/= (point) opoint) (outline-on-heading-p)) + (while (and (> (funcall outline-level) level) + (not (bobp))) + (outline-previous-visible-heading 1)) + (if (< (funcall outline-level) level) + nil + (point))))) (defun outline-headers-as-kill (beg end) "Save the visible outline headers in region at the start of the kill ring. -- 2.39.2