encoding-0.7.0.1: dist/build/Data/Encoding/MacOSRoman.hs
{- This file has been auto-generated. Do not edit it. -}
{-# LANGUAGE MagicHash,DeriveDataTypeable #-}
{- | /Notes on Mac OS Roman:/
This is a legacy Mac OS encoding; in the Mac OS X Carbon and Cocoa
environments, it is only supported directly in programming
interfaces for QuickDraw Text, the Script Manager, and related
Text Utilities. For other purposes it is supported via transcoding
to and from Unicode.
This character set is used for at least the following Mac OS
localizations: U.S., British, Canadian French, French, Swiss
French, German, Swiss German, Italian, Swiss Italian, Dutch,
Swedish, Norwegian, Danish, Finnish, Spanish, Catalan,
Portuguese, Brazilian, and the default International system.
Variants of Mac OS Roman are used for Croatian, Icelandic,
Turkish, Romanian, and other encodings. Separate mapping tables
are available for these encodings.
Before Mac OS 8.5, code point 0xDB was CURRENCY SIGN, and was
mapped to U+00A4. In Mac OS 8.5 and later versions, code point
0xDB is changed to EURO SIGN and maps to U+20AC; the standard
Apple fonts are updated for Mac OS 8.5 to reflect this. There is
a "currency sign" variant of the Mac OS Roman encoding that still
maps 0xDB to U+00A4; this can be used for older fonts.
Before Mac OS 8.5, the ROM bitmap versions of the fonts Chicago,
New York, Geneva, and Monaco did not implement the full Mac OS
Roman character set; they only supported character codes up to
0xD8. The TrueType versions of these fonts have always implemented
the full character set, as with the bitmap and TrueType versions
of the other standard Roman fonts.
In all Mac OS encodings, fonts such as Chicago which are used
as "system" fonts (for menus, dialogs, etc.) have four glyphs
at code points 0x11-0x14 for transient use by the Menu Manager.
These glyphs are not intended as characters for use in normal
text, and the associated code points are not generally
interpreted as associated with these glyphs; they are usually
interpreted (if at all) as the control codes DC1-DC4.
/Unicode mapping issues and notes:/
The following corporate zone Unicode character is used in this
mapping:
0xF8FF Apple logo
NOTE: The graphic image associated with the Apple logo character
is not authorized for use without permission of Apple, and
unauthorized use might constitute trademark infringement.
/Details of mapping changes in each version:/
Changes from version n08 to version b02:
* Encoding changed for Mac OS 8.5; change mapping of 0xDB from
CURRENCY SIGN (U+00A4) to EURO SIGN (U+20AC).
Changes from version n03 to version n04:
* Change mapping of 0xBD from U+2126 to its canonical
decomposition, U+03A9.
32 =   (32)
33 = ! (33)
34 = " (34)
35 = # (35)
36 = $ (36)
37 = % (37)
38 = & (38)
39 = ' (39)
40 = ( (40)
41 = ) (41)
42 = * (42)
43 = + (43)
44 = , (44)
45 = - (45)
46 = . (46)
47 = / (47)
48 = 0 (48)
49 = 1 (49)
50 = 2 (50)
51 = 3 (51)
52 = 4 (52)
53 = 5 (53)
54 = 6 (54)
55 = 7 (55)
56 = 8 (56)
57 = 9 (57)
58 = : (58)
59 = ; (59)
60 = < (60)
61 = = (61)
62 = > (62)
63 = ? (63)
64 = @ (64)
65 = A (65)
66 = B (66)
67 = C (67)
68 = D (68)
69 = E (69)
70 = F (70)
71 = G (71)
72 = H (72)
73 = I (73)
74 = J (74)
75 = K (75)
76 = L (76)
77 = M (77)
78 = N (78)
79 = O (79)
80 = P (80)
81 = Q (81)
82 = R (82)
83 = S (83)
84 = T (84)
85 = U (85)
86 = V (86)
87 = W (87)
88 = X (88)
89 = Y (89)
90 = Z (90)
91 = [ (91)
92 = \ (92)
93 = ] (93)
94 = ^ (94)
95 = _ (95)
96 = ` (96)
97 = a (97)
98 = b (98)
99 = c (99)
100 = d (100)
101 = e (101)
102 = f (102)
103 = g (103)
104 = h (104)
105 = i (105)
106 = j (106)
107 = k (107)
108 = l (108)
109 = m (109)
110 = n (110)
111 = o (111)
112 = p (112)
113 = q (113)
114 = r (114)
115 = s (115)
116 = t (116)
117 = u (117)
118 = v (118)
119 = w (119)
120 = x (120)
121 = y (121)
122 = z (122)
123 = { (123)
124 = | (124)
125 = } (125)
126 = ~ (126)
128 = Ä (196)
129 = Å (197)
130 = Ç (199)
131 = É (201)
132 = Ñ (209)
133 = Ö (214)
134 = Ü (220)
135 = á (225)
136 = à (224)
137 = â (226)
138 = ä (228)
139 = ã (227)
140 = å (229)
141 = ç (231)
142 = é (233)
143 = è (232)
144 = ê (234)
145 = ë (235)
146 = í (237)
147 = ì (236)
148 = î (238)
149 = ï (239)
150 = ñ (241)
151 = ó (243)
152 = ò (242)
153 = ô (244)
154 = ö (246)
155 = õ (245)
156 = ú (250)
157 = ù (249)
158 = û (251)
159 = ü (252)
160 = † (8224)
161 = ° (176)
162 = ¢ (162)
163 = £ (163)
164 = § (167)
165 = • (8226)
166 = ¶ (182)
167 = ß (223)
168 = ® (174)
169 = © (169)
170 = ™ (8482)
171 = ´ (180)
172 = ¨ (168)
173 = ≠ (8800)
174 = Æ (198)
175 = Ø (216)
176 = ∞ (8734)
177 = ± (177)
178 = ≤ (8804)
179 = ≥ (8805)
180 = ¥ (165)
181 = µ (181)
182 = ∂ (8706)
183 = ∑ (8721)
184 = ∏ (8719)
185 = π (960)
186 = ∫ (8747)
187 = ª (170)
188 = º (186)
189 = Ω (937)
190 = æ (230)
191 = ø (248)
192 = ¿ (191)
193 = ¡ (161)
194 = ¬ (172)
195 = √ (8730)
196 = ƒ (402)
197 = ≈ (8776)
198 = ∆ (8710)
199 = « (171)
200 = » (187)
201 = … (8230)
202 =   (160)
203 = À (192)
204 = Ã (195)
205 = Õ (213)
206 = Œ (338)
207 = œ (339)
208 = – (8211)
209 = — (8212)
210 = “ (8220)
211 = ” (8221)
212 = ‘ (8216)
213 = ’ (8217)
214 = ÷ (247)
215 = ◊ (9674)
216 = ÿ (255)
217 = Ÿ (376)
218 = ⁄ (8260)
219 = € (8364)
220 = ‹ (8249)
221 = › (8250)
222 = fi (64257)
223 = fl (64258)
224 = ‡ (8225)
225 = · (183)
226 = ‚ (8218)
227 = „ (8222)
228 = ‰ (8240)
229 = Â (194)
230 = Ê (202)
231 = Á (193)
232 = Ë (203)
233 = È (200)
234 = Í (205)
235 = Î (206)
236 = Ï (207)
237 = Ì (204)
238 = Ó (211)
239 = Ô (212)
240 =  (63743)
241 = Ò (210)
242 = Ú (218)
243 = Û (219)
244 = Ù (217)
245 = ı (305)
246 = ˆ (710)
247 = ˜ (732)
248 = ¯ (175)
249 = ˘ (728)
250 = ˙ (729)
251 = ˚ (730)
252 = ¸ (184)
253 = ˝ (733)
254 = ˛ (731)
255 = ˇ (711)
-}
module Data.Encoding.MacOSRoman(MacOSRoman(..)) where
import Data.Encoding.Base
import Data.Encoding.ByteSource
import Data.Encoding.ByteSink
import Data.Encoding.Exception
import Data.CharMap
import Data.Array.Static
import Data.Map.Static
import Control.Throws
import Prelude hiding (lookup)
import Data.Word
import Data.Typeable
data MacOSRoman = MacOSRoman
deriving (Show,Eq,Typeable)
decoding_array_MacOSRoman = StaticArray (32) (255) "\32\0\0\0\33\0\0\0\34\0\0\0\35\0\0\0\36\0\0\0\37\0\0\0\38\0\0\0\39\0\0\0\40\0\0\0\41\0\0\0\42\0\0\0\43\0\0\0\44\0\0\0\45\0\0\0\46\0\0\0\47\0\0\0\48\0\0\0\49\0\0\0\50\0\0\0\51\0\0\0\52\0\0\0\53\0\0\0\54\0\0\0\55\0\0\0\56\0\0\0\57\0\0\0\58\0\0\0\59\0\0\0\60\0\0\0\61\0\0\0\62\0\0\0\63\0\0\0\64\0\0\0\65\0\0\0\66\0\0\0\67\0\0\0\68\0\0\0\69\0\0\0\70\0\0\0\71\0\0\0\72\0\0\0\73\0\0\0\74\0\0\0\75\0\0\0\76\0\0\0\77\0\0\0\78\0\0\0\79\0\0\0\80\0\0\0\81\0\0\0\82\0\0\0\83\0\0\0\84\0\0\0\85\0\0\0\86\0\0\0\87\0\0\0\88\0\0\0\89\0\0\0\90\0\0\0\91\0\0\0\92\0\0\0\93\0\0\0\94\0\0\0\95\0\0\0\96\0\0\0\97\0\0\0\98\0\0\0\99\0\0\0\100\0\0\0\101\0\0\0\102\0\0\0\103\0\0\0\104\0\0\0\105\0\0\0\106\0\0\0\107\0\0\0\108\0\0\0\109\0\0\0\110\0\0\0\111\0\0\0\112\0\0\0\113\0\0\0\114\0\0\0\115\0\0\0\116\0\0\0\117\0\0\0\118\0\0\0\119\0\0\0\120\0\0\0\121\0\0\0\122\0\0\0\123\0\0\0\124\0\0\0\125\0\0\0\126\0\0\0\255\255\255\255\196\0\0\0\197\0\0\0\199\0\0\0\201\0\0\0\209\0\0\0\214\0\0\0\220\0\0\0\225\0\0\0\224\0\0\0\226\0\0\0\228\0\0\0\227\0\0\0\229\0\0\0\231\0\0\0\233\0\0\0\232\0\0\0\234\0\0\0\235\0\0\0\237\0\0\0\236\0\0\0\238\0\0\0\239\0\0\0\241\0\0\0\243\0\0\0\242\0\0\0\244\0\0\0\246\0\0\0\245\0\0\0\250\0\0\0\249\0\0\0\251\0\0\0\252\0\0\0\32\32\0\0\176\0\0\0\162\0\0\0\163\0\0\0\167\0\0\0\34\32\0\0\182\0\0\0\223\0\0\0\174\0\0\0\169\0\0\0\34\33\0\0\180\0\0\0\168\0\0\0\96\34\0\0\198\0\0\0\216\0\0\0\30\34\0\0\177\0\0\0\100\34\0\0\101\34\0\0\165\0\0\0\181\0\0\0\2\34\0\0\17\34\0\0\15\34\0\0\192\3\0\0\43\34\0\0\170\0\0\0\186\0\0\0\169\3\0\0\230\0\0\0\248\0\0\0\191\0\0\0\161\0\0\0\172\0\0\0\26\34\0\0\146\1\0\0\72\34\0\0\6\34\0\0\171\0\0\0\187\0\0\0\38\32\0\0\160\0\0\0\192\0\0\0\195\0\0\0\213\0\0\0\82\1\0\0\83\1\0\0\19\32\0\0\20\32\0\0\28\32\0\0\29\32\0\0\24\32\0\0\25\32\0\0\247\0\0\0\202\37\0\0\255\0\0\0\120\1\0\0\68\32\0\0\172\32\0\0\57\32\0\0\58\32\0\0\1\251\0\0\2\251\0\0\33\32\0\0\183\0\0\0\26\32\0\0\30\32\0\0\48\32\0\0\194\0\0\0\202\0\0\0\193\0\0\0\203\0\0\0\200\0\0\0\205\0\0\0\206\0\0\0\207\0\0\0\204\0\0\0\211\0\0\0\212\0\0\0\255\248\0\0\210\0\0\0\218\0\0\0\219\0\0\0\217\0\0\0\49\1\0\0\198\2\0\0\220\2\0\0\175\0\0\0\216\2\0\0\217\2\0\0\218\2\0\0\184\0\0\0\221\2\0\0\219\2\0\0\199\2\0\0"#
encoding_map_MacOSRoman :: CharMap
encoding_map_MacOSRoman = LeafMap1 (StaticMap (StaticArray (1) (223) "\201\0\0\0\95\0\0\0\20\32\0\0\63\0\0\0\160\0\0\0\237\0\0\0\34\33\0\0\47\0\0\0\79\0\0\0\111\0\0\0\181\0\0\0\219\0\0\0\49\1\0\0\33\32\0\0\72\34\0\0\39\0\0\0\55\0\0\0\71\0\0\0\87\0\0\0\103\0\0\0\119\0\0\0\170\0\0\0\193\0\0\0\210\0\0\0\229\0\0\0\246\0\0\0\217\2\0\0\28\32\0\0\57\32\0\0\17\34\0\0\202\37\0\0\35\0\0\0\43\0\0\0\51\0\0\0\59\0\0\0\67\0\0\0\75\0\0\0\83\0\0\0\91\0\0\0\99\0\0\0\107\0\0\0\115\0\0\0\123\0\0\0\165\0\0\0\175\0\0\0\186\0\0\0\197\0\0\0\205\0\0\0\214\0\0\0\225\0\0\0\233\0\0\0\242\0\0\0\250\0\0\0\146\1\0\0\221\2\0\0\25\32\0\0\30\32\0\0\38\32\0\0\68\32\0\0\6\34\0\0\30\34\0\0\100\34\0\0\1\251\0\0\33\0\0\0\37\0\0\0\41\0\0\0\45\0\0\0\49\0\0\0\53\0\0\0\57\0\0\0\61\0\0\0\65\0\0\0\69\0\0\0\73\0\0\0\77\0\0\0\81\0\0\0\85\0\0\0\89\0\0\0\93\0\0\0\97\0\0\0\101\0\0\0\105\0\0\0\109\0\0\0\113\0\0\0\117\0\0\0\121\0\0\0\125\0\0\0\162\0\0\0\168\0\0\0\172\0\0\0\177\0\0\0\183\0\0\0\191\0\0\0\195\0\0\0\199\0\0\0\203\0\0\0\207\0\0\0\212\0\0\0\217\0\0\0\223\0\0\0\227\0\0\0\231\0\0\0\235\0\0\0\239\0\0\0\244\0\0\0\248\0\0\0\252\0\0\0\83\1\0\0\199\2\0\0\219\2\0\0\192\3\0\0\24\32\0\0\26\32\0\0\29\32\0\0\32\32\0\0\34\32\0\0\48\32\0\0\58\32\0\0\172\32\0\0\2\34\0\0\15\34\0\0\26\34\0\0\43\34\0\0\96\34\0\0\101\34\0\0\255\248\0\0\2\251\0\0\32\0\0\0\34\0\0\0\36\0\0\0\38\0\0\0\40\0\0\0\42\0\0\0\44\0\0\0\46\0\0\0\48\0\0\0\50\0\0\0\52\0\0\0\54\0\0\0\56\0\0\0\58\0\0\0\60\0\0\0\62\0\0\0\64\0\0\0\66\0\0\0\68\0\0\0\70\0\0\0\72\0\0\0\74\0\0\0\76\0\0\0\78\0\0\0\80\0\0\0\82\0\0\0\84\0\0\0\86\0\0\0\88\0\0\0\90\0\0\0\92\0\0\0\94\0\0\0\96\0\0\0\98\0\0\0\100\0\0\0\102\0\0\0\104\0\0\0\106\0\0\0\108\0\0\0\110\0\0\0\112\0\0\0\114\0\0\0\116\0\0\0\118\0\0\0\120\0\0\0\122\0\0\0\124\0\0\0\126\0\0\0\161\0\0\0\163\0\0\0\167\0\0\0\169\0\0\0\171\0\0\0\174\0\0\0\176\0\0\0\180\0\0\0\182\0\0\0\184\0\0\0\187\0\0\0\192\0\0\0\194\0\0\0\196\0\0\0\198\0\0\0\200\0\0\0\202\0\0\0\204\0\0\0\206\0\0\0\209\0\0\0\211\0\0\0\213\0\0\0\216\0\0\0\218\0\0\0\220\0\0\0\224\0\0\0\226\0\0\0\228\0\0\0\230\0\0\0\232\0\0\0\234\0\0\0\236\0\0\0\238\0\0\0\241\0\0\0\243\0\0\0\245\0\0\0\247\0\0\0\249\0\0\0\251\0\0\0\255\0\0\0\82\1\0\0\120\1\0\0\198\2\0\0\216\2\0\0\218\2\0\0\220\2\0\0\169\3\0\0\19\32\0\0"#) (StaticArray (1) (223) "\131\95\209\63\202\146\170\47\79\111\181\243\245\224\197\39\55\71\87\103\119\187\231\241\140\154\250\210\220\183\215\35\43\51\59\67\75\83\91\99\107\115\123\180\248\188\129\234\133\135\142\152\156\196\253\213\227\201\218\198\176\178\222\33\37\41\45\49\53\57\61\65\69\73\77\81\85\89\93\97\101\105\109\113\117\121\125\162\172\194\177\225\192\204\130\232\236\239\244\167\139\141\145\149\153\191\159\207\255\254\185\212\226\211\160\165\228\221\219\182\184\195\186\173\179\240\223\32\34\36\38\40\42\44\46\48\50\52\54\56\58\60\62\64\66\68\70\72\74\76\78\80\82\84\86\88\90\92\94\96\98\100\102\104\106\108\110\112\114\116\118\120\122\124\126\193\163\164\169\199\168\161\171\166\252\200\203\229\128\174\233\230\237\235\132\238\205\175\242\134\136\137\138\190\143\144\147\148\150\151\155\214\157\158\216\206\217\246\249\251\247\189\208"#))
instance Encoding MacOSRoman where
decodeChar _ = do
w <- fetchWord8
(if w<32 then throwException $ IllegalCharacter $ fromIntegral w else return ())
case decoding_array_MacOSRoman!w of
Nothing -> throwException $ IllegalCharacter $ fromIntegral w
Just c -> return c
encodeChar _ c = mapEncode c encoding_map_MacOSRoman
encodeable _ c = mapMember c encoding_map_MacOSRoman