- (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)))