org-element: Fix cache bug
* lisp/org-element.el (org-element-cache-get): Return correct cached element when point is at the beginning of an item.
This commit is contained in:
parent
a4b1fa7ca1
commit
fd5edd35ae
|
@ -5602,14 +5602,19 @@ cache, unless optional argument IGNORE-CHANGES is non-nil."
|
|||
(cond
|
||||
((< key beg)
|
||||
(setq node (avl-tree--node-left node)))
|
||||
((= key beg)
|
||||
(if (memq (org-element-type element) '(item table-row))
|
||||
(setq last (avl-tree--node-data node)
|
||||
node (avl-tree--node-left node))
|
||||
(throw 'found (avl-tree--node-data node))))
|
||||
(t
|
||||
((> key beg)
|
||||
(setq last (avl-tree--node-data node)
|
||||
node (avl-tree--node-right node))))))
|
||||
node (avl-tree--node-right node)))
|
||||
;; When KEY is at the beginning of a table or list,
|
||||
;; make sure to return it instead of the first row or
|
||||
;; item.
|
||||
((and (memq (org-element-type element) '(item table-row))
|
||||
(= (org-element-property
|
||||
:contents-begin (org-element-property :parent element))
|
||||
beg))
|
||||
(setq last (avl-tree--node-data node)
|
||||
node (avl-tree--node-left node)))
|
||||
(t (throw 'found (avl-tree--node-data node))))))
|
||||
last)))))
|
||||
|
||||
(defun org-element-cache-put (data &optional element)
|
||||
|
|
Loading…
Reference in New Issue