0
0
Fork 1
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:
Nicolas Goaziou 2014-01-11 22:31:53 +01:00
parent a4b1fa7ca1
commit fd5edd35ae

View file

@ -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)