diff options
author | Joey Hess <joey@kitenet.net> | 2010-10-15 18:58:26 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2010-10-15 18:58:26 -0400 |
commit | 0989dd2694e4be1bc851d0a50903ceaaa988907a (patch) | |
tree | 7f3829da2a563ba02a2217077999b13d266d26c8 /Utility.hs | |
parent | 44b8f7c95de84018044ce3669e62d40eac1b91a7 (diff) |
Revert "use some library functions"
This reverts commit 8e742bd89e6bd3d83c44847c0455043809c64c89.
meh?
Diffstat (limited to 'Utility.hs')
-rw-r--r-- | Utility.hs | 22 |
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 |