put in utf8 forcing workaround
Haskell's IO layer crashes on characters > 255 when in a non-unicode (latin1) locale. Until Haskell gets better behavior, put in an admittedly ugly workaround for that: git-annex forces utf8 output mode no matter what locale is selected. So if you use a non-utf8 locale, your filenames with characters > 127 will not be displayed as you'd expect. But at least it won't crash.
This commit is contained in:
parent
b85c91743c
commit
26544de946
5 changed files with 20 additions and 0 deletions
|
@ -64,3 +64,12 @@ indent s = join "\n" $ map (\l -> " " ++ l) $ lines s
|
|||
- non-decoded form. -}
|
||||
filePathToString :: FilePath -> String
|
||||
filePathToString = if SysConfig.unicodefilepath then id else UTF8.decodeString
|
||||
|
||||
{- Workaround to avoid crashes displaying filenames containing
|
||||
- characters > 255 in non-utf8 locales. Force encodings to utf-8,
|
||||
- even though this may mean some characters in the encoding
|
||||
- are mangled. -}
|
||||
forceUtf8 :: IO ()
|
||||
forceUtf8 = do
|
||||
hSetEncoding stdout utf8
|
||||
hSetEncoding stderr utf8
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue