1 jls.loader.provide('jls.io.cs.ISO_8859_1');
  2 
  3 jls.loader.require('jls.io.cs.Charset');
  4 jls.loader.require('jls.io.cs.SingleByteDecoder');
  5 jls.loader.require('jls.io.cs.SingleByteEncoder');
  6 
  7 jls.io.cs.ISO_8859_1 = jls.lang.Class.create(jls.io.cs.Charset,
  8 {
  9     initialize : function($super) {
 10     	$super('ISO-8859-1');
 11     },
 12     newDecoder : function() {
 13         return new jls.io.cs.SingleByteDecoder(this, jls.io.cs.ISO_8859_1.byteToCharCode);
 14     },
 15     newEncoder : function() {
 16         return new jls.io.cs.SingleByteEncoder(this, jls.io.cs.ISO_8859_1.charCodeToByte);
 17     }
 18 });
 19 
 20 
 21 Object.extend(jls.io.cs.ISO_8859_1,
 22 {
 23 	byteToCharCode : [
 24 		0x0000, // NULL
 25 		0x0001, // START OF HEADING
 26 		0x0002, // START OF TEXT
 27 		0x0003, // END OF TEXT
 28 		0x0004, // END OF TRANSMISSION
 29 		0x0005, // ENQUIRY
 30 		0x0006, // ACKNOWLEDGE
 31 		0x0007, // BELL
 32 		0x0008, // BACKSPACE
 33 		0x0009, // HORIZONTAL TABULATION
 34 		0x000A, // LINE FEED
 35 		0x000B, // VERTICAL TABULATION
 36 		0x000C, // FORM FEED
 37 		0x000D, // CARRIAGE RETURN
 38 		0x000E, // SHIFT OUT
 39 		0x000F, // SHIFT IN
 40 		0x0010, // DATA LINK ESCAPE
 41 		0x0011, // DEVICE CONTROL ONE
 42 		0x0012, // DEVICE CONTROL TWO
 43 		0x0013, // DEVICE CONTROL THREE
 44 		0x0014, // DEVICE CONTROL FOUR
 45 		0x0015, // NEGATIVE ACKNOWLEDGE
 46 		0x0016, // SYNCHRONOUS IDLE
 47 		0x0017, // END OF TRANSMISSION BLOCK
 48 		0x0018, // CANCEL
 49 		0x0019, // END OF MEDIUM
 50 		0x001A, // SUBSTITUTE
 51 		0x001B, // ESCAPE
 52 		0x001C, // FILE SEPARATOR
 53 		0x001D, // GROUP SEPARATOR
 54 		0x001E, // RECORD SEPARATOR
 55 		0x001F, // UNIT SEPARATOR
 56 		0x0020, // SPACE
 57 		0x0021, // EXCLAMATION MARK
 58 		0x0022, // QUOTATION MARK
 59 		0x0023, // NUMBER SIGN
 60 		0x0024, // DOLLAR SIGN
 61 		0x0025, // PERCENT SIGN
 62 		0x0026, // AMPERSAND
 63 		0x0027, // APOSTROPHE
 64 		0x0028, // LEFT PARENTHESIS
 65 		0x0029, // RIGHT PARENTHESIS
 66 		0x002A, // ASTERISK
 67 		0x002B, // PLUS SIGN
 68 		0x002C, // COMMA
 69 		0x002D, // HYPHEN-MINUS
 70 		0x002E, // FULL STOP
 71 		0x002F, // SOLIDUS
 72 		0x0030, // DIGIT ZERO
 73 		0x0031, // DIGIT ONE
 74 		0x0032, // DIGIT TWO
 75 		0x0033, // DIGIT THREE
 76 		0x0034, // DIGIT FOUR
 77 		0x0035, // DIGIT FIVE
 78 		0x0036, // DIGIT SIX
 79 		0x0037, // DIGIT SEVEN
 80 		0x0038, // DIGIT EIGHT
 81 		0x0039, // DIGIT NINE
 82 		0x003A, // COLON
 83 		0x003B, // SEMICOLON
 84 		0x003C, // LESS-THAN SIGN
 85 		0x003D, // EQUALS SIGN
 86 		0x003E, // GREATER-THAN SIGN
 87 		0x003F, // QUESTION MARK
 88 		0x0040, // COMMERCIAL AT
 89 		0x0041, // LATIN CAPITAL LETTER A
 90 		0x0042, // LATIN CAPITAL LETTER B
 91 		0x0043, // LATIN CAPITAL LETTER C
 92 		0x0044, // LATIN CAPITAL LETTER D
 93 		0x0045, // LATIN CAPITAL LETTER E
 94 		0x0046, // LATIN CAPITAL LETTER F
 95 		0x0047, // LATIN CAPITAL LETTER G
 96 		0x0048, // LATIN CAPITAL LETTER H
 97 		0x0049, // LATIN CAPITAL LETTER I
 98 		0x004A, // LATIN CAPITAL LETTER J
 99 		0x004B, // LATIN CAPITAL LETTER K
100 		0x004C, // LATIN CAPITAL LETTER L
101 		0x004D, // LATIN CAPITAL LETTER M
102 		0x004E, // LATIN CAPITAL LETTER N
103 		0x004F, // LATIN CAPITAL LETTER O
104 		0x0050, // LATIN CAPITAL LETTER P
105 		0x0051, // LATIN CAPITAL LETTER Q
106 		0x0052, // LATIN CAPITAL LETTER R
107 		0x0053, // LATIN CAPITAL LETTER S
108 		0x0054, // LATIN CAPITAL LETTER T
109 		0x0055, // LATIN CAPITAL LETTER U
110 		0x0056, // LATIN CAPITAL LETTER V
111 		0x0057, // LATIN CAPITAL LETTER W
112 		0x0058, // LATIN CAPITAL LETTER X
113 		0x0059, // LATIN CAPITAL LETTER Y
114 		0x005A, // LATIN CAPITAL LETTER Z
115 		0x005B, // LEFT SQUARE BRACKET
116 		0x005C, // REVERSE SOLIDUS
117 		0x005D, // RIGHT SQUARE BRACKET
118 		0x005E, // CIRCUMFLEX ACCENT
119 		0x005F, // LOW LINE
120 		0x0060, // GRAVE ACCENT
121 		0x0061, // LATIN SMALL LETTER A
122 		0x0062, // LATIN SMALL LETTER B
123 		0x0063, // LATIN SMALL LETTER C
124 		0x0064, // LATIN SMALL LETTER D
125 		0x0065, // LATIN SMALL LETTER E
126 		0x0066, // LATIN SMALL LETTER F
127 		0x0067, // LATIN SMALL LETTER G
128 		0x0068, // LATIN SMALL LETTER H
129 		0x0069, // LATIN SMALL LETTER I
130 		0x006A, // LATIN SMALL LETTER J
131 		0x006B, // LATIN SMALL LETTER K
132 		0x006C, // LATIN SMALL LETTER L
133 		0x006D, // LATIN SMALL LETTER M
134 		0x006E, // LATIN SMALL LETTER N
135 		0x006F, // LATIN SMALL LETTER O
136 		0x0070, // LATIN SMALL LETTER P
137 		0x0071, // LATIN SMALL LETTER Q
138 		0x0072, // LATIN SMALL LETTER R
139 		0x0073, // LATIN SMALL LETTER S
140 		0x0074, // LATIN SMALL LETTER T
141 		0x0075, // LATIN SMALL LETTER U
142 		0x0076, // LATIN SMALL LETTER V
143 		0x0077, // LATIN SMALL LETTER W
144 		0x0078, // LATIN SMALL LETTER X
145 		0x0079, // LATIN SMALL LETTER Y
146 		0x007A, // LATIN SMALL LETTER Z
147 		0x007B, // LEFT CURLY BRACKET
148 		0x007C, // VERTICAL LINE
149 		0x007D, // RIGHT CURLY BRACKET
150 		0x007E, // TILDE
151 		0x007F, // DELETE
152 		null,
153 		null,
154 		null,
155 		null,
156 		null,
157 		null,
158 		null,
159 		null,
160 		null,
161 		null,
162 		null,
163 		null,
164 		null,
165 		null,
166 		null,
167 		null,
168 		null,
169 		null,
170 		null,
171 		null,
172 		null,
173 		null,
174 		null,
175 		null,
176 		null,
177 		null,
178 		null,
179 		null,
180 		null,
181 		null,
182 		null,
183 		null,
184 		0x00A0, // NO-BREAK SPACE
185 		0x00A1, // INVERTED EXCLAMATION MARK
186 		0x00A2, // CENT SIGN
187 		0x00A3, // POUND SIGN
188 		0x00A4, // CURRENCY SIGN
189 		0x00A5, // YEN SIGN
190 		0x00A6, // BROKEN BAR
191 		0x00A7, // SECTION SIGN
192 		0x00A8, // DIAERESIS
193 		0x00A9, // COPYRIGHT SIGN
194 		0x00AA, // FEMININE ORDINAL INDICATOR
195 		0x00AB, // LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
196 		0x00AC, // NOT SIGN
197 		0x00AD, // SOFT HYPHEN
198 		0x00AE, // REGISTERED SIGN
199 		0x00AF, // MACRON
200 		0x00B0, // DEGREE SIGN
201 		0x00B1, // PLUS-MINUS SIGN
202 		0x00B2, // SUPERSCRIPT TWO
203 		0x00B3, // SUPERSCRIPT THREE
204 		0x00B4, // ACUTE ACCENT
205 		0x00B5, // MICRO SIGN
206 		0x00B6, // PILCROW SIGN
207 		0x00B7, // MIDDLE DOT
208 		0x00B8, // CEDILLA
209 		0x00B9, // SUPERSCRIPT ONE
210 		0x00BA, // MASCULINE ORDINAL INDICATOR
211 		0x00BB, // RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
212 		0x00BC, // VULGAR FRACTION ONE QUARTER
213 		0x00BD, // VULGAR FRACTION ONE HALF
214 		0x00BE, // VULGAR FRACTION THREE QUARTERS
215 		0x00BF, // INVERTED QUESTION MARK
216 		0x00C0, // LATIN CAPITAL LETTER A WITH GRAVE
217 		0x00C1, // LATIN CAPITAL LETTER A WITH ACUTE
218 		0x00C2, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX
219 		0x00C3, // LATIN CAPITAL LETTER A WITH TILDE
220 		0x00C4, // LATIN CAPITAL LETTER A WITH DIAERESIS
221 		0x00C5, // LATIN CAPITAL LETTER A WITH RING ABOVE
222 		0x00C6, // LATIN CAPITAL LETTER AE
223 		0x00C7, // LATIN CAPITAL LETTER C WITH CEDILLA
224 		0x00C8, // LATIN CAPITAL LETTER E WITH GRAVE
225 		0x00C9, // LATIN CAPITAL LETTER E WITH ACUTE
226 		0x00CA, // LATIN CAPITAL LETTER E WITH CIRCUMFLEX
227 		0x00CB, // LATIN CAPITAL LETTER E WITH DIAERESIS
228 		0x00CC, // LATIN CAPITAL LETTER I WITH GRAVE
229 		0x00CD, // LATIN CAPITAL LETTER I WITH ACUTE
230 		0x00CE, // LATIN CAPITAL LETTER I WITH CIRCUMFLEX
231 		0x00CF, // LATIN CAPITAL LETTER I WITH DIAERESIS
232 		0x00D0, // LATIN CAPITAL LETTER ETH
233 		0x00D1, // LATIN CAPITAL LETTER N WITH TILDE
234 		0x00D2, // LATIN CAPITAL LETTER O WITH GRAVE
235 		0x00D3, // LATIN CAPITAL LETTER O WITH ACUTE
236 		0x00D4, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX
237 		0x00D5, // LATIN CAPITAL LETTER O WITH TILDE
238 		0x00D6, // LATIN CAPITAL LETTER O WITH DIAERESIS
239 		0x00D7, // MULTIPLICATION SIGN
240 		0x00D8, // LATIN CAPITAL LETTER O WITH STROKE
241 		0x00D9, // LATIN CAPITAL LETTER U WITH GRAVE
242 		0x00DA, // LATIN CAPITAL LETTER U WITH ACUTE
243 		0x00DB, // LATIN CAPITAL LETTER U WITH CIRCUMFLEX
244 		0x00DC, // LATIN CAPITAL LETTER U WITH DIAERESIS
245 		0x00DD, // LATIN CAPITAL LETTER Y WITH ACUTE
246 		0x00DE, // LATIN CAPITAL LETTER THORN
247 		0x00DF, // LATIN SMALL LETTER SHARP S
248 		0x00E0, // LATIN SMALL LETTER A WITH GRAVE
249 		0x00E1, // LATIN SMALL LETTER A WITH ACUTE
250 		0x00E2, // LATIN SMALL LETTER A WITH CIRCUMFLEX
251 		0x00E3, // LATIN SMALL LETTER A WITH TILDE
252 		0x00E4, // LATIN SMALL LETTER A WITH DIAERESIS
253 		0x00E5, // LATIN SMALL LETTER A WITH RING ABOVE
254 		0x00E6, // LATIN SMALL LETTER AE
255 		0x00E7, // LATIN SMALL LETTER C WITH CEDILLA
256 		0x00E8, // LATIN SMALL LETTER E WITH GRAVE
257 		0x00E9, // LATIN SMALL LETTER E WITH ACUTE
258 		0x00EA, // LATIN SMALL LETTER E WITH CIRCUMFLEX
259 		0x00EB, // LATIN SMALL LETTER E WITH DIAERESIS
260 		0x00EC, // LATIN SMALL LETTER I WITH GRAVE
261 		0x00ED, // LATIN SMALL LETTER I WITH ACUTE
262 		0x00EE, // LATIN SMALL LETTER I WITH CIRCUMFLEX
263 		0x00EF, // LATIN SMALL LETTER I WITH DIAERESIS
264 		0x00F0, // LATIN SMALL LETTER ETH
265 		0x00F1, // LATIN SMALL LETTER N WITH TILDE
266 		0x00F2, // LATIN SMALL LETTER O WITH GRAVE
267 		0x00F3, // LATIN SMALL LETTER O WITH ACUTE
268 		0x00F4, // LATIN SMALL LETTER O WITH CIRCUMFLEX
269 		0x00F5, // LATIN SMALL LETTER O WITH TILDE
270 		0x00F6, // LATIN SMALL LETTER O WITH DIAERESIS
271 		0x00F7, // DIVISION SIGN
272 		0x00F8, // LATIN SMALL LETTER O WITH STROKE
273 		0x00F9, // LATIN SMALL LETTER U WITH GRAVE
274 		0x00FA, // LATIN SMALL LETTER U WITH ACUTE
275 		0x00FB, // LATIN SMALL LETTER U WITH CIRCUMFLEX
276 		0x00FC, // LATIN SMALL LETTER U WITH DIAERESIS
277 		0x00FD, // LATIN SMALL LETTER Y WITH ACUTE
278 		0x00FE, // LATIN SMALL LETTER THORN
279 		0x00FF  // LATIN SMALL LETTER Y WITH DIAERESIS
280 	],
281 	charCodeToByte : []
282 });
283 
284 // static
285 jls.io.cs.ISO_8859_1.charCodeToByte = jls.io.cs.SingleByteEncoder.reverseMapping(jls.io.cs.ISO_8859_1.byteToCharCode);
286 jls.io.cs.Charset.addCharset(new jls.io.cs.ISO_8859_1());
287 
288