diff --git a/lisp/org.el b/lisp/org.el index 7f40ad67e..cc3e977a5 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -9680,14 +9680,12 @@ according to FMT (default from `org-email-link-description-format')." (let ((uri (cond ((string-match org-link-types-re link) (concat (match-string 1 link) (org-link-escape (substring link (match-end 1))))) - ;; For readability, url-encode internal links only - ;; when absolutely needed (i.e, when they contain - ;; square brackets). File links however, are - ;; encoded since, e.g., spaces are significant. ((or (file-name-absolute-p link) - (string-match-p "\\`\\.\\.?/\\|[][]" link)) + (string-match-p "\\`\\.\\.?/" link)) (org-link-escape link)) - (t link))) + ;; For readability, do not encode space characters + ;; in fuzzy links. + (t (org-link-escape link (remq ?\s org-link-escape-chars))))) (description (and (org-string-nw-p description) ;; Remove brackets from description, as they are fatal. diff --git a/testing/lisp/test-org-clock.el b/testing/lisp/test-org-clock.el index b7b09ed56..4f73dbcf7 100644 --- a/testing/lisp/test-org-clock.el +++ b/testing/lisp/test-org-clock.el @@ -640,7 +640,7 @@ CLOCK: [2016-12-27 Wed 13:09]--[2016-12-28 Wed 15:09] => 26:00" |--------------+---------| | *Total time* | *26:00* | |--------------+---------| -| [[Foo%20%5B%5Bhttp://orgmode.org%5D%5BOrg%20mode%5D%5D][Foo Org mode]] | 26:00 |" +| [[Foo %5B%5Bhttp://orgmode.org%5D%5BOrg mode%5D%5D][Foo Org mode]] | 26:00 |" (org-test-with-temp-text "* Foo [[http://orgmode.org][Org mode]] CLOCK: [2016-12-27 Wed 13:09]--[2016-12-28 Wed 15:09] => 26:00" @@ -651,7 +651,7 @@ CLOCK: [2016-12-27 Wed 13:09]--[2016-12-28 Wed 15:09] => 26:00" |------------------------+---------| | *Total time* | *26:00* | |------------------------+---------| -| [[Foo%20%5B%5Bhttp://orgmode.org%5D%5D][Foo http://orgmode.org]] | 26:00 |" +| [[Foo %5B%5Bhttp://orgmode.org%5D%5D][Foo http://orgmode.org]] | 26:00 |" (org-test-with-temp-text "* Foo [[http://orgmode.org]] CLOCK: [2016-12-27 Wed 13:09]--[2016-12-28 Wed 15:09] => 26:00"