]> git.eshelyaron.com Git - emacs.git/commitdiff
(hide-sublevels): Keep empty last line, if available.
authorStefan Monnier <monnier@iro.umontreal.ca>
Mon, 19 Feb 2007 18:48:58 +0000 (18:48 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Mon, 19 Feb 2007 18:48:58 +0000 (18:48 +0000)
lisp/ChangeLog
lisp/outline.el

index c26efc42ece22ea0d473dda6137277e36dc6a03c..7bea73a23298dbba242eb79b1160d1ef1183b82f 100644 (file)
@@ -1,5 +1,7 @@
 2007-02-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+       * outline.el (hide-sublevels): Keep empty last line, if available.
+
        * buff-menu.el (list-buffers-noselect): Use explicit unicode code
        rather than the corresponding unicode char, to make the code
        more readable.
index 20dfb2429ef13b0bbe0149b7c3e6b3564d412e13..579997754f2f3afda47dd701946a0fa0096952b0 100644 (file)
@@ -856,19 +856,25 @@ Show the heading too, if it is currently invisible."
                 (t 1))))
   (if (< levels 1)
       (error "Must keep at least one level of headers"))
-  (let (outline-view-change-hook)
-    (save-excursion
-      (goto-char (point-min))
-      ;; Skip the prelude, if any.
-      (unless (outline-on-heading-p t) (outline-next-heading))
+  (save-excursion
+    (let* (outline-view-change-hook
+           (beg (progn
+                  (goto-char (point-min))
+                  ;; Skip the prelude, if any.
+                  (unless (outline-on-heading-p t) (outline-next-heading))
+                  (point)))
+           (end (progn
+                  (goto-char (point-max))
+                  ;; Keep empty last line, if available.
+                  (if (bolp) (1- (point)) (point)))))
       ;; First hide everything.
-      (outline-flag-region (point) (point-max) t)
+      (outline-flag-region beg end t)
       ;; Then unhide the top level headers.
       (outline-map-region
        (lambda ()
         (if (<= (funcall outline-level) levels)
             (outline-show-heading)))
-       (point) (point-max))))
+       beg end)))
   (run-hooks 'outline-view-change-hook))
 
 (defun hide-other ()