Function: org-end-of-meta-data

org-end-of-meta-data is a byte-compiled function defined in org.el.gz.

Signature

(org-end-of-meta-data &optional FULL)

Documentation

Skip planning line and properties drawer in current entry.

When optional argument FULL is t, also skip planning information, clocking lines and any kind of drawer.

When FULL is non-nil but not t, skip planning information, properties, clocking lines and logbook drawers.

Source Code

;; Defined in /usr/src/emacs/lisp/org/org.el.gz
(defun org-end-of-meta-data (&optional full)
  "Skip planning line and properties drawer in current entry.

When optional argument FULL is t, also skip planning information,
clocking lines and any kind of drawer.

When FULL is non-nil but not t, skip planning information,
properties, clocking lines and logbook drawers."
  (org-back-to-heading t)
  (forward-line)
  ;; Skip planning information.
  (when (looking-at-p org-planning-line-re) (forward-line))
  ;; Skip property drawer.
  (when (looking-at org-property-drawer-re)
    (goto-char (match-end 0))
    (forward-line))
  ;; When FULL is not nil, skip more.
  (when (and full (not (org-at-heading-p)))
    (catch 'exit
      (let ((end (save-excursion (outline-next-heading) (point)))
	    (re (concat "[ \t]*$" "\\|" org-clock-line-re)))
	(while (not (eobp))
	  (cond ;; Skip clock lines.
	   ((looking-at-p re) (forward-line))
	   ;; Skip logbook drawer.
	   ((looking-at-p org-logbook-drawer-re)
	    (if (re-search-forward "^[ \t]*:END:[ \t]*$" end t)
		(forward-line)
	      (throw 'exit t)))
	   ;; When FULL is t, skip regular drawer too.
	   ((and (eq full t) (looking-at-p org-drawer-regexp))
	    (if (re-search-forward "^[ \t]*:END:[ \t]*$" end t)
		(forward-line)
	      (throw 'exit t)))
	   (t (throw 'exit t))))))))