diff options
author | Sam T <pxqr.sta@gmail.com> | 2013-05-19 17:35:44 +0400 |
---|---|---|
committer | Sam T <pxqr.sta@gmail.com> | 2013-05-19 17:35:44 +0400 |
commit | f5606c5f2ff7009ab457c8404e91d74baa9a406b (patch) | |
tree | a1235a7fc7f903ea18404dbbc61124d4431fbe4a | |
parent | c2e98a5a1c920fb1af023228a873249e9f2f2ef5 (diff) |
~ Fix integer encoding.
-rw-r--r-- | src/Data/BEncode.hs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/Data/BEncode.hs b/src/Data/BEncode.hs index dd94f8c..5acab09 100644 --- a/src/Data/BEncode.hs +++ b/src/Data/BEncode.hs | |||
@@ -88,7 +88,7 @@ import qualified Data.ByteString.Char8 as BC | |||
88 | import qualified Data.ByteString.Lazy as Lazy | 88 | import qualified Data.ByteString.Lazy as Lazy |
89 | import Data.ByteString.Internal as B (c2w, w2c) | 89 | import Data.ByteString.Internal as B (c2w, w2c) |
90 | import qualified Data.ByteString.Builder as B | 90 | import qualified Data.ByteString.Builder as B |
91 | import qualified Data.ByteString.Builder.Prim as BP () | 91 | import qualified Data.ByteString.Builder.Prim as BP (int64Dec, primBounded) |
92 | import Data.Text (Text) | 92 | import Data.Text (Text) |
93 | import qualified Data.Text.Encoding as T | 93 | import qualified Data.Text.Encoding as T |
94 | import Data.Version | 94 | import Data.Version |
@@ -368,7 +368,7 @@ builder :: BEncode -> B.Builder | |||
368 | builder = go | 368 | builder = go |
369 | where | 369 | where |
370 | go (BInteger i) = B.word8 (c2w 'i') <> | 370 | go (BInteger i) = B.word8 (c2w 'i') <> |
371 | B.intDec (fromIntegral i) <> -- TODO FIXME | 371 | BP.primBounded BP.int64Dec i <> -- TODO FIXME |
372 | B.word8 (c2w 'e') | 372 | B.word8 (c2w 'e') |
373 | go (BString s) = buildString s | 373 | go (BString s) = buildString s |
374 | go (BList l) = B.word8 (c2w 'l') <> | 374 | go (BList l) = B.word8 (c2w 'l') <> |
@@ -403,7 +403,7 @@ parser = valueP | |||
403 | P.anyChar | 403 | P.anyChar |
404 | (BDict . M.fromDistinctAscList <$> many ((,) <$> stringP <*> valueP)) | 404 | (BDict . M.fromDistinctAscList <$> many ((,) <$> stringP <*> valueP)) |
405 | <* P.anyChar | 405 | <* P.anyChar |
406 | _ -> fail "Unable to parse bencode: unknown tag" | 406 | t -> fail ("bencode unknown tag: " ++ [t]) |
407 | 407 | ||
408 | stringP :: Parser ByteString | 408 | stringP :: Parser ByteString |
409 | stringP = do | 409 | stringP = do |