diff options
Diffstat (limited to 'Git/Construct.hs')
-rw-r--r-- | Git/Construct.hs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/Git/Construct.hs b/Git/Construct.hs index 1ed91a017..a30071585 100644 --- a/Git/Construct.hs +++ b/Git/Construct.hs @@ -23,6 +23,8 @@ module Git.Construct ( checkForRepo, ) where +{-# LANGUAGE CPP #-} + #ifndef __WINDOWS__ import System.Posix.User #endif @@ -143,6 +145,9 @@ fromRemoteLocation :: String -> Repo -> IO Repo fromRemoteLocation s repo = gen $ calcloc s where gen v +#ifdef __WINDOWS__ + | dosstyle v = fromRemotePath v repo +#endif | scpstyle v = fromUrl $ scptourl v | urlstyle v = fromUrl v | otherwise = fromRemotePath v repo @@ -176,6 +181,11 @@ fromRemoteLocation s repo = gen $ calcloc s | "/" `isPrefixOf` d = d | "~" `isPrefixOf` d = '/':d | otherwise = "/~/" ++ d +#ifdef __WINDOWS__ + -- git on Windows will write a path to .git/config with "drive:", + -- which is not to be confused with a "host:" + dosstyle = hasDrive +#endif {- Constructs a Repo from the path specified in the git remotes of - another Repo. -} |