uri 0.1.6.1 → 0.1.6.2
raw patch · 2 files changed
+12/−9 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- Text/URI.hs +11/−8
- uri.cabal +1/−1
Text/URI.hs view
@@ -35,7 +35,6 @@ import Safe import Text.Parsec import Text.Printf- ------------------------------------------------------------ -- The URI datatype ------------------------------------------------------------@@ -77,9 +76,9 @@ maybe "" (++ ":") $ uriScheme u , if (isJust $ uriRegName u) then "//" else "" , maybe "" (++ "@") $ uriUserInfo u- , maybe "" (++ "/") $ uriRegName u+ , fromMaybe "" $ uriRegName u , maybe "" (\s -> ":" ++ show s) $ uriPort u- , if (isJust $ uriRegName u) && "/" `isPrefixOf` uriPath u then tailSafe $ uriPath u else uriPath u+ , if (isJust $ uriRegName u) && (not ("/" `isPrefixOf` uriPath u || uriPath u == "")) then ("/" ++ uriPath u) else uriPath u , maybe "" ("?" ++) $ uriQuery u , maybe "" ("#" ++) $ uriFragment u ]@@ -155,6 +154,7 @@ -- | Joins path segments, with escaping segmentsToPath :: [String] -> String+segmentsToPath [""] = "/" segmentsToPath ss = intercalate "/" $ map (escapeString (okInPathSegment)) ss -- | Merges two URIs@@ -203,11 +203,11 @@ mergePaths :: [String] -> [String] -> [String] mergePaths p1 p2@("":_) = dereferencePath p2 mergePaths p1 [] = dereferencePath p1-mergePaths p1 p2 = dereferencePath (initSafe p1 ++ p2)+mergePaths p1 p2 = dereferencePath ((initSafe p1 ++ ["."]) ++ p2) -- | Removes ".." and "." from path dereferencePath :: [String] -> [String]-dereferencePath = dereferencePath' []+dereferencePath = reverse . dereferencePath' [] . map (\s -> if s == "" then "." else s) -- | dereferencePath for strings dereferencePathString :: String -> String@@ -215,12 +215,13 @@ -- Private functions - dereferencePath' :: [String] -> [String] -> [String] dereferencePath' processed [] = processed-dereferencePath' processed ("..":ps) = dereferencePath' (initSafe processed) (ps)+dereferencePath' processed ["."] = "":processed+dereferencePath' (".":processed) ps@("..":_) = dereferencePath' processed ps+dereferencePath' processed ("..":ps) = dereferencePath' (tailSafe processed) (".":ps) dereferencePath' processed (".":ps) = dereferencePath' processed ps-dereferencePath' processed (p:ps) = dereferencePath' (processed ++ [p]) ps+dereferencePath' processed (p:ps) = dereferencePath' (p:processed) ps -- Parser @@ -494,7 +495,9 @@ return () explode :: (Eq a) => a -> [a] -> [[a]]+explode _ [] = [] explode delim xs = let (first, rest) = span (/= delim) xs in first : case rest of [] -> []+ x:[] -> [[]] x:xs -> explode delim xs
uri.cabal view
@@ -1,5 +1,5 @@ Name: uri-Version: 0.1.6.1+Version: 0.1.6.2 Synopsis: Library for working with URIs Category: Text Description: Library for working with URIs, including parsing, rendering, merging, escaping