diff --git a/lisp/ox.el b/lisp/ox.el index 7a2186f94..4fe401320 100644 --- a/lisp/ox.el +++ b/lisp/ox.el @@ -4082,8 +4082,9 @@ has type \"radio\"." (let ((path (org-element-property :path link))) (org-element-map (plist-get info :parse-tree) 'radio-target (lambda (radio) - (and (compare-strings - (org-element-property :value radio) 0 nil path 0 nil t) + (and (eq (compare-strings + (org-element-property :value radio) 0 nil path 0 nil t) + t) radio)) info 'first-match))) diff --git a/testing/lisp/test-ox.el b/testing/lisp/test-ox.el index a55ad53fe..747af54e0 100644 --- a/testing/lisp/test-ox.el +++ b/testing/lisp/test-ox.el @@ -1707,7 +1707,19 @@ Another text. (ref:text) (info `(:parse-tree ,tree))) (org-export-resolve-radio-link (org-element-map tree 'link 'identity info t) - info))))) + info)))) + ;; Multiple radio targets. + (should + (equal '("radio1" "radio2") + (org-test-with-temp-text "<<>> <<>> radio1 radio2" + (org-update-radio-target-regexp) + (let* ((tree (org-element-parse-buffer)) + (info `(:parse-tree ,tree))) + (org-element-map tree 'link + (lambda (link) + (org-element-property + :value (org-export-resolve-radio-link link info))) + info))))))