[commit: base] master: Be more forgiving about encoding name capitalization/hyphenization (8844558)
Max Bolingbroke
batterseapower at hotmail.com
Wed Nov 2 15:01:07 CET 2011
Repository : ssh://darcs.haskell.org//srv/darcs/packages/base
On branch : master
http://hackage.haskell.org/trac/ghc/changeset/884455887f305262d94564c5f3f1178c976dc142
>---------------------------------------------------------------
commit 884455887f305262d94564c5f3f1178c976dc142
Author: Max Bolingbroke <batterseapower at hotmail.com>
Date: Wed Nov 2 13:46:24 2011 +0000
Be more forgiving about encoding name capitalization/hyphenization
>---------------------------------------------------------------
GHC/IO/Encoding.hs | 17 +++++++++--------
1 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/GHC/IO/Encoding.hs b/GHC/IO/Encoding.hs
index df14c00..1012290 100644
--- a/GHC/IO/Encoding.hs
+++ b/GHC/IO/Encoding.hs
@@ -45,6 +45,7 @@ import qualified GHC.IO.Encoding.UTF8 as UTF8
import qualified GHC.IO.Encoding.UTF16 as UTF16
import qualified GHC.IO.Encoding.UTF32 as UTF32
+import Data.Char (toUpper)
import Data.List
import Data.Maybe
@@ -192,14 +193,14 @@ mkTextEncoding e = case mb_coding_failure_mode of
("unknown encoding:" ++ e) Nothing Nothing)
mkTextEncoding' :: CodingFailureMode -> String -> IO TextEncoding
-mkTextEncoding' cfm enc = case enc of
- "UTF-8" -> return $ UTF8.mkUTF8 cfm
- "UTF-16" -> return $ UTF16.mkUTF16 cfm
- "UTF-16LE" -> return $ UTF16.mkUTF16le cfm
- "UTF-16BE" -> return $ UTF16.mkUTF16be cfm
- "UTF-32" -> return $ UTF32.mkUTF32 cfm
- "UTF-32LE" -> return $ UTF32.mkUTF32le cfm
- "UTF-32BE" -> return $ UTF32.mkUTF32be cfm
+mkTextEncoding' cfm enc = case [toUpper c | c <- enc, c /= '-'] of
+ "UTF8" -> return $ UTF8.mkUTF8 cfm
+ "UTF16" -> return $ UTF16.mkUTF16 cfm
+ "UTF16LE" -> return $ UTF16.mkUTF16le cfm
+ "UTF16BE" -> return $ UTF16.mkUTF16be cfm
+ "UTF32" -> return $ UTF32.mkUTF32 cfm
+ "UTF32LE" -> return $ UTF32.mkUTF32le cfm
+ "UTF32BE" -> return $ UTF32.mkUTF32be cfm
#if defined(mingw32_HOST_OS)
'C':'P':n | [(cp,"")] <- reads n -> return $ CodePage.mkCodePageEncoding cfm cp
_ -> unknown_encoding
More information about the Cvs-libraries
mailing list