Skip to content

Commit 5278584

Browse files
committed
Decomission the last use case of packAscii
1 parent 9f73920 commit 5278584

File tree

2 files changed

+7
-16
lines changed

2 files changed

+7
-16
lines changed

Codec/Archive/Tar/Index/Internal.hs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -171,15 +171,16 @@ toComponentIds table =
171171
lookupComponents []
172172
. filter (/= BS.Char8.singleton '.')
173173
. splitDirectories
174-
. packAscii
174+
. posixToByteString
175+
. toPosixString
175176
where
176177
lookupComponents cs' [] = Just (reverse cs')
177178
lookupComponents cs' (c:cs) = case StringTable.lookup table c of
178179
Nothing -> Nothing
179180
Just cid -> lookupComponents (cid:cs') cs
180181

181182
fromComponentId :: StringTable PathComponentId -> PathComponentId -> FilePath
182-
fromComponentId table = BS.Char8.unpack . StringTable.index table
183+
fromComponentId table = fromPosixString . byteToPosixString . StringTable.index table
183184

184185
-- | All the files in the index with their corresponding 'TarEntryOffset's.
185186
--

Codec/Archive/Tar/PackAscii.hs

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,27 @@
11
{-# LANGUAGE PackageImports #-}
22

33
module Codec.Archive.Tar.PackAscii
4-
( packAscii
5-
, toPosixString
4+
( toPosixString
65
, fromPosixString
76
, posixToByteString
87
, byteToPosixString
98
) where
109

11-
import qualified Data.ByteString.Char8 as BS.Char8
10+
import Data.ByteString (ByteString)
1211
import qualified Data.ByteString.Short as Sh
13-
import Data.Char
14-
import GHC.Stack
1512
import System.IO.Unsafe (unsafePerformIO)
1613
import "os-string" System.OsString.Posix (PosixString)
1714
import qualified "os-string" System.OsString.Posix as PS
1815
import qualified "os-string" System.OsString.Internal.Types as PS
1916

20-
-- | We should really migrate to @OsPath@ from @filepath@ package,
21-
-- but for now let's not corrupt data silently.
22-
packAscii :: HasCallStack => FilePath -> BS.Char8.ByteString
23-
packAscii xs
24-
| all isAscii xs = BS.Char8.pack xs
25-
| otherwise = error $ "packAscii: only ASCII filenames are supported, but got " ++ xs
26-
2717
toPosixString :: FilePath -> PosixString
2818
toPosixString = unsafePerformIO . PS.encodeFS
2919

3020
fromPosixString :: PosixString -> FilePath
3121
fromPosixString = unsafePerformIO . PS.decodeFS
3222

33-
posixToByteString :: PosixString -> BS.Char8.ByteString
23+
posixToByteString :: PosixString -> ByteString
3424
posixToByteString = Sh.fromShort . PS.getPosixString
3525

36-
byteToPosixString :: BS.Char8.ByteString -> PosixString
26+
byteToPosixString :: ByteString -> PosixString
3727
byteToPosixString = PS.PosixString . Sh.toShort

0 commit comments

Comments
 (0)