diff --git a/source/Network/Xmpp/Sasl/StringPrep.hs b/source/Network/Xmpp/Sasl/StringPrep.hs index 27de3d6..0f20298 100644 --- a/source/Network/Xmpp/Sasl/StringPrep.hs +++ b/source/Network/Xmpp/Sasl/StringPrep.hs @@ -1,9 +1,19 @@ +{-# LANGUAGE OverloadedStrings #-} module Network.Xmpp.Sasl.StringPrep where import Text.StringPrep +import qualified Data.Set as Set +import Data.Text(singleton) + +nonAsciiSpaces = Set.fromList [ '\x00A0','\x1680','\x2000','\x2001','\x2002' + , '\x2003', '\x2004','\x2005','\x2006','\x2007' + , '\x2008','\x2009', '\x200A','\x200B' ,'\x202F' + , '\x205F','\x3000'] + +toSpace x = if x `Set.member` nonAsciiSpaces then " " else singleton x saslPrepQuery = Profile - [b1] + [b1, toSpace] True [ c12 , c21 @@ -19,7 +29,7 @@ saslPrepQuery = Profile True saslPrepStore = Profile - [b1] + [b1, toSpace] True [ a1 , c12