--- 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!