Function: org-clean-visibility-after-subtree-move

org-clean-visibility-after-subtree-move is a byte-compiled function defined in org.el.gz.

Signature

(org-clean-visibility-after-subtree-move)

Documentation

Fix visibility issues after moving a subtree.

Source Code

;; Defined in /usr/src/emacs/lisp/org/org.el.gz
(defun org-clean-visibility-after-subtree-move ()
  "Fix visibility issues after moving a subtree."
  ;; First, find a reasonable region to look at:
  ;; Start two siblings above, end three below
  (let* ((beg (save-excursion
		(and (org-get-previous-sibling)
		     (org-get-previous-sibling))
		(point)))
	 (end (save-excursion
		(and (org-get-next-sibling)
		     (org-get-next-sibling)
		     (org-get-next-sibling))
		(if (org-at-heading-p)
		    (line-end-position)
		  (point))))
	 (level (looking-at "\\*+"))
	 (re (when level (concat "^" (regexp-quote (match-string 0)) " "))))
    (save-excursion
      (save-restriction
	(narrow-to-region beg end)
	(when re
	  ;; Properly fold already folded siblings
	  (goto-char (point-min))
	  (while (re-search-forward re nil t)
	    (when (and (not (org-invisible-p))
		       (org-invisible-p (line-end-position)))
	      (org-fold-heading nil))))
	(org-cycle-hide-drawers 'all)
	(org-cycle-show-empty-lines 'overview)))))