mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2024-09-06 00:43:11 +00:00
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
|
(cond
|
||||||
((< key beg)
|
((< key beg)
|
||||||
(setq node (avl-tree--node-left node)))
|
(setq node (avl-tree--node-left node)))
|
||||||
((= key beg)
|
((> key beg)
|
||||||
(if (memq (org-element-type element) '(item table-row))
|
|
||||||
(setq last (avl-tree--node-data node)
|
(setq last (avl-tree--node-data node)
|
||||||
node (avl-tree--node-left node))
|
node (avl-tree--node-right node)))
|
||||||
(throw 'found (avl-tree--node-data node))))
|
;; When KEY is at the beginning of a table or list,
|
||||||
(t
|
;; 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)
|
(setq last (avl-tree--node-data node)
|
||||||
node (avl-tree--node-right node))))))
|
node (avl-tree--node-left node)))
|
||||||
|
(t (throw 'found (avl-tree--node-data node))))))
|
||||||
last)))))
|
last)))))
|
||||||
|
|
||||||
(defun org-element-cache-put (data &optional element)
|
(defun org-element-cache-put (data &optional element)
|
||||||
|
|
Loading…
Reference in a new issue