Windows: Fix opening webapp when repository is in a directory with spaces in the path.
This commit is contained in:
parent
d4e71929ba
commit
6eb5e6c135
3 changed files with 17 additions and 2 deletions
|
@ -34,7 +34,7 @@ import Annex.Version
|
||||||
|
|
||||||
import Control.Concurrent
|
import Control.Concurrent
|
||||||
import Control.Concurrent.STM
|
import Control.Concurrent.STM
|
||||||
import System.Process (env, std_out, std_err)
|
import System.Process (env, std_out, std_err, cwd)
|
||||||
import Network.Socket (HostName)
|
import Network.Socket (HostName)
|
||||||
import System.Environment (getArgs)
|
import System.Environment (getArgs)
|
||||||
|
|
||||||
|
@ -215,7 +215,16 @@ openBrowser mcmd htmlshim realurl outh errh = do
|
||||||
where
|
where
|
||||||
p = case mcmd of
|
p = case mcmd of
|
||||||
Just cmd -> proc cmd [htmlshim]
|
Just cmd -> proc cmd [htmlshim]
|
||||||
Nothing -> browserProc url
|
Nothing ->
|
||||||
|
#ifndef mingw32_HOST_OS
|
||||||
|
browserProc url
|
||||||
|
#else
|
||||||
|
{- Windows hack to avoid using the full path,
|
||||||
|
- which might contain spaces that cause problems
|
||||||
|
- for browserProc. -}
|
||||||
|
(browserProc (takeFileName htmlshim))
|
||||||
|
{ cwd = Just (takeDirectory htmlshim) }
|
||||||
|
#endif
|
||||||
#ifdef __ANDROID__
|
#ifdef __ANDROID__
|
||||||
{- Android does not support file:// urls, but neither is
|
{- Android does not support file:// urls, but neither is
|
||||||
- the security of the url in the process table important
|
- the security of the url in the process table important
|
||||||
|
|
|
@ -61,6 +61,10 @@ browserProc url = proc "am"
|
||||||
["start", "-a", "android.intent.action.VIEW", "-d", url]
|
["start", "-a", "android.intent.action.VIEW", "-d", url]
|
||||||
#else
|
#else
|
||||||
#ifdef mingw32_HOST_OS
|
#ifdef mingw32_HOST_OS
|
||||||
|
-- Warning: On Windows, no quoting or escaping of the url seems possible,
|
||||||
|
-- so spaces in it will cause problems. One approach is to make the url
|
||||||
|
-- be a relative filename, and adjust the returned CreateProcess to change
|
||||||
|
-- to the directory it's in.
|
||||||
browserProc url = proc "cmd" ["/c start " ++ url]
|
browserProc url = proc "cmd" ["/c start " ++ url]
|
||||||
#else
|
#else
|
||||||
browserProc url = proc "xdg-open" [url]
|
browserProc url = proc "xdg-open" [url]
|
||||||
|
|
2
debian/changelog
vendored
2
debian/changelog
vendored
|
@ -4,6 +4,8 @@ git-annex (5.20140607) UNRELEASED; urgency=medium
|
||||||
* Avoid leaving behind .tmp files when failing in some cases, including
|
* Avoid leaving behind .tmp files when failing in some cases, including
|
||||||
importing files to a disk that is full.
|
importing files to a disk that is full.
|
||||||
* Avoid bad commits after interrupted direct mode sync (or merge).
|
* Avoid bad commits after interrupted direct mode sync (or merge).
|
||||||
|
* Windows: Fix opening webapp when repository is in a directory with
|
||||||
|
spaces in the path.
|
||||||
|
|
||||||
-- Joey Hess <joeyh@debian.org> Mon, 09 Jun 2014 14:44:09 -0400
|
-- Joey Hess <joeyh@debian.org> Mon, 09 Jun 2014 14:44:09 -0400
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue