diff --git a/lisp/ox.el b/lisp/ox.el index 4fe401320..0bf7d1bf1 100644 --- a/lisp/ox.el +++ b/lisp/ox.el @@ -4079,11 +4079,14 @@ INFO is a plist used as a communication channel. Return value can be a radio-target object or nil. Assume LINK has type \"radio\"." - (let ((path (org-element-property :path link))) + (let ((path (replace-regexp-in-string + "[ \r\t\n]+" " " (org-element-property :path link)))) (org-element-map (plist-get info :parse-tree) 'radio-target (lambda (radio) (and (eq (compare-strings - (org-element-property :value radio) 0 nil path 0 nil t) + (replace-regexp-in-string + "[ \r\t\n]+" " " (org-element-property :value radio)) + nil nil path nil nil t) t) radio)) info 'first-match))) diff --git a/testing/lisp/test-ox.el b/testing/lisp/test-ox.el index 747af54e0..a8a44ae43 100644 --- a/testing/lisp/test-ox.el +++ b/testing/lisp/test-ox.el @@ -1719,7 +1719,15 @@ Another text. (ref:text) (lambda (link) (org-element-property :value (org-export-resolve-radio-link link info))) - info)))))) + info))))) + ;; Radio target is whitespace insensitive. + (should + (org-test-with-temp-text "<<>> a\n radio" + (org-update-radio-target-regexp) + (let* ((tree (org-element-parse-buffer)) + (info `(:parse-tree ,tree))) + (org-element-map tree 'link + (lambda (link) (org-export-resolve-radio-link link info)) info t)))))