diff -r e617d82e0811 -r a53aae4a05bb CharacterEncoder.st --- a/CharacterEncoder.st Thu Feb 12 19:03:12 2004 +0100 +++ b/CharacterEncoder.st Thu Feb 12 19:37:17 2004 +0100 @@ -10,7 +10,7 @@ hereby transferred. " -"{ Package: 'stx:libcompat' }" +"{ Package: 'stx:libbasic' }" Object subclass:#CharacterEncoder instanceVariableNames:'name alternativeNames' @@ -201,7 +201,7 @@ privateIn:CharacterEncoder ! -CharacterEncoder::SingleByteEncoder subclass:#ISO8859_9 +CharacterEncoder::ISO8859_1 subclass:#ISO8859_9 instanceVariableNames:'' classVariableNames:'' poolDictionaries:'' @@ -868,15 +868,36 @@ ^ #() ! -isEncoding:subSet subSetOf:superSet - subSet = superSet ifTrue:[^ true]. - (subSet asLowercase match:superSet asLowercase) ifTrue:[^ true]. - ((subSet = 'iso8859*') or:[subSet = 'iso8859-*']) ifTrue:[ - ('ascii*' match:superSet asLowercase) ifTrue:[^ true]. - ]. - (subSet = 'ascii') ifTrue:[ - ('iso8859*' match:superSet asLowercase) ifTrue:[^ true]. - ]. +isEncoding:subSetEncodingArg subSetOf:superSetEncodingArg + "return true, if superSetEncoding encoding includes all characters of subSetEncoding" + + |subSetEncoding superSetEncoding| + + subSetEncodingArg = superSetEncodingArg ifTrue:[^ true]. + subSetEncoding := subSetEncodingArg asLowercase. + superSetEncoding := superSetEncodingArg asLowercase. + + (subSetEncoding match:superSetEncoding) ifTrue:[^ true]. + + (('iso10646*' match:superSetEncoding) or:[superSetEncoding = 'unicode']) ifTrue:[ + ('ascii*' match:subSetEncoding) ifTrue:[^ true]. + ('iso8859*' match:subSetEncoding) ifTrue:[^ true]. + ('jis*' match:subSetEncoding) ifTrue:[^ true]. + ('koi8*' match:subSetEncoding) ifTrue:[^ true]. + ('ksc*' match:subSetEncoding) ifTrue:[^ true]. + ('big*' match:subSetEncoding) ifTrue:[^ true]. + ('cns*' match:subSetEncoding) ifTrue:[^ true]. + ('gb2312*' match:subSetEncoding) ifTrue:[^ true]. + ]. + + "/ if the subSet is iso8859-*, that means ascii (i.e. the lower 7 bits of iso8859 only). + ((subSetEncoding = 'iso8859*') or:[subSetEncoding = 'iso8859-*']) ifTrue:[ + ('ascii*' match:superSetEncoding) ifTrue:[^ true]. + ]. + (subSetEncoding = 'ascii') ifTrue:[ + ('iso8859*' match:superSetEncoding) ifTrue:[^ true]. + ]. + "/ TODO: check the charSets mappingTables... "/ self halt. ^ false. @@ -1022,14 +1043,14 @@ sender := thisContext sender. ((sender selector == #encode:) or:[sender selector == #decode:]) ifFalse:[ - badCodePoint := sender argAt:1 + badCodePoint := sender methodHome argAt:1 ]. ^ (EncodingFailedError new) - defaultValue:(self defaultDecoderValue); - parameter:badCodePoint; - errorString:'invalid code'; - suspendedContext:sender; - raiseRequest + defaultValue:(self defaultDecoderValue); + parameter:badCodePoint; + errorString:'invalid code'; + suspendedContext:sender; + raiseRequest ! defaultDecoderValue @@ -1055,14 +1076,14 @@ sender := thisContext sender. ((sender selector == #encode:) or:[sender selector == #decode:]) ifFalse:[ - badCodePoint := sender argAt:1 + badCodePoint := sender methodHome argAt:1 ]. ^ (EncodingFailedError new) - defaultValue:(self defaultEncoderValue); - parameter:badCodePoint; - errorString:'unrepresentable unicode'; - suspendedContext:sender; - raiseRequest + defaultValue:(self defaultEncoderValue); + parameter:badCodePoint; + errorString:'unrepresentable unicode'; + suspendedContext:sender; + raiseRequest ! ! !CharacterEncoder methodsFor:'private'! @@ -2017,7 +2038,7 @@ !CharacterEncoder::ISO10646_1 class methodsFor:'queries'! alternativeNamesOfEncoding - ^ #( 'unicode' ) + ^ #( 'unicode' 'iso-10646-1' ) ! nameOfEncoding @@ -2623,7 +2644,7 @@ !CharacterEncoder::ISO8859_1 class methodsFor:'queries'! alternativeNamesOfEncoding - ^ #( 'latin-1' 'latin1' 'iso-ir-100' 'ibm-819' 'ms-cp819') + ^ #( 'iso-8859-1' 'latin-1' 'latin1' 'iso-ir-100' 'ibm-819' 'ms-cp819' ) ! ! !CharacterEncoder::ISO8859_1 methodsFor:'encoding & decoding'! @@ -2980,7 +3001,7 @@ !CharacterEncoder::ISO8859_10 class methodsFor:'queries'! alternativeNamesOfEncoding - ^ #( 'latin6' 'latin-6' 'iso-ir-157') + ^ #( 'iso-8859-10' 'latin6' 'latin-6' 'iso-ir-157') ! ! !CharacterEncoder::ISO8859_10 methodsFor:'encoding & decoding'! @@ -3659,6 +3680,12 @@ " ! ! +!CharacterEncoder::ISO8859_11 class methodsFor:'queries'! + +alternativeNamesOfEncoding + ^ #( 'iso-8859-11' ) +! ! + !CharacterEncoder::ISO8859_11 methodsFor:'encoding & decoding'! decode:codeArg @@ -4199,6 +4226,12 @@ " ! ! +!CharacterEncoder::ISO8859_13 class methodsFor:'queries'! + +alternativeNamesOfEncoding + ^ #( 'iso-8859-13' ) +! ! + !CharacterEncoder::ISO8859_13 methodsFor:'encoding & decoding'! decode:codeArg @@ -4886,6 +4919,12 @@ " ! ! +!CharacterEncoder::ISO8859_14 class methodsFor:'queries'! + +alternativeNamesOfEncoding + ^ #( 'iso-8859-14' ) +! ! + !CharacterEncoder::ISO8859_14 methodsFor:'encoding & decoding'! decode:codeArg @@ -5619,7 +5658,7 @@ !CharacterEncoder::ISO8859_15 class methodsFor:'queries'! alternativeNamesOfEncoding - ^ #( 'latin9' 'latin-9' 'iso-ir-203') + ^ #( 'iso-8859-15' 'latin9' 'latin-9' 'iso-ir-203') ! ! !CharacterEncoder::ISO8859_15 methodsFor:'encoding & decoding'! @@ -6205,6 +6244,12 @@ " ! ! +!CharacterEncoder::ISO8859_16 class methodsFor:'queries'! + +alternativeNamesOfEncoding + ^ #( 'iso-8859-16' ) +! ! + !CharacterEncoder::ISO8859_16 methodsFor:'encoding & decoding'! decode:codeArg @@ -6889,7 +6934,7 @@ !CharacterEncoder::ISO8859_2 class methodsFor:'queries'! alternativeNamesOfEncoding - ^ #( 'latin2' 'latin-2' 'iso-ir-101') + ^ #( 'iso-8859-2' 'latin2' 'latin-2' 'iso-ir-101') ! ! !CharacterEncoder::ISO8859_2 methodsFor:'encoding & decoding'! @@ -7588,7 +7633,7 @@ !CharacterEncoder::ISO8859_3 class methodsFor:'queries'! alternativeNamesOfEncoding - ^ #( 'latin3' 'latin-3' 'iso-ir-109') + ^ #( 'iso-8859-3' 'latin3' 'latin-3' 'iso-ir-109') ! ! !CharacterEncoder::ISO8859_3 methodsFor:'encoding & decoding'! @@ -8247,7 +8292,7 @@ !CharacterEncoder::ISO8859_4 class methodsFor:'queries'! alternativeNamesOfEncoding - ^ #( 'latin4' 'latin-4' 'iso-ir-110') + ^ #( 'iso-8859-4' 'latin4' 'latin-4' 'iso-ir-110') ! ! !CharacterEncoder::ISO8859_4 methodsFor:'encoding & decoding'! @@ -8950,7 +8995,7 @@ !CharacterEncoder::ISO8859_5 class methodsFor:'queries'! alternativeNamesOfEncoding - ^ #( 'cyrillic' 'iso-ir-144' ) + ^ #( 'iso-8859-5' 'cyrillic' 'iso-ir-144' ) ! ! !CharacterEncoder::ISO8859_5 methodsFor:'encoding & decoding'! @@ -9488,7 +9533,7 @@ !CharacterEncoder::ISO8859_6 class methodsFor:'queries'! alternativeNamesOfEncoding - ^ #( 'arabic' 'asmo-708' 'ecma-114' 'iso-ir-127' ) + ^ #( 'iso-8859-6' 'arabic' 'asmo-708' 'ecma-114' 'iso-ir-127' ) ! ! !CharacterEncoder::ISO8859_6 methodsFor:'encoding & decoding'! @@ -10036,7 +10081,7 @@ !CharacterEncoder::ISO8859_7 class methodsFor:'queries'! alternativeNamesOfEncoding - ^ #( 'greek' 'iso-ir-126' 'ecma-118') + ^ #( 'iso-8859-7' 'greek' 'iso-ir-126' 'ecma-118') ! ! !CharacterEncoder::ISO8859_7 methodsFor:'encoding & decoding'! @@ -10621,7 +10666,7 @@ !CharacterEncoder::ISO8859_8 class methodsFor:'queries'! alternativeNamesOfEncoding - ^ #( 'hebrew' 'iso-ir-138' ) + ^ #( 'iso-8859-8' 'hebrew' 'iso-ir-138' ) ! ! !CharacterEncoder::ISO8859_8 methodsFor:'encoding & decoding'! @@ -11162,7 +11207,7 @@ !CharacterEncoder::ISO8859_9 class methodsFor:'queries'! alternativeNamesOfEncoding - ^ #( 'latin5' 'latin-5' 'iso-ir-148') + ^ #( 'iso-8859-9' 'latin5' 'latin-5' 'iso-ir-148') ! ! !CharacterEncoder::ISO8859_9 methodsFor:'encoding & decoding'! @@ -11174,60 +11219,29 @@ |code "{ Class: SmallInteger }"| code := codeArg. - code <= 16rCF ifTrue:[ ^ code ]. - code > 16rFF ifTrue:[ - ^ self decodingError. - ]. - ^ #( - "16r00D0" 16r011E " LATIN CAPITAL LETTER G WITH BREVE " - "16r00D1" 16r00D1 " LATIN CAPITAL LETTER N WITH TILDE " - "16r00D2" 16r00D2 " LATIN CAPITAL LETTER O WITH GRAVE " - "16r00D3" 16r00D3 " LATIN CAPITAL LETTER O WITH ACUTE " - "16r00D4" 16r00D4 " LATIN CAPITAL LETTER O WITH CIRCUMFLEX " - "16r00D5" 16r00D5 " LATIN CAPITAL LETTER O WITH TILDE " - "16r00D6" 16r00D6 " LATIN CAPITAL LETTER O WITH DIAERESIS " - "16r00D7" 16r00D7 " MULTIPLICATION SIGN " - "16r00D8" 16r00D8 " LATIN CAPITAL LETTER O WITH STROKE " - "16r00D9" 16r00D9 " LATIN CAPITAL LETTER U WITH GRAVE " - "16r00DA" 16r00DA " LATIN CAPITAL LETTER U WITH ACUTE " - "16r00DB" 16r00DB " LATIN CAPITAL LETTER U WITH CIRCUMFLEX " - "16r00DC" 16r00DC " LATIN CAPITAL LETTER U WITH DIAERESIS " - "16r00DD" 16r0130 " LATIN CAPITAL LETTER I WITH DOT ABOVE " - "16r00DE" 16r015E " LATIN CAPITAL LETTER S WITH CEDILLA " - "16r00DF" 16r00DF " LATIN SMALL LETTER SHARP S " - "16r00E0" 16r00E0 " LATIN SMALL LETTER A WITH GRAVE " - "16r00E1" 16r00E1 " LATIN SMALL LETTER A WITH ACUTE " - "16r00E2" 16r00E2 " LATIN SMALL LETTER A WITH CIRCUMFLEX " - "16r00E3" 16r00E3 " LATIN SMALL LETTER A WITH TILDE " - "16r00E4" 16r00E4 " LATIN SMALL LETTER A WITH DIAERESIS " - "16r00E5" 16r00E5 " LATIN SMALL LETTER A WITH RING ABOVE " - "16r00E6" 16r00E6 " LATIN SMALL LETTER AE " - "16r00E7" 16r00E7 " LATIN SMALL LETTER C WITH CEDILLA " - "16r00E8" 16r00E8 " LATIN SMALL LETTER E WITH GRAVE " - "16r00E9" 16r00E9 " LATIN SMALL LETTER E WITH ACUTE " - "16r00EA" 16r00EA " LATIN SMALL LETTER E WITH CIRCUMFLEX " - "16r00EB" 16r00EB " LATIN SMALL LETTER E WITH DIAERESIS " - "16r00EC" 16r00EC " LATIN SMALL LETTER I WITH GRAVE " - "16r00ED" 16r00ED " LATIN SMALL LETTER I WITH ACUTE " - "16r00EE" 16r00EE " LATIN SMALL LETTER I WITH CIRCUMFLEX " - "16r00EF" 16r00EF " LATIN SMALL LETTER I WITH DIAERESIS " - "16r00F0" 16r011F " LATIN SMALL LETTER G WITH BREVE " - "16r00F1" 16r00F1 " LATIN SMALL LETTER N WITH TILDE " - "16r00F2" 16r00F2 " LATIN SMALL LETTER O WITH GRAVE " - "16r00F3" 16r00F3 " LATIN SMALL LETTER O WITH ACUTE " - "16r00F4" 16r00F4 " LATIN SMALL LETTER O WITH CIRCUMFLEX " - "16r00F5" 16r00F5 " LATIN SMALL LETTER O WITH TILDE " - "16r00F6" 16r00F6 " LATIN SMALL LETTER O WITH DIAERESIS " - "16r00F7" 16r00F7 " DIVISION SIGN " - "16r00F8" 16r00F8 " LATIN SMALL LETTER O WITH STROKE " - "16r00F9" 16r00F9 " LATIN SMALL LETTER U WITH GRAVE " - "16r00FA" 16r00FA " LATIN SMALL LETTER U WITH ACUTE " - "16r00FB" 16r00FB " LATIN SMALL LETTER U WITH CIRCUMFLEX " - "16r00FC" 16r00FC " LATIN SMALL LETTER U WITH DIAERESIS " - "16r00FD" 16r0131 " LATIN SMALL LETTER DOTLESS I " - "16r00FE" 16r015F " LATIN SMALL LETTER S WITH CEDILLA " - "16r00FF" 16r00FF " LATIN SMALL LETTER Y WITH DIAERESIS " - ) at:(code - 16rCF). + code > 16rCF ifTrue:[ + code <= 16rFE ifTrue:[ + code == 16rD0 ifTrue:[ + ^ "16r00D0" 16r011E " LATIN CAPITAL LETTER G WITH BREVE " + ]. + code == 16rDD ifTrue:[ + ^ "16r00DD" 16r0130 " LATIN CAPITAL LETTER I WITH DOT ABOVE " + ]. + code == 16rDE ifTrue:[ + ^ "16r00DE" 16r015E " LATIN CAPITAL LETTER S WITH CEDILLA " + ]. + code == 16rF0 ifTrue:[ + ^ "16r00F0" 16r011F " LATIN SMALL LETTER G WITH BREVE " + ]. + code == 16rFD ifTrue:[ + ^ "16r00FD" 16r0131 " LATIN SMALL LETTER DOTLESS I " + ]. + code == 16rFE ifTrue:[ + ^ "16r00FE" 16r015F " LATIN SMALL LETTER S WITH CEDILLA " + ]. + ]. + ]. + ^ super decode:code ! encode:unicodeArg @@ -11237,88 +11251,35 @@ |unicode "{ Class: SmallInteger }"| unicode := unicodeArg. - unicode <= 16rCF ifTrue:[ ^ unicode ]. - unicode > 16r15F ifTrue:[ - ^ self encodingError. - ]. - unicode <= 16r131 ifTrue:[ - unicode <= 16rFF ifTrue:[ - (#[ - "16r00D0" 0 " invalid " - "16r00D1" 1 " LATIN CAPITAL LETTER N WITH TILDE " - "16r00D2" 1 " LATIN CAPITAL LETTER O WITH GRAVE " - "16r00D3" 1 " LATIN CAPITAL LETTER O WITH ACUTE " - "16r00D4" 1 " LATIN CAPITAL LETTER O WITH CIRCUMFLEX " - "16r00D5" 1 " LATIN CAPITAL LETTER O WITH TILDE " - "16r00D6" 1 " LATIN CAPITAL LETTER O WITH DIAERESIS " - "16r00D7" 1 " MULTIPLICATION SIGN " - "16r00D8" 1 " LATIN CAPITAL LETTER O WITH STROKE " - "16r00D9" 1 " LATIN CAPITAL LETTER U WITH GRAVE " - "16r00DA" 1 " LATIN CAPITAL LETTER U WITH ACUTE " - "16r00DB" 1 " LATIN CAPITAL LETTER U WITH CIRCUMFLEX " - "16r00DC" 1 " LATIN CAPITAL LETTER U WITH DIAERESIS " - "16r00DD" 0 " invalid " - "16r00DE" 0 " invalid " - "16r00DF" 1 " LATIN SMALL LETTER SHARP S " - "16r00E0" 1 " LATIN SMALL LETTER A WITH GRAVE " - "16r00E1" 1 " LATIN SMALL LETTER A WITH ACUTE " - "16r00E2" 1 " LATIN SMALL LETTER A WITH CIRCUMFLEX " - "16r00E3" 1 " LATIN SMALL LETTER A WITH TILDE " - "16r00E4" 1 " LATIN SMALL LETTER A WITH DIAERESIS " - "16r00E5" 1 " LATIN SMALL LETTER A WITH RING ABOVE " - "16r00E6" 1 " LATIN SMALL LETTER AE " - "16r00E7" 1 " LATIN SMALL LETTER C WITH CEDILLA " - "16r00E8" 1 " LATIN SMALL LETTER E WITH GRAVE " - "16r00E9" 1 " LATIN SMALL LETTER E WITH ACUTE " - "16r00EA" 1 " LATIN SMALL LETTER E WITH CIRCUMFLEX " - "16r00EB" 1 " LATIN SMALL LETTER E WITH DIAERESIS " - "16r00EC" 1 " LATIN SMALL LETTER I WITH GRAVE " - "16r00ED" 1 " LATIN SMALL LETTER I WITH ACUTE " - "16r00EE" 1 " LATIN SMALL LETTER I WITH CIRCUMFLEX " - "16r00EF" 1 " LATIN SMALL LETTER I WITH DIAERESIS " - "16r00F0" 0 " invalid " - "16r00F1" 1 " LATIN SMALL LETTER N WITH TILDE " - "16r00F2" 1 " LATIN SMALL LETTER O WITH GRAVE " - "16r00F3" 1 " LATIN SMALL LETTER O WITH ACUTE " - "16r00F4" 1 " LATIN SMALL LETTER O WITH CIRCUMFLEX " - "16r00F5" 1 " LATIN SMALL LETTER O WITH TILDE " - "16r00F6" 1 " LATIN SMALL LETTER O WITH DIAERESIS " - "16r00F7" 1 " DIVISION SIGN " - "16r00F8" 1 " LATIN SMALL LETTER O WITH STROKE " - "16r00F9" 1 " LATIN SMALL LETTER U WITH GRAVE " - "16r00FA" 1 " LATIN SMALL LETTER U WITH ACUTE " - "16r00FB" 1 " LATIN SMALL LETTER U WITH CIRCUMFLEX " - "16r00FC" 1 " LATIN SMALL LETTER U WITH DIAERESIS " - "16r00FD" 0 " invalid " - "16r00FE" 0 " invalid " - "16r00FF" 1 " LATIN SMALL LETTER Y WITH DIAERESIS " - ] at:(unicode - 207)) ~~ 0 ifTrue:[^ unicode]. - ^ self encodingError. - ]. - unicode <= 16r11D ifTrue:[ - ^ self encodingError. - ]. - unicode <= 16r11F ifTrue:[ - ^ #[ - "16r011E" 16rD0 " LATIN CAPITAL LETTER G WITH BREVE " - "16r011F" 16rF0 " LATIN SMALL LETTER G WITH BREVE " - ] at:(unicode - 16r11D). - ]. - unicode <= 16r12F ifTrue:[ - ^ self encodingError. - ]. - ^ #[ - "16r0130" 16rDD " LATIN CAPITAL LETTER I WITH DOT ABOVE " - "16r0131" 16rFD " LATIN SMALL LETTER DOTLESS I " - ] at:(unicode - 16r12F). - ]. - unicode <= 16r15D ifTrue:[ - ^ self encodingError. - ]. - ^ #[ - "16r015E" 16rDE " LATIN CAPITAL LETTER S WITH CEDILLA " - "16r015F" 16rFE " LATIN SMALL LETTER S WITH CEDILLA " - ] at:(unicode - 16r15D). + unicode > 16rCF ifTrue:[ + ((unicode == 16rDD) + or:[(unicode == 16rDE) + or:[(unicode == 16rF0) + or:[(unicode == 16rD0) + or:[(unicode == 16rFD) + or:[(unicode == 16rFE)]]]]]) ifTrue:[ + ^ self decodingError. + ]. + unicode == 16r11E ifTrue:[ + ^ "16r011E" 16r00D0 " LATIN CAPITAL LETTER G WITH BREVE " + ]. + unicode == 16r11F ifTrue:[ + ^ "16r011F" 16r00F0 " LATIN SMALL LETTER G WITH BREVE " + ]. + unicode == 16r130 ifTrue:[ + ^ "16r0130" 16r00DD " LATIN CAPITAL LETTER I WITH DOT ABOVE " + ]. + unicode == 16r131 ifTrue:[ + ^ "16r0131" 16r00FD " LATIN SMALL LETTER DOTLESS I " + ]. + unicode == 16r15E ifTrue:[ + ^ "16r015E" 16r00DE " LATIN CAPITAL LETTER S WITH CEDILLA " + ]. + unicode == 16r15F ifTrue:[ + ^ "16r015F" 16r00FE " LATIN SMALL LETTER S WITH CEDILLA " + ]. + ]. + ^ super encode:unicode ! ! !CharacterEncoder::InverseEncoder class methodsFor:'documentation'! @@ -45179,6 +45140,450 @@ " ! ! +!CharacterEncoder::MAC_Greek methodsFor:'encoding & decoding'! + +decode:codeArg + "Automagically generated by generateCode - do not modify. + Decode from my encoding into unicode." + + |code "{ Class: SmallInteger }"| + + code := codeArg. + code <= 16r1F ifTrue:[ + ^ self decodingError. + ]. + code <= 16r7E ifTrue:[ ^ code ]. + code > 16rFF ifTrue:[ + ^ self decodingError. + ]. + [ + |t| + t := #( + "16r007F" 16r0000 " invalid " + "16r0080" 16r00C4 " LATIN CAPITAL LETTER A WITH DIAERESIS " + "16r0081" 16r00B9 " SUPERSCRIPT ONE " + "16r0082" 16r00B2 " SUPERSCRIPT TWO " + "16r0083" 16r00C9 " LATIN CAPITAL LETTER E WITH ACUTE " + "16r0084" 16r00B3 " SUPERSCRIPT THREE " + "16r0085" 16r00D6 " LATIN CAPITAL LETTER O WITH DIAERESIS " + "16r0086" 16r00DC " LATIN CAPITAL LETTER U WITH DIAERESIS " + "16r0087" 16r0385 " GREEK DIALYTIKA TONOS " + "16r0088" 16r00E0 " LATIN SMALL LETTER A WITH GRAVE " + "16r0089" 16r00E2 " LATIN SMALL LETTER A WITH CIRCUMFLEX " + "16r008A" 16r00E4 " LATIN SMALL LETTER A WITH DIAERESIS " + "16r008B" 16r0384 " GREEK TONOS " + "16r008C" 16r00A8 " DIAERESIS " + "16r008D" 16r00E7 " LATIN SMALL LETTER C WITH CEDILLA " + "16r008E" 16r00E9 " LATIN SMALL LETTER E WITH ACUTE " + "16r008F" 16r00E8 " LATIN SMALL LETTER E WITH GRAVE " + "16r0090" 16r00EA " LATIN SMALL LETTER E WITH CIRCUMFLEX " + "16r0091" 16r00EB " LATIN SMALL LETTER E WITH DIAERESIS " + "16r0092" 16r00A3 " POUND SIGN " + "16r0093" 16r2122 " TRADE MARK SIGN " + "16r0094" 16r00EE " LATIN SMALL LETTER I WITH CIRCUMFLEX " + "16r0095" 16r00EF " LATIN SMALL LETTER I WITH DIAERESIS " + "16r0096" 16r2022 " BULLET " + "16r0097" 16r00BD " VULGAR FRACTION ONE HALF " + "16r0098" 16r2030 " PER MILLE SIGN " + "16r0099" 16r00F4 " LATIN SMALL LETTER O WITH CIRCUMFLEX " + "16r009A" 16r00F6 " LATIN SMALL LETTER O WITH DIAERESIS " + "16r009B" 16r00A6 " BROKEN BAR " + "16r009C" 16r20AC " EURO SIGN # before Mac OS 9.2.2, was SOFT HYPHEN " + "16r009D" 16r00F9 " LATIN SMALL LETTER U WITH GRAVE " + "16r009E" 16r00FB " LATIN SMALL LETTER U WITH CIRCUMFLEX " + "16r009F" 16r00FC " LATIN SMALL LETTER U WITH DIAERESIS " + "16r00A0" 16r2020 " DAGGER " + "16r00A1" 16r0393 " GREEK CAPITAL LETTER GAMMA " + "16r00A2" 16r0394 " GREEK CAPITAL LETTER DELTA " + "16r00A3" 16r0398 " GREEK CAPITAL LETTER THETA " + "16r00A4" 16r039B " GREEK CAPITAL LETTER LAMDA " + "16r00A5" 16r039E " GREEK CAPITAL LETTER XI " + "16r00A6" 16r03A0 " GREEK CAPITAL LETTER PI " + "16r00A7" 16r00DF " LATIN SMALL LETTER SHARP S " + "16r00A8" 16r00AE " REGISTERED SIGN " + "16r00A9" 16r00A9 " COPYRIGHT SIGN " + "16r00AA" 16r03A3 " GREEK CAPITAL LETTER SIGMA " + "16r00AB" 16r03AA " GREEK CAPITAL LETTER IOTA WITH DIALYTIKA " + "16r00AC" 16r00A7 " SECTION SIGN " + "16r00AD" 16r2260 " NOT EQUAL TO " + "16r00AE" 16r00B0 " DEGREE SIGN " + "16r00AF" 16r00B7 " MIDDLE DOT " + "16r00B0" 16r0391 " GREEK CAPITAL LETTER ALPHA " + "16r00B1" 16r00B1 " PLUS-MINUS SIGN " + "16r00B2" 16r2264 " LESS-THAN OR EQUAL TO " + "16r00B3" 16r2265 " GREATER-THAN OR EQUAL TO " + "16r00B4" 16r00A5 " YEN SIGN " + "16r00B5" 16r0392 " GREEK CAPITAL LETTER BETA " + "16r00B6" 16r0395 " GREEK CAPITAL LETTER EPSILON " + "16r00B7" 16r0396 " GREEK CAPITAL LETTER ZETA " + "16r00B8" 16r0397 " GREEK CAPITAL LETTER ETA " + "16r00B9" 16r0399 " GREEK CAPITAL LETTER IOTA " + "16r00BA" 16r039A " GREEK CAPITAL LETTER KAPPA " + "16r00BB" 16r039C " GREEK CAPITAL LETTER MU " + "16r00BC" 16r03A6 " GREEK CAPITAL LETTER PHI " + "16r00BD" 16r03AB " GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA " + "16r00BE" 16r03A8 " GREEK CAPITAL LETTER PSI " + "16r00BF" 16r03A9 " GREEK CAPITAL LETTER OMEGA " + "16r00C0" 16r03AC " GREEK SMALL LETTER ALPHA WITH TONOS " + "16r00C1" 16r039D " GREEK CAPITAL LETTER NU " + "16r00C2" 16r00AC " NOT SIGN " + "16r00C3" 16r039F " GREEK CAPITAL LETTER OMICRON " + "16r00C4" 16r03A1 " GREEK CAPITAL LETTER RHO " + "16r00C5" 16r2248 " ALMOST EQUAL TO " + "16r00C6" 16r03A4 " GREEK CAPITAL LETTER TAU " + "16r00C7" 16r00AB " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK " + "16r00C8" 16r00BB " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK " + "16r00C9" 16r2026 " HORIZONTAL ELLIPSIS " + "16r00CA" 16r00A0 " NO-BREAK SPACE " + "16r00CB" 16r03A5 " GREEK CAPITAL LETTER UPSILON " + "16r00CC" 16r03A7 " GREEK CAPITAL LETTER CHI " + "16r00CD" 16r0386 " GREEK CAPITAL LETTER ALPHA WITH TONOS " + "16r00CE" 16r0388 " GREEK CAPITAL LETTER EPSILON WITH TONOS " + "16r00CF" 16r0153 " LATIN SMALL LIGATURE OE " + "16r00D0" 16r2013 " EN DASH " + "16r00D1" 16r2015 " HORIZONTAL BAR " + "16r00D2" 16r201C " LEFT DOUBLE QUOTATION MARK " + "16r00D3" 16r201D " RIGHT DOUBLE QUOTATION MARK " + "16r00D4" 16r2018 " LEFT SINGLE QUOTATION MARK " + "16r00D5" 16r2019 " RIGHT SINGLE QUOTATION MARK " + "16r00D6" 16r00F7 " DIVISION SIGN " + "16r00D7" 16r0389 " GREEK CAPITAL LETTER ETA WITH TONOS " + "16r00D8" 16r038A " GREEK CAPITAL LETTER IOTA WITH TONOS " + "16r00D9" 16r038C " GREEK CAPITAL LETTER OMICRON WITH TONOS " + "16r00DA" 16r038E " GREEK CAPITAL LETTER UPSILON WITH TONOS " + "16r00DB" 16r03AD " GREEK SMALL LETTER EPSILON WITH TONOS " + "16r00DC" 16r03AE " GREEK SMALL LETTER ETA WITH TONOS " + "16r00DD" 16r03AF " GREEK SMALL LETTER IOTA WITH TONOS " + "16r00DE" 16r03CC " GREEK SMALL LETTER OMICRON WITH TONOS " + "16r00DF" 16r038F " GREEK CAPITAL LETTER OMEGA WITH TONOS " + "16r00E0" 16r03CD " GREEK SMALL LETTER UPSILON WITH TONOS " + "16r00E1" 16r03B1 " GREEK SMALL LETTER ALPHA " + "16r00E2" 16r03B2 " GREEK SMALL LETTER BETA " + "16r00E3" 16r03C8 " GREEK SMALL LETTER PSI " + "16r00E4" 16r03B4 " GREEK SMALL LETTER DELTA " + "16r00E5" 16r03B5 " GREEK SMALL LETTER EPSILON " + "16r00E6" 16r03C6 " GREEK SMALL LETTER PHI " + "16r00E7" 16r03B3 " GREEK SMALL LETTER GAMMA " + "16r00E8" 16r03B7 " GREEK SMALL LETTER ETA " + "16r00E9" 16r03B9 " GREEK SMALL LETTER IOTA " + "16r00EA" 16r03BE " GREEK SMALL LETTER XI " + "16r00EB" 16r03BA " GREEK SMALL LETTER KAPPA " + "16r00EC" 16r03BB " GREEK SMALL LETTER LAMDA " + "16r00ED" 16r03BC " GREEK SMALL LETTER MU " + "16r00EE" 16r03BD " GREEK SMALL LETTER NU " + "16r00EF" 16r03BF " GREEK SMALL LETTER OMICRON " + "16r00F0" 16r03C0 " GREEK SMALL LETTER PI " + "16r00F1" 16r03CE " GREEK SMALL LETTER OMEGA WITH TONOS " + "16r00F2" 16r03C1 " GREEK SMALL LETTER RHO " + "16r00F3" 16r03C3 " GREEK SMALL LETTER SIGMA " + "16r00F4" 16r03C4 " GREEK SMALL LETTER TAU " + "16r00F5" 16r03B8 " GREEK SMALL LETTER THETA " + "16r00F6" 16r03C9 " GREEK SMALL LETTER OMEGA " + "16r00F7" 16r03C2 " GREEK SMALL LETTER FINAL SIGMA " + "16r00F8" 16r03C7 " GREEK SMALL LETTER CHI " + "16r00F9" 16r03C5 " GREEK SMALL LETTER UPSILON " + "16r00FA" 16r03B6 " GREEK SMALL LETTER ZETA " + "16r00FB" 16r03CA " GREEK SMALL LETTER IOTA WITH DIALYTIKA " + "16r00FC" 16r03CB " GREEK SMALL LETTER UPSILON WITH DIALYTIKA " + "16r00FD" 16r0390 " GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS " + "16r00FE" 16r03B0 " GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS " + "16r00FF" 16r00AD " SOFT HYPHEN # before Mac OS 9.2.2, was undefined " + ) at:(code - 16r7E). + t == 0 ifFalse:[^ t]. + ^ self decodingError. + ] value. +! + +encode:unicodeArg + "Automagically generated by generateCode - do not modify. + Encode from unicode into my encoding." + + |unicode "{ Class: SmallInteger }"| + + unicode := unicodeArg. + unicode <= 16r1F ifTrue:[ + ^ self decodingError. + ]. + unicode <= 16r7E ifTrue:[ ^ unicode ]. + unicode > 16r2265 ifTrue:[ + ^ self encodingError. + ]. + unicode <= 16r9F ifTrue:[ + ^ self encodingError + ]. + unicode <= 16r3CE ifTrue:[ + unicode <= 16r153 ifTrue:[ + unicode <= 16rFC ifTrue:[ + [ + |t| + t := #[ + "16r00A0" 16rCA " NO-BREAK SPACE " + "16r00A1" 16r00 " invalid " + "16r00A2" 16r00 " invalid " + "16r00A3" 16r92 " POUND SIGN " + "16r00A4" 16r00 " invalid " + "16r00A5" 16rB4 " YEN SIGN " + "16r00A6" 16r9B " BROKEN BAR " + "16r00A7" 16rAC " SECTION SIGN " + "16r00A8" 16r8C " DIAERESIS " + "16r00A9" 16rA9 " COPYRIGHT SIGN " + "16r00AA" 16r00 " invalid " + "16r00AB" 16rC7 " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK " + "16r00AC" 16rC2 " NOT SIGN " + "16r00AD" 16rFF " SOFT HYPHEN # before Mac OS 9.2.2, was undefined " + "16r00AE" 16rA8 " REGISTERED SIGN " + "16r00AF" 16r00 " invalid " + "16r00B0" 16rAE " DEGREE SIGN " + "16r00B1" 16rB1 " PLUS-MINUS SIGN " + "16r00B2" 16r82 " SUPERSCRIPT TWO " + "16r00B3" 16r84 " SUPERSCRIPT THREE " + "16r00B4" 16r00 " invalid " + "16r00B5" 16r00 " invalid " + "16r00B6" 16r00 " invalid " + "16r00B7" 16rAF " MIDDLE DOT " + "16r00B8" 16r00 " invalid " + "16r00B9" 16r81 " SUPERSCRIPT ONE " + "16r00BA" 16r00 " invalid " + "16r00BB" 16rC8 " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK " + "16r00BC" 16r00 " invalid " + "16r00BD" 16r97 " VULGAR FRACTION ONE HALF " + "16r00BE" 16r00 " invalid " + "16r00BF" 16r00 " invalid " + "16r00C0" 16r00 " invalid " + "16r00C1" 16r00 " invalid " + "16r00C2" 16r00 " invalid " + "16r00C3" 16r00 " invalid " + "16r00C4" 16r80 " LATIN CAPITAL LETTER A WITH DIAERESIS " + "16r00C5" 16r00 " invalid " + "16r00C6" 16r00 " invalid " + "16r00C7" 16r00 " invalid " + "16r00C8" 16r00 " invalid " + "16r00C9" 16r83 " LATIN CAPITAL LETTER E WITH ACUTE " + "16r00CA" 16r00 " invalid " + "16r00CB" 16r00 " invalid " + "16r00CC" 16r00 " invalid " + "16r00CD" 16r00 " invalid " + "16r00CE" 16r00 " invalid " + "16r00CF" 16r00 " invalid " + "16r00D0" 16r00 " invalid " + "16r00D1" 16r00 " invalid " + "16r00D2" 16r00 " invalid " + "16r00D3" 16r00 " invalid " + "16r00D4" 16r00 " invalid " + "16r00D5" 16r00 " invalid " + "16r00D6" 16r85 " LATIN CAPITAL LETTER O WITH DIAERESIS " + "16r00D7" 16r00 " invalid " + "16r00D8" 16r00 " invalid " + "16r00D9" 16r00 " invalid " + "16r00DA" 16r00 " invalid " + "16r00DB" 16r00 " invalid " + "16r00DC" 16r86 " LATIN CAPITAL LETTER U WITH DIAERESIS " + "16r00DD" 16r00 " invalid " + "16r00DE" 16r00 " invalid " + "16r00DF" 16rA7 " LATIN SMALL LETTER SHARP S " + "16r00E0" 16r88 " LATIN SMALL LETTER A WITH GRAVE " + "16r00E1" 16r00 " invalid " + "16r00E2" 16r89 " LATIN SMALL LETTER A WITH CIRCUMFLEX " + "16r00E3" 16r00 " invalid " + "16r00E4" 16r8A " LATIN SMALL LETTER A WITH DIAERESIS " + "16r00E5" 16r00 " invalid " + "16r00E6" 16r00 " invalid " + "16r00E7" 16r8D " LATIN SMALL LETTER C WITH CEDILLA " + "16r00E8" 16r8F " LATIN SMALL LETTER E WITH GRAVE " + "16r00E9" 16r8E " LATIN SMALL LETTER E WITH ACUTE " + "16r00EA" 16r90 " LATIN SMALL LETTER E WITH CIRCUMFLEX " + "16r00EB" 16r91 " LATIN SMALL LETTER E WITH DIAERESIS " + "16r00EC" 16r00 " invalid " + "16r00ED" 16r00 " invalid " + "16r00EE" 16r94 " LATIN SMALL LETTER I WITH CIRCUMFLEX " + "16r00EF" 16r95 " LATIN SMALL LETTER I WITH DIAERESIS " + "16r00F0" 16r00 " invalid " + "16r00F1" 16r00 " invalid " + "16r00F2" 16r00 " invalid " + "16r00F3" 16r00 " invalid " + "16r00F4" 16r99 " LATIN SMALL LETTER O WITH CIRCUMFLEX " + "16r00F5" 16r00 " invalid " + "16r00F6" 16r9A " LATIN SMALL LETTER O WITH DIAERESIS " + "16r00F7" 16rD6 " DIVISION SIGN " + "16r00F8" 16r00 " invalid " + "16r00F9" 16r9D " LATIN SMALL LETTER U WITH GRAVE " + "16r00FA" 16r00 " invalid " + "16r00FB" 16r9E " LATIN SMALL LETTER U WITH CIRCUMFLEX " + "16r00FC" 16r9F " LATIN SMALL LETTER U WITH DIAERESIS " + ] at:(unicode - 16r9F). + t == 0 ifFalse:[^ t]. + ^ self encodingError + ] value. + ]. + unicode <= 16r152 ifTrue:[ + ^ self encodingError + ]. + ^ "16r0153" 16r00CF " LATIN SMALL LIGATURE OE " + ]. + unicode <= 16r383 ifTrue:[ + ^ self encodingError + ]. + [ + |t| + t := #[ + "16r0384" 16r8B " GREEK TONOS " + "16r0385" 16r87 " GREEK DIALYTIKA TONOS " + "16r0386" 16rCD " GREEK CAPITAL LETTER ALPHA WITH TONOS " + "16r0387" 16r00 " invalid " + "16r0388" 16rCE " GREEK CAPITAL LETTER EPSILON WITH TONOS " + "16r0389" 16rD7 " GREEK CAPITAL LETTER ETA WITH TONOS " + "16r038A" 16rD8 " GREEK CAPITAL LETTER IOTA WITH TONOS " + "16r038B" 16r00 " invalid " + "16r038C" 16rD9 " GREEK CAPITAL LETTER OMICRON WITH TONOS " + "16r038D" 16r00 " invalid " + "16r038E" 16rDA " GREEK CAPITAL LETTER UPSILON WITH TONOS " + "16r038F" 16rDF " GREEK CAPITAL LETTER OMEGA WITH TONOS " + "16r0390" 16rFD " GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS " + "16r0391" 16rB0 " GREEK CAPITAL LETTER ALPHA " + "16r0392" 16rB5 " GREEK CAPITAL LETTER BETA " + "16r0393" 16rA1 " GREEK CAPITAL LETTER GAMMA " + "16r0394" 16rA2 " GREEK CAPITAL LETTER DELTA " + "16r0395" 16rB6 " GREEK CAPITAL LETTER EPSILON " + "16r0396" 16rB7 " GREEK CAPITAL LETTER ZETA " + "16r0397" 16rB8 " GREEK CAPITAL LETTER ETA " + "16r0398" 16rA3 " GREEK CAPITAL LETTER THETA " + "16r0399" 16rB9 " GREEK CAPITAL LETTER IOTA " + "16r039A" 16rBA " GREEK CAPITAL LETTER KAPPA " + "16r039B" 16rA4 " GREEK CAPITAL LETTER LAMDA " + "16r039C" 16rBB " GREEK CAPITAL LETTER MU " + "16r039D" 16rC1 " GREEK CAPITAL LETTER NU " + "16r039E" 16rA5 " GREEK CAPITAL LETTER XI " + "16r039F" 16rC3 " GREEK CAPITAL LETTER OMICRON " + "16r03A0" 16rA6 " GREEK CAPITAL LETTER PI " + "16r03A1" 16rC4 " GREEK CAPITAL LETTER RHO " + "16r03A2" 16r00 " invalid " + "16r03A3" 16rAA " GREEK CAPITAL LETTER SIGMA " + "16r03A4" 16rC6 " GREEK CAPITAL LETTER TAU " + "16r03A5" 16rCB " GREEK CAPITAL LETTER UPSILON " + "16r03A6" 16rBC " GREEK CAPITAL LETTER PHI " + "16r03A7" 16rCC " GREEK CAPITAL LETTER CHI " + "16r03A8" 16rBE " GREEK CAPITAL LETTER PSI " + "16r03A9" 16rBF " GREEK CAPITAL LETTER OMEGA " + "16r03AA" 16rAB " GREEK CAPITAL LETTER IOTA WITH DIALYTIKA " + "16r03AB" 16rBD " GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA " + "16r03AC" 16rC0 " GREEK SMALL LETTER ALPHA WITH TONOS " + "16r03AD" 16rDB " GREEK SMALL LETTER EPSILON WITH TONOS " + "16r03AE" 16rDC " GREEK SMALL LETTER ETA WITH TONOS " + "16r03AF" 16rDD " GREEK SMALL LETTER IOTA WITH TONOS " + "16r03B0" 16rFE " GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS " + "16r03B1" 16rE1 " GREEK SMALL LETTER ALPHA " + "16r03B2" 16rE2 " GREEK SMALL LETTER BETA " + "16r03B3" 16rE7 " GREEK SMALL LETTER GAMMA " + "16r03B4" 16rE4 " GREEK SMALL LETTER DELTA " + "16r03B5" 16rE5 " GREEK SMALL LETTER EPSILON " + "16r03B6" 16rFA " GREEK SMALL LETTER ZETA " + "16r03B7" 16rE8 " GREEK SMALL LETTER ETA " + "16r03B8" 16rF5 " GREEK SMALL LETTER THETA " + "16r03B9" 16rE9 " GREEK SMALL LETTER IOTA " + "16r03BA" 16rEB " GREEK SMALL LETTER KAPPA " + "16r03BB" 16rEC " GREEK SMALL LETTER LAMDA " + "16r03BC" 16rED " GREEK SMALL LETTER MU " + "16r03BD" 16rEE " GREEK SMALL LETTER NU " + "16r03BE" 16rEA " GREEK SMALL LETTER XI " + "16r03BF" 16rEF " GREEK SMALL LETTER OMICRON " + "16r03C0" 16rF0 " GREEK SMALL LETTER PI " + "16r03C1" 16rF2 " GREEK SMALL LETTER RHO " + "16r03C2" 16rF7 " GREEK SMALL LETTER FINAL SIGMA " + "16r03C3" 16rF3 " GREEK SMALL LETTER SIGMA " + "16r03C4" 16rF4 " GREEK SMALL LETTER TAU " + "16r03C5" 16rF9 " GREEK SMALL LETTER UPSILON " + "16r03C6" 16rE6 " GREEK SMALL LETTER PHI " + "16r03C7" 16rF8 " GREEK SMALL LETTER CHI " + "16r03C8" 16rE3 " GREEK SMALL LETTER PSI " + "16r03C9" 16rF6 " GREEK SMALL LETTER OMEGA " + "16r03CA" 16rFB " GREEK SMALL LETTER IOTA WITH DIALYTIKA " + "16r03CB" 16rFC " GREEK SMALL LETTER UPSILON WITH DIALYTIKA " + "16r03CC" 16rDE " GREEK SMALL LETTER OMICRON WITH TONOS " + "16r03CD" 16rE0 " GREEK SMALL LETTER UPSILON WITH TONOS " + "16r03CE" 16rF1 " GREEK SMALL LETTER OMEGA WITH TONOS " + ] at:(unicode - 16r383). + t == 0 ifFalse:[^ t]. + ^ self encodingError + ] value. + ]. + unicode <= 16r2012 ifTrue:[ + ^ self encodingError + ]. + unicode <= 16r2122 ifTrue:[ + unicode <= 16r2030 ifTrue:[ + [ + |t| + t := #[ + "16r2013" 16rD0 " EN DASH " + "16r2014" 16r00 " invalid " + "16r2015" 16rD1 " HORIZONTAL BAR " + "16r2016" 16r00 " invalid " + "16r2017" 16r00 " invalid " + "16r2018" 16rD4 " LEFT SINGLE QUOTATION MARK " + "16r2019" 16rD5 " RIGHT SINGLE QUOTATION MARK " + "16r201A" 16r00 " invalid " + "16r201B" 16r00 " invalid " + "16r201C" 16rD2 " LEFT DOUBLE QUOTATION MARK " + "16r201D" 16rD3 " RIGHT DOUBLE QUOTATION MARK " + "16r201E" 16r00 " invalid " + "16r201F" 16r00 " invalid " + "16r2020" 16rA0 " DAGGER " + "16r2021" 16r00 " invalid " + "16r2022" 16r96 " BULLET " + "16r2023" 16r00 " invalid " + "16r2024" 16r00 " invalid " + "16r2025" 16r00 " invalid " + "16r2026" 16rC9 " HORIZONTAL ELLIPSIS " + "16r2027" 16r00 " invalid " + "16r2028" 16r00 " invalid " + "16r2029" 16r00 " invalid " + "16r202A" 16r00 " invalid " + "16r202B" 16r00 " invalid " + "16r202C" 16r00 " invalid " + "16r202D" 16r00 " invalid " + "16r202E" 16r00 " invalid " + "16r202F" 16r00 " invalid " + "16r2030" 16r98 " PER MILLE SIGN " + ] at:(unicode - 16r2012). + t == 0 ifFalse:[^ t]. + ^ self encodingError + ] value. + ]. + unicode <= 16r20AB ifTrue:[ + ^ self encodingError + ]. + unicode == 16r20AC ifTrue:[ + ^ "16r20AC" 16r009C " EURO SIGN # before Mac OS 9.2.2, was SOFT HYPHEN " + ]. + unicode <= 16r2121 ifTrue:[ + ^ self encodingError + ]. + ^ "16r2122" 16r0093 " TRADE MARK SIGN " + ]. + unicode <= 16r2247 ifTrue:[ + ^ self encodingError + ]. + unicode == 16r2248 ifTrue:[ + ^ "16r2248" 16r00C5 " ALMOST EQUAL TO " + ]. + unicode <= 16r225F ifTrue:[ + ^ self encodingError + ]. + [ + |t| + t := #[ + "16r2260" 16rAD " NOT EQUAL TO " + "16r2261" 16r00 " invalid " + "16r2262" 16r00 " invalid " + "16r2263" 16r00 " invalid " + "16r2264" 16rB2 " LESS-THAN OR EQUAL TO " + "16r2265" 16rB3 " GREATER-THAN OR EQUAL TO " + ] at:(unicode - 16r225F). + t == 0 ifFalse:[^ t]. + ^ self encodingError + ] value. +! ! + !CharacterEncoder::MAC_Hebrew class methodsFor:'mapping'! mapFileURL1_relativePathName @@ -48763,6 +49168,511 @@ ^ #( 'ms-arabic' 'ms-cp1256' 'cp1256' 'microsoft-arabic' ) ! ! +!CharacterEncoder::MS_Arabic methodsFor:'encoding & decoding'! + +decode:codeArg + "Automagically generated by generateCode - do not modify. + Decode from my encoding into unicode." + + |code "{ Class: SmallInteger }"| + + code := codeArg. + code <= 16r7F ifTrue:[ ^ code ]. + code > 16rFF ifTrue:[ + ^ self decodingError. + ]. + [ + |t| + t := #( + "16r0080" 16r060C " ARABIC COMMA " + "16r0081" 16r0660 " ARABIC-INDIC DIGIT ZERO " + "16r0082" 16r201A " SINGLE LOW-9 QUOTATION MARK " + "16r0083" 16r0661 " ARABIC-INDIC DIGIT ONE " + "16r0084" 16r201E " DOUBLE LOW-9 QUOTATION MARK " + "16r0085" 16r2026 " HORIZONTAL ELLIPSIS " + "16r0086" 16r2020 " DAGGER " + "16r0087" 16r2021 " DOUBLE DAGGER " + "16r0088" 16r0662 " ARABIC-INDIC DIGIT TWO " + "16r0089" 16r0663 " ARABIC-INDIC DIGIT THREE " + "16r008A" 16r0664 " ARABIC-INDIC DIGIT FOUR " + "16r008B" 16r2039 " SINGLE LEFT-POINTING ANGLE QUOTATION MARK " + "16r008C" 16r0665 " ARABIC-INDIC DIGIT FIVE " + "16r008D" 16r0666 " ARABIC-INDIC DIGIT SIX " + "16r008E" 16r0667 " ARABIC-INDIC DIGIT SEVEN " + "16r008F" 16r0668 " ARABIC-INDIC DIGIT EIGHT " + "16r0090" 16r0669 " ARABIC-INDIC DIGIT NINE " + "16r0091" 16r2018 " LEFT SINGLE QUOTATION MARK " + "16r0092" 16r2019 " RIGHT SINGLE QUOTATION MARK " + "16r0093" 16r201C " LEFT DOUBLE QUOTATION MARK " + "16r0094" 16r201D " RIGHT DOUBLE QUOTATION MARK " + "16r0095" 16r2022 " BULLET " + "16r0096" 16r2013 " EN DASH " + "16r0097" 16r2014 " EM DASH " + "16r0098" 16r061B " ARABIC SEMICOLON " + "16r0099" 16r2122 " TRADE MARK SIGN " + "16r009A" 16r061F " ARABIC QUESTION MARK " + "16r009B" 16r203A " SINGLE RIGHT-POINTING ANGLE QUOTATION MARK " + "16r009C" 16r0621 " ARABIC LETTER HAMZA " + "16r009D" 16r0622 " ARABIC LETTER ALEF WITH MADDA ABOVE " + "16r009E" 16r0623 " ARABIC LETTER ALEF WITH HAMZA ABOVE " + "16r009F" 16r0178 " LATIN CAPITAL LETTER Y WITH DIAERESIS " + "16r00A0" 16r00A0 " NO-BREAK SPACE " + "16r00A1" 16r0624 " ARABIC LETTER WAW WITH HAMZA ABOVE " + "16r00A2" 16r0625 " ARABIC LETTER ALEF WITH HAMZA BELOW " + "16r00A3" 16r00A3 " POUND SIGN " + "16r00A4" 16r00A4 " CURRENCY SIGN " + "16r00A5" 16r0626 " ARABIC LETTER YEH WITH HAMZA ABOVE " + "16r00A6" 16r00A6 " BROKEN BAR " + "16r00A7" 16r00A7 " SECTION SIGN " + "16r00A8" 16r0627 " ARABIC LETTER ALEF " + "16r00A9" 16r00A9 " COPYRIGHT SIGN " + "16r00AA" 16r0628 " ARABIC LETTER BEH " + "16r00AB" 16r00AB " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK " + "16r00AC" 16r00AC " NOT SIGN " + "16r00AD" 16r00AD " SOFT HYPHEN " + "16r00AE" 16r00AE " REGISTERED SIGN " + "16r00AF" 16r067E " ARABIC LETTER PEH " + "16r00B0" 16r00B0 " DEGREE SIGN " + "16r00B1" 16r00B1 " PLUS-MINUS SIGN " + "16r00B2" 16r0629 " ARABIC LETTER TEH MARBUTA " + "16r00B3" 16r062A " ARABIC LETTER TEH " + "16r00B4" 16r062B " ARABIC LETTER THEH " + "16r00B5" 16r00B5 " MICRO SIGN " + "16r00B6" 16r00B6 " PILCROW SIGN " + "16r00B7" 16r00B7 " MIDDLE DOT " + "16r00B8" 16r062C " ARABIC LETTER JEEM " + "16r00B9" 16r0686 " ARABIC LETTER TCHEH " + "16r00BA" 16r062D " ARABIC LETTER HAH " + "16r00BB" 16r00BB " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK " + "16r00BC" 16r062E " ARABIC LETTER KHAH " + "16r00BD" 16r062F " ARABIC LETTER DAL " + "16r00BE" 16r0630 " ARABIC LETTER THAL " + "16r00BF" 16r0631 " ARABIC LETTER REH " + "16r00C0" 16r00C0 " LATIN CAPITAL LETTER A WITH GRAVE " + "16r00C1" 16r0632 " ARABIC LETTER ZAIN " + "16r00C2" 16r00C2 " LATIN CAPITAL LETTER A WITH CIRCUMFLEX " + "16r00C3" 16r0698 " ARABIC LETTER JEH " + "16r00C4" 16r0633 " ARABIC LETTER SEEN " + "16r00C5" 16r0634 " ARABIC LETTER SHEEN " + "16r00C6" 16r0635 " ARABIC LETTER SAD " + "16r00C7" 16r00C7 " LATIN CAPITAL LETTER C WITH CEDILLA " + "16r00C8" 16r00C8 " LATIN CAPITAL LETTER E WITH GRAVE " + "16r00C9" 16r00C9 " LATIN CAPITAL LETTER E WITH ACUTE " + "16r00CA" 16r00CA " LATIN CAPITAL LETTER E WITH CIRCUMFLEX " + "16r00CB" 16r00CB " LATIN CAPITAL LETTER E WITH DIAERESIS " + "16r00CC" 16r0636 " ARABIC LETTER DAD " + "16r00CD" 16r0637 " ARABIC LETTER TAH " + "16r00CE" 16r00CE " LATIN CAPITAL LETTER I WITH CIRCUMFLEX " + "16r00CF" 16r00CF " LATIN CAPITAL LETTER I WITH DIAERESIS " + "16r00D0" 16r3113 " BOPOMOFO LETTER ZH " + "16r00D1" 16r0639 " ARABIC LETTER AIN " + "16r00D2" 16r063A " ARABIC LETTER GHAIN " + "16r00D3" 16r0640 " ARABIC TATWEEL " + "16r00D4" 16r00D4 " LATIN CAPITAL LETTER O WITH CIRCUMFLEX " + "16r00D5" 16r0641 " ARABIC LETTER FEH " + "16r00D6" 16r0642 " ARABIC LETTER QAF " + "16r00D7" 16r00D7 " MULTIPLICATION SIGN " + "16r00D8" 16r0643 " ARABIC LETTER KAF " + "16r00D9" 16r00D9 " LATIN CAPITAL LETTER U WITH GRAVE " + "16r00DA" 16r06AF " ARABIC LETTER GAF " + "16r00DB" 16r00DB " LATIN CAPITAL LETTER U WITH CIRCUMFLEX " + "16r00DC" 16r00DC " LATIN CAPITAL LETTER U WITH DIAERESIS " + "16r00DD" 16r0644 " ARABIC LETTER LAM " + "16r00DE" 16r0645 " ARABIC LETTER MEEM " + "16r00DF" 16r0646 " ARABIC LETTER NOON " + "16r00E0" 16r00E0 " LATIN SMALL LETTER A WITH GRAVE " + "16r00E1" 16r0647 " ARABIC LETTER HEH " + "16r00E2" 16r00E2 " LATIN SMALL LETTER A WITH CIRCUMFLEX " + "16r00E3" 16r0681 " ARABIC LETTER HAH WITH HAMZA ABOVE " + "16r00E4" 16r0648 " ARABIC LETTER WAW " + "16r00E5" 16r0649 " ARABIC LETTER ALEF MAKSURA " + "16r00E6" 16r064A " ARABIC LETTER YEH " + "16r00E7" 16r00E7 " LATIN SMALL LETTER C WITH CEDILLA " + "16r00E8" 16r00E8 " LATIN SMALL LETTER E WITH GRAVE " + "16r00E9" 16r00E9 " LATIN SMALL LETTER E WITH ACUTE " + "16r00EA" 16r00EA " LATIN SMALL LETTER E WITH CIRCUMFLEX " + "16r00EB" 16r00EB " LATIN SMALL LETTER E WITH DIAERESIS " + "16r00EC" 16r064B " ARABIC FATHATAN " + "16r00ED" 16r064C " ARABIC DAMMATAN " + "16r00EE" 16r00EE " LATIN SMALL LETTER I WITH CIRCUMFLEX " + "16r00EF" 16r00EF " LATIN SMALL LETTER I WITH DIAERESIS " + "16r00F0" 16r064D " ARABIC KASRATAN " + "16r00F1" 16r064E " ARABIC FATHA " + "16r00F2" 16r064F " ARABIC DAMMA " + "16r00F3" 16r0650 " ARABIC KASRA " + "16r00F4" 16r00F4 " LATIN SMALL LETTER O WITH CIRCUMFLEX " + "16r00F5" 16r0651 " ARABIC SHADDA " + "16r00F6" 16r0652 " ARABIC SUKUN " + "16r00F7" 16r00F7 " DIVISION SIGN " + "16r00F8" 16r0000 " invalid " + "16r00F9" 16r00F9 " LATIN SMALL LETTER U WITH GRAVE " + "16r00FA" 16r0000 " invalid " + "16r00FB" 16r00FB " LATIN SMALL LETTER U WITH CIRCUMFLEX " + "16r00FC" 16r00FC " LATIN SMALL LETTER U WITH DIAERESIS " + "16r00FD" 16r200E " LEFT-TO-RIGHT MARK " + "16r00FE" 16r200F " RIGHT-TO-LEFT MARK " + "16r00FF" 16r00FF " LATIN SMALL LETTER Y WITH DIAERESIS " + ) at:(code - 16r7F). + t == 0 ifFalse:[^ t]. + ^ self decodingError. + ] value. +! + +encode:unicodeArg + "Automagically generated by generateCode - do not modify. + Encode from unicode into my encoding." + + |unicode "{ Class: SmallInteger }"| + + unicode := unicodeArg. + unicode <= 16r7F ifTrue:[ ^ unicode ]. + unicode > 16r3113 ifTrue:[ + ^ self encodingError. + ]. + unicode <= 16r9F ifTrue:[ + ^ self encodingError. + ]. + unicode <= 16r6AF ifTrue:[ + unicode <= 16r178 ifTrue:[ + unicode <= 16rFF ifTrue:[ + (#[ + "16r00A0" 1 " NO-BREAK SPACE " + "16r00A1" 0 " invalid " + "16r00A2" 0 " invalid " + "16r00A3" 1 " POUND SIGN " + "16r00A4" 1 " CURRENCY SIGN " + "16r00A5" 0 " invalid " + "16r00A6" 1 " BROKEN BAR " + "16r00A7" 1 " SECTION SIGN " + "16r00A8" 0 " invalid " + "16r00A9" 1 " COPYRIGHT SIGN " + "16r00AA" 0 " invalid " + "16r00AB" 1 " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK " + "16r00AC" 1 " NOT SIGN " + "16r00AD" 1 " SOFT HYPHEN " + "16r00AE" 1 " REGISTERED SIGN " + "16r00AF" 0 " invalid " + "16r00B0" 1 " DEGREE SIGN " + "16r00B1" 1 " PLUS-MINUS SIGN " + "16r00B2" 0 " invalid " + "16r00B3" 0 " invalid " + "16r00B4" 0 " invalid " + "16r00B5" 1 " MICRO SIGN " + "16r00B6" 1 " PILCROW SIGN " + "16r00B7" 1 " MIDDLE DOT " + "16r00B8" 0 " invalid " + "16r00B9" 0 " invalid " + "16r00BA" 0 " invalid " + "16r00BB" 1 " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK " + "16r00BC" 0 " invalid " + "16r00BD" 0 " invalid " + "16r00BE" 0 " invalid " + "16r00BF" 0 " invalid " + "16r00C0" 1 " LATIN CAPITAL LETTER A WITH GRAVE " + "16r00C1" 0 " invalid " + "16r00C2" 1 " LATIN CAPITAL LETTER A WITH CIRCUMFLEX " + "16r00C3" 0 " invalid " + "16r00C4" 0 " invalid " + "16r00C5" 0 " invalid " + "16r00C6" 0 " invalid " + "16r00C7" 1 " LATIN CAPITAL LETTER C WITH CEDILLA " + "16r00C8" 1 " LATIN CAPITAL LETTER E WITH GRAVE " + "16r00C9" 1 " LATIN CAPITAL LETTER E WITH ACUTE " + "16r00CA" 1 " LATIN CAPITAL LETTER E WITH CIRCUMFLEX " + "16r00CB" 1 " LATIN CAPITAL LETTER E WITH DIAERESIS " + "16r00CC" 0 " invalid " + "16r00CD" 0 " invalid " + "16r00CE" 1 " LATIN CAPITAL LETTER I WITH CIRCUMFLEX " + "16r00CF" 1 " LATIN CAPITAL LETTER I WITH DIAERESIS " + "16r00D0" 0 " invalid " + "16r00D1" 0 " invalid " + "16r00D2" 0 " invalid " + "16r00D3" 0 " invalid " + "16r00D4" 1 " LATIN CAPITAL LETTER O WITH CIRCUMFLEX " + "16r00D5" 0 " invalid " + "16r00D6" 0 " invalid " + "16r00D7" 1 " MULTIPLICATION SIGN " + "16r00D8" 0 " invalid " + "16r00D9" 1 " LATIN CAPITAL LETTER U WITH GRAVE " + "16r00DA" 0 " invalid " + "16r00DB" 1 " LATIN CAPITAL LETTER U WITH CIRCUMFLEX " + "16r00DC" 1 " LATIN CAPITAL LETTER U WITH DIAERESIS " + "16r00DD" 0 " invalid " + "16r00DE" 0 " invalid " + "16r00DF" 0 " invalid " + "16r00E0" 1 " LATIN SMALL LETTER A WITH GRAVE " + "16r00E1" 0 " invalid " + "16r00E2" 1 " LATIN SMALL LETTER A WITH CIRCUMFLEX " + "16r00E3" 0 " invalid " + "16r00E4" 0 " invalid " + "16r00E5" 0 " invalid " + "16r00E6" 0 " invalid " + "16r00E7" 1 " LATIN SMALL LETTER C WITH CEDILLA " + "16r00E8" 1 " LATIN SMALL LETTER E WITH GRAVE " + "16r00E9" 1 " LATIN SMALL LETTER E WITH ACUTE " + "16r00EA" 1 " LATIN SMALL LETTER E WITH CIRCUMFLEX " + "16r00EB" 1 " LATIN SMALL LETTER E WITH DIAERESIS " + "16r00EC" 0 " invalid " + "16r00ED" 0 " invalid " + "16r00EE" 1 " LATIN SMALL LETTER I WITH CIRCUMFLEX " + "16r00EF" 1 " LATIN SMALL LETTER I WITH DIAERESIS " + "16r00F0" 0 " invalid " + "16r00F1" 0 " invalid " + "16r00F2" 0 " invalid " + "16r00F3" 0 " invalid " + "16r00F4" 1 " LATIN SMALL LETTER O WITH CIRCUMFLEX " + "16r00F5" 0 " invalid " + "16r00F6" 0 " invalid " + "16r00F7" 1 " DIVISION SIGN " + "16r00F8" 0 " invalid " + "16r00F9" 1 " LATIN SMALL LETTER U WITH GRAVE " + "16r00FA" 0 " invalid " + "16r00FB" 1 " LATIN SMALL LETTER U WITH CIRCUMFLEX " + "16r00FC" 1 " LATIN SMALL LETTER U WITH DIAERESIS " + "16r00FD" 0 " invalid " + "16r00FE" 0 " invalid " + "16r00FF" 1 " LATIN SMALL LETTER Y WITH DIAERESIS " + ] at:(unicode - 159)) ~~ 0 ifTrue:[^ unicode]. + ^ self encodingError. + ]. + unicode <= 16r177 ifTrue:[ + ^ self encodingError. + ]. + ^ "16r0178" 16r009F " LATIN CAPITAL LETTER Y WITH DIAERESIS " + ]. + unicode <= 16r60B ifTrue:[ + ^ self encodingError. + ]. + [ + |t| + t := #[ + "16r060C" 16r80 " ARABIC COMMA " + "16r060D" 16r00 " invalid " + "16r060E" 16r00 " invalid " + "16r060F" 16r00 " invalid " + "16r0610" 16r00 " invalid " + "16r0611" 16r00 " invalid " + "16r0612" 16r00 " invalid " + "16r0613" 16r00 " invalid " + "16r0614" 16r00 " invalid " + "16r0615" 16r00 " invalid " + "16r0616" 16r00 " invalid " + "16r0617" 16r00 " invalid " + "16r0618" 16r00 " invalid " + "16r0619" 16r00 " invalid " + "16r061A" 16r00 " invalid " + "16r061B" 16r98 " ARABIC SEMICOLON " + "16r061C" 16r00 " invalid " + "16r061D" 16r00 " invalid " + "16r061E" 16r00 " invalid " + "16r061F" 16r9A " ARABIC QUESTION MARK " + "16r0620" 16r00 " invalid " + "16r0621" 16r9C " ARABIC LETTER HAMZA " + "16r0622" 16r9D " ARABIC LETTER ALEF WITH MADDA ABOVE " + "16r0623" 16r9E " ARABIC LETTER ALEF WITH HAMZA ABOVE " + "16r0624" 16rA1 " ARABIC LETTER WAW WITH HAMZA ABOVE " + "16r0625" 16rA2 " ARABIC LETTER ALEF WITH HAMZA BELOW " + "16r0626" 16rA5 " ARABIC LETTER YEH WITH HAMZA ABOVE " + "16r0627" 16rA8 " ARABIC LETTER ALEF " + "16r0628" 16rAA " ARABIC LETTER BEH " + "16r0629" 16rB2 " ARABIC LETTER TEH MARBUTA " + "16r062A" 16rB3 " ARABIC LETTER TEH " + "16r062B" 16rB4 " ARABIC LETTER THEH " + "16r062C" 16rB8 " ARABIC LETTER JEEM " + "16r062D" 16rBA " ARABIC LETTER HAH " + "16r062E" 16rBC " ARABIC LETTER KHAH " + "16r062F" 16rBD " ARABIC LETTER DAL " + "16r0630" 16rBE " ARABIC LETTER THAL " + "16r0631" 16rBF " ARABIC LETTER REH " + "16r0632" 16rC1 " ARABIC LETTER ZAIN " + "16r0633" 16rC4 " ARABIC LETTER SEEN " + "16r0634" 16rC5 " ARABIC LETTER SHEEN " + "16r0635" 16rC6 " ARABIC LETTER SAD " + "16r0636" 16rCC " ARABIC LETTER DAD " + "16r0637" 16rCD " ARABIC LETTER TAH " + "16r0638" 16r00 " invalid " + "16r0639" 16rD1 " ARABIC LETTER AIN " + "16r063A" 16rD2 " ARABIC LETTER GHAIN " + "16r063B" 16r00 " invalid " + "16r063C" 16r00 " invalid " + "16r063D" 16r00 " invalid " + "16r063E" 16r00 " invalid " + "16r063F" 16r00 " invalid " + "16r0640" 16rD3 " ARABIC TATWEEL " + "16r0641" 16rD5 " ARABIC LETTER FEH " + "16r0642" 16rD6 " ARABIC LETTER QAF " + "16r0643" 16rD8 " ARABIC LETTER KAF " + "16r0644" 16rDD " ARABIC LETTER LAM " + "16r0645" 16rDE " ARABIC LETTER MEEM " + "16r0646" 16rDF " ARABIC LETTER NOON " + "16r0647" 16rE1 " ARABIC LETTER HEH " + "16r0648" 16rE4 " ARABIC LETTER WAW " + "16r0649" 16rE5 " ARABIC LETTER ALEF MAKSURA " + "16r064A" 16rE6 " ARABIC LETTER YEH " + "16r064B" 16rEC " ARABIC FATHATAN " + "16r064C" 16rED " ARABIC DAMMATAN " + "16r064D" 16rF0 " ARABIC KASRATAN " + "16r064E" 16rF1 " ARABIC FATHA " + "16r064F" 16rF2 " ARABIC DAMMA " + "16r0650" 16rF3 " ARABIC KASRA " + "16r0651" 16rF5 " ARABIC SHADDA " + "16r0652" 16rF6 " ARABIC SUKUN " + "16r0653" 16r00 " invalid " + "16r0654" 16r00 " invalid " + "16r0655" 16r00 " invalid " + "16r0656" 16r00 " invalid " + "16r0657" 16r00 " invalid " + "16r0658" 16r00 " invalid " + "16r0659" 16r00 " invalid " + "16r065A" 16r00 " invalid " + "16r065B" 16r00 " invalid " + "16r065C" 16r00 " invalid " + "16r065D" 16r00 " invalid " + "16r065E" 16r00 " invalid " + "16r065F" 16r00 " invalid " + "16r0660" 16r81 " ARABIC-INDIC DIGIT ZERO " + "16r0661" 16r83 " ARABIC-INDIC DIGIT ONE " + "16r0662" 16r88 " ARABIC-INDIC DIGIT TWO " + "16r0663" 16r89 " ARABIC-INDIC DIGIT THREE " + "16r0664" 16r8A " ARABIC-INDIC DIGIT FOUR " + "16r0665" 16r8C " ARABIC-INDIC DIGIT FIVE " + "16r0666" 16r8D " ARABIC-INDIC DIGIT SIX " + "16r0667" 16r8E " ARABIC-INDIC DIGIT SEVEN " + "16r0668" 16r8F " ARABIC-INDIC DIGIT EIGHT " + "16r0669" 16r90 " ARABIC-INDIC DIGIT NINE " + "16r066A" 16r00 " invalid " + "16r066B" 16r00 " invalid " + "16r066C" 16r00 " invalid " + "16r066D" 16r00 " invalid " + "16r066E" 16r00 " invalid " + "16r066F" 16r00 " invalid " + "16r0670" 16r00 " invalid " + "16r0671" 16r00 " invalid " + "16r0672" 16r00 " invalid " + "16r0673" 16r00 " invalid " + "16r0674" 16r00 " invalid " + "16r0675" 16r00 " invalid " + "16r0676" 16r00 " invalid " + "16r0677" 16r00 " invalid " + "16r0678" 16r00 " invalid " + "16r0679" 16r00 " invalid " + "16r067A" 16r00 " invalid " + "16r067B" 16r00 " invalid " + "16r067C" 16r00 " invalid " + "16r067D" 16r00 " invalid " + "16r067E" 16rAF " ARABIC LETTER PEH " + "16r067F" 16r00 " invalid " + "16r0680" 16r00 " invalid " + "16r0681" 16rE3 " ARABIC LETTER HAH WITH HAMZA ABOVE " + "16r0682" 16r00 " invalid " + "16r0683" 16r00 " invalid " + "16r0684" 16r00 " invalid " + "16r0685" 16r00 " invalid " + "16r0686" 16rB9 " ARABIC LETTER TCHEH " + "16r0687" 16r00 " invalid " + "16r0688" 16r00 " invalid " + "16r0689" 16r00 " invalid " + "16r068A" 16r00 " invalid " + "16r068B" 16r00 " invalid " + "16r068C" 16r00 " invalid " + "16r068D" 16r00 " invalid " + "16r068E" 16r00 " invalid " + "16r068F" 16r00 " invalid " + "16r0690" 16r00 " invalid " + "16r0691" 16r00 " invalid " + "16r0692" 16r00 " invalid " + "16r0693" 16r00 " invalid " + "16r0694" 16r00 " invalid " + "16r0695" 16r00 " invalid " + "16r0696" 16r00 " invalid " + "16r0697" 16r00 " invalid " + "16r0698" 16rC3 " ARABIC LETTER JEH " + "16r0699" 16r00 " invalid " + "16r069A" 16r00 " invalid " + "16r069B" 16r00 " invalid " + "16r069C" 16r00 " invalid " + "16r069D" 16r00 " invalid " + "16r069E" 16r00 " invalid " + "16r069F" 16r00 " invalid " + "16r06A0" 16r00 " invalid " + "16r06A1" 16r00 " invalid " + "16r06A2" 16r00 " invalid " + "16r06A3" 16r00 " invalid " + "16r06A4" 16r00 " invalid " + "16r06A5" 16r00 " invalid " + "16r06A6" 16r00 " invalid " + "16r06A7" 16r00 " invalid " + "16r06A8" 16r00 " invalid " + "16r06A9" 16r00 " invalid " + "16r06AA" 16r00 " invalid " + "16r06AB" 16r00 " invalid " + "16r06AC" 16r00 " invalid " + "16r06AD" 16r00 " invalid " + "16r06AE" 16r00 " invalid " + "16r06AF" 16rDA " ARABIC LETTER GAF " + ] at:(unicode - 16r60B). + t == 0 ifFalse:[^ t]. + ^ self encodingError + ] value. + ]. + unicode <= 16r200D ifTrue:[ + ^ self encodingError. + ]. + unicode <= 16r2122 ifTrue:[ + unicode <= 16r203A ifTrue:[ + unicode <= 16r2026 ifTrue:[ + [ + |t| + t := #[ + "16r200E" 16rFD " LEFT-TO-RIGHT MARK " + "16r200F" 16rFE " RIGHT-TO-LEFT MARK " + "16r2010" 16r00 " invalid " + "16r2011" 16r00 " invalid " + "16r2012" 16r00 " invalid " + "16r2013" 16r96 " EN DASH " + "16r2014" 16r97 " EM DASH " + "16r2015" 16r00 " invalid " + "16r2016" 16r00 " invalid " + "16r2017" 16r00 " invalid " + "16r2018" 16r91 " LEFT SINGLE QUOTATION MARK " + "16r2019" 16r92 " RIGHT SINGLE QUOTATION MARK " + "16r201A" 16r82 " SINGLE LOW-9 QUOTATION MARK " + "16r201B" 16r00 " invalid " + "16r201C" 16r93 " LEFT DOUBLE QUOTATION MARK " + "16r201D" 16r94 " RIGHT DOUBLE QUOTATION MARK " + "16r201E" 16r84 " DOUBLE LOW-9 QUOTATION MARK " + "16r201F" 16r00 " invalid " + "16r2020" 16r86 " DAGGER " + "16r2021" 16r87 " DOUBLE DAGGER " + "16r2022" 16r95 " BULLET " + "16r2023" 16r00 " invalid " + "16r2024" 16r00 " invalid " + "16r2025" 16r00 " invalid " + "16r2026" 16r85 " HORIZONTAL ELLIPSIS " + ] at:(unicode - 16r200D). + t == 0 ifFalse:[^ t]. + ^ self encodingError + ] value. + ]. + unicode <= 16r2038 ifTrue:[ + ^ self encodingError. + ]. + ^ #[ + "16r2039" 16r8B " SINGLE LEFT-POINTING ANGLE QUOTATION MARK " + "16r203A" 16r9B " SINGLE RIGHT-POINTING ANGLE QUOTATION MARK " + ] at:(unicode - 16r2038). + ]. + unicode <= 16r2121 ifTrue:[ + ^ self encodingError. + ]. + ^ "16r2122" 16r0099 " TRADE MARK SIGN " + ]. + unicode <= 16r3112 ifTrue:[ + ^ self encodingError. + ]. + ^ "16r3113" 16r00D0 " BOPOMOFO LETTER ZH " +! ! + !CharacterEncoder::MS_Cyrillic class methodsFor:'mapping'! mapFileURL2_relativePathName @@ -51288,7 +52198,7 @@ !CharacterEncoder class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoder.st,v 1.17 2004-02-12 11:04:19 cg Exp $' + ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoder.st,v 1.18 2004-02-12 18:37:17 cg Exp $' ! ! CharacterEncoder initialize!