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, any kind of drawer, and blank lines

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

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, any kind of drawer, and blank lines

When FULL is non-nil but not t, skip planning information,
properties, clocking lines, logbook drawers, and blank lines."
  (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 and blank 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))))))))