summaryrefslogtreecommitdiff
path: root/lisp/org-element.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/org-element.el')
-rw-r--r--lisp/org-element.el52
1 files changed, 31 insertions, 21 deletions
diff --git a/lisp/org-element.el b/lisp/org-element.el
index 027eea4..b86244e 100644
--- a/lisp/org-element.el
+++ b/lisp/org-element.el
@@ -1018,15 +1018,14 @@ Assume point is at beginning of the headline."
(standard-props (org-element--get-node-properties))
(time-props (org-element--get-time-properties))
(end (min (save-excursion (org-end-of-subtree t t)) limit))
- (pos-after-head (progn (forward-line) (point)))
(contents-begin (save-excursion
+ (forward-line)
(skip-chars-forward " \r\t\n" end)
(and (/= (point) end) (line-beginning-position))))
(contents-end (and contents-begin
(progn (goto-char end)
(skip-chars-backward " \r\t\n")
- (forward-line)
- (point)))))
+ (line-beginning-position 2)))))
(let ((headline
(list 'headline
(nconc
@@ -1035,7 +1034,7 @@ Assume point is at beginning of the headline."
:end end
:pre-blank
(if (not contents-begin) 0
- (count-lines pos-after-head contents-begin))
+ (1- (count-lines begin contents-begin)))
:contents-begin contents-begin
:contents-end contents-end
:level level
@@ -1043,9 +1042,10 @@ Assume point is at beginning of the headline."
:tags tags
:todo-keyword todo
:todo-type todo-type
- :post-blank (count-lines
- (or contents-end pos-after-head)
- end)
+ :post-blank
+ (if contents-end
+ (count-lines contents-end end)
+ (1- (count-lines begin end)))
:footnote-section-p footnote-section-p
:archivedp archivedp
:commentedp commentedp
@@ -1116,10 +1116,11 @@ CONTENTS is the contents of the element."
"Parse an inline task.
Return a list whose CAR is `inlinetask' and CDR is a plist
-containing `:title', `:begin', `:end', `:contents-begin' and
-`:contents-end', `:level', `:priority', `:raw-value', `:tags',
-`:todo-keyword', `:todo-type', `:scheduled', `:deadline',
-`:closed', `:post-blank' and `:post-affiliated' keywords.
+containing `:title', `:begin', `:end', `:pre-blank',
+`:contents-begin' and `:contents-end', `:level', `:priority',
+`:raw-value', `:tags', `:todo-keyword', `:todo-type',
+`:scheduled', `:deadline', `:closed', `:post-blank' and
+`:post-affiliated' keywords.
The plist also contains any property set in the property drawer,
with its name in upper cases and colons added at the
@@ -1157,18 +1158,20 @@ Assume point is at beginning of the inline task."
(task-end (save-excursion
(end-of-line)
(and (re-search-forward org-outline-regexp-bol limit t)
- (looking-at-p "END[ \t]*$")
+ (looking-at-p "[ \t]*END[ \t]*$")
(line-beginning-position))))
(standard-props (and task-end (org-element--get-node-properties)))
(time-props (and task-end (org-element--get-time-properties)))
- (contents-begin (progn (forward-line)
- (and task-end (< (point) task-end) (point))))
+ (contents-begin (and task-end
+ (< (point) task-end)
+ (progn
+ (forward-line)
+ (skip-chars-forward " \t\n")
+ (line-beginning-position))))
(contents-end (and contents-begin task-end))
- (before-blank (if (not task-end) (point)
- (goto-char task-end)
- (forward-line)
- (point)))
- (end (progn (skip-chars-forward " \r\t\n" limit)
+ (end (progn (when task-end (goto-char task-end))
+ (forward-line)
+ (skip-chars-forward " \r\t\n" limit)
(if (eobp) (point) (line-beginning-position))))
(inlinetask
(list 'inlinetask
@@ -1176,6 +1179,9 @@ Assume point is at beginning of the inline task."
(list :raw-value raw-value
:begin begin
:end end
+ :pre-blank
+ (if (not contents-begin) 0
+ (1- (count-lines begin contents-begin)))
:contents-begin contents-begin
:contents-end contents-end
:level level
@@ -1183,7 +1189,7 @@ Assume point is at beginning of the inline task."
:tags tags
:todo-keyword todo
:todo-type todo-type
- :post-blank (count-lines before-blank end)
+ :post-blank (1- (count-lines (or task-end begin) end))
:post-affiliated begin)
time-props
standard-props))))
@@ -3839,10 +3845,14 @@ element it has to parse."
(or (save-excursion (org-with-limited-levels (outline-next-heading)))
limit)))
;; Planning.
- ((and (eq mode 'planning) (looking-at org-planning-line-re))
+ ((and (eq mode 'planning)
+ (eq ?* (char-after (line-beginning-position 0)))
+ (looking-at org-planning-line-re))
(org-element-planning-parser limit))
;; Property drawer.
((and (memq mode '(planning property-drawer))
+ (eq ?* (char-after (line-beginning-position
+ (if (eq mode 'planning) 0 -1))))
(looking-at org-property-drawer-re))
(org-element-property-drawer-parser limit))
;; When not at bol, point is at the beginning of an item or