branch: externals-release/org
commit bdb4c4c66eb6fdc1ff81ef3d68d504cb0d03745d
Author: Ihor Radchenko <yanta...@posteo.net>
Commit: Ihor Radchenko <yanta...@posteo.net>

    org-export-get-ordinal: Fix breakage in 0551eba40
    
    * lisp/ox.el (org-export-get-ordinal): Do not return first cached
    number.  Search the actual requested element.  Do not disregard TYPES
    argument in the cache.
    
    Reported-by: Kaushal Modi <kaushal.m...@gmail.com>
    Link: 
https://orgmode.org/list/CAFyQvY342ee8OgWVQdv=z3v1_3rglttb2s0v27jljf0kimh...@mail.gmail.com
---
 lisp/ox.el | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/lisp/ox.el b/lisp/ox.el
index aed669ee87..02c0ddefe4 100644
--- a/lisp/ox.el
+++ b/lisp/ox.el
@@ -4759,17 +4759,20 @@ objects of the same type."
             (cond
              ((eq element el) (1+ counter))
               ;; Use cached result.
-              ((and cached (equal predicate (car cached)))
-               (cdr cached))
+              ((and cached
+                    (equal predicate (car cached))
+                    (equal types (cadr cached)))
+               (setq counter (nth 2 cached))
+               nil)
              ((not predicate)
                (cl-incf counter)
                (org-element-put-property
-                el :org-export--counter (cons predicate counter))
+                el :org-export--counter (list predicate types counter))
                nil)
              ((funcall predicate el info)
                (cl-incf counter)
                (org-element-put-property
-                el :org-export--counter (cons predicate counter))
+                el :org-export--counter (list predicate types counter))
                nil))))
         info 'first-match)))))
 

Reply via email to