diff --git a/src/Data/ByteString/Char8/Util.hs b/src/Data/ByteString/Char8/Util.hs index 4f9d905..6a04ea0 100644 --- a/src/Data/ByteString/Char8/Util.hs +++ b/src/Data/ByteString/Char8/Util.hs @@ -2,15 +2,15 @@ module Data.ByteString.Char8.Util ( decodeHex , fromInt , hexString - , parseBytes , previous , subBS , toInt + , toBytes , utf16BEToutf8 ) where import Data.ByteString (ByteString, snoc) -import qualified Data.ByteString as BS (foldl, pack, singleton) +import qualified Data.ByteString as BS (empty, foldl, pack, singleton) import qualified Data.ByteString.Char8 as Char8 (drop, index, take, unpack) import Data.Text.Encoding (encodeUtf8, decodeUtf16BE) import Prelude hiding (length) @@ -31,19 +31,15 @@ fromInt n | n < 0x100 = BS.singleton $ toEnum n | otherwise = fromInt (n `div` 0x100) `snoc` (toEnum (n `mod` 0x100)) +toBytes :: Int -> Int -> ByteString +toBytes 0 _ = BS.empty +toBytes size n = toBytes (size - 1) (n `div` 0x100) `snoc` (toEnum (n `mod` 0x100)) + toInt :: ByteString -> Int toInt = BS.foldl (\n w -> 0x100*n + fromEnum w) 0 -{- -encodeHex :: ByteString -> ByteString -encodeHex = --} - decodeHex :: ByteString -> ByteString -decodeHex = parseBytes . Char8.unpack - -parseBytes :: String -> ByteString -parseBytes = BS.pack . fmap hexString . pairDigits +decodeHex = BS.pack . fmap hexString . pairDigits . Char8.unpack where pairDigits "" = [] pairDigits [c] = [[c]] diff --git a/src/PDF/Object.hs b/src/PDF/Object.hs index 542d00c..35bf0d8 100644 --- a/src/PDF/Object.hs +++ b/src/PDF/Object.hs @@ -27,7 +27,6 @@ module PDF.Object ( , magicNumber , name , number - , parseBytes , regular , stringObject , structure @@ -36,14 +35,12 @@ module PDF.Object ( import Control.Applicative ((<|>), many) import Data.Attoparsec.ByteString.Char8 (choice, count, option, sepBy) import Data.ByteString (ByteString) -import qualified Data.ByteString as BS (concat, pack) +import qualified Data.ByteString as BS (concat) import qualified Data.ByteString.Char8 as Char8 (cons, pack, singleton, unpack) -import Data.ByteString.Char8.Util (hexString, parseBytes) import Data.Map (Map, (!), mapWithKey) import qualified Data.Map as Map ( delete, empty, fromList, lookup, minViewWithKey, toList, union ) -import Data.Text.Encoding (decodeUtf16BE, encodeUtf8) import qualified PDF.EOL as EOL (charset, parser) import qualified PDF.Output as Output (concat, line, string) import PDF.Output (