@@ -31,16 +31,16 @@ module Purebred.Storage.AddressBook.MuttAliasFile
31
31
, parseMuttAliasFile
32
32
) where
33
33
34
- import Data.Attoparsec.ByteString (Parser , parseOnly , sepBy , string , takeTill )
35
- import Data.Attoparsec.ByteString.Char8 ( endOfLine , isSpace_w8 , skipSpace , space )
34
+ import Data.Attoparsec.Text (Parser , parseOnly , sepBy , string , takeTill , space , skipSpace , endOfLine )
35
+ import Data.Char ( isSpace )
36
36
import Data.Bifunctor (bimap )
37
37
import qualified Data.ByteString as B
38
38
import qualified Data.Text as T
39
39
import qualified Data.Text.Internal.Search as T
40
40
import Control.Lens (Lens' , lens , toListOf , folded , filtered , view )
41
41
42
- import Data.MIME (defaultCharsets )
43
- import Data.IMF (address , Address )
42
+ import Data.MIME (Address )
43
+ import Data.IMF.Text (address )
44
44
45
45
import Purebred.Types.Error (Error (ParseError ))
46
46
import Purebred.Types.AddressBook (AddressBook (.. ))
@@ -59,7 +59,7 @@ initMuttAliasFileAddressBook filePath = do
59
59
let mk addrs = AddressBook
60
60
(\ substr -> pure $ filterMuttAliases substr addrs)
61
61
Nothing
62
- pure $ bimap ParseError mk $ parseMuttAliasFile contents
62
+ pure $ bimap ParseError mk $ parseMuttAliasFile (decodeLenient contents)
63
63
64
64
filterMuttAliases :: T. Text -> [MuttAlias ] -> [Address ]
65
65
filterMuttAliases substr =
@@ -73,14 +73,14 @@ matchesSubstring :: T.Text -> T.Text -> Bool
73
73
matchesSubstring needle haystack = not $ null $ T. indices needle haystack
74
74
75
75
-- | Parser functions to parse a mutt alias file
76
- parseMuttAliasFile :: B. ByteString -> Either String [MuttAlias ]
76
+ parseMuttAliasFile :: T. Text -> Either String [MuttAlias ]
77
77
parseMuttAliasFile = parseOnly (muttalias `sepBy` endOfLine)
78
78
79
79
muttalias :: Parser MuttAlias
80
80
muttalias = do
81
- nick <- string " alias" *> space *> takeTill isSpace_w8
82
- add <- skipSpace *> address defaultCharsets
83
- pure $ MuttAlias (decodeLenient nick) add
81
+ nick <- string " alias" *> space *> takeTill isSpace
82
+ add <- skipSpace *> address
83
+ pure $ MuttAlias nick add
84
84
85
85
-- | Parser Datatypes
86
86
data MuttAlias = MuttAlias
0 commit comments