summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Brand <michael.ch.brand@gmail.com>2013-11-17 12:00:18 +0100
committerMichael Brand <michael.ch.brand@gmail.com>2013-11-17 12:00:18 +0100
commit971a3a4e485c897b8b6c2c1c244d02cb8d943167 (patch)
tree42617e770b0c042cab7cd6d7b2f8c8cf0afbf0ae
parent36c8d8b4d22007e2d24104c31e3a76de83095b53 (diff)
downloadorg-mode-971a3a4e485c897b8b6c2c1c244d02cb8d943167.tar.gz
Hyperlink: Use url-encode-url for browse-url
* lisp/org.el (org-open-at-point): When available (Emacs 24.3.1) use `url-encode-url' instead of `org-link-escape-browser'.
-rw-r--r--lisp/org.el24
1 files changed, 21 insertions, 3 deletions
diff --git a/lisp/org.el b/lisp/org.el
index ed3928f..5cfaa2c 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -10520,11 +10520,29 @@ application the system uses for this file type."
(apply cmd (nreverse args1))))
((member type '("http" "https" "ftp" "news"))
- (browse-url (concat type ":" (org-link-escape-browser path))))
+ ;; In the example of the http Org link
+ ;; [[http://lists.gnu.org/archive/cgi-bin/namazu.cgi?idxname=emacs-orgmode&query=%252Bsubject:"Release+8.2"]]
+ ;; to open a browser with +subject:"Release 8.2" in the
+ ;; query field the variable `path' contains
+ ;; [...]=%2Bsubject:"Release+8.2", `url-encode-url'
+ ;; converts correct to [...]=%2Bsubject:%22Release+8.2%22
+ ;; and `org-link-escape-browser' converts wrong to
+ ;; [...]=%252Bsubject:%22Release+8.2%22.
+ ;;
+ ;; `url-encode-url' is available since Emacs 24.3.1 and
+ ;; `org-link-escape-browser' can be removed altogether
+ ;; once Org drops support for Emacs 24.1 and 24.2.
+ (browse-url (funcall (if (fboundp 'url-encode-url)
+ #'url-encode-url
+ #'org-link-escape-browser)
+ (concat type ":" path))))
((string= type "doi")
- (browse-url (concat org-doi-server-url
- (org-link-escape-browser path))))
+ ;; See comments for type http above
+ (browse-url (funcall (if (fboundp 'url-encode-url)
+ #'url-encode-url
+ #'org-link-escape-browser)
+ (concat org-doi-server-url path))))
((member type '("message"))
(browse-url (concat type ":" path)))