ox: Ignore whitespace differences when resolving a radio link

* lisp/ox.el (org-export-resolve-radio-link): Ignore whitespace
  differences when resolving a radio link.
* testing/lisp/test-ox.el: Add test.
This commit is contained in:
Nicolas Goaziou 2013-05-12 20:42:30 +02:00
parent e7cd6f1875
commit 48e51fe5d9
2 changed files with 14 additions and 3 deletions

View File

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

View File

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