It seems that w32-shell-execute
cannot handle file://
-URIs with url-escaped spaces, causing browse-url-of-file
to fail. I observed this issue when trying to to markdown-export-and-preview
from markdown-mode.el
, but the issue also occurs with browse-url-of-buffer
.
To reproduce, create a file C-x f c:/tmp/file with spaces.html
and execute M-: (browse-url-of-buffer)
.
It will generate the backtrace
Debugger entered--Lisp error: (error "ShellExecute failed: Das System kann die angegebene Datei nicht finden.")
w32-shell-execute("open" "file:///c:/tmp/a%20file%20with%20spaces.html")
browse-url-default-windows-browser("file:///c:/tmp/a%20file%20with%20spaces.html" nil)
apply(browse-url-default-windows-browser "file:///c:/tmp/a%20file%20with%20spaces.html" nil)
browse-url-default-browser("file:///c:/tmp/a%20file%20with%20spaces.html" nil)
apply(browse-url-default-browser "file:///c:/tmp/a%20file%20with%20spaces.html" nil)
browse-url("file:///c:/tmp/a%20file%20with%20spaces.html")
browse-url-of-file("c:/tmp/a file with spaces.html")
browse-url-of-buffer()
For reference, calling
(browse-url "file:///c:/tmp/a file with spaces.html")
works as intended.
In GNU Emacs 25.1.1 (x86_64-w64-mingw32)
of 2016-09-17 built on KAEL
Windowing system distributor 'Microsoft Corp.', version 10.0.14393
Configured using:
'configure --prefix=/tmp/emacs --without-imagemagick 'CFLAGS=-O2
-fomit-frame-pointer -g0''
Configured features:
XPM JPEG TIFF GIF PNG RSVG SOUND DBUS NOTIFY ACL GNUTLS LIBXML2 ZLIB
TOOLKIT_SCROLL_BARS