|
1 "{ Encoding: utf8 }" |
|
2 |
|
3 "{ Package: 'stx:libbasic' }" |
|
4 |
|
5 "{ NameSpace: CharacterEncoderImplementations }" |
|
6 |
|
7 SingleByteEncoder subclass:#ISO8859_8 |
|
8 instanceVariableNames:'' |
|
9 classVariableNames:'' |
|
10 poolDictionaries:'' |
|
11 category:'Collections-Text-Encodings' |
|
12 ! |
|
13 |
|
14 |
|
15 !ISO8859_8 class methodsFor:'mapping'! |
|
16 |
|
17 mapFileURL1_relativePathName |
|
18 ^ 'ISO8859/8859-8.TXT' |
|
19 ! |
|
20 |
|
21 mapping |
|
22 " |
|
23 # From: http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-8.TXT |
|
24 |
|
25 # |
|
26 # Name: ISO/IEC 8859-8:1999 to Unicode |
|
27 # Unicode version: 3.0 |
|
28 # Table version: 1.1 |
|
29 # Table format: Format A |
|
30 # Date: 2000-Jan-03 |
|
31 # Authors: Ken Whistler <kenw@sybase.com> |
|
32 # |
|
33 # Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved. |
|
34 # |
|
35 # This file is provided as-is by Unicode, Inc. (The Unicode Consortium). |
|
36 # No claims are made as to fitness for any particular purpose. No |
|
37 # warranties of any kind are expressed or implied. The recipient |
|
38 # agrees to determine applicability of information provided. If this |
|
39 # file has been provided on optical media by Unicode, Inc., the sole |
|
40 # remedy for any claim will be exchange of defective media within 90 |
|
41 # days of receipt. |
|
42 # |
|
43 # Unicode, Inc. hereby grants the right to freely use the information |
|
44 # supplied in this file in the creation of products supporting the |
|
45 # Unicode Standard, and to make copies of this file in any form for |
|
46 # internal or external distribution as long as this notice remains |
|
47 # attached. |
|
48 # |
|
49 # General notes: |
|
50 # |
|
51 # This table contains the data the Unicode Consortium has on how |
|
52 # ISO/IEC 8859-8:1999 characters map into Unicode. |
|
53 # |
|
54 # Format: Three tab-separated columns |
|
55 # Column #1 is the ISO/IEC 8859-8 code (in hex as 0xXX) |
|
56 # Column #2 is the Unicode (in hex as 0xXXXX) |
|
57 # Column #3 the Unicode name (follows a comment sign, '#') |
|
58 # |
|
59 # The entries are in ISO/IEC 8859-8 order. |
|
60 # |
|
61 # Version history |
|
62 # 1.0 version updates 0.1 version by adding mappings for all |
|
63 # control characters. |
|
64 # 1.1 version updates to the published 8859-8:1999, correcting |
|
65 # the mapping of 0xAF and adding mappings for LRM and RLM. |
|
66 # |
|
67 # Updated versions of this file may be found in: |
|
68 # <ftp://ftp.unicode.org/Public/MAPPINGS/> |
|
69 # |
|
70 # Any comments or problems, contact <errata@unicode.org> |
|
71 # Please note that <errata@unicode.org> is an archival address; |
|
72 # notices will be checked, but do not expect an immediate response. |
|
73 # |
|
74 0x00 0x0000 # NULL |
|
75 0x01 0x0001 # START OF HEADING |
|
76 0x02 0x0002 # START OF TEXT |
|
77 0x03 0x0003 # END OF TEXT |
|
78 0x04 0x0004 # END OF TRANSMISSION |
|
79 0x05 0x0005 # ENQUIRY |
|
80 0x06 0x0006 # ACKNOWLEDGE |
|
81 0x07 0x0007 # BELL |
|
82 0x08 0x0008 # BACKSPACE |
|
83 0x09 0x0009 # HORIZONTAL TABULATION |
|
84 0x0A 0x000A # LINE FEED |
|
85 0x0B 0x000B # VERTICAL TABULATION |
|
86 0x0C 0x000C # FORM FEED |
|
87 0x0D 0x000D # CARRIAGE RETURN |
|
88 0x0E 0x000E # SHIFT OUT |
|
89 0x0F 0x000F # SHIFT IN |
|
90 0x10 0x0010 # DATA LINK ESCAPE |
|
91 0x11 0x0011 # DEVICE CONTROL ONE |
|
92 0x12 0x0012 # DEVICE CONTROL TWO |
|
93 0x13 0x0013 # DEVICE CONTROL THREE |
|
94 0x14 0x0014 # DEVICE CONTROL FOUR |
|
95 0x15 0x0015 # NEGATIVE ACKNOWLEDGE |
|
96 0x16 0x0016 # SYNCHRONOUS IDLE |
|
97 0x17 0x0017 # END OF TRANSMISSION BLOCK |
|
98 0x18 0x0018 # CANCEL |
|
99 0x19 0x0019 # END OF MEDIUM |
|
100 0x1A 0x001A # SUBSTITUTE |
|
101 0x1B 0x001B # ESCAPE |
|
102 0x1C 0x001C # FILE SEPARATOR |
|
103 0x1D 0x001D # GROUP SEPARATOR |
|
104 0x1E 0x001E # RECORD SEPARATOR |
|
105 0x1F 0x001F # UNIT SEPARATOR |
|
106 0x20 0x0020 # SPACE |
|
107 0x21 0x0021 # EXCLAMATION MARK |
|
108 0x22 0x0022 # QUOTATION MARK |
|
109 0x23 0x0023 # NUMBER SIGN |
|
110 0x24 0x0024 # DOLLAR SIGN |
|
111 0x25 0x0025 # PERCENT SIGN |
|
112 0x26 0x0026 # AMPERSAND |
|
113 0x27 0x0027 # APOSTROPHE |
|
114 0x28 0x0028 # LEFT PARENTHESIS |
|
115 0x29 0x0029 # RIGHT PARENTHESIS |
|
116 0x2A 0x002A # ASTERISK |
|
117 0x2B 0x002B # PLUS SIGN |
|
118 0x2C 0x002C # COMMA |
|
119 0x2D 0x002D # HYPHEN-MINUS |
|
120 0x2E 0x002E # FULL STOP |
|
121 0x2F 0x002F # SOLIDUS |
|
122 0x30 0x0030 # DIGIT ZERO |
|
123 0x31 0x0031 # DIGIT ONE |
|
124 0x32 0x0032 # DIGIT TWO |
|
125 0x33 0x0033 # DIGIT THREE |
|
126 0x34 0x0034 # DIGIT FOUR |
|
127 0x35 0x0035 # DIGIT FIVE |
|
128 0x36 0x0036 # DIGIT SIX |
|
129 0x37 0x0037 # DIGIT SEVEN |
|
130 0x38 0x0038 # DIGIT EIGHT |
|
131 0x39 0x0039 # DIGIT NINE |
|
132 0x3A 0x003A # COLON |
|
133 0x3B 0x003B # SEMICOLON |
|
134 0x3C 0x003C # LESS-THAN SIGN |
|
135 0x3D 0x003D # EQUALS SIGN |
|
136 0x3E 0x003E # GREATER-THAN SIGN |
|
137 0x3F 0x003F # QUESTION MARK |
|
138 0x40 0x0040 # COMMERCIAL AT |
|
139 0x41 0x0041 # LATIN CAPITAL LETTER A |
|
140 0x42 0x0042 # LATIN CAPITAL LETTER B |
|
141 0x43 0x0043 # LATIN CAPITAL LETTER C |
|
142 0x44 0x0044 # LATIN CAPITAL LETTER D |
|
143 0x45 0x0045 # LATIN CAPITAL LETTER E |
|
144 0x46 0x0046 # LATIN CAPITAL LETTER F |
|
145 0x47 0x0047 # LATIN CAPITAL LETTER G |
|
146 0x48 0x0048 # LATIN CAPITAL LETTER H |
|
147 0x49 0x0049 # LATIN CAPITAL LETTER I |
|
148 0x4A 0x004A # LATIN CAPITAL LETTER J |
|
149 0x4B 0x004B # LATIN CAPITAL LETTER K |
|
150 0x4C 0x004C # LATIN CAPITAL LETTER L |
|
151 0x4D 0x004D # LATIN CAPITAL LETTER M |
|
152 0x4E 0x004E # LATIN CAPITAL LETTER N |
|
153 0x4F 0x004F # LATIN CAPITAL LETTER O |
|
154 0x50 0x0050 # LATIN CAPITAL LETTER P |
|
155 0x51 0x0051 # LATIN CAPITAL LETTER Q |
|
156 0x52 0x0052 # LATIN CAPITAL LETTER R |
|
157 0x53 0x0053 # LATIN CAPITAL LETTER S |
|
158 0x54 0x0054 # LATIN CAPITAL LETTER T |
|
159 0x55 0x0055 # LATIN CAPITAL LETTER U |
|
160 0x56 0x0056 # LATIN CAPITAL LETTER V |
|
161 0x57 0x0057 # LATIN CAPITAL LETTER W |
|
162 0x58 0x0058 # LATIN CAPITAL LETTER X |
|
163 0x59 0x0059 # LATIN CAPITAL LETTER Y |
|
164 0x5A 0x005A # LATIN CAPITAL LETTER Z |
|
165 0x5B 0x005B # LEFT SQUARE BRACKET |
|
166 0x5C 0x005C # REVERSE SOLIDUS |
|
167 0x5D 0x005D # RIGHT SQUARE BRACKET |
|
168 0x5E 0x005E # CIRCUMFLEX ACCENT |
|
169 0x5F 0x005F # LOW LINE |
|
170 0x60 0x0060 # GRAVE ACCENT |
|
171 0x61 0x0061 # LATIN SMALL LETTER A |
|
172 0x62 0x0062 # LATIN SMALL LETTER B |
|
173 0x63 0x0063 # LATIN SMALL LETTER C |
|
174 0x64 0x0064 # LATIN SMALL LETTER D |
|
175 0x65 0x0065 # LATIN SMALL LETTER E |
|
176 0x66 0x0066 # LATIN SMALL LETTER F |
|
177 0x67 0x0067 # LATIN SMALL LETTER G |
|
178 0x68 0x0068 # LATIN SMALL LETTER H |
|
179 0x69 0x0069 # LATIN SMALL LETTER I |
|
180 0x6A 0x006A # LATIN SMALL LETTER J |
|
181 0x6B 0x006B # LATIN SMALL LETTER K |
|
182 0x6C 0x006C # LATIN SMALL LETTER L |
|
183 0x6D 0x006D # LATIN SMALL LETTER M |
|
184 0x6E 0x006E # LATIN SMALL LETTER N |
|
185 0x6F 0x006F # LATIN SMALL LETTER O |
|
186 0x70 0x0070 # LATIN SMALL LETTER P |
|
187 0x71 0x0071 # LATIN SMALL LETTER Q |
|
188 0x72 0x0072 # LATIN SMALL LETTER R |
|
189 0x73 0x0073 # LATIN SMALL LETTER S |
|
190 0x74 0x0074 # LATIN SMALL LETTER T |
|
191 0x75 0x0075 # LATIN SMALL LETTER U |
|
192 0x76 0x0076 # LATIN SMALL LETTER V |
|
193 0x77 0x0077 # LATIN SMALL LETTER W |
|
194 0x78 0x0078 # LATIN SMALL LETTER X |
|
195 0x79 0x0079 # LATIN SMALL LETTER Y |
|
196 0x7A 0x007A # LATIN SMALL LETTER Z |
|
197 0x7B 0x007B # LEFT CURLY BRACKET |
|
198 0x7C 0x007C # VERTICAL LINE |
|
199 0x7D 0x007D # RIGHT CURLY BRACKET |
|
200 0x7E 0x007E # TILDE |
|
201 0x7F 0x007F # DELETE |
|
202 0x80 0x0080 # <control> |
|
203 0x81 0x0081 # <control> |
|
204 0x82 0x0082 # <control> |
|
205 0x83 0x0083 # <control> |
|
206 0x84 0x0084 # <control> |
|
207 0x85 0x0085 # <control> |
|
208 0x86 0x0086 # <control> |
|
209 0x87 0x0087 # <control> |
|
210 0x88 0x0088 # <control> |
|
211 0x89 0x0089 # <control> |
|
212 0x8A 0x008A # <control> |
|
213 0x8B 0x008B # <control> |
|
214 0x8C 0x008C # <control> |
|
215 0x8D 0x008D # <control> |
|
216 0x8E 0x008E # <control> |
|
217 0x8F 0x008F # <control> |
|
218 0x90 0x0090 # <control> |
|
219 0x91 0x0091 # <control> |
|
220 0x92 0x0092 # <control> |
|
221 0x93 0x0093 # <control> |
|
222 0x94 0x0094 # <control> |
|
223 0x95 0x0095 # <control> |
|
224 0x96 0x0096 # <control> |
|
225 0x97 0x0097 # <control> |
|
226 0x98 0x0098 # <control> |
|
227 0x99 0x0099 # <control> |
|
228 0x9A 0x009A # <control> |
|
229 0x9B 0x009B # <control> |
|
230 0x9C 0x009C # <control> |
|
231 0x9D 0x009D # <control> |
|
232 0x9E 0x009E # <control> |
|
233 0x9F 0x009F # <control> |
|
234 0xA0 0x00A0 # NO-BREAK SPACE |
|
235 0xA2 0x00A2 # CENT SIGN |
|
236 0xA3 0x00A3 # POUND SIGN |
|
237 0xA4 0x00A4 # CURRENCY SIGN |
|
238 0xA5 0x00A5 # YEN SIGN |
|
239 0xA6 0x00A6 # BROKEN BAR |
|
240 0xA7 0x00A7 # SECTION SIGN |
|
241 0xA8 0x00A8 # DIAERESIS |
|
242 0xA9 0x00A9 # COPYRIGHT SIGN |
|
243 0xAA 0x00D7 # MULTIPLICATION SIGN |
|
244 0xAB 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK |
|
245 0xAC 0x00AC # NOT SIGN |
|
246 0xAD 0x00AD # SOFT HYPHEN |
|
247 0xAE 0x00AE # REGISTERED SIGN |
|
248 0xAF 0x00AF # MACRON |
|
249 0xB0 0x00B0 # DEGREE SIGN |
|
250 0xB1 0x00B1 # PLUS-MINUS SIGN |
|
251 0xB2 0x00B2 # SUPERSCRIPT TWO |
|
252 0xB3 0x00B3 # SUPERSCRIPT THREE |
|
253 0xB4 0x00B4 # ACUTE ACCENT |
|
254 0xB5 0x00B5 # MICRO SIGN |
|
255 0xB6 0x00B6 # PILCROW SIGN |
|
256 0xB7 0x00B7 # MIDDLE DOT |
|
257 0xB8 0x00B8 # CEDILLA |
|
258 0xB9 0x00B9 # SUPERSCRIPT ONE |
|
259 0xBA 0x00F7 # DIVISION SIGN |
|
260 0xBB 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK |
|
261 0xBC 0x00BC # VULGAR FRACTION ONE QUARTER |
|
262 0xBD 0x00BD # VULGAR FRACTION ONE HALF |
|
263 0xBE 0x00BE # VULGAR FRACTION THREE QUARTERS |
|
264 0xDF 0x2017 # DOUBLE LOW LINE |
|
265 0xE0 0x05D0 # HEBREW LETTER ALEF |
|
266 0xE1 0x05D1 # HEBREW LETTER BET |
|
267 0xE2 0x05D2 # HEBREW LETTER GIMEL |
|
268 0xE3 0x05D3 # HEBREW LETTER DALET |
|
269 0xE4 0x05D4 # HEBREW LETTER HE |
|
270 0xE5 0x05D5 # HEBREW LETTER VAV |
|
271 0xE6 0x05D6 # HEBREW LETTER ZAYIN |
|
272 0xE7 0x05D7 # HEBREW LETTER HET |
|
273 0xE8 0x05D8 # HEBREW LETTER TET |
|
274 0xE9 0x05D9 # HEBREW LETTER YOD |
|
275 0xEA 0x05DA # HEBREW LETTER FINAL KAF |
|
276 0xEB 0x05DB # HEBREW LETTER KAF |
|
277 0xEC 0x05DC # HEBREW LETTER LAMED |
|
278 0xED 0x05DD # HEBREW LETTER FINAL MEM |
|
279 0xEE 0x05DE # HEBREW LETTER MEM |
|
280 0xEF 0x05DF # HEBREW LETTER FINAL NUN |
|
281 0xF0 0x05E0 # HEBREW LETTER NUN |
|
282 0xF1 0x05E1 # HEBREW LETTER SAMEKH |
|
283 0xF2 0x05E2 # HEBREW LETTER AYIN |
|
284 0xF3 0x05E3 # HEBREW LETTER FINAL PE |
|
285 0xF4 0x05E4 # HEBREW LETTER PE |
|
286 0xF5 0x05E5 # HEBREW LETTER FINAL TSADI |
|
287 0xF6 0x05E6 # HEBREW LETTER TSADI |
|
288 0xF7 0x05E7 # HEBREW LETTER QOF |
|
289 0xF8 0x05E8 # HEBREW LETTER RESH |
|
290 0xF9 0x05E9 # HEBREW LETTER SHIN |
|
291 0xFA 0x05EA # HEBREW LETTER TAV |
|
292 0xFD 0x200E # LEFT-TO-RIGHT MARK |
|
293 0xFE 0x200F # RIGHT-TO-LEFT MARK |
|
294 |
|
295 |
|
296 " |
|
297 ! ! |
|
298 |
|
299 !ISO8859_8 class methodsFor:'queries'! |
|
300 |
|
301 namesOfEncoding |
|
302 ^ #( 'iso8859-8' 'iso-8859-8' 'hebrew' 'iso-ir-138' ) |
|
303 ! |
|
304 |
|
305 userFriendlyNameOfEncoding |
|
306 ^ 'Hebrew' |
|
307 ! ! |
|
308 |
|
309 !ISO8859_8 methodsFor:'encoding & decoding'! |
|
310 |
|
311 decode:codeArg |
|
312 "Automagically generated by generateCode - do not modify. |
|
313 Decode from my encoding into unicode." |
|
314 |
|
315 |code "{ Class: SmallInteger }"| |
|
316 |
|
317 code := codeArg. |
|
318 code <= 16rA0 ifTrue:[ ^ code ]. |
|
319 code > 16rFE ifTrue:[ |
|
320 ^ self decodingError. |
|
321 ]. |
|
322 code <= 16rBE ifTrue:[ |
|
323 [ |
|
324 |t| |
|
325 t := #[ |
|
326 "16r00A1" 16r00 " invalid " |
|
327 "16r00A2" 16rA2 " CENT SIGN " |
|
328 "16r00A3" 16rA3 " POUND SIGN " |
|
329 "16r00A4" 16rA4 " CURRENCY SIGN " |
|
330 "16r00A5" 16rA5 " YEN SIGN " |
|
331 "16r00A6" 16rA6 " BROKEN BAR " |
|
332 "16r00A7" 16rA7 " SECTION SIGN " |
|
333 "16r00A8" 16rA8 " DIAERESIS " |
|
334 "16r00A9" 16rA9 " COPYRIGHT SIGN " |
|
335 "16r00AA" 16rD7 " MULTIPLICATION SIGN " |
|
336 "16r00AB" 16rAB " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK " |
|
337 "16r00AC" 16rAC " NOT SIGN " |
|
338 "16r00AD" 16rAD " SOFT HYPHEN " |
|
339 "16r00AE" 16rAE " REGISTERED SIGN " |
|
340 "16r00AF" 16rAF " MACRON " |
|
341 "16r00B0" 16rB0 " DEGREE SIGN " |
|
342 "16r00B1" 16rB1 " PLUS-MINUS SIGN " |
|
343 "16r00B2" 16rB2 " SUPERSCRIPT TWO " |
|
344 "16r00B3" 16rB3 " SUPERSCRIPT THREE " |
|
345 "16r00B4" 16rB4 " ACUTE ACCENT " |
|
346 "16r00B5" 16rB5 " MICRO SIGN " |
|
347 "16r00B6" 16rB6 " PILCROW SIGN " |
|
348 "16r00B7" 16rB7 " MIDDLE DOT " |
|
349 "16r00B8" 16rB8 " CEDILLA " |
|
350 "16r00B9" 16rB9 " SUPERSCRIPT ONE " |
|
351 "16r00BA" 16rF7 " DIVISION SIGN " |
|
352 "16r00BB" 16rBB " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK " |
|
353 "16r00BC" 16rBC " VULGAR FRACTION ONE QUARTER " |
|
354 "16r00BD" 16rBD " VULGAR FRACTION ONE HALF " |
|
355 "16r00BE" 16rBE " VULGAR FRACTION THREE QUARTERS " |
|
356 ] at:(code - 16rA0). |
|
357 t == 0 ifFalse:[^ t]. |
|
358 ^ self decodingError. |
|
359 ] value. |
|
360 ]. |
|
361 code <= 16rDE ifTrue:[ |
|
362 ^ self decodingError. |
|
363 ]. |
|
364 [ |
|
365 |t| |
|
366 t := #( |
|
367 "16r00DF" 16r2017 " DOUBLE LOW LINE " |
|
368 "16r00E0" 16r05D0 " HEBREW LETTER ALEF " |
|
369 "16r00E1" 16r05D1 " HEBREW LETTER BET " |
|
370 "16r00E2" 16r05D2 " HEBREW LETTER GIMEL " |
|
371 "16r00E3" 16r05D3 " HEBREW LETTER DALET " |
|
372 "16r00E4" 16r05D4 " HEBREW LETTER HE " |
|
373 "16r00E5" 16r05D5 " HEBREW LETTER VAV " |
|
374 "16r00E6" 16r05D6 " HEBREW LETTER ZAYIN " |
|
375 "16r00E7" 16r05D7 " HEBREW LETTER HET " |
|
376 "16r00E8" 16r05D8 " HEBREW LETTER TET " |
|
377 "16r00E9" 16r05D9 " HEBREW LETTER YOD " |
|
378 "16r00EA" 16r05DA " HEBREW LETTER FINAL KAF " |
|
379 "16r00EB" 16r05DB " HEBREW LETTER KAF " |
|
380 "16r00EC" 16r05DC " HEBREW LETTER LAMED " |
|
381 "16r00ED" 16r05DD " HEBREW LETTER FINAL MEM " |
|
382 "16r00EE" 16r05DE " HEBREW LETTER MEM " |
|
383 "16r00EF" 16r05DF " HEBREW LETTER FINAL NUN " |
|
384 "16r00F0" 16r05E0 " HEBREW LETTER NUN " |
|
385 "16r00F1" 16r05E1 " HEBREW LETTER SAMEKH " |
|
386 "16r00F2" 16r05E2 " HEBREW LETTER AYIN " |
|
387 "16r00F3" 16r05E3 " HEBREW LETTER FINAL PE " |
|
388 "16r00F4" 16r05E4 " HEBREW LETTER PE " |
|
389 "16r00F5" 16r05E5 " HEBREW LETTER FINAL TSADI " |
|
390 "16r00F6" 16r05E6 " HEBREW LETTER TSADI " |
|
391 "16r00F7" 16r05E7 " HEBREW LETTER QOF " |
|
392 "16r00F8" 16r05E8 " HEBREW LETTER RESH " |
|
393 "16r00F9" 16r05E9 " HEBREW LETTER SHIN " |
|
394 "16r00FA" 16r05EA " HEBREW LETTER TAV " |
|
395 "16r00FB" 16r0000 " invalid " |
|
396 "16r00FC" 16r0000 " invalid " |
|
397 "16r00FD" 16r200E " LEFT-TO-RIGHT MARK " |
|
398 "16r00FE" 16r200F " RIGHT-TO-LEFT MARK " |
|
399 ) at:(code - 16rDE). |
|
400 t == 0 ifFalse:[^ t]. |
|
401 ^ self decodingError. |
|
402 ] value. |
|
403 ! |
|
404 |
|
405 encode:unicodeArg |
|
406 "Automagically generated by generateCode - do not modify. |
|
407 Encode from unicode into my encoding." |
|
408 |
|
409 |unicode "{ Class: SmallInteger }"| |
|
410 |
|
411 unicode := unicodeArg. |
|
412 unicode <= 16rA0 ifTrue:[ ^ unicode ]. |
|
413 unicode > 16r2017 ifTrue:[ |
|
414 ^ self encodingError. |
|
415 ]. |
|
416 unicode <= 16r5EA ifTrue:[ |
|
417 unicode <= 16rF7 ifTrue:[ |
|
418 unicode <= 16rD7 ifTrue:[ |
|
419 unicode <= 16rBE ifTrue:[ |
|
420 [ |
|
421 |t| |
|
422 t := #[ |
|
423 "16r00A1" 16r00 " invalid " |
|
424 "16r00A2" 16rA2 " CENT SIGN " |
|
425 "16r00A3" 16rA3 " POUND SIGN " |
|
426 "16r00A4" 16rA4 " CURRENCY SIGN " |
|
427 "16r00A5" 16rA5 " YEN SIGN " |
|
428 "16r00A6" 16rA6 " BROKEN BAR " |
|
429 "16r00A7" 16rA7 " SECTION SIGN " |
|
430 "16r00A8" 16rA8 " DIAERESIS " |
|
431 "16r00A9" 16rA9 " COPYRIGHT SIGN " |
|
432 "16r00AA" 16r00 " invalid " |
|
433 "16r00AB" 16rAB " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK " |
|
434 "16r00AC" 16rAC " NOT SIGN " |
|
435 "16r00AD" 16rAD " SOFT HYPHEN " |
|
436 "16r00AE" 16rAE " REGISTERED SIGN " |
|
437 "16r00AF" 16rAF " MACRON " |
|
438 "16r00B0" 16rB0 " DEGREE SIGN " |
|
439 "16r00B1" 16rB1 " PLUS-MINUS SIGN " |
|
440 "16r00B2" 16rB2 " SUPERSCRIPT TWO " |
|
441 "16r00B3" 16rB3 " SUPERSCRIPT THREE " |
|
442 "16r00B4" 16rB4 " ACUTE ACCENT " |
|
443 "16r00B5" 16rB5 " MICRO SIGN " |
|
444 "16r00B6" 16rB6 " PILCROW SIGN " |
|
445 "16r00B7" 16rB7 " MIDDLE DOT " |
|
446 "16r00B8" 16rB8 " CEDILLA " |
|
447 "16r00B9" 16rB9 " SUPERSCRIPT ONE " |
|
448 "16r00BA" 16r00 " invalid " |
|
449 "16r00BB" 16rBB " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK " |
|
450 "16r00BC" 16rBC " VULGAR FRACTION ONE QUARTER " |
|
451 "16r00BD" 16rBD " VULGAR FRACTION ONE HALF " |
|
452 "16r00BE" 16rBE " VULGAR FRACTION THREE QUARTERS " |
|
453 ] at:(unicode - 16rA0). |
|
454 t == 0 ifFalse:[^ t]. |
|
455 ^ self encodingError |
|
456 ] value. |
|
457 ]. |
|
458 unicode <= 16rD6 ifTrue:[ |
|
459 ^ self encodingError. |
|
460 ]. |
|
461 ^ "16r00D7" 16r00AA " MULTIPLICATION SIGN " |
|
462 ]. |
|
463 unicode <= 16rF6 ifTrue:[ |
|
464 ^ self encodingError. |
|
465 ]. |
|
466 ^ "16r00F7" 16r00BA " DIVISION SIGN " |
|
467 ]. |
|
468 unicode <= 16r5CF ifTrue:[ |
|
469 ^ self encodingError. |
|
470 ]. |
|
471 ^ #[ |
|
472 "16r05D0" 16rE0 " HEBREW LETTER ALEF " |
|
473 "16r05D1" 16rE1 " HEBREW LETTER BET " |
|
474 "16r05D2" 16rE2 " HEBREW LETTER GIMEL " |
|
475 "16r05D3" 16rE3 " HEBREW LETTER DALET " |
|
476 "16r05D4" 16rE4 " HEBREW LETTER HE " |
|
477 "16r05D5" 16rE5 " HEBREW LETTER VAV " |
|
478 "16r05D6" 16rE6 " HEBREW LETTER ZAYIN " |
|
479 "16r05D7" 16rE7 " HEBREW LETTER HET " |
|
480 "16r05D8" 16rE8 " HEBREW LETTER TET " |
|
481 "16r05D9" 16rE9 " HEBREW LETTER YOD " |
|
482 "16r05DA" 16rEA " HEBREW LETTER FINAL KAF " |
|
483 "16r05DB" 16rEB " HEBREW LETTER KAF " |
|
484 "16r05DC" 16rEC " HEBREW LETTER LAMED " |
|
485 "16r05DD" 16rED " HEBREW LETTER FINAL MEM " |
|
486 "16r05DE" 16rEE " HEBREW LETTER MEM " |
|
487 "16r05DF" 16rEF " HEBREW LETTER FINAL NUN " |
|
488 "16r05E0" 16rF0 " HEBREW LETTER NUN " |
|
489 "16r05E1" 16rF1 " HEBREW LETTER SAMEKH " |
|
490 "16r05E2" 16rF2 " HEBREW LETTER AYIN " |
|
491 "16r05E3" 16rF3 " HEBREW LETTER FINAL PE " |
|
492 "16r05E4" 16rF4 " HEBREW LETTER PE " |
|
493 "16r05E5" 16rF5 " HEBREW LETTER FINAL TSADI " |
|
494 "16r05E6" 16rF6 " HEBREW LETTER TSADI " |
|
495 "16r05E7" 16rF7 " HEBREW LETTER QOF " |
|
496 "16r05E8" 16rF8 " HEBREW LETTER RESH " |
|
497 "16r05E9" 16rF9 " HEBREW LETTER SHIN " |
|
498 "16r05EA" 16rFA " HEBREW LETTER TAV " |
|
499 ] at:(unicode - 16r5CF). |
|
500 ]. |
|
501 unicode <= 16r200D ifTrue:[ |
|
502 ^ self encodingError. |
|
503 ]. |
|
504 [ |
|
505 |t| |
|
506 t := #[ |
|
507 "16r200E" 16rFD " LEFT-TO-RIGHT MARK " |
|
508 "16r200F" 16rFE " RIGHT-TO-LEFT MARK " |
|
509 "16r2010" 16r00 " invalid " |
|
510 "16r2011" 16r00 " invalid " |
|
511 "16r2012" 16r00 " invalid " |
|
512 "16r2013" 16r00 " invalid " |
|
513 "16r2014" 16r00 " invalid " |
|
514 "16r2015" 16r00 " invalid " |
|
515 "16r2016" 16r00 " invalid " |
|
516 "16r2017" 16rDF " DOUBLE LOW LINE " |
|
517 ] at:(unicode - 16r200D). |
|
518 t == 0 ifFalse:[^ t]. |
|
519 ^ self encodingError |
|
520 ] value. |
|
521 ! ! |
|
522 |
|
523 !ISO8859_8 class methodsFor:'documentation'! |
|
524 |
|
525 version |
|
526 ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__ISO8859_8.st,v 1.1 2004-03-05 17:27:43 cg Exp $' |
|
527 ! ! |