From: Eli Zaretskii Date: Thu, 3 May 2018 18:04:17 +0000 (+0300) Subject: Fix report-emacs-bug via mailclient on MS-Windows X-Git-Tag: emacs-26.1~50 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=91de88bfeb759fb36ca12ee829b6d0c6e84fa4ce;p=emacs.git Fix report-emacs-bug via mailclient on MS-Windows * lisp/net/browse-url.el (browse-url-default-windows-browser): On MS-Windows, call url-unhex-string only for file:// URLs. (Bug#31351) --- diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el index 98b0acfc0c6..a84a7b1c716 100644 --- a/lisp/net/browse-url.el +++ b/lisp/net/browse-url.el @@ -878,7 +878,21 @@ The optional NEW-WINDOW argument is not used." (error "Browsing URLs is not supported on this system"))) ((eq system-type 'cygwin) (call-process "cygstart" nil nil nil url)) - (t (w32-shell-execute "open" (url-unhex-string url))))) + (t + (w32-shell-execute "open" + ;; w32-shell-execute passes file:// URLs + ;; to APIs that expect file names, so we + ;; need to unhex any %nn encoded + ;; characters in the URL. We don't do + ;; that for other URLs; in particular, + ;; default Windows mail client barfs on + ;; quotes in the MAILTO URLs, so we prefer + ;; to leave the URL with its embedded %nn + ;; encoding intact. + (if (eq t (compare-strings url nil 7 + "file://" nil nil)) + (url-unhex-string url) + url))))) (defun browse-url-default-macosx-browser (url &optional _new-window) "Invoke the macOS system's default Web browser.