diff options
author | Joey Hess <joey@kitenet.net> | 2011-03-08 18:05:20 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2011-03-08 18:05:20 -0400 |
commit | 26544de9463291b8185fdd1a7c1b33710ef7db3c (patch) | |
tree | ab7d626afd1908f6f089e154f87e2585dff703d6 /CmdLine.hs | |
parent | b85c91743c73597f41cae73b042ffa86be929ed3 (diff) |
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.
Diffstat (limited to 'CmdLine.hs')
-rw-r--r-- | CmdLine.hs | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/CmdLine.hs b/CmdLine.hs index 475ca99e7..1c01aa75f 100644 --- a/CmdLine.hs +++ b/CmdLine.hs @@ -11,6 +11,7 @@ module CmdLine ( shutdown ) where +import System.IO import System.IO.Error (try) import System.Console.GetOpt import Control.Monad.State (liftIO) @@ -30,6 +31,7 @@ import UUID {- Runs the passed command line. -} dispatch :: Git.Repo -> [String] -> [Command] -> [Option] -> String -> IO () dispatch gitrepo args cmds options header = do + forceUtf8 state <- Annex.new gitrepo allBackends (actions, state') <- Annex.run state $ parseCmd args header cmds options tryRun state' $ [startup, upgrade] ++ actions ++ [shutdown] |