fix ByteString conversion on windows
the encode' and decode' functions on Windows should not apply the filesystem encoding, which does not work there. Instead, convert to and from UTF-8. Also, avoid exporting encodeW8 and decodeW8. Both use the filesystem encoding, so won't work as expected on windows.
This commit is contained in:
parent
0246ecbe94
commit
322c542b5c
4 changed files with 23 additions and 8 deletions
|
@ -11,6 +11,7 @@ import Annex.Common
|
|||
import Utility.Hash
|
||||
|
||||
import qualified Data.ByteString as S
|
||||
import qualified Data.ByteString.Lazy as L
|
||||
|
||||
{- Generates a keyName from an input string. Takes care of sanitizing it.
|
||||
- If it's not too long, the full string is used as the keyName.
|
||||
|
@ -21,11 +22,12 @@ genKeyName s
|
|||
-- Avoid making keys longer than the length of a SHA256 checksum.
|
||||
| bytelen > sha256len = encodeBS' $
|
||||
truncateFilePath (sha256len - md5len - 1) s' ++ "-" ++
|
||||
show (md5 (encodeBL s))
|
||||
show (md5 bl)
|
||||
| otherwise = encodeBS' s'
|
||||
where
|
||||
s' = preSanitizeKeyName s
|
||||
bytelen = length (decodeW8 s')
|
||||
bl = encodeBL s
|
||||
bytelen = fromIntegral $ L.length bl
|
||||
|
||||
sha256len = 64
|
||||
md5len = 32
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue