1 Various Unicode-related utilities.
8 #include "HsVersions.h"
10 import Panic ( panic )
15 stringToUtf8 :: [Int] -> String
18 | c >= 1 && c <= 0x7F = chr c : stringToUtf8 s
19 | c < 0 = panic ("charToUtf8 ("++show c++")")
20 | c <= 0x7FF = chr (0xC0 + c `div` 0x40 ) :
21 chr (0x80 + c `mod` 0x40) :
23 | c <= 0xFFFF = chr (0xE0 + c `div` 0x1000 ) :
24 chr (0x80 + c `div` 0x40 `mod` 0x40) :
25 chr (0x80 + c `mod` 0x40) :
27 | c <= 0x10FFFF = chr (0xF0 + c `div` 0x40000 ) :
28 chr (0x80 + c `div` 0x1000 `mod` 0x40) :
29 chr (0x80 + c `div` 0x40 `mod` 0x40) :
30 chr (0x80 + c `mod` 0x40) :
32 | otherwise = panic ("charToUtf8 "++show c)