--- Network/URI.hs.orig 2008-11-01 22:43:26.000000000 +0200 +++ Network/URI.hs 2008-12-11 17:02:17.639454945 +0200 @@ -213,20 +213,18 @@ defaultUserInfoMap uinf = user++newpass where (user,pass) = break (==':') uinf - newpass = if null pass || (pass == "@") - || (pass == ":@") + newpass = if null pass || (pass == ":") then pass - else ":...@" + else ":..." testDefaultUserInfoMap = [ defaultUserInfoMap "" == "" - , defaultUserInfoMap "@" == "@" - , defaultUserInfoMap "user@" == "user@" - , defaultUserInfoMap "user:@" == "user:@" - , defaultUserInfoMap "user:anonymous@" == "user:...@" - , defaultUserInfoMap "user:pass@" == "user:...@" - , defaultUserInfoMap "user:pass" == "user:...@" - , defaultUserInfoMap "user:anonymous" == "user:...@" + , defaultUserInfoMap "user" == "user" + , defaultUserInfoMap "user:" == "user:" + , defaultUserInfoMap "user:anonymous" == "user:..." + , defaultUserInfoMap "user:pass" == "user:..." + , defaultUserInfoMap "user:pass" == "user:..." + , defaultUserInfoMap "user:anonymous" == "user:..." ] ------------------------------------------------------------ @@ -451,7 +449,7 @@ userinfo = do { uu <- many (uchar ";:&=+$,") ; char '@' - ; return (concat uu ++"@") + ; return (concat uu) } -- RFC3986, section 3.2.2