summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2010-10-15 18:58:26 -0400
committerGravatar Joey Hess <joey@kitenet.net>2010-10-15 18:58:26 -0400
commit0989dd2694e4be1bc851d0a50903ceaaa988907a (patch)
tree7f3829da2a563ba02a2217077999b13d266d26c8
parent44b8f7c95de84018044ce3669e62d40eac1b91a7 (diff)
Revert "use some library functions"
This reverts commit 8e742bd89e6bd3d83c44847c0455043809c64c89. meh?
-rw-r--r--Utility.hs22
1 files changed, 10 insertions, 12 deletions
diff --git a/Utility.hs b/Utility.hs
index 105c533ec..a8324815e 100644
--- a/Utility.hs
+++ b/Utility.hs
@@ -13,7 +13,6 @@ import System.IO
import System.Posix.IO
import Data.String.Utils
import System.Path
-import System.FilePath
import System.Directory
{- Let's just say that Haskell makes reading/writing a file with
@@ -39,13 +38,11 @@ hGetContentsStrict h = hGetContents h >>= \s -> length s `seq` return s
parentDir :: String -> String
parentDir dir =
if length dirs > 0
- then slash ++ (join s $ take ((length dirs) - 1) dirs)
+ then absolute ++ (join "/" $ take ((length dirs) - 1) dirs)
else ""
where
- dirs = filter (\x -> length x > 0) $
- split s dir
- slash = if (isAbsolute dir) then "" else s
- s = [pathSeparator]
+ dirs = filter (\x -> length x > 0) $ split "/" dir
+ absolute = if ((dir !! 0) == '/') then "/" else ""
{- Constructs a relative path from the CWD to a directory.
-
@@ -71,19 +68,20 @@ relPathCwdToDir dir = do
- Both directories must be absolute, and normalized (eg with absNormpath).
-
- The path will end with "/", unless it is empty.
- -}
+ - -}
relPathDirToDir :: FilePath -> FilePath -> FilePath
relPathDirToDir from to =
if (0 < length path)
- then addTrailingPathSeparator path
+ then if (endswith "/" path)
+ then path
+ else path ++ "/"
else ""
where
- s = [pathSeparator]
- pfrom = split s from
- pto = split s to
+ pfrom = split "/" from
+ pto = split "/" to
common = map fst $ filter same $ zip pfrom pto
same (c,d) = c == d
uncommon = drop numcommon pto
dotdots = take ((length pfrom) - numcommon) $ repeat ".."
numcommon = length $ common
- path = join s $ dotdots ++ uncommon
+ path = join "/" $ dotdots ++ uncommon