changeset 55228:53c5c7a2f4a8

(outline-next-preface, outline-show-heading): Don't leave unhidden blank line before heading. (outline-end-of-subtree): Include last newline into subtree. (hide-entry): Leave point at beginning of heading instead of end. (outline-up-heading): Push mark for the first call of successive command calls.
author Juri Linkov <juri@jurta.org>
date Thu, 29 Apr 2004 15:34:21 +0000
parents 193a4c332536
children cf075c4ac9e5
files lisp/outline.el
diffstat 1 files changed, 6 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/outline.el	Thu Apr 29 15:31:38 2004 +0000
+++ b/lisp/outline.el	Thu Apr 29 15:34:21 2004 +0000
@@ -349,7 +349,7 @@
   (if (re-search-forward (concat "\n\\(?:" outline-regexp "\\)")
 			 nil 'move)
       (goto-char (match-beginning 0)))
-  (if (and (bolp) (not (bobp)))
+  (if (and (bolp) (eobp) (not (bobp)))
       (forward-char -1)))
 
 (defun outline-next-heading ()
@@ -706,8 +706,8 @@
   "Hide the body directly following this heading."
   (interactive)
   (outline-back-to-heading)
-  (outline-end-of-heading)
   (save-excursion
+    (outline-end-of-heading)
     (outline-flag-region (point) (progn (outline-next-preface) (point)) t)))
 
 (defun show-entry ()
@@ -769,10 +769,7 @@
 
 (defun outline-show-heading ()
   "Show the current heading and move to its end."
-  (outline-flag-region (- (point)
-			  (if (bobp) 0
-			    (if (eq (char-before (1- (point))) ?\n)
-				2 1)))
+  (outline-flag-region (- (point) (if (bobp) 0 1))
 		       (progn (outline-end-of-heading) (point))
 		       nil))
 
@@ -840,10 +837,7 @@
     (if (bolp)
 	(progn
 	  ;; Go to end of line before heading
-	  (forward-char -1)
-	  (if (bolp)
-	      ;; leave blank line before heading
-	      (forward-char -1))))))
+	  (forward-char -1)))))
 
 (defun show-branches ()
   "Show all subheadings of this heading, but not their bodies."
@@ -884,6 +878,8 @@
 With argument, move up ARG levels.
 If INVISIBLE-OK is non-nil, also consider invisible lines."
   (interactive "p")
+  (and (eq this-command 'outline-up-heading)
+       (or (eq last-command 'outline-up-heading) (push-mark)))
   (outline-back-to-heading invisible-ok)
   (let ((start-level (funcall outline-level)))
     (if (eq start-level 1)