Function: org-back-to-heading
org-back-to-heading is a byte-compiled function defined in org.el.gz.
Signature
(org-back-to-heading &optional INVISIBLE-OK)
Documentation
Go back to beginning of heading.
Source Code
;; Defined in /usr/src/emacs/lisp/org/org.el.gz
(defun org-back-to-heading (&optional invisible-ok)
"Go back to beginning of heading."
(beginning-of-line)
(or (and (org-at-heading-p (not invisible-ok))
(not (and (featurep 'org-inlinetask)
(fboundp 'org-inlinetask-end-p)
(org-inlinetask-end-p))))
(if (org-element--cache-active-p)
(let ((heading (org-element-lineage (org-element-at-point)
'(headline inlinetask)
'include-self)))
(when heading
(goto-char (org-element-property :begin heading)))
(while (and (not invisible-ok)
heading
(org-fold-folded-p))
(goto-char (org-fold-core-previous-visibility-change))
(setq heading (org-element-lineage (org-element-at-point)
'(headline inlinetask)
'include-self))
(when heading
(goto-char (org-element-property :begin heading))))
(unless heading
(user-error "Before first headline at position %d in buffer %s"
(point) (current-buffer)))
(point))
(let (found)
(save-excursion
;; At inlinetask end. Move to bol, so that the following
;; search goes to the beginning of the inlinetask.
(when (and (featurep 'org-inlinetask)
(fboundp 'org-inlinetask-end-p)
(org-inlinetask-end-p))
(goto-char (line-beginning-position)))
(while (not found)
(or (re-search-backward (concat "^\\(?:" outline-regexp "\\)")
nil t)
(user-error "Before first headline at position %d in buffer %s"
(point) (current-buffer)))
;; Skip inlinetask end.
(if (and (featurep 'org-inlinetask)
(fboundp 'org-inlinetask-end-p)
(org-inlinetask-end-p))
(org-inlinetask-goto-beginning)
(setq found (and (or invisible-ok (not (org-fold-folded-p)))
(point))))))
(goto-char found)
found))))