]> git.eshelyaron.com Git - emacs.git/commitdiff
* foldout.el (foldout-exit-fold): Properly hide subtree.
authorChong Yidong <cyd@stupidchicken.com>
Fri, 9 Dec 2005 20:50:15 +0000 (20:50 +0000)
committerChong Yidong <cyd@stupidchicken.com>
Fri, 9 Dec 2005 20:50:15 +0000 (20:50 +0000)
lisp/ChangeLog
lisp/foldout.el

index e7b5669db611115170e1cc3b4817cb4bfdc34b6e..9230f4bc288d0678f9871e51cf166c7dec2f136b 100644 (file)
@@ -1,3 +1,7 @@
+2005-12-09  Chong Yidong  <cyd@stupidchicken.com>
+
+       * foldout.el (foldout-exit-fold): Properly hide subtree.
+
 2005-12-09  Reiner Steib  <Reiner.Steib@gmx.de>
 
        * files.el (save-buffer):
index 54fca4eb6f034fc5dad2612dd68a443a57ae0955..632a09bb05ff95171e3d8e72bbbe80f7345f5987 100644 (file)
@@ -308,7 +308,8 @@ optional arg EXPOSURE \(interactively with prefix arg\) changes this:-
 Normally causes exited folds to be hidden, but with ARG < 0, -ARG folds are
 exited and text is left visible."
   (interactive "p")
-  (let (start-marker end-marker (hide-fold t))
+  (let ((hide-fold t) start-marker end-marker
+       beginning-of-heading end-of-subtree)
 
     ;; check there are some folds to leave
     (if (null foldout-fold-list)
@@ -355,26 +356,23 @@ exited and text is left visible."
       ;; is \n otherwise it will be hidden.  If there is a newline
       ;; before this one, make it visible too so we do the same as
       ;; outline.el and leave a blank line before the heading.
-      (if (zerop num-folds)
-         (let ((beginning-of-heading (point))
-               (end-of-subtree (if end-marker
-                                   (progn
-                                     (forward-char -1)
-                                     (if (memq (preceding-char)
-                                               '(?\n ?\^M))
-                                         (forward-char -1))
-                                     (point))
-                                 (point-max))))
-           ;; hide the subtree
-           (if hide-fold
-               (outline-flag-region start-marker end-of-subtree
-                                    foldout-hide-flag))
-
-           ;; make sure the next heading is exposed
-           (if end-marker
-               (outline-flag-region end-of-subtree beginning-of-heading
-                                    foldout-show-flag))
-           ))
+      (when (zerop num-folds)
+       (if end-marker
+           (setq beginning-of-heading (point)
+                 end-of-subtree (progn (forward-char -1)
+                                       (if (memq (preceding-char)
+                                                 '(?\n ?\^M))
+                                           (forward-char -1))
+                                       (point))))
+       ;; hide the subtree
+       (when hide-fold
+         (goto-char start-marker)
+         (hide-subtree))
+
+       ;; make sure the next heading is exposed
+       (if end-marker
+           (outline-flag-region end-of-subtree beginning-of-heading
+                                foldout-show-flag)))
 
       ;; zap the markers so they don't slow down editing
       (set-marker start-marker nil)