diff -r 69ed349024cb -r a045c719fca2 CharacterEncoder.st --- a/CharacterEncoder.st Wed Feb 11 16:19:44 2004 +0100 +++ b/CharacterEncoder.st Wed Feb 11 16:22:02 2004 +0100 @@ -215,7 +215,7 @@ privateIn:CharacterEncoder ! -CharacterEncoder::SingleByteEncoder subclass:#KOI8_U +CharacterEncoder::KOI8_R subclass:#KOI8_U instanceVariableNames:'' classVariableNames:'' poolDictionaries:'' @@ -503,27 +503,33 @@ Thats all !! - CharacterEncoder::SingleByteEncoder allSubclassesDo:[:cls | cls flushCode; generateCode ] - - CharacterEncoder::ASCII flushCode; generateCode. - CharacterEncoder::ISO8859_1 flushCode; generateCode. - CharacterEncoder::ISO8859_2 flushCode; generateCode. - CharacterEncoder::ISO8859_3 flushCode; generateCode. - CharacterEncoder::ISO8859_4 flushCode; generateCode. - CharacterEncoder::ISO8859_5 flushCode; generateCode. - CharacterEncoder::ISO8859_6 flushCode; generateCode. - CharacterEncoder::ISO8859_7 flushCode; generateCode. - CharacterEncoder::ISO8859_8 flushCode; generateCode. - CharacterEncoder::ISO8859_9 flushCode; generateCode. - CharacterEncoder::ISO8859_10 flushCode; generateCode. - CharacterEncoder::ISO8859_11 flushCode; generateCode. - CharacterEncoder::ISO8859_13 flushCode; generateCode. - CharacterEncoder::ISO8859_14 flushCode; generateCode. - CharacterEncoder::ISO8859_15 flushCode; generateCode. - CharacterEncoder::ISO8859_16 flushCode; generateCode. - CharacterEncoder::KOI8_R flushCode; generateCode. - CharacterEncoder::KOI8_U flushCode; generateCode. - CharacterEncoder::GSM0338 flushCode; generateCode. + + The existing code was generated by: + + CharacterEncoder::SingleByteEncoder subclassesDo:[:cls | Transcript showCR:cls name. cls flushCode; generateCode ] + CharacterEncoder::SingleByteEncoder subclassesDo:[:cls | cls allSubclassesDo:[:sub | Transcript showCR:sub name. sub flushCode; generateSubclassCode]] + + or individually: + CharacterEncoder::ASCII flushCode; generateCode. + CharacterEncoder::ISO8859_1 flushCode; generateCode. + CharacterEncoder::ISO8859_2 flushCode; generateCode. + CharacterEncoder::ISO8859_3 flushCode; generateCode. + CharacterEncoder::ISO8859_4 flushCode; generateCode. + CharacterEncoder::ISO8859_5 flushCode; generateCode. + CharacterEncoder::ISO8859_6 flushCode; generateCode. + CharacterEncoder::ISO8859_7 flushCode; generateCode. + CharacterEncoder::ISO8859_8 flushCode; generateCode. + CharacterEncoder::ISO8859_9 flushCode; generateCode. + CharacterEncoder::ISO8859_10 flushCode; generateCode. + CharacterEncoder::ISO8859_11 flushCode; generateCode. + CharacterEncoder::ISO8859_13 flushCode; generateCode. + CharacterEncoder::ISO8859_14 flushCode; generateCode. + CharacterEncoder::ISO8859_15 flushCode; generateCode. + CharacterEncoder::ISO8859_16 flushCode; generateCode. + CharacterEncoder::KOI8_R flushCode; generateCode. + CharacterEncoder::GSM0338 flushCode; generateCode. + + CharacterEncoder::KOI8_U flushCode; generateSubclassCode. " ! ! @@ -693,601 +699,11 @@ !CharacterEncoder class methodsFor:'private-mapping setup'! generateCode - |tables codeTable nameTable - minCode maxCode minUnicode maxUnicode - firstDiff lastDiff - firstUnicodeDiff lastUnicodeDiff - source unicodeTable unicodeNameTable m limit| - - tables := self mappingTables. - tables isNil ifTrue:[ - self halt. - ^ self. - ]. - - codeTable := tables at:1. - nameTable := tables at:2. - unicodeTable := IdentityDictionary new. - unicodeNameTable := IdentityDictionary new. - - minCode := 16rFFFFFFF. - maxCode := -1. - minUnicode := 16rFFFFFFF. - maxUnicode := -1. - - codeTable keysAndValuesDo:[:code :uniCode | - minCode := minCode min:code. - maxCode := maxCode max:code. - minUnicode := minUnicode min:uniCode. - maxUnicode := maxUnicode max:uniCode. - - unicodeTable at:uniCode put:code. - unicodeNameTable at:uniCode put:(nameTable at:code). - ]. - - "/ first difference... - firstDiff := (minCode to:maxCode) detect:[:code | (codeTable at:code ifAbsent:nil) ~~ code] ifNone:nil. - lastDiff := (maxCode to:minCode by:-1) detect:[:code | (codeTable at:code ifAbsent:nil) ~~ code] ifNone:nil. - - firstUnicodeDiff := (minUnicode to:maxUnicode) detect:[:unicode | (unicodeTable at:unicode ifAbsent:nil) ~~ unicode] ifNone:nil. - lastUnicodeDiff := (maxUnicode to:minUnicode by:-1) detect:[:unicode | (unicodeTable at:unicode ifAbsent:nil) ~~ unicode] ifNone:nil. - - "/ do not overwrite handwritten methods... - m := self compiledMethodAt:#'decode:'. - (m notNil and:[((m comment ? '') includesString:'Automagically generated') not]) ifTrue:[ - self warn:'Will not overwrite handwritten code.' - ] ifFalse:[ - "/ generate the decoder... - - source := WriteStream on:(String new:200). - source nextPutLine:'decode:codeArg'. - source nextPutLine:' "Automagically generated by generateCode - do not modify.'. - source nextPutLine:' Decode from my encoding into unicode."'. - source nextPutLine:''. - source nextPutLine:' |code "{ Class: SmallInteger }"|'. - source nextPutLine:''. - source nextPutLine:' code := codeArg.'. - firstDiff isNil ifTrue:[ - minCode ~~ 0 ifTrue:[ - source nextPutLine:' code <= ' , ((minCode-1) radixPrintStringRadix:16) , ' ifTrue:['. - source nextPutLine:' ^ self decodingError.'. - source nextPutLine:' ].'. - ]. - true "maxCode ~~ 255" ifTrue:[ - source nextPutLine:' code > ' , (maxCode radixPrintStringRadix:16) , ' ifTrue:['. - source nextPutLine:' ^ self decodingError.'. - source nextPutLine:' ].'. - ]. - source nextPutLine:' ^ code.'. - ] ifFalse:[ - source nextPutLine:' code <= ' , ((firstDiff-1) radixPrintStringRadix:16) , ' ifTrue:[ ^ code ].'. - true "maxCode ~~ 255" ifTrue:[ - source nextPutLine:' code > ' , (maxCode radixPrintStringRadix:16) , ' ifTrue:['. - source nextPutLine:' ^ self decodingError.'. - source nextPutLine:' ].'. - ]. - lastDiff > maxCode ifTrue:[ - source nextPutLine:' code > ' , (lastDiff radixPrintStringRadix:16) , ' ifTrue:[ ^ code ].'. - limit := lastDiff - ] ifFalse:[ - limit := maxCode. - ]. - - self - generateLookupFor:codeTable nameTable:nameTable from:firstDiff to:limit varName:'code' - errorCode:'^ self decodingError.' - indent:4 onto:source. - ]. - - self - compile:source contents - classified:'encoding & decoding' - logged:false. - ]. - - m := self compiledMethodAt:#'encode:'. - (m notNil and:[((m comment ? '') includesString:'Automagically generated') not]) ifTrue:[ - self warn:'Will not overwrite handwritten code.' - ] ifFalse:[ - - "/ generate the encoder... - - source := WriteStream on:(String new:200). - source nextPutLine:'encode:unicodeArg'. - source nextPutLine:' "Automagically generated by generateCode - do not modify.'. - source nextPutLine:' Encode from unicode into my encoding."'. - source nextPutLine:''. - source nextPutLine:' |unicode "{ Class: SmallInteger }"|'. - source nextPutLine:''. - source nextPutLine:' unicode := unicodeArg.'. - firstDiff isNil ifTrue:[ - minUnicode ~~ 0 ifTrue:[ - source nextPutLine:' unicode <= ' , ((minUnicode-1) radixPrintStringRadix:16) , ' ifTrue:['. - source nextPutLine:' ^ self encodingError.'. - source nextPutLine:' ].'. - ]. - true "maxUnicode ~~ 255" ifTrue:[ - source nextPutLine:' unicode > ' , (maxUnicode radixPrintStringRadix:16) , ' ifTrue:['. - source nextPutLine:' ^ self encodingError.'. - source nextPutLine:' ].'. - ]. - source nextPutLine:' ^ unicode.'. - ] ifFalse:[ - source nextPutLine:' unicode <= ' , ((firstUnicodeDiff-1) radixPrintStringRadix:16) , ' ifTrue:[ ^ unicode ].'. - source nextPutLine:' unicode > ' , (maxUnicode radixPrintStringRadix:16) , ' ifTrue:['. - source nextPutLine:' ^ self encodingError.'. - source nextPutLine:' ].'. - lastDiff > maxCode ifTrue:[ - source nextPutLine:' unicode > ' , (lastUnicodeDiff radixPrintStringRadix:16) , ' ifTrue:[ ^ unicode ].'. - ]. - - self - generateLookupFor:unicodeTable nameTable:unicodeNameTable from:firstUnicodeDiff to:lastUnicodeDiff varName:'unicode' - errorCode:'^ self encodingError' - indent:4 onto:source. - ]. - - self - compile:source contents - classified:'encoding & decoding' - logged:false. - ]. - - " - ISO8859_1 flushCode; generateCode - ISO8859_2 flushCode; generateCode - KOI8_U flushCode; generateCode - NEXT flushCode; generateCode - " -! - -generateDirectTableLookupFor:codeTable nameTable:nameTable from:firstIndex to:lastIndex varName:codeVar errorCode:errorCode indent:indentArg onto:stream - "/ generate direct table lookup - - |maxElement useByteArray valPad anyInvalid usedElements invalidMarker indent code unicode unicodeCharacterName| - - indent := indentArg. - - firstIndex == lastIndex ifTrue:[ - code := firstIndex. - unicode := codeTable at:code ifAbsent:nil. - unicodeCharacterName := nameTable at:code ifAbsent:nil. - unicode isNil ifTrue:[ - unicodeCharacterName := 'invalid'. - ]. - unicode isNil ifTrue:[ -self halt. - stream spaces:indent; nextPutLine:errorCode. - ] ifFalse:[ - stream spaces:indent; nextPutAll:'^ '. - stream nextPutAll:' "' , '16r' , ((code printStringRadix:16) leftPaddedTo:4 with:$0). - stream nextPutAll:'" ' , '16r' , ((unicode printStringRadix:16) leftPaddedTo:4 with:$0). - unicodeCharacterName notNil ifTrue:[ - stream nextPutAll:' " ' , unicodeCharacterName , ' " '. - ]. - stream cr. - ]. - ^ self - ]. - - anyInvalid := false. - usedElements := IdentitySet new. - maxElement := -1. - firstIndex to:lastIndex do:[:code | - |unicode| - - unicode := codeTable at:code ifAbsent:nil. - unicode notNil ifTrue:[ - usedElements add:unicode. - maxElement := maxElement max:unicode. - ] ifFalse:[ - anyInvalid := true. - ] - ]. - - useByteArray := maxElement <= 255. - - (usedElements includes:0) ifFalse:[ - invalidMarker := 0. - ] ifTrue:[ - useByteArray ifTrue:[ - (usedElements includes:255) ifFalse:[ - invalidMarker := 255. - ] ifFalse:[ - invalidMarker := (1 to:255) detect:[:n | (usedElements includes:n) not]. - ]. - ] ifFalse:[ - (usedElements includes:16rFFFF) ifFalse:[ - invalidMarker := 16rFFFF. - ] ifTrue:[ - invalidMarker := maxElement + 1. - ] - ]. - ]. - - anyInvalid ifTrue:[ - stream spaces:indent; nextPutLine:'['. - indent := indent + 4. - stream spaces:indent; nextPutLine:'|t|'. - stream spaces:indent; nextPutAll:'t := '. - ] ifFalse:[ - stream spaces:indent; nextPutAll:'^ '. - ]. - useByteArray ifTrue:[ - valPad := 2. - stream nextPutLine:'#['. - ] ifFalse:[ - valPad := 4. - stream nextPutLine:'#('. - ]. - firstIndex to:lastIndex do:[:code | - |unicode unicodeCharacterName| - - unicode := codeTable at:code ifAbsent:nil. - unicodeCharacterName := nameTable at:code ifAbsent:nil. - unicode isNil ifTrue:[ - unicode := invalidMarker. - unicodeCharacterName := 'invalid'. - ]. - stream spaces:indent; nextPutAll:' "' , '16r' , ((code printStringRadix:16) leftPaddedTo:4 with:$0). - stream nextPutAll:'" ' , '16r' , ((unicode printStringRadix:16) leftPaddedTo:valPad with:$0). - unicodeCharacterName notNil ifTrue:[ - stream nextPutAll:' " ' , unicodeCharacterName , ' " '. - ]. - stream cr. - ]. - useByteArray ifTrue:[ - stream spaces:indent; nextPutAll:' ]'. - ] ifFalse:[ - stream spaces:indent; nextPutAll:' )'. - ]. - stream nextPutLine:' at:(',codeVar,' - ' , ((firstIndex-1) radixPrintStringRadix:16) , ').'. - - anyInvalid ifTrue:[ - stream spaces:indent; nextPutLine:'t == ',invalidMarker printString,' ifFalse:[^ t].'. - stream spaces:indent; nextPutLine:errorCode. - indent := indent - 4. - stream spaces:indent; nextPutLine:'] value.'. - ]. -! - -generateLookupFor:codeTable nameTable:nameTable from:firstIndex to:lastIndex varName:codeVar errorCode:errorCode indent:indent onto:stream - |info fillRatio firstValidNonIdentical lastValidNonIdentical| - - info := self mapInfoFor:codeTable from:firstIndex to:lastIndex. - fillRatio := info validRangeSize / info domainSize. - - fillRatio < 1 ifTrue:[ - "/ some mappings are invalid - - info firstInvalid == firstIndex ifTrue:[ - "/ invalid block at beginning... - (firstIndex to:info firstValid) size >= 10 ifTrue:[ - stream spaces:indent; nextPutLine:codeVar,' <= ', ((info firstValid - 1) radixPrintStringRadix:16),' ifTrue:['. - stream spaces:indent+4; nextPutLine:errorCode,'.'. - stream spaces:indent; nextPutLine:'].'. - - self - generateLookupFor:codeTable nameTable:nameTable from:(info firstValid) to:lastIndex varName:codeVar - errorCode:errorCode - indent:indent onto:stream. - ^ self. - ]. - ]. - - info lastInvalid == lastIndex ifTrue:[ - "/ invalid block at the end... -self halt. - ]. - - (info largestInvalidBlock size) / (firstIndex to:lastIndex) size > 0.3 ifTrue:[ - (info largestInvalidBlock size) > 15 ifTrue:[ - "/ big invalid block in the middle... - firstIndex == (info largestInvalidBlock start-1) ifTrue:[ - stream spaces:indent; nextPutLine:codeVar,' == ', (firstIndex radixPrintStringRadix:16),' ifTrue:['. - ] ifFalse:[ - stream spaces:indent; nextPutLine:codeVar,' <= ',((info largestInvalidBlock start - 1) radixPrintStringRadix:16),' ifTrue:['. - ]. - self - generateLookupFor:codeTable nameTable:nameTable from:firstIndex to:(info largestInvalidBlock start-1) varName:codeVar - errorCode:errorCode - indent:indent+4 onto:stream. - stream spaces:indent; nextPutLine:'].'. - "/ invalid block... - stream spaces:indent; nextPutLine:codeVar,' <= ',(info largestInvalidBlock stop radixPrintStringRadix:16),' ifTrue:['. - stream spaces:indent+4; nextPutLine:errorCode,'.'. - stream spaces:indent; nextPutLine:'].'. - self - generateLookupFor:codeTable nameTable:nameTable from:(info largestInvalidBlock stop+1) to:lastIndex varName:codeVar - errorCode:errorCode - indent:indent onto:stream. - ^ self. - ]. - ]. - - info domainSize > 40 ifTrue:[ - "/ is there a part of the mapping which is either identity-mapping or error ? - firstValidNonIdentical := (firstIndex to:lastIndex) detect:[:idx | (codeTable at:idx ifAbsent:idx) ~~ idx] ifNone:nil. - - firstValidNonIdentical isNil ifTrue:[ - "/ wow - all should be done this way - self - generateLookupForIdenticalOrInvalid:codeTable nameTable:nameTable from:firstIndex to:lastIndex varName:codeVar - errorCode:errorCode - indent:indent+4 onto:stream. - ^ self. - ]. - - (firstIndex to:firstValidNonIdentical-1) size > 40 ifTrue:[ - stream spaces:indent; nextPutLine:codeVar,' <= ',((firstValidNonIdentical - 1) radixPrintStringRadix:16),' ifTrue:['. - self - generateLookupForIdenticalOrInvalid:codeTable nameTable:nameTable from:firstIndex to:firstValidNonIdentical-1 varName:codeVar - errorCode:errorCode - indent:indent+4 onto:stream. - stream spaces:indent; nextPutLine:'].'. - self - generateLookupFor:codeTable nameTable:nameTable from:firstValidNonIdentical to:lastIndex varName:codeVar - errorCode:errorCode - indent:indent onto:stream. - ^ self. - ]. - - lastValidNonIdentical := (lastIndex to:firstIndex by:-1) detect:[:idx | (codeTable at:idx ifAbsent:idx) ~~ idx] ifNone:nil. - (lastValidNonIdentical+1 to:lastIndex) size > 40 ifTrue:[ -self halt. - ]. - - info largestInvalidBlock size > 40 ifTrue:[ - stream spaces:indent; nextPutLine:codeVar,' <= ',((info largestInvalidBlock start - 1) radixPrintStringRadix:16),' ifTrue:['. - self - generateLookupFor:codeTable nameTable:nameTable from:firstIndex to:(info largestInvalidBlock start-1) varName:codeVar - errorCode:errorCode - indent:indent+4 onto:stream. - stream spaces:indent; nextPutLine:'].'. - "/ invalid block... - stream spaces:indent; nextPutLine:codeVar,' <= ',(info largestInvalidBlock stop radixPrintStringRadix:16),' ifTrue:['. - stream spaces:indent+4; nextPutLine:errorCode,'.'. - stream spaces:indent; nextPutLine:'].'. - self - generateLookupFor:codeTable nameTable:nameTable from:(info largestInvalidBlock stop+1) to:lastIndex varName:codeVar - errorCode:errorCode - indent:indent onto:stream. - ^ self. - ]. - "/ how would it look if we did it in parts/page-wise ? -"/ fillRatio < 0.5 ifTrue:[ -"/ ]. -"/ self halt. - ] ifFalse:[ - info firstInvalid == (firstIndex+1) ifTrue:[ - info largestInvalidBlock start == info firstInvalid ifTrue:[ - "/ a single valid item followed by an invalid block - info largestInvalidBlock size >= 10 ifTrue:[ - stream spaces:indent; nextPutLine:codeVar,' == ', (firstIndex radixPrintStringRadix:16),' ifTrue:['. - self - generateLookupForIdenticalOrInvalid:codeTable nameTable:nameTable from:firstIndex to:firstIndex varName:codeVar - errorCode:errorCode - indent:indent+4 onto:stream. - stream spaces:indent; nextPutLine:'].'. - self - generateLookupFor:codeTable nameTable:nameTable from:firstIndex+1 to:lastIndex varName:codeVar - errorCode:errorCode - indent:indent onto:stream. - ^ self. - ] - ] - ]. - info lastInvalid == (lastIndex-1) ifTrue:[ - info largestInvalidBlock stop == info lastInvalid ifTrue:[ - info largestInvalidBlock size >= 10 ifTrue:[ -self halt. - ] - ] - ]. -"/ self halt. - ] - ]. - - self - generateDirectTableLookupFor:codeTable nameTable:nameTable from:firstIndex to:lastIndex varName:codeVar - errorCode:errorCode - indent:indent onto:stream -! - -generateLookupForIdenticalOrInvalid:codeTable nameTable:nameTable from:firstIndex to:lastIndex varName:codeVar errorCode:errorCode indent:indent onto:stream. - "/ generate flag lookup for either identity or invalid - - stream spaces:indent; nextPutLine:'(#['. - firstIndex to:lastIndex do:[:code | - |unicode unicodeCharacterName flag| - - unicode := codeTable at:code ifAbsent:nil. - unicodeCharacterName := nameTable at:code ifAbsent:nil. - unicode notNil ifTrue:[ - flag := 1 - ] ifFalse:[ - flag := 0. - unicodeCharacterName := 'invalid'. - ]. - stream spaces:indent; nextPutAll:' "' , '16r' , ((code printStringRadix:16) leftPaddedTo:4 with:$0). - stream nextPutAll:'" ' , flag printString. - unicodeCharacterName notNil ifTrue:[ - stream nextPutAll:' " ' , unicodeCharacterName , ' " '. - ]. - stream cr. - ]. - stream spaces:indent; nextPutLine:'] at:(',codeVar,' - ' , (firstIndex-1) printString , ')) ~~ 0 ifTrue:[^ ',codeVar,'].'.. - stream spaces:indent; nextPutLine:errorCode,'.'. -! - -mapInfoFor:codeTable from:firstIndex to:lastIndex - |minCode maxCode domainSize rangeSize validRangeSize firstDiff lastDiff firstValid lastValid firstInvalid lastInvalid info - largestInvalidBlock invalidBlockStart invalidBlockEnd sizeOfLargestInvalidBlock| - - minCode := 16rFFFFFFF. - maxCode := -1. - validRangeSize := 0. - - sizeOfLargestInvalidBlock := 0. - largestInvalidBlock := nil. - invalidBlockStart := nil. - invalidBlockEnd := nil. - - (firstIndex to:lastIndex) do:[:index | - |code| - - code := codeTable at:index ifAbsent:nil. - code notNil ifTrue:[ - validRangeSize := validRangeSize + 1. - minCode := minCode min:code. - maxCode := maxCode max:code. - - invalidBlockStart notNil ifTrue:[ - (invalidBlockStart to:invalidBlockEnd) size > sizeOfLargestInvalidBlock ifTrue:[ - largestInvalidBlock := (invalidBlockStart to:invalidBlockEnd). - sizeOfLargestInvalidBlock := largestInvalidBlock size. - ]. - ]. - invalidBlockStart := nil. - invalidBlockEnd := nil. - ] ifFalse:[ - invalidBlockStart isNil ifTrue:[ - invalidBlockStart := invalidBlockEnd := index. - ] ifFalse:[ - invalidBlockEnd := index. - ]. - ] - ]. - invalidBlockStart notNil ifTrue:[ -self halt. - (invalidBlockStart to:invalidBlockEnd) size > sizeOfLargestInvalidBlock ifTrue:[ - largestInvalidBlock := (invalidBlockStart to:invalidBlockEnd). - ]. - ]. - - domainSize := (firstIndex to:lastIndex) size. - rangeSize := (minCode to:maxCode) size. - - "/ first difference... - firstDiff := (firstIndex to:lastIndex) detect:[:code | (codeTable at:code ifAbsent:nil) ~~ code] ifNone:nil. - lastDiff := (lastIndex to:firstIndex by:-1) detect:[:code | (codeTable at:code ifAbsent:nil) ~~ code] ifNone:nil. - - firstValid := (firstIndex to:lastIndex) detect:[:code | (codeTable includesKey:code)] ifNone:nil. - lastValid := (lastIndex to:firstIndex by:-1) detect:[:code | (codeTable includesKey:code)] ifNone:nil. - - firstInvalid := (firstIndex to:lastIndex) detect:[:code | (codeTable includesKey:code) not] ifNone:nil. - lastInvalid := (lastIndex to:firstIndex by:-1) detect:[:code | (codeTable includesKey:code) not] ifNone:nil. - - info := Structure newWith:#( domainSize rangeSize validRangeSize firstDiff lastDiff firstValid lastValid firstInvalid lastInvalid largestInvalidBlock ). - info domainSize:domainSize. - info rangeSize:rangeSize. - info validRangeSize:validRangeSize. - info firstDiff:firstDiff. - info lastDiff:lastDiff. - info firstValid:firstValid. - info lastValid:lastValid. - info firstInvalid:firstInvalid. - info lastInvalid:lastInvalid. - info largestInvalidBlock:largestInvalidBlock. - ^ info. -! - -mappingSource - |url m response text source| - - m := (self class compiledMethodAt:#mapping). - m isNil ifTrue:[ - url := self mappingURL2. - url notNil ifTrue:[ - response := HTTPInterface get:url. - ] ifFalse:[ - url := self mappingURL1. - url isNil ifTrue:[ - self error:'neither url1 nor url2 is defined (needed for mappingTables)'. - ]. - response := HTTPInterface get:(self mappingURL1). - ]. - text := response data. - text replaceAll:$" with:$'. - - source := 'mapping\"\# From: ' withCRs, url, '\\' withCRs, text , '\"' withCRs. - - source size > 30000 ifTrue:[ - ^ source - ]. - - "/ compiled codes comment used as a cache. - self class - compile:source - classified:'mapping'. - m := (self class compiledMethodAt:#mapping). - ]. - ^ m source - - " - ISO8859_1 mappingSource - ISO8859_2 mappingSource - ISO8859_3 mappingSource - KOI8_U mappingSource - " -! - -mappingTables - "reads and parses the character maps; - Returns an array with 2 tables: - - the first maps codes to uniCode - - the second maps codes to uniCode character names." - - |src codeTable nameTable| - - "/ the code here reads mappings from unicode.org. - "/ the i18n charactermaps are read in a separate method. - - src := self mappingSource. - src readStream linesDo:[:line | - |l| - - l := line withoutSeparators. - (l startsWith:'') ifTrue:[ - ^ self readI18NCharmapFrom:src. - ]. - - (l startsWith:'0x') ifTrue:[ - |s code uniCode characterComment rest| - - s := l readStream. - s skip:2. - code := Integer readFrom:s radix:16. - s skipSeparators. - (s next:2) = '0x' ifTrue:[ - uniCode := Integer readFrom:s radix:16. - ] ifFalse:[ - s position:(s position - 2). - "an undefined character ?" - uniCode := 16rFFFF. - ]. - s skipSeparators. - s next == $# ifTrue:[ - s skipSeparators. - characterComment := s upToEnd withoutSeparators. - ]. - codeTable isNil ifTrue:[ - codeTable := IdentityDictionary new. - nameTable := IdentityDictionary new. - ]. - codeTable at:code put:uniCode. - nameTable at:code put:characterComment. - ] - ]. - codeTable isNil ifTrue:[^ nil]. - ^ Array with:codeTable with:nameTable - - " - ISO8859_1 mappingTables - ISO8859_2 mappingTables - ISO8859_5 mappingTables - KOI8_R mappingTables - " + (CharacterEncoderCodeGenerator new targetClass:self) generateCode. +! + +generateSubclassCode + (CharacterEncoderCodeGenerator new targetClass:self) generateSubclassCode. ! mappingURL1 @@ -1320,104 +736,6 @@ "raise an error: must be redefined in concrete subclass(es)" ^ nil -! - -readI18NCharmapFrom:src - "q&d hack to read i18n character map files" - "as an example, see http://std.dkuug.dk/i18n/charmaps/KOI8-U" - - |codeTable nameTable commentChar escapeChar| - - src readStream linesDo:[:line | - |l| - - l := line withoutSeparators. - (l startsWith:commentChar) ifTrue:[ - ] ifFalse:[ - (l startsWith:'<') ifTrue:[ - |s w code uniCode characterComment rest| - - s := l readStream. - w := WriteStream on:(String new:10). - s next. - - [ - |ch| - [ - - ch := s nextOrNil. - ch == escapeChar ifTrue:[ - s nextOrNil. - true - ] ifFalse:[ - ch notNil and:[ch ~~ $>] - ] - ] whileTrue:[ w nextPut:ch ]. - ] doUntil:[(s atEnd or:[s peek ~~ $>])]. - w := w contents. - s skipSeparators. - rest := s upToEnd. - w = 'code_set_name' ifTrue:[ - ] ifFalse:[ - w = 'comment_char' ifTrue:[ - commentChar := rest first. - ] ifFalse:[ - w = 'escape_char' ifTrue:[ - escapeChar := rest first. - ] ifFalse:[ - s := rest readStream. - s peek == escapeChar ifTrue:[ - s next. - s peek == $x ifTrue:[ - s next. - code := Integer readFrom:s radix:16. - s skipSeparators. - s peek == $< ifTrue:[ - s next. - s peek == $U ifTrue:[ - s next. - uniCode := Integer readFrom:s radix:16. - s peek == $> ifTrue:[ - s next. - s skipSeparators. - characterComment := s upToEnd withoutSeparators. - codeTable isNil ifTrue:[ - codeTable := IdentityDictionary new. - nameTable := IdentityDictionary new. - ]. - codeTable at:code put:uniCode. - nameTable at:code put:characterComment. - - ] ifFalse:[ - self halt. - ]. - ] ifFalse:[ - self halt. - ]. - ] ifFalse:[ - self halt. - ]. - ] ifFalse:[ - self halt. - ]. - ] ifFalse:[ - self halt. - ] - ] - ] - ]. - ]. - ]. - ]. - codeTable isNil ifTrue:[^ nil]. - ^ Array with:codeTable with:nameTable - - " - ISO8859_1 mappingTables - ISO8859_2 mappingTables - ISO8859_5 mappingTables - KOI8_U mappingTables - " ! ! !CharacterEncoder class methodsFor:'queries'! @@ -12695,47 +12013,13 @@ |code "{ Class: SmallInteger }"| code := codeArg. - code <= 16r7F ifTrue:[ ^ code ]. - code > 16rFF ifTrue:[ - ^ self decodingError. + code <= 16rA3 ifTrue:[ + ^ super decode:codeArg. + ]. + code > 16rBD ifTrue:[ + ^ super decode:codeArg. ]. ^ #( - "16r0080" 16r2500 " BOX DRAWINGS LIGHT HORIZONTAL " - "16r0081" 16r2502 " BOX DRAWINGS LIGHT VERTICAL " - "16r0082" 16r250C " BOX DRAWINGS LIGHT DOWN AND RIGHT " - "16r0083" 16r2510 " BOX DRAWINGS LIGHT DOWN AND LEFT " - "16r0084" 16r2514 " BOX DRAWINGS LIGHT UP AND RIGHT " - "16r0085" 16r2518 " BOX DRAWINGS LIGHT UP AND LEFT " - "16r0086" 16r251C " BOX DRAWINGS LIGHT VERTICAL AND RIGHT " - "16r0087" 16r2524 " BOX DRAWINGS LIGHT VERTICAL AND LEFT " - "16r0088" 16r252C " BOX DRAWINGS LIGHT DOWN AND HORIZONTAL " - "16r0089" 16r2534 " BOX DRAWINGS LIGHT UP AND HORIZONTAL " - "16r008A" 16r253C " BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL " - "16r008B" 16r2580 " UPPER HALF BLOCK " - "16r008C" 16r2584 " LOWER HALF BLOCK " - "16r008D" 16r2588 " FULL BLOCK " - "16r008E" 16r258C " LEFT HALF BLOCK " - "16r008F" 16r2590 " RIGHT HALF BLOCK " - "16r0090" 16r2591 " LIGHT SHADE " - "16r0091" 16r2592 " MEDIUM SHADE " - "16r0092" 16r2593 " DARK SHADE " - "16r0093" 16r2320 " TOP HALF INTEGRAL " - "16r0094" 16r25A0 " BLACK SQUARE " - "16r0095" 16r2219 " BULLET OPERATOR " - "16r0096" 16r221A " SQUARE ROOT " - "16r0097" 16r2248 " ALMOST EQUAL TO " - "16r0098" 16r2264 " LESS-THAN OR EQUAL TO " - "16r0099" 16r2265 " GREATER-THAN OR EQUAL TO " - "16r009A" 16r00A0 " NO-BREAK SPACE " - "16r009B" 16r2321 " BOTTOM HALF INTEGRAL " - "16r009C" 16r00B0 " DEGREE SIGN " - "16r009D" 16r00B2 " SUPERSCRIPT TWO " - "16r009E" 16r00B7 " MIDDLE DOT " - "16r009F" 16r00F7 " DIVISION SIGN " - "16r00A0" 16r2550 " BOX DRAWINGS DOUBLE HORIZONTAL " - "16r00A1" 16r2551 " BOX DRAWINGS DOUBLE VERTICAL " - "16r00A2" 16r2552 " BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE " - "16r00A3" 16r0451 " CYRILLIC SMALL LETTER IO " "16r00A4" 16r0454 " CYRILLIC SMALL LETTER UKRAINIAN IE " "16r00A5" 16r2554 " BOX DRAWINGS DOUBLE DOWN AND RIGHT " "16r00A6" 16r0456 " CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I " @@ -12762,73 +12046,7 @@ "16r00BB" 16r2569 " BOX DRAWINGS DOUBLE UP AND HORIZONTAL " "16r00BC" 16r256A " BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE " "16r00BD" 16r0490 " CYRILLIC CAPITAL LETTER GHE WITH UPTURN " - "16r00BE" 16r256C " BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL " - "16r00BF" 16r00A9 " COPYRIGHT SIGN " - "16r00C0" 16r044E " CYRILLIC SMALL LETTER YU " - "16r00C1" 16r0430 " CYRILLIC SMALL LETTER A " - "16r00C2" 16r0431 " CYRILLIC SMALL LETTER BE " - "16r00C3" 16r0446 " CYRILLIC SMALL LETTER TSE " - "16r00C4" 16r0434 " CYRILLIC SMALL LETTER DE " - "16r00C5" 16r0435 " CYRILLIC SMALL LETTER IE " - "16r00C6" 16r0444 " CYRILLIC SMALL LETTER EF " - "16r00C7" 16r0433 " CYRILLIC SMALL LETTER GHE " - "16r00C8" 16r0445 " CYRILLIC SMALL LETTER HA " - "16r00C9" 16r0438 " CYRILLIC SMALL LETTER I " - "16r00CA" 16r0439 " CYRILLIC SMALL LETTER SHORT I " - "16r00CB" 16r043A " CYRILLIC SMALL LETTER KA " - "16r00CC" 16r043B " CYRILLIC SMALL LETTER EL " - "16r00CD" 16r043C " CYRILLIC SMALL LETTER EM " - "16r00CE" 16r043D " CYRILLIC SMALL LETTER EN " - "16r00CF" 16r043E " CYRILLIC SMALL LETTER O " - "16r00D0" 16r043F " CYRILLIC SMALL LETTER PE " - "16r00D1" 16r044F " CYRILLIC SMALL LETTER YA " - "16r00D2" 16r0440 " CYRILLIC SMALL LETTER ER " - "16r00D3" 16r0441 " CYRILLIC SMALL LETTER ES " - "16r00D4" 16r0442 " CYRILLIC SMALL LETTER TE " - "16r00D5" 16r0443 " CYRILLIC SMALL LETTER U " - "16r00D6" 16r0436 " CYRILLIC SMALL LETTER ZHE " - "16r00D7" 16r0432 " CYRILLIC SMALL LETTER VE " - "16r00D8" 16r044C " CYRILLIC SMALL LETTER SOFT SIGN " - "16r00D9" 16r044B " CYRILLIC SMALL LETTER YERU " - "16r00DA" 16r0437 " CYRILLIC SMALL LETTER ZE " - "16r00DB" 16r0448 " CYRILLIC SMALL LETTER SHA " - "16r00DC" 16r044D " CYRILLIC SMALL LETTER E " - "16r00DD" 16r0449 " CYRILLIC SMALL LETTER SHCHA " - "16r00DE" 16r0447 " CYRILLIC SMALL LETTER CHE " - "16r00DF" 16r044A " CYRILLIC SMALL LETTER HARD SIGN " - "16r00E0" 16r042E " CYRILLIC CAPITAL LETTER YU " - "16r00E1" 16r0410 " CYRILLIC CAPITAL LETTER A " - "16r00E2" 16r0411 " CYRILLIC CAPITAL LETTER BE " - "16r00E3" 16r0426 " CYRILLIC CAPITAL LETTER TSE " - "16r00E4" 16r0414 " CYRILLIC CAPITAL LETTER DE " - "16r00E5" 16r0415 " CYRILLIC CAPITAL LETTER IE " - "16r00E6" 16r0424 " CYRILLIC CAPITAL LETTER EF " - "16r00E7" 16r0413 " CYRILLIC CAPITAL LETTER GHE " - "16r00E8" 16r0425 " CYRILLIC CAPITAL LETTER HA " - "16r00E9" 16r0418 " CYRILLIC CAPITAL LETTER I " - "16r00EA" 16r0419 " CYRILLIC CAPITAL LETTER SHORT I " - "16r00EB" 16r041A " CYRILLIC CAPITAL LETTER KA " - "16r00EC" 16r041B " CYRILLIC CAPITAL LETTER EL " - "16r00ED" 16r041C " CYRILLIC CAPITAL LETTER EM " - "16r00EE" 16r041D " CYRILLIC CAPITAL LETTER EN " - "16r00EF" 16r041E " CYRILLIC CAPITAL LETTER O " - "16r00F0" 16r041F " CYRILLIC CAPITAL LETTER PE " - "16r00F1" 16r042F " CYRILLIC CAPITAL LETTER YA " - "16r00F2" 16r0420 " CYRILLIC CAPITAL LETTER ER " - "16r00F3" 16r0421 " CYRILLIC CAPITAL LETTER ES " - "16r00F4" 16r0422 " CYRILLIC CAPITAL LETTER TE " - "16r00F5" 16r0423 " CYRILLIC CAPITAL LETTER U " - "16r00F6" 16r0416 " CYRILLIC CAPITAL LETTER ZHE " - "16r00F7" 16r0412 " CYRILLIC CAPITAL LETTER VE " - "16r00F8" 16r042C " CYRILLIC CAPITAL LETTER SOFT SIGN " - "16r00F9" 16r042B " CYRILLIC CAPITAL LETTER YERU " - "16r00FA" 16r0417 " CYRILLIC CAPITAL LETTER ZE " - "16r00FB" 16r0428 " CYRILLIC CAPITAL LETTER SHA " - "16r00FC" 16r042D " CYRILLIC CAPITAL LETTER E " - "16r00FD" 16r0429 " CYRILLIC CAPITAL LETTER SHCHA " - "16r00FE" 16r0427 " CYRILLIC CAPITAL LETTER CHE " - "16r00FF" 16r042A " CYRILLIC CAPITAL LETTER HARD SIGN " - ) at:(code - 16r7F). + ) at:(code - 16rA3). ! encode:unicodeArg @@ -12838,63 +12056,17 @@ |unicode "{ Class: SmallInteger }"| unicode := unicodeArg. - unicode <= 16r7F ifTrue:[ ^ unicode ]. - unicode > 16r25A0 ifTrue:[ - ^ self encodingError. - ]. - unicode <= 16r9F ifTrue:[ - ^ self encodingError. + unicode <= 16r403 ifTrue:[ + ^ super encode:codeArg. + ]. + unicode > 16r256B ifTrue:[ + ^ super encode:codeArg. ]. unicode <= 16r491 ifTrue:[ - unicode <= 16rF7 ifTrue:[ - unicode <= 16rB7 ifTrue:[ - [ - |t| - t := #[ - "16r00A0" 16r9A " NO-BREAK SPACE " - "16r00A1" 16r00 " invalid " - "16r00A2" 16r00 " invalid " - "16r00A3" 16r00 " invalid " - "16r00A4" 16r00 " invalid " - "16r00A5" 16r00 " invalid " - "16r00A6" 16r00 " invalid " - "16r00A7" 16r00 " invalid " - "16r00A8" 16r00 " invalid " - "16r00A9" 16rBF " COPYRIGHT SIGN " - "16r00AA" 16r00 " invalid " - "16r00AB" 16r00 " invalid " - "16r00AC" 16r00 " invalid " - "16r00AD" 16r00 " invalid " - "16r00AE" 16r00 " invalid " - "16r00AF" 16r00 " invalid " - "16r00B0" 16r9C " DEGREE SIGN " - "16r00B1" 16r00 " invalid " - "16r00B2" 16r9D " SUPERSCRIPT TWO " - "16r00B3" 16r00 " invalid " - "16r00B4" 16r00 " invalid " - "16r00B5" 16r00 " invalid " - "16r00B6" 16r00 " invalid " - "16r00B7" 16r9E " MIDDLE DOT " - ] at:(unicode - 16r9F). - t == 0 ifFalse:[^ t]. - ^ self encodingError - ] value. - ]. - unicode <= 16rF6 ifTrue:[ - ^ self encodingError. - ]. - ^ "16r00F7" 16r009F " DIVISION SIGN " - ]. - unicode <= 16r400 ifTrue:[ - ^ self encodingError. - ]. unicode <= 16r457 ifTrue:[ [ |t| t := #[ - "16r0401" 16rB3 " CYRILLIC CAPITAL LETTER IO " - "16r0402" 16r00 " invalid " - "16r0403" 16r00 " invalid " "16r0404" 16rB4 " CYRILLIC CAPITAL LETTER UKRAINIAN IE " "16r0405" 16r00 " invalid " "16r0406" 16rB6 " CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I " @@ -12979,13 +12151,13 @@ "16r0455" 16r00 " invalid " "16r0456" 16rA6 " CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I " "16r0457" 16rA7 " CYRILLIC SMALL LETTER YI (Ukrainian) " - ] at:(unicode - 16r400). + ] at:(unicode - 16r403). t == 0 ifFalse:[^ t]. - ^ self encodingError + ^ self decodingError. ] value. ]. unicode <= 16r48F ifTrue:[ - ^ self encodingError. + ^ self decodingError.. ]. ^ #[ "16r0490" 16rBD " CYRILLIC CAPITAL LETTER GHE WITH UPTURN " @@ -12993,7 +12165,7 @@ ] at:(unicode - 16r48F). ]. unicode <= 16r2218 ifTrue:[ - ^ self encodingError. + ^ self decodingError.. ]. unicode <= 16r2321 ifTrue:[ unicode <= 16r2265 ifTrue:[ @@ -13004,13 +12176,13 @@ ] at:(unicode - 16r2218). ]. unicode <= 16r2247 ifTrue:[ - ^ self encodingError. + ^ self decodingError.. ]. unicode == 16r2248 ifTrue:[ ^ "16r2248" 16r0097 " ALMOST EQUAL TO " ]. unicode <= 16r2263 ifTrue:[ - ^ self encodingError. + ^ self decodingError.. ]. ^ #[ "16r2264" 16r98 " LESS-THAN OR EQUAL TO " @@ -13018,7 +12190,7 @@ ] at:(unicode - 16r2263). ]. unicode <= 16r231F ifTrue:[ - ^ self encodingError. + ^ self decodingError.. ]. ^ #[ "16r2320" 16r93 " TOP HALF INTEGRAL " @@ -13026,7 +12198,7 @@ ] at:(unicode - 16r231F). ]. unicode <= 16r24FF ifTrue:[ - ^ self encodingError. + ^ self decodingError.. ]. [ |t| @@ -13139,62 +12311,9 @@ "16r2569" 16rBB " BOX DRAWINGS DOUBLE UP AND HORIZONTAL " "16r256A" 16rBC " BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE " "16r256B" 16r00 " invalid " - "16r256C" 16rBE " BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL " - "16r256D" 16r00 " invalid " - "16r256E" 16r00 " invalid " - "16r256F" 16r00 " invalid " - "16r2570" 16r00 " invalid " - "16r2571" 16r00 " invalid " - "16r2572" 16r00 " invalid " - "16r2573" 16r00 " invalid " - "16r2574" 16r00 " invalid " - "16r2575" 16r00 " invalid " - "16r2576" 16r00 " invalid " - "16r2577" 16r00 " invalid " - "16r2578" 16r00 " invalid " - "16r2579" 16r00 " invalid " - "16r257A" 16r00 " invalid " - "16r257B" 16r00 " invalid " - "16r257C" 16r00 " invalid " - "16r257D" 16r00 " invalid " - "16r257E" 16r00 " invalid " - "16r257F" 16r00 " invalid " - "16r2580" 16r8B " UPPER HALF BLOCK " - "16r2581" 16r00 " invalid " - "16r2582" 16r00 " invalid " - "16r2583" 16r00 " invalid " - "16r2584" 16r8C " LOWER HALF BLOCK " - "16r2585" 16r00 " invalid " - "16r2586" 16r00 " invalid " - "16r2587" 16r00 " invalid " - "16r2588" 16r8D " FULL BLOCK " - "16r2589" 16r00 " invalid " - "16r258A" 16r00 " invalid " - "16r258B" 16r00 " invalid " - "16r258C" 16r8E " LEFT HALF BLOCK " - "16r258D" 16r00 " invalid " - "16r258E" 16r00 " invalid " - "16r258F" 16r00 " invalid " - "16r2590" 16r8F " RIGHT HALF BLOCK " - "16r2591" 16r90 " LIGHT SHADE " - "16r2592" 16r91 " MEDIUM SHADE " - "16r2593" 16r92 " DARK SHADE " - "16r2594" 16r00 " invalid " - "16r2595" 16r00 " invalid " - "16r2596" 16r00 " invalid " - "16r2597" 16r00 " invalid " - "16r2598" 16r00 " invalid " - "16r2599" 16r00 " invalid " - "16r259A" 16r00 " invalid " - "16r259B" 16r00 " invalid " - "16r259C" 16r00 " invalid " - "16r259D" 16r00 " invalid " - "16r259E" 16r00 " invalid " - "16r259F" 16r00 " invalid " - "16r25A0" 16r94 " BLACK SQUARE " ] at:(unicode - 16r24FF). t == 0 ifFalse:[^ t]. - ^ self encodingError + ^ self decodingError. ] value. ! ! @@ -18142,6 +17261,392 @@ !CharacterEncoder::MAC_Thai class methodsFor:'mapping'! +mapping +" +# From: http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/THAI.TXT + +#======================================================================= +# File name: THAI.TXT +# +# Contents: Map (external version) from Mac OS Thai +# character set to Unicode 3.2 +# +# Copyright: (c) 1995-2002 by Apple Computer, Inc., all rights +# reserved. +# +# Contact: charsets@apple.com +# +# Changes: +# +# b3,c1 2002-Dec-19 Update mapping for 0xDB to use new Unicode +# 3.2 WORD JOINER instead of ZWNBSP (BOM). +# Update URLs. Matches internal utom. +# b02 1999-Sep-22 Update contact e-mail address. Matches +# internal utom, ufrm, and Text +# Encoding Converter version 1.5. +# n07 1998-Feb-05 Update to match internal utom, ufrm +# and Text Encoding Converter version 1.3: +# Use standard Unicodes plus transcoding hints +# instead of single corporate characters; see +# details below. Also update header comments +# to new format. +# n04 1995-Nov-17 First version (after fixing some typos). +# Matches internal ufrm. +# +# Standard header: +# ---------------- +# +# Apple, the Apple logo, and Macintosh are trademarks of Apple +# Computer, Inc., registered in the United States and other countries. +# Unicode is a trademark of Unicode Inc. For the sake of brevity, +# throughout this document, 'Macintosh' can be used to refer to +# Macintosh computers and 'Unicode' can be used to refer to the +# Unicode standard. +# +# Apple makes no warranty or representation, either express or +# implied, with respect to these tables, their quality, accuracy, or +# fitness for a particular purpose. In no event will Apple be liable +# for direct, indirect, special, incidental, or consequential damages +# resulting from any defect or inaccuracy in this document or the +# accompanying tables. +# +# These mapping tables and character lists are subject to change. +# The latest tables should be available from the following: +# +# +# +# For general information about Mac OS encodings and these mapping +# tables, see the file 'README.TXT'. +# +# Format: +# ------- +# +# Three tab-separated columns; +# '#' begins a comment which continues to the end of the line. +# Column #1 is the Mac OS Thai code (in hex as 0xNN) +# Column #2 is the corresponding Unicode or Unicode sequence +# (in hex as 0xNNNN or 0xNNNN+0xNNNN). +# Column #3 is a comment containing the Unicode name +# +# The entries are in Mac OS Thai code order. +# +# Some of these mappings require the use of corporate characters. +# See the file 'CORPCHAR.TXT' and notes below. +# +# Control character mappings are not shown in this table, following +# the conventions of the standard UTC mapping tables. However, the +# Mac OS Thai character set uses the standard control characters at +# 0x00-0x1F and 0x7F. +# +# Notes on Mac OS Thai: +# --------------------- +# +# Codes 0xA1-0xDA and 0xDF-0xFB are the character set from Thai +# standard TIS 620-2533, except that the following changes are +# made: +# 0xEE is TRADE MARK SIGN (instead of THAI CHARACTER YAMAKKAN) +# 0xFA is REGISTERED SIGN (instead of THAI CHARACTER ANGKHANKHU) +# 0xFB is COPYRIGHT SIGN (instead of THAI CHARACTER KHOMUT) +# +# Codes 0x80-0x82, 0x8D-0x8E, 0x91, 0x9D-0x9E, and 0xDB-0xDE are +# various additional punctuation marks (e.g. curly quotes, +# ellipsis), no-break space, and two special characters 'word join' +# and 'word break'. +# +# Codes 0x83-0x8C, 0x8F, and 0x92-0x9C are for positional variants +# of the upper vowels, tone marks, and other signs at 0xD1, +# 0xD4-0xD7, and 0xE7-0xED. The positional variants would normally +# be considered presentation forms only and not characters. In most +# cases they are not typed directly; they are selected automatically +# at display time by the WorldScript software. However, using the +# Thai-DTP keyboard, the presentation forms can in fact be typed +# directly using dead keys. Thus they must be treated as real +# characters in the Mac OS Thai encoding. They are mapped using +# variant tags; see below. +# +# Several code points are undefined and unused (they cannot be +# typed using any of the Mac OS Thai keyboard layouts): 0x90, 0x9F, +# 0xFC-0xFE. These are not shown in the table below. +# +# Unicode mapping issues and notes: +# --------------------------------- +# +# The goals in the Apple mappings provided here are: +# - Ensure roundtrip mapping from every character in the Mac OS Thai +# character set to Unicode and back +# - Use standard Unicode characters as much as possible, to maximize +# interchangeability of the resulting Unicode text. Whenever possible, +# avoid having content carried by private-use characters. +# +# To satisfy both goals, we use private use characters to mark variants +# that are similar to a sequence of one or more standard Unicode +# characters. +# +# Apple has defined a block of 32 corporate characters as 'transcoding +# hints.' These are used in combination with standard Unicode characters +# to force them to be treated in a special way for mapping to other +# encodings; they have no other effect. Sixteen of these transcoding +# hints are 'grouping hints' - they indicate that the next 2-4 Unicode +# characters should be treated as a single entity for transcoding. The +# other sixteen transcoding hints are 'variant tags' - they are like +# combining characters, and can follow a standard Unicode (or a sequence +# consisting of a base character and other combining characters) to +# cause it to be treated in a special way for transcoding. These always +# terminate a combining-character sequence. +# +# The transcoding coding hints used in this mapping table are four +# variant tags in the range 0xF873-75. Since these are combined with +# standard Unicode characters, some characters in the Mac OS Thai +# character set map to a sequence of two Unicodes instead of a single +# Unicode character. For example, the Mac OS Thai character at 0x83 is a +# low-left positional variant of THAI CHARACTER MAI EK (the standard +# mapping is for the abstract character at 0xE8). So 0x83 is mapped to +# 0x0E48 (THAI CHARACTER MAI EK) + 0xF875 (a variant tag). +# +# Details of mapping changes in each version: +# ------------------------------------------- +# +# Changes from version b02 to version b03/c01: +# +# - Update mapping for 0xDB to use new Unicode 3.2 character U+2060 +# WORD JOINER instead of U+FEFF ZERO WIDTH NO-BREAK SPACE (BOM) +# +# Changes from version n04 to version n07: +# +# - Changed mappings of the positional variants to use standard +# Unicodes + transcoding hint, instead of using single corporate +# zone characters. This affected the mappings for the following: +# 0x83-08C, 0x8F, 0x92-0x9C +# +# - Just comment out unused code points in the table, instead +# of mapping them to U+FFFD. +# +################## + +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x005C # REVERSE SOLIDUS +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x007E # TILDE +# +0x80 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0x81 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0x82 0x2026 # HORIZONTAL ELLIPSIS +0x83 0x0E48+0xF875 # THAI CHARACTER MAI EK, low left position +0x84 0x0E49+0xF875 # THAI CHARACTER MAI THO, low left position +0x85 0x0E4A+0xF875 # THAI CHARACTER MAI TRI, low left position +0x86 0x0E4B+0xF875 # THAI CHARACTER MAI CHATTAWA, low left position +0x87 0x0E4C+0xF875 # THAI CHARACTER THANTHAKHAT, low left position +0x88 0x0E48+0xF873 # THAI CHARACTER MAI EK, low position +0x89 0x0E49+0xF873 # THAI CHARACTER MAI THO, low position +0x8A 0x0E4A+0xF873 # THAI CHARACTER MAI TRI, low position +0x8B 0x0E4B+0xF873 # THAI CHARACTER MAI CHATTAWA, low position +0x8C 0x0E4C+0xF873 # THAI CHARACTER THANTHAKHAT, low position +0x8D 0x201C # LEFT DOUBLE QUOTATION MARK +0x8E 0x201D # RIGHT DOUBLE QUOTATION MARK +0x8F 0x0E4D+0xF874 # THAI CHARACTER NIKHAHIT, left position +# +0x91 0x2022 # BULLET +0x92 0x0E31+0xF874 # THAI CHARACTER MAI HAN-AKAT, left position +0x93 0x0E47+0xF874 # THAI CHARACTER MAITAIKHU, left position +0x94 0x0E34+0xF874 # THAI CHARACTER SARA I, left position +0x95 0x0E35+0xF874 # THAI CHARACTER SARA II, left position +0x96 0x0E36+0xF874 # THAI CHARACTER SARA UE, left position +0x97 0x0E37+0xF874 # THAI CHARACTER SARA UEE, left position +0x98 0x0E48+0xF874 # THAI CHARACTER MAI EK, left position +0x99 0x0E49+0xF874 # THAI CHARACTER MAI THO, left position +0x9A 0x0E4A+0xF874 # THAI CHARACTER MAI TRI, left position +0x9B 0x0E4B+0xF874 # THAI CHARACTER MAI CHATTAWA, left position +0x9C 0x0E4C+0xF874 # THAI CHARACTER THANTHAKHAT, left position +0x9D 0x2018 # LEFT SINGLE QUOTATION MARK +0x9E 0x2019 # RIGHT SINGLE QUOTATION MARK +# +0xA0 0x00A0 # NO-BREAK SPACE +0xA1 0x0E01 # THAI CHARACTER KO KAI +0xA2 0x0E02 # THAI CHARACTER KHO KHAI +0xA3 0x0E03 # THAI CHARACTER KHO KHUAT +0xA4 0x0E04 # THAI CHARACTER KHO KHWAI +0xA5 0x0E05 # THAI CHARACTER KHO KHON +0xA6 0x0E06 # THAI CHARACTER KHO RAKHANG +0xA7 0x0E07 # THAI CHARACTER NGO NGU +0xA8 0x0E08 # THAI CHARACTER CHO CHAN +0xA9 0x0E09 # THAI CHARACTER CHO CHING +0xAA 0x0E0A # THAI CHARACTER CHO CHANG +0xAB 0x0E0B # THAI CHARACTER SO SO +0xAC 0x0E0C # THAI CHARACTER CHO CHOE +0xAD 0x0E0D # THAI CHARACTER YO YING +0xAE 0x0E0E # THAI CHARACTER DO CHADA +0xAF 0x0E0F # THAI CHARACTER TO PATAK +0xB0 0x0E10 # THAI CHARACTER THO THAN +0xB1 0x0E11 # THAI CHARACTER THO NANGMONTHO +0xB2 0x0E12 # THAI CHARACTER THO PHUTHAO +0xB3 0x0E13 # THAI CHARACTER NO NEN +0xB4 0x0E14 # THAI CHARACTER DO DEK +0xB5 0x0E15 # THAI CHARACTER TO TAO +0xB6 0x0E16 # THAI CHARACTER THO THUNG +0xB7 0x0E17 # THAI CHARACTER THO THAHAN +0xB8 0x0E18 # THAI CHARACTER THO THONG +0xB9 0x0E19 # THAI CHARACTER NO NU +0xBA 0x0E1A # THAI CHARACTER BO BAIMAI +0xBB 0x0E1B # THAI CHARACTER PO PLA +0xBC 0x0E1C # THAI CHARACTER PHO PHUNG +0xBD 0x0E1D # THAI CHARACTER FO FA +0xBE 0x0E1E # THAI CHARACTER PHO PHAN +0xBF 0x0E1F # THAI CHARACTER FO FAN +0xC0 0x0E20 # THAI CHARACTER PHO SAMPHAO +0xC1 0x0E21 # THAI CHARACTER MO MA +0xC2 0x0E22 # THAI CHARACTER YO YAK +0xC3 0x0E23 # THAI CHARACTER RO RUA +0xC4 0x0E24 # THAI CHARACTER RU +0xC5 0x0E25 # THAI CHARACTER LO LING +0xC6 0x0E26 # THAI CHARACTER LU +0xC7 0x0E27 # THAI CHARACTER WO WAEN +0xC8 0x0E28 # THAI CHARACTER SO SALA +0xC9 0x0E29 # THAI CHARACTER SO RUSI +0xCA 0x0E2A # THAI CHARACTER SO SUA +0xCB 0x0E2B # THAI CHARACTER HO HIP +0xCC 0x0E2C # THAI CHARACTER LO CHULA +0xCD 0x0E2D # THAI CHARACTER O ANG +0xCE 0x0E2E # THAI CHARACTER HO NOKHUK +0xCF 0x0E2F # THAI CHARACTER PAIYANNOI +0xD0 0x0E30 # THAI CHARACTER SARA A +0xD1 0x0E31 # THAI CHARACTER MAI HAN-AKAT +0xD2 0x0E32 # THAI CHARACTER SARA AA +0xD3 0x0E33 # THAI CHARACTER SARA AM +0xD4 0x0E34 # THAI CHARACTER SARA I +0xD5 0x0E35 # THAI CHARACTER SARA II +0xD6 0x0E36 # THAI CHARACTER SARA UE +0xD7 0x0E37 # THAI CHARACTER SARA UEE +0xD8 0x0E38 # THAI CHARACTER SARA U +0xD9 0x0E39 # THAI CHARACTER SARA UU +0xDA 0x0E3A # THAI CHARACTER PHINTHU +0xDB 0x2060 # WORD JOINER # for Unicode 3.2 and later +0xDC 0x200B # ZERO WIDTH SPACE +0xDD 0x2013 # EN DASH +0xDE 0x2014 # EM DASH +0xDF 0x0E3F # THAI CURRENCY SYMBOL BAHT +0xE0 0x0E40 # THAI CHARACTER SARA E +0xE1 0x0E41 # THAI CHARACTER SARA AE +0xE2 0x0E42 # THAI CHARACTER SARA O +0xE3 0x0E43 # THAI CHARACTER SARA AI MAIMUAN +0xE4 0x0E44 # THAI CHARACTER SARA AI MAIMALAI +0xE5 0x0E45 # THAI CHARACTER LAKKHANGYAO +0xE6 0x0E46 # THAI CHARACTER MAIYAMOK +0xE7 0x0E47 # THAI CHARACTER MAITAIKHU +0xE8 0x0E48 # THAI CHARACTER MAI EK +0xE9 0x0E49 # THAI CHARACTER MAI THO +0xEA 0x0E4A # THAI CHARACTER MAI TRI +0xEB 0x0E4B # THAI CHARACTER MAI CHATTAWA +0xEC 0x0E4C # THAI CHARACTER THANTHAKHAT +0xED 0x0E4D # THAI CHARACTER NIKHAHIT +0xEE 0x2122 # TRADE MARK SIGN +0xEF 0x0E4F # THAI CHARACTER FONGMAN +0xF0 0x0E50 # THAI DIGIT ZERO +0xF1 0x0E51 # THAI DIGIT ONE +0xF2 0x0E52 # THAI DIGIT TWO +0xF3 0x0E53 # THAI DIGIT THREE +0xF4 0x0E54 # THAI DIGIT FOUR +0xF5 0x0E55 # THAI DIGIT FIVE +0xF6 0x0E56 # THAI DIGIT SIX +0xF7 0x0E57 # THAI DIGIT SEVEN +0xF8 0x0E58 # THAI DIGIT EIGHT +0xF9 0x0E59 # THAI DIGIT NINE +0xFA 0x00AE # REGISTERED SIGN +0xFB 0x00A9 # COPYRIGHT SIGN + +" +! + mappingURL1_relativePathName ^ 'VENDORS/APPLE/THAI.TXT' ! ! @@ -18497,6 +18002,355 @@ !CharacterEncoder::MS_Ansi class methodsFor:'mapping'! +mapping +" +# From: http://std.dkuug.dk/i18n/charmaps/CP1252 + + CP1252 + % + / +% version: 1.0 +% repertoiremap: mnemonic,ds +% source: UNICODE 1.0 + +% alias MS-ANSI +CHARMAP + /x00 NULL (NUL) + /x01 START OF HEADING (SOH) + /x02 START OF TEXT (STX) + /x03 END OF TEXT (ETX) + /x04 END OF TRANSMISSION (EOT) + /x05 ENQUIRY (ENQ) + /x06 ACKNOWLEDGE (ACK) + /x07 BELL (BEL) + /x08 BACKSPACE (BS) + /x09 CHARACTER TABULATION (HT) + /x0A LINE FEED (LF) + /x0B LINE TABULATION (VT) + /x0C FORM FEED (FF) + /x0D CARRIAGE RETURN (CR) + /x0E SHIFT OUT (SO) + /x0F SHIFT IN (SI) +
/x10 DATALINK ESCAPE (DLE) + /x11 DEVICE CONTROL ONE (DC1) + /x12 DEVICE CONTROL TWO (DC2) + /x13 DEVICE CONTROL THREE (DC3) + /x14 DEVICE CONTROL FOUR (DC4) + /x15 NEGATIVE ACKNOWLEDGE (NAK) + /x16 SYNCHRONOUS IDLE (SYN) + /x17 END OF TRANSMISSION BLOCK (ETB) + /x18 CANCEL (CAN) + /x19 END OF MEDIUM (EM) + /x1A SUBSTITUTE (SUB) + /x1B ESCAPE (ESC) + /x1C FILE SEPARATOR (IS4) + /x1D GROUP SEPARATOR (IS3) + /x1E RECORD SEPARATOR (IS2) + /x1F UNIT SEPARATOR (IS1) + /x20 SPACE + /x21 EXCLAMATION MARK +<'> /x22 QUOTATION MARK + /x23 NUMBER SIGN + /x24 DOLLAR SIGN +<%> /x25 PERCENT SIGN +<&> /x26 AMPERSAND +<'> /x27 APOSTROPHE +<(> /x28 LEFT PARENTHESIS +<)> /x29 RIGHT PARENTHESIS +<*> /x2A ASTERISK +<+> /x2B PLUS SIGN +<,> /x2C COMMA +<-> /x2D HYPHEN-MINUS +<.> /x2E FULL STOP + /x2F SOLIDUS +<0> /x30 DIGIT ZERO +<1> /x31 DIGIT ONE +<2> /x32 DIGIT TWO +<3> /x33 DIGIT THREE +<4> /x34 DIGIT FOUR +<5> /x35 DIGIT FIVE +<6> /x36 DIGIT SIX +<7> /x37 DIGIT SEVEN +<8> /x38 DIGIT EIGHT +<9> /x39 DIGIT NINE +<:> /x3A COLON +<;> /x3B SEMICOLON +<<> /x3C LESS-THAN SIGN +<=> /x3D EQUALS SIGN +> /x3E GREATER-THAN SIGN + /x3F QUESTION MARK + /x40 COMMERCIAL AT + /x41 LATIN CAPITAL LETTER A + /x42 LATIN CAPITAL LETTER B + /x43 LATIN CAPITAL LETTER C + /x44 LATIN CAPITAL LETTER D + /x45 LATIN CAPITAL LETTER E + /x46 LATIN CAPITAL LETTER F + /x47 LATIN CAPITAL LETTER G + /x48 LATIN CAPITAL LETTER H + /x49 LATIN CAPITAL LETTER I + /x4A LATIN CAPITAL LETTER J + /x4B LATIN CAPITAL LETTER K + /x4C LATIN CAPITAL LETTER L + /x4D LATIN CAPITAL LETTER M + /x4E LATIN CAPITAL LETTER N + /x4F LATIN CAPITAL LETTER O +

/x70 LATIN SMALL LETTER P + /x71 LATIN SMALL LETTER Q + /x72 LATIN SMALL LETTER R + /x73 LATIN SMALL LETTER S + /x74 LATIN SMALL LETTER T + /x75 LATIN SMALL LETTER U + /x76 LATIN SMALL LETTER V + /x77 LATIN SMALL LETTER W + /x78 LATIN SMALL LETTER X + /x79 LATIN SMALL LETTER Y + /x7A LATIN SMALL LETTER Z +<(!!> /x7B LEFT CURLY BRACKET + /x7C VERTICAL LINE + /x7D RIGHT CURLY BRACKET +<'?> /x7E TILDE +

/x7F DELETE (DEL) +<.9> /x82 SINGLE LOW-9 QUOTATION MARK + /x83 LATIN SMALL LETTER F WITH HOOK +<:9> /x84 DOUBLE LOW-9 QUOTATION MARK +<.3> /x85 HORIZONTAL ELLIPSIS + /x86 DAGGER + /x87 DOUBLE DAGGER +<1/>> /x88 MODIFIER LETTER CIRCUMFLEX ACCENT +<%0> /x89 PER MILLE SIGN + /x8A LATIN CAPITAL LETTER S WITH CARON +<<1> /x8B SINGLE LEFT-POINTING ANGLE QUOTATION MARK + /x8C LATIN CAPITAL LIGATURE OE +<'6> /x91 LEFT SINGLE QUOTATION MARK +<'9> /x92 RIGHT SINGLE QUOTATION MARK +<'6> /x93 LEFT DOUBLE QUOTATION MARK +<'9> /x94 RIGHT DOUBLE QUOTATION MARK + /x95 BULLET +<-N> /x96 EN DASH +<-M> /x97 EM DASH +<1?> /x98 SMALL TILDE + /x99 TRADE MARK SIGN + /x9A LATIN SMALL LETTER S WITH CARON +1> /x9B SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + /x9C LATIN SMALL LIGATURE OE + /x9F LATIN CAPITAL LETTER Y WITH DIAERESIS + /xA0 NO-BREAK SPACE + /xA1 INVERTED EXCLAMATION MARK + /xA2 CENT SIGN + /xA3 POUND SIGN + /xA4 CURRENCY SIGN + /xA5 YEN SIGN + /xA6 BROKEN BAR + /xA7 SECTION SIGN +<':> /xA8 DIAERESIS + /xA9 COPYRIGHT SIGN +<-a> /xAA FEMININE ORDINAL INDICATOR +<<<> /xAB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + /xAC NOT SIGN +<--> /xAD SOFT HYPHEN + /xAE REGISTERED SIGN +<'m> /xAF MACRON + /xB0 DEGREE SIGN +<+-> /xB1 PLUS-MINUS SIGN +<2S> /xB2 SUPERSCRIPT TWO +<3S> /xB3 SUPERSCRIPT THREE +<''> /xB4 ACUTE ACCENT + /xB5 MICRO SIGN + /xB6 PILCROW SIGN +<.M> /xB7 MIDDLE DOT +<',> /xB8 CEDILLA +<1S> /xB9 SUPERSCRIPT ONE +<-o> /xBA MASCULINE ORDINAL INDICATOR +/>> /xBB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +<14> /xBC VULGAR FRACTION ONE QUARTER +<12> /xBD VULGAR FRACTION ONE HALF +<34> /xBE VULGAR FRACTION THREE QUARTERS + /xBF INVERTED QUESTION MARK + /xC0 LATIN CAPITAL LETTER A WITH GRAVE + /xC1 LATIN CAPITAL LETTER A WITH ACUTE +> /xC2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX + /xC3 LATIN CAPITAL LETTER A WITH TILDE + /xC4 LATIN CAPITAL LETTER A WITH DIAERESIS + /xC5 LATIN CAPITAL LETTER A WITH RING ABOVE + /xC6 LATIN CAPITAL LETTER AE + /xC7 LATIN CAPITAL LETTER C WITH CEDILLA + /xC8 LATIN CAPITAL LETTER E WITH GRAVE + /xC9 LATIN CAPITAL LETTER E WITH ACUTE +> /xCA LATIN CAPITAL LETTER E WITH CIRCUMFLEX + /xCB LATIN CAPITAL LETTER E WITH DIAERESIS + /xCC LATIN CAPITAL LETTER I WITH GRAVE + /xCD LATIN CAPITAL LETTER I WITH ACUTE +> /xCE LATIN CAPITAL LETTER I WITH CIRCUMFLEX + /xCF LATIN CAPITAL LETTER I WITH DIAERESIS + /xD0 LATIN CAPITAL LETTER ETH (Icelandic) + /xD1 LATIN CAPITAL LETTER N WITH TILDE + /xD2 LATIN CAPITAL LETTER O WITH GRAVE + /xD3 LATIN CAPITAL LETTER O WITH ACUTE +> /xD4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX + /xD5 LATIN CAPITAL LETTER O WITH TILDE + /xD6 LATIN CAPITAL LETTER O WITH DIAERESIS +<*X> /xD7 MULTIPLICATION SIGN + /xD8 LATIN CAPITAL LETTER O WITH STROKE + /xD9 LATIN CAPITAL LETTER U WITH GRAVE + /xDA LATIN CAPITAL LETTER U WITH ACUTE +> /xDB LATIN CAPITAL LETTER U WITH CIRCUMFLEX + /xDC LATIN CAPITAL LETTER U WITH DIAERESIS + /xDD LATIN CAPITAL LETTER Y WITH ACUTE + /xDE LATIN CAPITAL LETTER THORN (Icelandic) + /xDF LATIN SMALL LETTER SHARP S (German) + /xE0 LATIN SMALL LETTER A WITH GRAVE + /xE1 LATIN SMALL LETTER A WITH ACUTE +> /xE2 LATIN SMALL LETTER A WITH CIRCUMFLEX + /xE3 LATIN SMALL LETTER A WITH TILDE + /xE4 LATIN SMALL LETTER A WITH DIAERESIS + /xE5 LATIN SMALL LETTER A WITH RING ABOVE + /xE6 LATIN SMALL LETTER AE + /xE7 LATIN SMALL LETTER C WITH CEDILLA + /xE8 LATIN SMALL LETTER E WITH GRAVE + /xE9 LATIN SMALL LETTER E WITH ACUTE +> /xEA LATIN SMALL LETTER E WITH CIRCUMFLEX + /xEB LATIN SMALL LETTER E WITH DIAERESIS + /xEC LATIN SMALL LETTER I WITH GRAVE + /xED LATIN SMALL LETTER I WITH ACUTE +> /xEE LATIN SMALL LETTER I WITH CIRCUMFLEX + /xEF LATIN SMALL LETTER I WITH DIAERESIS + /xF0 LATIN SMALL LETTER ETH (Icelandic) + /xF1 LATIN SMALL LETTER N WITH TILDE + /xF2 LATIN SMALL LETTER O WITH GRAVE + /xF3 LATIN SMALL LETTER O WITH ACUTE +> /xF4 LATIN SMALL LETTER O WITH CIRCUMFLEX + /xF5 LATIN SMALL LETTER O WITH TILDE + /xF6 LATIN SMALL LETTER O WITH DIAERESIS +<-:> /xF7 DIVISION SIGN + /xF8 LATIN SMALL LETTER O WITH STROKE + /xF9 LATIN SMALL LETTER U WITH GRAVE + /xFA LATIN SMALL LETTER U WITH ACUTE +> /xFB LATIN SMALL LETTER U WITH CIRCUMFLEX + /xFC LATIN SMALL LETTER U WITH DIAERESIS + /xFD LATIN SMALL LETTER Y WITH ACUTE + /xFE LATIN SMALL LETTER THORN (Icelandic) + /xFF LATIN SMALL LETTER Y WITH DIAERESIS + /x00 NUL + /x01 START OF HEADING (SOH) + /x02 START OF TEXT (STX) + /x03 END OF TEXT (ETX) + /x04 END OF TRANSMISSION (EOT) + /x05 ENQUIRY (ENQ) + /x06 ACKNOWLEDGE (ACK) + /x07 BELL (BEL) + /x07 BELL (BEL) + /x08 BACKSPACE (BS) + /x09 CHARACTER TABULATION (HT) + /x0A LINE FEED (LF) + /x0B LINE TABULATION (VT) + /x0C FORM FEED (FF) + /x0D CARRIAGE RETURN (CR) + /x10 DATALINK ESCAPE (DLE) + /x11 DEVICE CONTROL ONE (DC1) + /x12 DEVICE CONTROL TWO (DC2) + /x13 DEVICE CONTROL THREE (DC3) + /x14 DEVICE CONTROL FOUR (DC4) + /x15 NEGATIVE ACKNOWLEDGE (NAK) + /x16 SYNCHRONOUS IDLE (SYN) + /x17 END OF TRANSMISSION BLOCK (ETB) + /x18 CANCEL (CAN) + /x1A SUBSTITUTE (SUB) + /x1B ESCAPE (ESC) + /x1C FILE SEPARATOR (IS4) + /x1D GROUP SEPARATOR (IS3) + /x1D GROUP SEPARATOR (IS3) + /x1E RECORD SEPARATOR (IS2) + /x1F UNIT SEPARATOR (IS1) + /x7F DELETE (DEL) + /x20 SPACE + /x21 EXCLAMATION MARK + /x22 QUOTATION MARK + /x23 NUMBER SIGN + /x24 DOLLAR SIGN + /x25 PERCENT SIGN + /x26 AMPERSAND + /x27 APOSTROPHE + /x28 LEFT PARENTHESIS + /x29 RIGHT PARENTHESIS + /x2A ASTERISK + /x2B PLUS SIGN + /x2C COMMA + /x2D HYPHEN-MINUS + /x2D HYPHEN-MINUS + /x2E FULL STOP + /x2E FULL STOP + /x2F SOLIDUS + /x2F SOLIDUS + /x30 DIGIT ZERO + /x31 DIGIT ONE + /x32 DIGIT TWO + /x33 DIGIT THREE + /x34 DIGIT FOUR + /x35 DIGIT FIVE + /x36 DIGIT SIX + /x37 DIGIT SEVEN + /x38 DIGIT EIGHT + /x39 DIGIT NINE + /x3A COLON + /x3B SEMICOLON + /x3C LESS-THAN SIGN + /x3D EQUALS SIGN + /x3E GREATER-THAN SIGN + /x3F QUESTION MARK + /x40 COMMERCIAL AT + /x5B LEFT SQUARE BRACKET + /x5C REVERSE SOLIDUS + /x5C REVERSE SOLIDUS + /x5D RIGHT SQUARE BRACKET + /x5E CIRCUMFLEX ACCENT + /x5E CIRCUMFLEX ACCENT + /x5F LOW LINE + /x5F LOW LINE + /x60 GRAVE ACCENT + /x7B LEFT CURLY BRACKET + /x7B LEFT CURLY BRACKET + /x7C VERTICAL LINE + /x7D RIGHT CURLY BRACKET + /x7D RIGHT CURLY BRACKET + /x7E TILDE +END CHARMAP + +" +! + mappingURL2_relativePathName ^ 'CP1252' ! ! @@ -18509,6 +18363,361 @@ !CharacterEncoder::MS_Arabic class methodsFor:'mapping'! +mapping +" +# From: http://std.dkuug.dk/i18n/charmaps/CP1256 + + CP1256 + % + / +% version: 1.0 +% repertoiremap: mnemonic,ds +% source: UNICODE 1.0 + +% alias MS-ARAB +CHARMAP + /x00 NULL (NUL) + /x01 START OF HEADING (SOH) + /x02 START OF TEXT (STX) + /x03 END OF TEXT (ETX) + /x04 END OF TRANSMISSION (EOT) + /x05 ENQUIRY (ENQ) + /x06 ACKNOWLEDGE (ACK) + /x07 BELL (BEL) + /x08 BACKSPACE (BS) + /x09 CHARACTER TABULATION (HT) + /x0A LINE FEED (LF) + /x0B LINE TABULATION (VT) + /x0C FORM FEED (FF) + /x0D CARRIAGE RETURN (CR) + /x0E SHIFT OUT (SO) + /x0F SHIFT IN (SI) +
/x10 DATALINK ESCAPE (DLE) + /x11 DEVICE CONTROL ONE (DC1) + /x12 DEVICE CONTROL TWO (DC2) + /x13 DEVICE CONTROL THREE (DC3) + /x14 DEVICE CONTROL FOUR (DC4) + /x15 NEGATIVE ACKNOWLEDGE (NAK) + /x16 SYNCHRONOUS IDLE (SYN) + /x17 END OF TRANSMISSION BLOCK (ETB) + /x18 CANCEL (CAN) + /x19 END OF MEDIUM (EM) + /x1A SUBSTITUTE (SUB) + /x1B ESCAPE (ESC) + /x1C FILE SEPARATOR (IS4) + /x1D GROUP SEPARATOR (IS3) + /x1E RECORD SEPARATOR (IS2) + /x1F UNIT SEPARATOR (IS1) + /x20 SPACE + /x21 EXCLAMATION MARK +<'> /x22 QUOTATION MARK + /x23 NUMBER SIGN + /x24 DOLLAR SIGN +<%> /x25 PERCENT SIGN +<&> /x26 AMPERSAND +<'> /x27 APOSTROPHE +<(> /x28 LEFT PARENTHESIS +<)> /x29 RIGHT PARENTHESIS +<*> /x2A ASTERISK +<+> /x2B PLUS SIGN +<,> /x2C COMMA +<-> /x2D HYPHEN-MINUS +<.> /x2E FULL STOP + /x2F SOLIDUS +<0> /x30 DIGIT ZERO +<1> /x31 DIGIT ONE +<2> /x32 DIGIT TWO +<3> /x33 DIGIT THREE +<4> /x34 DIGIT FOUR +<5> /x35 DIGIT FIVE +<6> /x36 DIGIT SIX +<7> /x37 DIGIT SEVEN +<8> /x38 DIGIT EIGHT +<9> /x39 DIGIT NINE +<:> /x3A COLON +<;> /x3B SEMICOLON +<<> /x3C LESS-THAN SIGN +<=> /x3D EQUALS SIGN +> /x3E GREATER-THAN SIGN + /x3F QUESTION MARK + /x40 COMMERCIAL AT + /x41 LATIN CAPITAL LETTER A + /x42 LATIN CAPITAL LETTER B + /x43 LATIN CAPITAL LETTER C + /x44 LATIN CAPITAL LETTER D + /x45 LATIN CAPITAL LETTER E + /x46 LATIN CAPITAL LETTER F + /x47 LATIN CAPITAL LETTER G + /x48 LATIN CAPITAL LETTER H + /x49 LATIN CAPITAL LETTER I + /x4A LATIN CAPITAL LETTER J + /x4B LATIN CAPITAL LETTER K + /x4C LATIN CAPITAL LETTER L + /x4D LATIN CAPITAL LETTER M + /x4E LATIN CAPITAL LETTER N + /x4F LATIN CAPITAL LETTER O +

/x70 LATIN SMALL LETTER P + /x71 LATIN SMALL LETTER Q + /x72 LATIN SMALL LETTER R + /x73 LATIN SMALL LETTER S + /x74 LATIN SMALL LETTER T + /x75 LATIN SMALL LETTER U + /x76 LATIN SMALL LETTER V + /x77 LATIN SMALL LETTER W + /x78 LATIN SMALL LETTER X + /x79 LATIN SMALL LETTER Y + /x7A LATIN SMALL LETTER Z +<(!!> /x7B LEFT CURLY BRACKET + /x7C VERTICAL LINE + /x7D RIGHT CURLY BRACKET +<'?> /x7E TILDE +

/x7F DELETE (DEL) +<,+> /x80 ARABIC COMMA +<0a> /x81 ARABIC-INDIC DIGIT ZERO +<.9> /x82 SINGLE LOW-9 QUOTATION MARK +<1a> /x83 ARABIC-INDIC DIGIT ONE +<:9> /x84 DOUBLE LOW-9 QUOTATION MARK +<.3> /x85 HORIZONTAL ELLIPSIS + /x86 DAGGER + /x87 DOUBLE DAGGER +<2a> /x88 ARABIC-INDIC DIGIT TWO +<3a> /x89 ARABIC-INDIC DIGIT THREE +<4a> /x8A ARABIC-INDIC DIGIT FOUR +<<1> /x8B SINGLE LEFT-POINTING ANGLE QUOTATION MARK +<5a> /x8C ARABIC-INDIC DIGIT FIVE +<6a> /x8D ARABIC-INDIC DIGIT SIX +<7a> /x8E ARABIC-INDIC DIGIT SEVEN +<8a> /x8F ARABIC-INDIC DIGIT EIGHT +<9a> /x90 ARABIC-INDIC DIGIT NINE +<'6> /x91 LEFT SINGLE QUOTATION MARK +<'9> /x92 RIGHT SINGLE QUOTATION MARK +<'6> /x93 LEFT DOUBLE QUOTATION MARK +<'9> /x94 RIGHT DOUBLE QUOTATION MARK + /x95 BULLET +<-N> /x96 EN DASH +<-M> /x97 EM DASH +<;+> /x98 ARABIC SEMICOLON + /x99 TRADE MARK SIGN + /x9A ARABIC QUESTION MARK +1> /x9B SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + /x9C ARABIC LETTER HAMZA + /x9D ARABIC LETTER ALEF WITH MADDA ABOVE + /x9E ARABIC LETTER ALEF WITH HAMZA ABOVE + /x9F LATIN CAPITAL LETTER Y WITH DIAERESIS + /xA0 NO-BREAK SPACE + /xA1 ARABIC LETTER WAW WITH HAMZA ABOVE + /xA2 ARABIC LETTER ALEF WITH HAMZA BELOW + /xA3 POUND SIGN + /xA4 CURRENCY SIGN + /xA5 ARABIC LETTER YEH WITH HAMZA ABOVE + /xA6 BROKEN BAR + /xA7 SECTION SIGN + /xA8 ARABIC LETTER ALEF + /xA9 COPYRIGHT SIGN + /xAA ARABIC LETTER BEH +<<<> /xAB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + /xAC NOT SIGN +<--> /xAD SOFT HYPHEN + /xAE REGISTERED SIGN + /xAF ARABIC LETTER PEH + /xB0 DEGREE SIGN +<+-> /xB1 PLUS-MINUS SIGN + /xB2 ARABIC LETTER TEH MARBUTA + /xB3 ARABIC LETTER TEH + /xB4 ARABIC LETTER THEH + /xB5 MICRO SIGN + /xB6 PILCROW SIGN +<.M> /xB7 MIDDLE DOT + /xB8 ARABIC LETTER JEEM + /xB9 ARABIC LETTER TCHEH + /xBA ARABIC LETTER HAH +/>> /xBB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + /xBC ARABIC LETTER KHAH + /xBD ARABIC LETTER DAL + /xBE ARABIC LETTER THAL + /xBF ARABIC LETTER REH + /xC0 LATIN CAPITAL LETTER A WITH GRAVE + /xC1 ARABIC LETTER ZAIN +> /xC2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX + /xC3 ARABIC LETTER JEH + /xC4 ARABIC LETTER SEEN + /xC5 ARABIC LETTER SHEEN + /xC6 ARABIC LETTER SAD + /xC7 LATIN CAPITAL LETTER C WITH CEDILLA + /xC8 LATIN CAPITAL LETTER E WITH GRAVE + /xC9 LATIN CAPITAL LETTER E WITH ACUTE +> /xCA LATIN CAPITAL LETTER E WITH CIRCUMFLEX + /xCB LATIN CAPITAL LETTER E WITH DIAERESIS +
/xCC ARABIC LETTER DAD + /xCD ARABIC LETTER TAH +> /xCE LATIN CAPITAL LETTER I WITH CIRCUMFLEX + /xCF LATIN CAPITAL LETTER I WITH DIAERESIS + /xD0 BOPOMOFO LETTER ZH + /xD1 ARABIC LETTER AIN + /xD2 ARABIC LETTER GHAIN +<++> /xD3 ARABIC TATWEEL +> /xD4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX + /xD5 ARABIC LETTER FEH + /xD6 ARABIC LETTER QAF +<*X> /xD7 MULTIPLICATION SIGN + /xD8 ARABIC LETTER KAF + /xD9 LATIN CAPITAL LETTER U WITH GRAVE + /xDA ARABIC LETTER GAF +> /xDB LATIN CAPITAL LETTER U WITH CIRCUMFLEX + /xDC LATIN CAPITAL LETTER U WITH DIAERESIS + /xDD ARABIC LETTER LAM + /xDE ARABIC LETTER MEEM + /xDF ARABIC LETTER NOON + /xE0 LATIN SMALL LETTER A WITH GRAVE + /xE1 ARABIC LETTER HEH +> /xE2 LATIN SMALL LETTER A WITH CIRCUMFLEX + /xE3 ARABIC LETTER HAH WITH HAMZA ABOVE + /xE4 ARABIC LETTER WAW + /xE5 ARABIC LETTER ALEF MAKSURA + /xE6 ARABIC LETTER YEH + /xE7 LATIN SMALL LETTER C WITH CEDILLA + /xE8 LATIN SMALL LETTER E WITH GRAVE + /xE9 LATIN SMALL LETTER E WITH ACUTE +> /xEA LATIN SMALL LETTER E WITH CIRCUMFLEX + /xEB LATIN SMALL LETTER E WITH DIAERESIS +<:+> /xEC ARABIC FATHATAN +<'+> /xED ARABIC DAMMATAN +> /xEE LATIN SMALL LETTER I WITH CIRCUMFLEX + /xEF LATIN SMALL LETTER I WITH DIAERESIS +<=+> /xF0 ARABIC KASRATAN + /xF1 ARABIC FATHA +<'+> /xF2 ARABIC DAMMA +<1+> /xF3 ARABIC KASRA +> /xF4 LATIN SMALL LETTER O WITH CIRCUMFLEX +<3+> /xF5 ARABIC SHADDA +<0+> /xF6 ARABIC SUKUN +<-:> /xF7 DIVISION SIGN + /xF9 LATIN SMALL LETTER U WITH GRAVE +> /xFB LATIN SMALL LETTER U WITH CIRCUMFLEX + /xFC LATIN SMALL LETTER U WITH DIAERESIS + /xFD LEFT-TO-RIGHT MARK + /xFE RIGHT-TO-LEFT MARK + /xFF LATIN SMALL LETTER Y WITH DIAERESIS + /x00 NUL + /x01 START OF HEADING (SOH) + /x02 START OF TEXT (STX) + /x03 END OF TEXT (ETX) + /x04 END OF TRANSMISSION (EOT) + /x05 ENQUIRY (ENQ) + /x06 ACKNOWLEDGE (ACK) + /x07 BELL (BEL) + /x07 BELL (BEL) + /x08 BACKSPACE (BS) + /x09 CHARACTER TABULATION (HT) + /x0A LINE FEED (LF) + /x0B LINE TABULATION (VT) + /x0C FORM FEED (FF) + /x0D CARRIAGE RETURN (CR) + /x10 DATALINK ESCAPE (DLE) + /x11 DEVICE CONTROL ONE (DC1) + /x12 DEVICE CONTROL TWO (DC2) + /x13 DEVICE CONTROL THREE (DC3) + /x14 DEVICE CONTROL FOUR (DC4) + /x15 NEGATIVE ACKNOWLEDGE (NAK) + /x16 SYNCHRONOUS IDLE (SYN) + /x17 END OF TRANSMISSION BLOCK (ETB) + /x18 CANCEL (CAN) + /x1A SUBSTITUTE (SUB) + /x1B ESCAPE (ESC) + /x1C FILE SEPARATOR (IS4) + /x1D GROUP SEPARATOR (IS3) + /x1D GROUP SEPARATOR (IS3) + /x1E RECORD SEPARATOR (IS2) + /x1F UNIT SEPARATOR (IS1) + /x7F DELETE (DEL) + /x20 SPACE + /x21 EXCLAMATION MARK + /x22 QUOTATION MARK + /x23 NUMBER SIGN + /x24 DOLLAR SIGN + /x25 PERCENT SIGN + /x26 AMPERSAND + /x27 APOSTROPHE + /x28 LEFT PARENTHESIS + /x29 RIGHT PARENTHESIS + /x2A ASTERISK + /x2B PLUS SIGN + /x2C COMMA + /x2D HYPHEN-MINUS + /x2D HYPHEN-MINUS + /x2E FULL STOP + /x2E FULL STOP + /x2F SOLIDUS + /x2F SOLIDUS + /x30 DIGIT ZERO + /x31 DIGIT ONE + /x32 DIGIT TWO + /x33 DIGIT THREE + /x34 DIGIT FOUR + /x35 DIGIT FIVE + /x36 DIGIT SIX + /x37 DIGIT SEVEN + /x38 DIGIT EIGHT + /x39 DIGIT NINE + /x3A COLON + /x3B SEMICOLON + /x3C LESS-THAN SIGN + /x3D EQUALS SIGN + /x3E GREATER-THAN SIGN + /x3F QUESTION MARK + /x40 COMMERCIAL AT + /x5B LEFT SQUARE BRACKET + /x5C REVERSE SOLIDUS + /x5C REVERSE SOLIDUS + /x5D RIGHT SQUARE BRACKET + /x5E CIRCUMFLEX ACCENT + /x5E CIRCUMFLEX ACCENT + /x5F LOW LINE + /x5F LOW LINE + /x60 GRAVE ACCENT + /x7B LEFT CURLY BRACKET + /x7B LEFT CURLY BRACKET + /x7C VERTICAL LINE + /x7D RIGHT CURLY BRACKET + /x7D RIGHT CURLY BRACKET + /x7E TILDE +END CHARMAP + +" +! + mappingURL2_relativePathName ^ 'CP1256' ! ! @@ -18521,6 +18730,361 @@ !CharacterEncoder::MS_Cyrillic class methodsFor:'mapping'! +mapping +" +# From: http://std.dkuug.dk/i18n/charmaps/CP1251 + + CP1251 + % + / +% version: 1.0 +% repertoiremap: mnemonic,ds +% source: UNICODE 1.0 + +% alias MS-CYRL +CHARMAP + /x00 NULL (NUL) + /x01 START OF HEADING (SOH) + /x02 START OF TEXT (STX) + /x03 END OF TEXT (ETX) + /x04 END OF TRANSMISSION (EOT) + /x05 ENQUIRY (ENQ) + /x06 ACKNOWLEDGE (ACK) + /x07 BELL (BEL) + /x08 BACKSPACE (BS) + /x09 CHARACTER TABULATION (HT) + /x0A LINE FEED (LF) + /x0B LINE TABULATION (VT) + /x0C FORM FEED (FF) + /x0D CARRIAGE RETURN (CR) + /x0E SHIFT OUT (SO) + /x0F SHIFT IN (SI) +
/x10 DATALINK ESCAPE (DLE) + /x11 DEVICE CONTROL ONE (DC1) + /x12 DEVICE CONTROL TWO (DC2) + /x13 DEVICE CONTROL THREE (DC3) + /x14 DEVICE CONTROL FOUR (DC4) + /x15 NEGATIVE ACKNOWLEDGE (NAK) + /x16 SYNCHRONOUS IDLE (SYN) + /x17 END OF TRANSMISSION BLOCK (ETB) + /x18 CANCEL (CAN) + /x19 END OF MEDIUM (EM) + /x1A SUBSTITUTE (SUB) + /x1B ESCAPE (ESC) + /x1C FILE SEPARATOR (IS4) + /x1D GROUP SEPARATOR (IS3) + /x1E RECORD SEPARATOR (IS2) + /x1F UNIT SEPARATOR (IS1) + /x20 SPACE + /x21 EXCLAMATION MARK +<'> /x22 QUOTATION MARK + /x23 NUMBER SIGN + /x24 DOLLAR SIGN +<%> /x25 PERCENT SIGN +<&> /x26 AMPERSAND +<'> /x27 APOSTROPHE +<(> /x28 LEFT PARENTHESIS +<)> /x29 RIGHT PARENTHESIS +<*> /x2A ASTERISK +<+> /x2B PLUS SIGN +<,> /x2C COMMA +<-> /x2D HYPHEN-MINUS +<.> /x2E FULL STOP + /x2F SOLIDUS +<0> /x30 DIGIT ZERO +<1> /x31 DIGIT ONE +<2> /x32 DIGIT TWO +<3> /x33 DIGIT THREE +<4> /x34 DIGIT FOUR +<5> /x35 DIGIT FIVE +<6> /x36 DIGIT SIX +<7> /x37 DIGIT SEVEN +<8> /x38 DIGIT EIGHT +<9> /x39 DIGIT NINE +<:> /x3A COLON +<;> /x3B SEMICOLON +<<> /x3C LESS-THAN SIGN +<=> /x3D EQUALS SIGN +> /x3E GREATER-THAN SIGN + /x3F QUESTION MARK + /x40 COMMERCIAL AT + /x41 LATIN CAPITAL LETTER A + /x42 LATIN CAPITAL LETTER B + /x43 LATIN CAPITAL LETTER C + /x44 LATIN CAPITAL LETTER D + /x45 LATIN CAPITAL LETTER E + /x46 LATIN CAPITAL LETTER F + /x47 LATIN CAPITAL LETTER G + /x48 LATIN CAPITAL LETTER H + /x49 LATIN CAPITAL LETTER I + /x4A LATIN CAPITAL LETTER J + /x4B LATIN CAPITAL LETTER K + /x4C LATIN CAPITAL LETTER L + /x4D LATIN CAPITAL LETTER M + /x4E LATIN CAPITAL LETTER N + /x4F LATIN CAPITAL LETTER O +

/x70 LATIN SMALL LETTER P + /x71 LATIN SMALL LETTER Q + /x72 LATIN SMALL LETTER R + /x73 LATIN SMALL LETTER S + /x74 LATIN SMALL LETTER T + /x75 LATIN SMALL LETTER U + /x76 LATIN SMALL LETTER V + /x77 LATIN SMALL LETTER W + /x78 LATIN SMALL LETTER X + /x79 LATIN SMALL LETTER Y + /x7A LATIN SMALL LETTER Z +<(!!> /x7B LEFT CURLY BRACKET + /x7C VERTICAL LINE + /x7D RIGHT CURLY BRACKET +<'?> /x7E TILDE +

/x7F DELETE (DEL) + /x80 CYRILLIC CAPITAL LETTER DJE (Serbocroatian) + /x81 CYRILLIC CAPITAL LETTER GJE +<.9> /x82 SINGLE LOW-9 QUOTATION MARK + /x83 CYRILLIC SMALL LETTER GJE +<:9> /x84 DOUBLE LOW-9 QUOTATION MARK +<.3> /x85 HORIZONTAL ELLIPSIS + /x86 DAGGER + /x87 DOUBLE DAGGER +<%0> /x89 PER MILLE SIGN + /x8A CYRILLIC CAPITAL LETTER LJE +<<1> /x8B SINGLE LEFT-POINTING ANGLE QUOTATION MARK + /x8C CYRILLIC CAPITAL LETTER NJE + /x8D CYRILLIC CAPITAL LETTER KJE + /x8E CYRILLIC CAPITAL LETTER TSHE (Serbocroatian) + /x8F CYRILLIC CAPITAL LETTER DZHE + /x90 CYRILLIC SMALL LETTER DJE (Serbocroatian) +<'6> /x91 LEFT SINGLE QUOTATION MARK +<'9> /x92 RIGHT SINGLE QUOTATION MARK +<'6> /x93 LEFT DOUBLE QUOTATION MARK +<'9> /x94 RIGHT DOUBLE QUOTATION MARK + /x95 BULLET +<-N> /x96 EN DASH +<-M> /x97 EM DASH + /x99 TRADE MARK SIGN + /x9A CYRILLIC SMALL LETTER LJE +1> /x9B SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + /x9C CYRILLIC SMALL LETTER NJE + /x9D CYRILLIC SMALL LETTER KJE + /x9E CYRILLIC SMALL LETTER TSHE (Serbocroatian) + /x9F CYRILLIC SMALL LETTER DZHE + /xA0 NO-BREAK SPACE + /xA1 CYRILLIC CAPITAL LETTER SHORT U (Byelorussian) + /xA2 CYRILLIC SMALL LETTER SHORT U (Byelorussian) + /xA3 CYRILLIC CAPITAL LETTER JE + /xA4 CURRENCY SIGN + /xA5 CYRILLIC CAPITAL LETTER GHE WITH UPTURN + /xA6 BROKEN BAR + /xA7 SECTION SIGN + /xA8 CYRILLIC CAPITAL LETTER IO + /xA9 COPYRIGHT SIGN + /xAA CYRILLIC CAPITAL LETTER UKRAINIAN IE +<<<> /xAB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + /xAC NOT SIGN +<--> /xAD SOFT HYPHEN + /xAE REGISTERED SIGN + /xAF CYRILLIC CAPITAL LETTER YI (Ukrainian) + /xB0 DEGREE SIGN +<+-> /xB1 PLUS-MINUS SIGN + /xB2 CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I + /xB3 CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I + /xB4 CYRILLIC SMALL LETTER GHE WITH UPTURN + /xB5 MICRO SIGN + /xB6 PILCROW SIGN +<.M> /xB7 MIDDLE DOT + /xB8 CYRILLIC SMALL LETTER IO + /xB9 NUMERO SIGN + /xBA CYRILLIC SMALL LETTER UKRAINIAN IE +/>> /xBB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + /xBC CYRILLIC SMALL LETTER JE + /xBD CYRILLIC CAPITAL LETTER DZE + /xBE CYRILLIC SMALL LETTER DZE + /xBF CYRILLIC SMALL LETTER YI (Ukrainian) + /xC0 CYRILLIC CAPITAL LETTER A + /xC1 CYRILLIC CAPITAL LETTER BE + /xC2 CYRILLIC CAPITAL LETTER VE + /xC3 CYRILLIC CAPITAL LETTER GHE + /xC4 CYRILLIC CAPITAL LETTER DE + /xC5 CYRILLIC CAPITAL LETTER IE + /xC6 CYRILLIC CAPITAL LETTER ZHE + /xC7 CYRILLIC CAPITAL LETTER ZE + /xC8 CYRILLIC CAPITAL LETTER I + /xC9 CYRILLIC CAPITAL LETTER SHORT I + /xCA CYRILLIC CAPITAL LETTER KA + /xCB CYRILLIC CAPITAL LETTER EL + /xCC CYRILLIC CAPITAL LETTER EM + /xCD CYRILLIC CAPITAL LETTER EN + /xCE CYRILLIC CAPITAL LETTER O + /xCF CYRILLIC CAPITAL LETTER PE + /xD0 CYRILLIC CAPITAL LETTER ER + /xD1 CYRILLIC CAPITAL LETTER ES + /xD2 CYRILLIC CAPITAL LETTER TE + /xD3 CYRILLIC CAPITAL LETTER U + /xD4 CYRILLIC CAPITAL LETTER EF + /xD5 CYRILLIC CAPITAL LETTER HA + /xD6 CYRILLIC CAPITAL LETTER TSE + /xD7 CYRILLIC CAPITAL LETTER CHE + /xD8 CYRILLIC CAPITAL LETTER SHA + /xD9 CYRILLIC CAPITAL LETTER SHCHA +<='> /xDA CYRILLIC CAPITAL LETTER HARD SIGN + /xDB CYRILLIC CAPITAL LETTER YERU +<%'> /xDC CYRILLIC CAPITAL LETTER SOFT SIGN + /xDD CYRILLIC CAPITAL LETTER E + /xDE CYRILLIC CAPITAL LETTER YU + /xDF CYRILLIC CAPITAL LETTER YA + /xE0 CYRILLIC SMALL LETTER A + /xE1 CYRILLIC SMALL LETTER BE + /xE2 CYRILLIC SMALL LETTER VE + /xE3 CYRILLIC SMALL LETTER GHE + /xE4 CYRILLIC SMALL LETTER DE + /xE5 CYRILLIC SMALL LETTER IE + /xE6 CYRILLIC SMALL LETTER ZHE + /xE7 CYRILLIC SMALL LETTER ZE + /xE8 CYRILLIC SMALL LETTER I + /xE9 CYRILLIC SMALL LETTER SHORT I + /xEA CYRILLIC SMALL LETTER KA + /xEB CYRILLIC SMALL LETTER EL + /xEC CYRILLIC SMALL LETTER EM + /xED CYRILLIC SMALL LETTER EN + /xEE CYRILLIC SMALL LETTER O + /xEF CYRILLIC SMALL LETTER PE + /xF0 CYRILLIC SMALL LETTER ER + /xF1 CYRILLIC SMALL LETTER ES + /xF2 CYRILLIC SMALL LETTER TE + /xF3 CYRILLIC SMALL LETTER U + /xF4 CYRILLIC SMALL LETTER EF + /xF5 CYRILLIC SMALL LETTER HA + /xF6 CYRILLIC SMALL LETTER TSE + /xF7 CYRILLIC SMALL LETTER CHE + /xF8 CYRILLIC SMALL LETTER SHA + /xF9 CYRILLIC SMALL LETTER SHCHA +<='> /xFA CYRILLIC SMALL LETTER HARD SIGN + /xFB CYRILLIC SMALL LETTER YERU +<%'> /xFC CYRILLIC SMALL LETTER SOFT SIGN + /xFD CYRILLIC SMALL LETTER E + /xFE CYRILLIC SMALL LETTER YU + /xFF CYRILLIC SMALL LETTER YA + /x00 NUL + /x01 START OF HEADING (SOH) + /x02 START OF TEXT (STX) + /x03 END OF TEXT (ETX) + /x04 END OF TRANSMISSION (EOT) + /x05 ENQUIRY (ENQ) + /x06 ACKNOWLEDGE (ACK) + /x07 BELL (BEL) + /x07 BELL (BEL) + /x08 BACKSPACE (BS) + /x09 CHARACTER TABULATION (HT) + /x0A LINE FEED (LF) + /x0B LINE TABULATION (VT) + /x0C FORM FEED (FF) + /x0D CARRIAGE RETURN (CR) + /x10 DATALINK ESCAPE (DLE) + /x11 DEVICE CONTROL ONE (DC1) + /x12 DEVICE CONTROL TWO (DC2) + /x13 DEVICE CONTROL THREE (DC3) + /x14 DEVICE CONTROL FOUR (DC4) + /x15 NEGATIVE ACKNOWLEDGE (NAK) + /x16 SYNCHRONOUS IDLE (SYN) + /x17 END OF TRANSMISSION BLOCK (ETB) + /x18 CANCEL (CAN) + /x1A SUBSTITUTE (SUB) + /x1B ESCAPE (ESC) + /x1C FILE SEPARATOR (IS4) + /x1D GROUP SEPARATOR (IS3) + /x1D GROUP SEPARATOR (IS3) + /x1E RECORD SEPARATOR (IS2) + /x1F UNIT SEPARATOR (IS1) + /x7F DELETE (DEL) + /x20 SPACE + /x21 EXCLAMATION MARK + /x22 QUOTATION MARK + /x23 NUMBER SIGN + /x24 DOLLAR SIGN + /x25 PERCENT SIGN + /x26 AMPERSAND + /x27 APOSTROPHE + /x28 LEFT PARENTHESIS + /x29 RIGHT PARENTHESIS + /x2A ASTERISK + /x2B PLUS SIGN + /x2C COMMA + /x2D HYPHEN-MINUS + /x2D HYPHEN-MINUS + /x2E FULL STOP + /x2E FULL STOP + /x2F SOLIDUS + /x2F SOLIDUS + /x30 DIGIT ZERO + /x31 DIGIT ONE + /x32 DIGIT TWO + /x33 DIGIT THREE + /x34 DIGIT FOUR + /x35 DIGIT FIVE + /x36 DIGIT SIX + /x37 DIGIT SEVEN + /x38 DIGIT EIGHT + /x39 DIGIT NINE + /x3A COLON + /x3B SEMICOLON + /x3C LESS-THAN SIGN + /x3D EQUALS SIGN + /x3E GREATER-THAN SIGN + /x3F QUESTION MARK + /x40 COMMERCIAL AT + /x5B LEFT SQUARE BRACKET + /x5C REVERSE SOLIDUS + /x5C REVERSE SOLIDUS + /x5D RIGHT SQUARE BRACKET + /x5E CIRCUMFLEX ACCENT + /x5E CIRCUMFLEX ACCENT + /x5F LOW LINE + /x5F LOW LINE + /x60 GRAVE ACCENT + /x7B LEFT CURLY BRACKET + /x7B LEFT CURLY BRACKET + /x7C VERTICAL LINE + /x7D RIGHT CURLY BRACKET + /x7D RIGHT CURLY BRACKET + /x7E TILDE +END CHARMAP + +" +! + mappingURL2_relativePathName ^ 'CP1251' ! ! @@ -18533,6 +19097,357 @@ !CharacterEncoder::MS_EastEuropean class methodsFor:'mapping'! +mapping +" +# From: http://std.dkuug.dk/i18n/charmaps/CP1250 + + CP1250 + % + / +% version: 1.0 +% repertoiremap: mnemonic,ds +% source: UNICODE 1.0 + +% alias MS-EE +CHARMAP + /x00 NULL (NUL) + /x01 START OF HEADING (SOH) + /x02 START OF TEXT (STX) + /x03 END OF TEXT (ETX) + /x04 END OF TRANSMISSION (EOT) + /x05 ENQUIRY (ENQ) + /x06 ACKNOWLEDGE (ACK) + /x07 BELL (BEL) + /x08 BACKSPACE (BS) + /x09 CHARACTER TABULATION (HT) + /x0A LINE FEED (LF) + /x0B LINE TABULATION (VT) + /x0C FORM FEED (FF) + /x0D CARRIAGE RETURN (CR) + /x0E SHIFT OUT (SO) + /x0F SHIFT IN (SI) +
/x10 DATALINK ESCAPE (DLE) + /x11 DEVICE CONTROL ONE (DC1) + /x12 DEVICE CONTROL TWO (DC2) + /x13 DEVICE CONTROL THREE (DC3) + /x14 DEVICE CONTROL FOUR (DC4) + /x15 NEGATIVE ACKNOWLEDGE (NAK) + /x16 SYNCHRONOUS IDLE (SYN) + /x17 END OF TRANSMISSION BLOCK (ETB) + /x18 CANCEL (CAN) + /x19 END OF MEDIUM (EM) + /x1A SUBSTITUTE (SUB) + /x1B ESCAPE (ESC) + /x1C FILE SEPARATOR (IS4) + /x1D GROUP SEPARATOR (IS3) + /x1E RECORD SEPARATOR (IS2) + /x1F UNIT SEPARATOR (IS1) + /x20 SPACE + /x21 EXCLAMATION MARK +<'> /x22 QUOTATION MARK + /x23 NUMBER SIGN + /x24 DOLLAR SIGN +<%> /x25 PERCENT SIGN +<&> /x26 AMPERSAND +<'> /x27 APOSTROPHE +<(> /x28 LEFT PARENTHESIS +<)> /x29 RIGHT PARENTHESIS +<*> /x2A ASTERISK +<+> /x2B PLUS SIGN +<,> /x2C COMMA +<-> /x2D HYPHEN-MINUS +<.> /x2E FULL STOP + /x2F SOLIDUS +<0> /x30 DIGIT ZERO +<1> /x31 DIGIT ONE +<2> /x32 DIGIT TWO +<3> /x33 DIGIT THREE +<4> /x34 DIGIT FOUR +<5> /x35 DIGIT FIVE +<6> /x36 DIGIT SIX +<7> /x37 DIGIT SEVEN +<8> /x38 DIGIT EIGHT +<9> /x39 DIGIT NINE +<:> /x3A COLON +<;> /x3B SEMICOLON +<<> /x3C LESS-THAN SIGN +<=> /x3D EQUALS SIGN +> /x3E GREATER-THAN SIGN + /x3F QUESTION MARK + /x40 COMMERCIAL AT + /x41 LATIN CAPITAL LETTER A + /x42 LATIN CAPITAL LETTER B + /x43 LATIN CAPITAL LETTER C + /x44 LATIN CAPITAL LETTER D + /x45 LATIN CAPITAL LETTER E + /x46 LATIN CAPITAL LETTER F + /x47 LATIN CAPITAL LETTER G + /x48 LATIN CAPITAL LETTER H + /x49 LATIN CAPITAL LETTER I + /x4A LATIN CAPITAL LETTER J + /x4B LATIN CAPITAL LETTER K + /x4C LATIN CAPITAL LETTER L + /x4D LATIN CAPITAL LETTER M + /x4E LATIN CAPITAL LETTER N + /x4F LATIN CAPITAL LETTER O +

/x70 LATIN SMALL LETTER P + /x71 LATIN SMALL LETTER Q + /x72 LATIN SMALL LETTER R + /x73 LATIN SMALL LETTER S + /x74 LATIN SMALL LETTER T + /x75 LATIN SMALL LETTER U + /x76 LATIN SMALL LETTER V + /x77 LATIN SMALL LETTER W + /x78 LATIN SMALL LETTER X + /x79 LATIN SMALL LETTER Y + /x7A LATIN SMALL LETTER Z +<(!!> /x7B LEFT CURLY BRACKET + /x7C VERTICAL LINE + /x7D RIGHT CURLY BRACKET +<'?> /x7E TILDE +

/x7F DELETE (DEL) +<.9> /x82 SINGLE LOW-9 QUOTATION MARK +<:9> /x84 DOUBLE LOW-9 QUOTATION MARK +<.3> /x85 HORIZONTAL ELLIPSIS + /x86 DAGGER + /x87 DOUBLE DAGGER +<%0> /x89 PER MILLE SIGN + /x8A LATIN CAPITAL LETTER S WITH CARON +<<1> /x8B SINGLE LEFT-POINTING ANGLE QUOTATION MARK + /x8C LATIN CAPITAL LETTER S WITH ACUTE + /x8D LATIN CAPITAL LETTER T WITH CARON + /x8E LATIN CAPITAL LETTER Z WITH CARON + /x8F LATIN CAPITAL LETTER Z WITH ACUTE +<'6> /x91 LEFT SINGLE QUOTATION MARK +<'9> /x92 RIGHT SINGLE QUOTATION MARK +<'6> /x93 LEFT DOUBLE QUOTATION MARK +<'9> /x94 RIGHT DOUBLE QUOTATION MARK + /x95 BULLET +<-N> /x96 EN DASH +<-M> /x97 EM DASH + /x99 TRADE MARK SIGN + /x9A LATIN SMALL LETTER S WITH CARON +1> /x9B SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + /x9C LATIN SMALL LETTER S WITH ACUTE + /x9D LATIN SMALL LETTER T WITH CARON + /x9E LATIN SMALL LETTER Z WITH CARON + /x9F LATIN SMALL LETTER Z WITH ACUTE + /xA0 NO-BREAK SPACE +<'<> /xA1 CARON (Mandarin Chinese third tone) +<'(> /xA2 BREVE + /xA3 LATIN CAPITAL LETTER L WITH STROKE + /xA4 CURRENCY SIGN + /xA5 LATIN CAPITAL LETTER A WITH OGONEK + /xA6 BROKEN BAR + /xA7 SECTION SIGN +<':> /xA8 DIAERESIS + /xA9 COPYRIGHT SIGN + /xAA LATIN CAPITAL LETTER S WITH CEDILLA +<<<> /xAB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + /xAC NOT SIGN +<--> /xAD SOFT HYPHEN + /xAE REGISTERED SIGN + /xAF LATIN CAPITAL LETTER Z WITH DOT ABOVE + /xB0 DEGREE SIGN +<+-> /xB1 PLUS-MINUS SIGN +<';> /xB2 OGONEK + /xB3 LATIN SMALL LETTER L WITH STROKE +<''> /xB4 ACUTE ACCENT + /xB5 MICRO SIGN + /xB6 PILCROW SIGN +<.M> /xB7 MIDDLE DOT +<',> /xB8 CEDILLA + /xB9 LATIN SMALL LETTER A WITH OGONEK + /xBA LATIN SMALL LETTER S WITH CEDILLA +/>> /xBB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + /xBC LATIN CAPITAL LETTER L WITH CARON +<''> /xBD DOUBLE ACUTE ACCENT + /xBE LATIN SMALL LETTER L WITH CARON + /xBF LATIN SMALL LETTER Z WITH DOT ABOVE + /xC0 LATIN CAPITAL LETTER R WITH ACUTE + /xC1 LATIN CAPITAL LETTER A WITH ACUTE +> /xC2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX + /xC3 LATIN CAPITAL LETTER A WITH BREVE + /xC4 LATIN CAPITAL LETTER A WITH DIAERESIS + /xC5 LATIN CAPITAL LETTER L WITH ACUTE + /xC6 LATIN CAPITAL LETTER C WITH ACUTE + /xC7 LATIN CAPITAL LETTER C WITH CEDILLA + /xC8 LATIN CAPITAL LETTER C WITH CARON + /xC9 LATIN CAPITAL LETTER E WITH ACUTE + /xCA LATIN CAPITAL LETTER E WITH OGONEK + /xCB LATIN CAPITAL LETTER E WITH DIAERESIS + /xCC LATIN CAPITAL LETTER E WITH CARON + /xCD LATIN CAPITAL LETTER I WITH ACUTE +> /xCE LATIN CAPITAL LETTER I WITH CIRCUMFLEX + /xCF LATIN CAPITAL LETTER D WITH CARON + /xD0 LATIN CAPITAL LETTER D WITH STROKE + /xD1 LATIN CAPITAL LETTER N WITH ACUTE + /xD2 LATIN CAPITAL LETTER N WITH CARON + /xD3 LATIN CAPITAL LETTER O WITH ACUTE +> /xD4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX + /xD5 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE + /xD6 LATIN CAPITAL LETTER O WITH DIAERESIS +<*X> /xD7 MULTIPLICATION SIGN + /xD8 LATIN CAPITAL LETTER R WITH CARON + /xD9 LATIN CAPITAL LETTER U WITH RING ABOVE + /xDA LATIN CAPITAL LETTER U WITH ACUTE + /xDB LATIN CAPITAL LETTER U WITH DOUBLE ACUTE + /xDC LATIN CAPITAL LETTER U WITH DIAERESIS + /xDD LATIN CAPITAL LETTER Y WITH ACUTE + /xDE LATIN CAPITAL LETTER T WITH CEDILLA + /xDF LATIN SMALL LETTER SHARP S (German) + /xE0 LATIN SMALL LETTER R WITH ACUTE + /xE1 LATIN SMALL LETTER A WITH ACUTE +> /xE2 LATIN SMALL LETTER A WITH CIRCUMFLEX + /xE3 LATIN SMALL LETTER A WITH BREVE + /xE4 LATIN SMALL LETTER A WITH DIAERESIS + /xE5 LATIN SMALL LETTER L WITH ACUTE + /xE6 LATIN SMALL LETTER C WITH ACUTE + /xE7 LATIN SMALL LETTER C WITH CEDILLA + /xE8 LATIN SMALL LETTER C WITH CARON + /xE9 LATIN SMALL LETTER E WITH ACUTE + /xEA LATIN SMALL LETTER E WITH OGONEK + /xEB LATIN SMALL LETTER E WITH DIAERESIS + /xEC LATIN SMALL LETTER E WITH CARON + /xED LATIN SMALL LETTER I WITH ACUTE +> /xEE LATIN SMALL LETTER I WITH CIRCUMFLEX + /xEF LATIN SMALL LETTER D WITH CARON + /xF0 LATIN SMALL LETTER D WITH STROKE + /xF1 LATIN SMALL LETTER N WITH ACUTE + /xF2 LATIN SMALL LETTER N WITH CARON + /xF3 LATIN SMALL LETTER O WITH ACUTE +> /xF4 LATIN SMALL LETTER O WITH CIRCUMFLEX + /xF5 LATIN SMALL LETTER O WITH DOUBLE ACUTE + /xF6 LATIN SMALL LETTER O WITH DIAERESIS +<-:> /xF7 DIVISION SIGN + /xF8 LATIN SMALL LETTER R WITH CARON + /xF9 LATIN SMALL LETTER U WITH RING ABOVE + /xFA LATIN SMALL LETTER U WITH ACUTE + /xFB LATIN SMALL LETTER U WITH DOUBLE ACUTE + /xFC LATIN SMALL LETTER U WITH DIAERESIS + /xFD LATIN SMALL LETTER Y WITH ACUTE + /xFE LATIN SMALL LETTER T WITH CEDILLA +<'.> /xFF DOT ABOVE (Mandarin Chinese light tone) + /x00 NUL + /x01 START OF HEADING (SOH) + /x02 START OF TEXT (STX) + /x03 END OF TEXT (ETX) + /x04 END OF TRANSMISSION (EOT) + /x05 ENQUIRY (ENQ) + /x06 ACKNOWLEDGE (ACK) + /x07 BELL (BEL) + /x07 BELL (BEL) + /x08 BACKSPACE (BS) + /x09 CHARACTER TABULATION (HT) + /x0A LINE FEED (LF) + /x0B LINE TABULATION (VT) + /x0C FORM FEED (FF) + /x0D CARRIAGE RETURN (CR) + /x10 DATALINK ESCAPE (DLE) + /x11 DEVICE CONTROL ONE (DC1) + /x12 DEVICE CONTROL TWO (DC2) + /x13 DEVICE CONTROL THREE (DC3) + /x14 DEVICE CONTROL FOUR (DC4) + /x15 NEGATIVE ACKNOWLEDGE (NAK) + /x16 SYNCHRONOUS IDLE (SYN) + /x17 END OF TRANSMISSION BLOCK (ETB) + /x18 CANCEL (CAN) + /x1A SUBSTITUTE (SUB) + /x1B ESCAPE (ESC) + /x1C FILE SEPARATOR (IS4) + /x1D GROUP SEPARATOR (IS3) + /x1D GROUP SEPARATOR (IS3) + /x1E RECORD SEPARATOR (IS2) + /x1F UNIT SEPARATOR (IS1) + /x7F DELETE (DEL) + /x20 SPACE + /x21 EXCLAMATION MARK + /x22 QUOTATION MARK + /x23 NUMBER SIGN + /x24 DOLLAR SIGN + /x25 PERCENT SIGN + /x26 AMPERSAND + /x27 APOSTROPHE + /x28 LEFT PARENTHESIS + /x29 RIGHT PARENTHESIS + /x2A ASTERISK + /x2B PLUS SIGN + /x2C COMMA + /x2D HYPHEN-MINUS + /x2D HYPHEN-MINUS + /x2E FULL STOP + /x2E FULL STOP + /x2F SOLIDUS + /x2F SOLIDUS + /x30 DIGIT ZERO + /x31 DIGIT ONE + /x32 DIGIT TWO + /x33 DIGIT THREE + /x34 DIGIT FOUR + /x35 DIGIT FIVE + /x36 DIGIT SIX + /x37 DIGIT SEVEN + /x38 DIGIT EIGHT + /x39 DIGIT NINE + /x3A COLON + /x3B SEMICOLON + /x3C LESS-THAN SIGN + /x3D EQUALS SIGN + /x3E GREATER-THAN SIGN + /x3F QUESTION MARK + /x40 COMMERCIAL AT + /x5B LEFT SQUARE BRACKET + /x5C REVERSE SOLIDUS + /x5C REVERSE SOLIDUS + /x5D RIGHT SQUARE BRACKET + /x5E CIRCUMFLEX ACCENT + /x5E CIRCUMFLEX ACCENT + /x5F LOW LINE + /x5F LOW LINE + /x60 GRAVE ACCENT + /x7B LEFT CURLY BRACKET + /x7B LEFT CURLY BRACKET + /x7C VERTICAL LINE + /x7D RIGHT CURLY BRACKET + /x7D RIGHT CURLY BRACKET + /x7E TILDE +END CHARMAP + +" +! + mappingURL2_relativePathName ^ 'CP1250' ! ! @@ -18545,6 +19460,345 @@ !CharacterEncoder::MS_Greek class methodsFor:'mapping'! +mapping +" +# From: http://std.dkuug.dk/i18n/charmaps/CP1253 + + CP1253 + % + / +% version: 1.0 +% repertoiremap: mnemonic,ds +% source: UNICODE 1.0 + +% alias MS-GREEK +CHARMAP + /x00 NULL (NUL) + /x01 START OF HEADING (SOH) + /x02 START OF TEXT (STX) + /x03 END OF TEXT (ETX) + /x04 END OF TRANSMISSION (EOT) + /x05 ENQUIRY (ENQ) + /x06 ACKNOWLEDGE (ACK) + /x07 BELL (BEL) + /x08 BACKSPACE (BS) + /x09 CHARACTER TABULATION (HT) + /x0A LINE FEED (LF) + /x0B LINE TABULATION (VT) + /x0C FORM FEED (FF) + /x0D CARRIAGE RETURN (CR) + /x0E SHIFT OUT (SO) + /x0F SHIFT IN (SI) +
/x10 DATALINK ESCAPE (DLE) + /x11 DEVICE CONTROL ONE (DC1) + /x12 DEVICE CONTROL TWO (DC2) + /x13 DEVICE CONTROL THREE (DC3) + /x14 DEVICE CONTROL FOUR (DC4) + /x15 NEGATIVE ACKNOWLEDGE (NAK) + /x16 SYNCHRONOUS IDLE (SYN) + /x17 END OF TRANSMISSION BLOCK (ETB) + /x18 CANCEL (CAN) + /x19 END OF MEDIUM (EM) + /x1A SUBSTITUTE (SUB) + /x1B ESCAPE (ESC) + /x1C FILE SEPARATOR (IS4) + /x1D GROUP SEPARATOR (IS3) + /x1E RECORD SEPARATOR (IS2) + /x1F UNIT SEPARATOR (IS1) + /x20 SPACE + /x21 EXCLAMATION MARK +<'> /x22 QUOTATION MARK + /x23 NUMBER SIGN + /x24 DOLLAR SIGN +<%> /x25 PERCENT SIGN +<&> /x26 AMPERSAND +<'> /x27 APOSTROPHE +<(> /x28 LEFT PARENTHESIS +<)> /x29 RIGHT PARENTHESIS +<*> /x2A ASTERISK +<+> /x2B PLUS SIGN +<,> /x2C COMMA +<-> /x2D HYPHEN-MINUS +<.> /x2E FULL STOP + /x2F SOLIDUS +<0> /x30 DIGIT ZERO +<1> /x31 DIGIT ONE +<2> /x32 DIGIT TWO +<3> /x33 DIGIT THREE +<4> /x34 DIGIT FOUR +<5> /x35 DIGIT FIVE +<6> /x36 DIGIT SIX +<7> /x37 DIGIT SEVEN +<8> /x38 DIGIT EIGHT +<9> /x39 DIGIT NINE +<:> /x3A COLON +<;> /x3B SEMICOLON +<<> /x3C LESS-THAN SIGN +<=> /x3D EQUALS SIGN +> /x3E GREATER-THAN SIGN + /x3F QUESTION MARK + /x40 COMMERCIAL AT + /x41 LATIN CAPITAL LETTER A + /x42 LATIN CAPITAL LETTER B + /x43 LATIN CAPITAL LETTER C + /x44 LATIN CAPITAL LETTER D + /x45 LATIN CAPITAL LETTER E + /x46 LATIN CAPITAL LETTER F + /x47 LATIN CAPITAL LETTER G + /x48 LATIN CAPITAL LETTER H + /x49 LATIN CAPITAL LETTER I + /x4A LATIN CAPITAL LETTER J + /x4B LATIN CAPITAL LETTER K + /x4C LATIN CAPITAL LETTER L + /x4D LATIN CAPITAL LETTER M + /x4E LATIN CAPITAL LETTER N + /x4F LATIN CAPITAL LETTER O +

/x70 LATIN SMALL LETTER P + /x71 LATIN SMALL LETTER Q + /x72 LATIN SMALL LETTER R + /x73 LATIN SMALL LETTER S + /x74 LATIN SMALL LETTER T + /x75 LATIN SMALL LETTER U + /x76 LATIN SMALL LETTER V + /x77 LATIN SMALL LETTER W + /x78 LATIN SMALL LETTER X + /x79 LATIN SMALL LETTER Y + /x7A LATIN SMALL LETTER Z +<(!!> /x7B LEFT CURLY BRACKET + /x7C VERTICAL LINE + /x7D RIGHT CURLY BRACKET +<'?> /x7E TILDE +

/x7F DELETE (DEL) +<.9> /x82 SINGLE LOW-9 QUOTATION MARK + /x83 LATIN SMALL LETTER F WITH HOOK +<:9> /x84 DOUBLE LOW-9 QUOTATION MARK +<.3> /x85 HORIZONTAL ELLIPSIS + /x86 DAGGER + /x87 DOUBLE DAGGER +<%0> /x89 PER MILLE SIGN +<<1> /x8B SINGLE LEFT-POINTING ANGLE QUOTATION MARK +<'6> /x91 LEFT SINGLE QUOTATION MARK +<'9> /x92 RIGHT SINGLE QUOTATION MARK +<'6> /x93 LEFT DOUBLE QUOTATION MARK +<'9> /x94 RIGHT DOUBLE QUOTATION MARK + /x95 BULLET +<-N> /x96 EN DASH +<-M> /x97 EM DASH + /x99 TRADE MARK SIGN +1> /x9B SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + /xA0 NO-BREAK SPACE +<'%> /xA1 GREEK DIALYTIKA TONOS + /xA2 GREEK CAPITAL LETTER ALPHA WITH TONOS + /xA3 POUND SIGN + /xA4 CURRENCY SIGN + /xA5 YEN SIGN + /xA6 BROKEN BAR + /xA7 SECTION SIGN +<':> /xA8 DIAERESIS + /xA9 COPYRIGHT SIGN +<<<> /xAB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + /xAC NOT SIGN +<--> /xAD SOFT HYPHEN + /xAE REGISTERED SIGN +<-3> /xAF HORIZONTAL BAR + /xB0 DEGREE SIGN +<+-> /xB1 PLUS-MINUS SIGN +<2S> /xB2 SUPERSCRIPT TWO +<3S> /xB3 SUPERSCRIPT THREE +<'*> /xB4 GREEK TONOS + /xB5 MICRO SIGN + /xB6 PILCROW SIGN +<.M> /xB7 MIDDLE DOT + /xB8 GREEK CAPITAL LETTER EPSILON WITH TONOS + /xB9 GREEK CAPITAL LETTER ETA WITH TONOS + /xBA GREEK CAPITAL LETTER IOTA WITH TONOS +/>> /xBB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + /xBC GREEK CAPITAL LETTER OMICRON WITH TONOS +<12> /xBD VULGAR FRACTION ONE HALF + /xBE GREEK CAPITAL LETTER UPSILON WITH TONOS + /xBF GREEK CAPITAL LETTER OMEGA WITH TONOS + /xC0 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS + /xC1 GREEK CAPITAL LETTER ALPHA + /xC2 GREEK CAPITAL LETTER BETA + /xC3 GREEK CAPITAL LETTER GAMMA + /xC4 GREEK CAPITAL LETTER DELTA + /xC5 GREEK CAPITAL LETTER EPSILON + /xC6 GREEK CAPITAL LETTER ZETA + /xC7 GREEK CAPITAL LETTER ETA + /xC8 GREEK CAPITAL LETTER THETA + /xC9 GREEK CAPITAL LETTER IOTA + /xCA GREEK CAPITAL LETTER KAPPA + /xCB GREEK CAPITAL LETTER LAMDA + /xCC GREEK CAPITAL LETTER MU + /xCD GREEK CAPITAL LETTER NU + /xCE GREEK CAPITAL LETTER XI + /xCF GREEK CAPITAL LETTER OMICRON + /xD0 GREEK CAPITAL LETTER PI + /xD1 GREEK CAPITAL LETTER RHO + /xD3 GREEK CAPITAL LETTER SIGMA + /xD4 GREEK CAPITAL LETTER TAU + /xD5 GREEK CAPITAL LETTER UPSILON + /xD6 GREEK CAPITAL LETTER PHI + /xD7 GREEK CAPITAL LETTER CHI + /xD8 GREEK CAPITAL LETTER PSI + /xD9 GREEK CAPITAL LETTER OMEGA + /xDA GREEK CAPITAL LETTER IOTA WITH DIALYTIKA + /xDB GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA + /xDC GREEK SMALL LETTER ALPHA WITH TONOS + /xDD GREEK SMALL LETTER EPSILON WITH TONOS + /xDE GREEK SMALL LETTER ETA WITH TONOS + /xDF GREEK SMALL LETTER IOTA WITH TONOS + /xE0 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS + /xE1 GREEK SMALL LETTER ALPHA + /xE2 GREEK SMALL LETTER BETA + /xE3 GREEK SMALL LETTER GAMMA + /xE4 GREEK SMALL LETTER DELTA + /xE5 GREEK SMALL LETTER EPSILON + /xE6 GREEK SMALL LETTER ZETA + /xE7 GREEK SMALL LETTER ETA + /xE8 GREEK SMALL LETTER THETA + /xE9 GREEK SMALL LETTER IOTA + /xEA GREEK SMALL LETTER KAPPA + /xEB GREEK SMALL LETTER LAMDA + /xEC GREEK SMALL LETTER MU + /xED GREEK SMALL LETTER NU + /xEE GREEK SMALL LETTER XI + /xEF GREEK SMALL LETTER OMICRON + /xF0 GREEK SMALL LETTER PI + /xF1 GREEK SMALL LETTER RHO +<*s> /xF2 GREEK SMALL LETTER FINAL SIGMA + /xF3 GREEK SMALL LETTER SIGMA + /xF4 GREEK SMALL LETTER TAU + /xF5 GREEK SMALL LETTER UPSILON + /xF6 GREEK SMALL LETTER PHI + /xF7 GREEK SMALL LETTER CHI + /xF8 GREEK SMALL LETTER PSI + /xF9 GREEK SMALL LETTER OMEGA + /xFA GREEK SMALL LETTER IOTA WITH DIALYTIKA + /xFB GREEK SMALL LETTER UPSILON WITH DIALYTIKA + /xFC GREEK SMALL LETTER OMICRON WITH TONOS + /xFD GREEK SMALL LETTER UPSILON WITH TONOS + /xFE GREEK SMALL LETTER OMEGA WITH TONOS + /x00 NUL + /x01 START OF HEADING (SOH) + /x02 START OF TEXT (STX) + /x03 END OF TEXT (ETX) + /x04 END OF TRANSMISSION (EOT) + /x05 ENQUIRY (ENQ) + /x06 ACKNOWLEDGE (ACK) + /x07 BELL (BEL) + /x07 BELL (BEL) + /x08 BACKSPACE (BS) + /x09 CHARACTER TABULATION (HT) + /x0A LINE FEED (LF) + /x0B LINE TABULATION (VT) + /x0C FORM FEED (FF) + /x0D CARRIAGE RETURN (CR) + /x10 DATALINK ESCAPE (DLE) + /x11 DEVICE CONTROL ONE (DC1) + /x12 DEVICE CONTROL TWO (DC2) + /x13 DEVICE CONTROL THREE (DC3) + /x14 DEVICE CONTROL FOUR (DC4) + /x15 NEGATIVE ACKNOWLEDGE (NAK) + /x16 SYNCHRONOUS IDLE (SYN) + /x17 END OF TRANSMISSION BLOCK (ETB) + /x18 CANCEL (CAN) + /x1A SUBSTITUTE (SUB) + /x1B ESCAPE (ESC) + /x1C FILE SEPARATOR (IS4) + /x1D GROUP SEPARATOR (IS3) + /x1D GROUP SEPARATOR (IS3) + /x1E RECORD SEPARATOR (IS2) + /x1F UNIT SEPARATOR (IS1) + /x7F DELETE (DEL) + /x20 SPACE + /x21 EXCLAMATION MARK + /x22 QUOTATION MARK + /x23 NUMBER SIGN + /x24 DOLLAR SIGN + /x25 PERCENT SIGN + /x26 AMPERSAND + /x27 APOSTROPHE + /x28 LEFT PARENTHESIS + /x29 RIGHT PARENTHESIS + /x2A ASTERISK + /x2B PLUS SIGN + /x2C COMMA + /x2D HYPHEN-MINUS + /x2D HYPHEN-MINUS + /x2E FULL STOP + /x2E FULL STOP + /x2F SOLIDUS + /x2F SOLIDUS + /x30 DIGIT ZERO + /x31 DIGIT ONE + /x32 DIGIT TWO + /x33 DIGIT THREE + /x34 DIGIT FOUR + /x35 DIGIT FIVE + /x36 DIGIT SIX + /x37 DIGIT SEVEN + /x38 DIGIT EIGHT + /x39 DIGIT NINE + /x3A COLON + /x3B SEMICOLON + /x3C LESS-THAN SIGN + /x3D EQUALS SIGN + /x3E GREATER-THAN SIGN + /x3F QUESTION MARK + /x40 COMMERCIAL AT + /x5B LEFT SQUARE BRACKET + /x5C REVERSE SOLIDUS + /x5C REVERSE SOLIDUS + /x5D RIGHT SQUARE BRACKET + /x5E CIRCUMFLEX ACCENT + /x5E CIRCUMFLEX ACCENT + /x5F LOW LINE + /x5F LOW LINE + /x60 GRAVE ACCENT + /x7B LEFT CURLY BRACKET + /x7B LEFT CURLY BRACKET + /x7C VERTICAL LINE + /x7D RIGHT CURLY BRACKET + /x7D RIGHT CURLY BRACKET + /x7E TILDE +END CHARMAP + +" +! + mappingURL2_relativePathName ^ 'CP1253' ! ! @@ -18557,6 +19811,312 @@ !CharacterEncoder::MS_Hebrew class methodsFor:'mapping'! +mapping +" +# From: http://std.dkuug.dk/i18n/charmaps/CP1255 + + CP1255 + % + / +% version: 1.0 +% repertoiremap: mnemonic,ds +% source: UNICODE 1.0 + +% alias MS-HEBR +CHARMAP + /x00 NULL (NUL) + /x01 START OF HEADING (SOH) + /x02 START OF TEXT (STX) + /x03 END OF TEXT (ETX) + /x04 END OF TRANSMISSION (EOT) + /x05 ENQUIRY (ENQ) + /x06 ACKNOWLEDGE (ACK) + /x07 BELL (BEL) + /x08 BACKSPACE (BS) + /x09 CHARACTER TABULATION (HT) + /x0A LINE FEED (LF) + /x0B LINE TABULATION (VT) + /x0C FORM FEED (FF) + /x0D CARRIAGE RETURN (CR) + /x0E SHIFT OUT (SO) + /x0F SHIFT IN (SI) +
/x10 DATALINK ESCAPE (DLE) + /x11 DEVICE CONTROL ONE (DC1) + /x12 DEVICE CONTROL TWO (DC2) + /x13 DEVICE CONTROL THREE (DC3) + /x14 DEVICE CONTROL FOUR (DC4) + /x15 NEGATIVE ACKNOWLEDGE (NAK) + /x16 SYNCHRONOUS IDLE (SYN) + /x17 END OF TRANSMISSION BLOCK (ETB) + /x18 CANCEL (CAN) + /x19 END OF MEDIUM (EM) + /x1A SUBSTITUTE (SUB) + /x1B ESCAPE (ESC) + /x1C FILE SEPARATOR (IS4) + /x1D GROUP SEPARATOR (IS3) + /x1E RECORD SEPARATOR (IS2) + /x1F UNIT SEPARATOR (IS1) + /x20 SPACE + /x21 EXCLAMATION MARK +<'> /x22 QUOTATION MARK + /x23 NUMBER SIGN + /x24 DOLLAR SIGN +<%> /x25 PERCENT SIGN +<&> /x26 AMPERSAND +<'> /x27 APOSTROPHE +<(> /x28 LEFT PARENTHESIS +<)> /x29 RIGHT PARENTHESIS +<*> /x2A ASTERISK +<+> /x2B PLUS SIGN +<,> /x2C COMMA +<-> /x2D HYPHEN-MINUS +<.> /x2E FULL STOP + /x2F SOLIDUS +<0> /x30 DIGIT ZERO +<1> /x31 DIGIT ONE +<2> /x32 DIGIT TWO +<3> /x33 DIGIT THREE +<4> /x34 DIGIT FOUR +<5> /x35 DIGIT FIVE +<6> /x36 DIGIT SIX +<7> /x37 DIGIT SEVEN +<8> /x38 DIGIT EIGHT +<9> /x39 DIGIT NINE +<:> /x3A COLON +<;> /x3B SEMICOLON +<<> /x3C LESS-THAN SIGN +<=> /x3D EQUALS SIGN +> /x3E GREATER-THAN SIGN + /x3F QUESTION MARK + /x40 COMMERCIAL AT + /x41 LATIN CAPITAL LETTER A + /x42 LATIN CAPITAL LETTER B + /x43 LATIN CAPITAL LETTER C + /x44 LATIN CAPITAL LETTER D + /x45 LATIN CAPITAL LETTER E + /x46 LATIN CAPITAL LETTER F + /x47 LATIN CAPITAL LETTER G + /x48 LATIN CAPITAL LETTER H + /x49 LATIN CAPITAL LETTER I + /x4A LATIN CAPITAL LETTER J + /x4B LATIN CAPITAL LETTER K + /x4C LATIN CAPITAL LETTER L + /x4D LATIN CAPITAL LETTER M + /x4E LATIN CAPITAL LETTER N + /x4F LATIN CAPITAL LETTER O +

/x70 LATIN SMALL LETTER P + /x71 LATIN SMALL LETTER Q + /x72 LATIN SMALL LETTER R + /x73 LATIN SMALL LETTER S + /x74 LATIN SMALL LETTER T + /x75 LATIN SMALL LETTER U + /x76 LATIN SMALL LETTER V + /x77 LATIN SMALL LETTER W + /x78 LATIN SMALL LETTER X + /x79 LATIN SMALL LETTER Y + /x7A LATIN SMALL LETTER Z +<(!!> /x7B LEFT CURLY BRACKET + /x7C VERTICAL LINE + /x7D RIGHT CURLY BRACKET +<'?> /x7E TILDE +

/x7F DELETE (DEL) +<.9> /x82 SINGLE LOW-9 QUOTATION MARK + /x83 LATIN SMALL LETTER F WITH HOOK +<:9> /x84 DOUBLE LOW-9 QUOTATION MARK +<.3> /x85 HORIZONTAL ELLIPSIS + /x86 DAGGER + /x87 DOUBLE DAGGER +<%0> /x89 PER MILLE SIGN +<<1> /x8B SINGLE LEFT-POINTING ANGLE QUOTATION MARK +<'6> /x91 LEFT SINGLE QUOTATION MARK +<'9> /x92 RIGHT SINGLE QUOTATION MARK +<'6> /x93 LEFT DOUBLE QUOTATION MARK +<'9> /x94 RIGHT DOUBLE QUOTATION MARK + /x95 BULLET +<-N> /x96 EN DASH +<-M> /x97 EM DASH + /x99 TRADE MARK SIGN +1> /x9B SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + /xA0 NO-BREAK SPACE + /xA2 CENT SIGN + /xA3 POUND SIGN + /xA4 CURRENCY SIGN + /xA5 YEN SIGN + /xA6 BROKEN BAR + /xA7 SECTION SIGN +<':> /xA8 DIAERESIS + /xA9 COPYRIGHT SIGN +<*X> /xAA MULTIPLICATION SIGN +<<<> /xAB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + /xAC NOT SIGN +<--> /xAD SOFT HYPHEN + /xAE REGISTERED SIGN +<'-> /xAF OVERLINE + /xB0 DEGREE SIGN +<+-> /xB1 PLUS-MINUS SIGN +<2S> /xB2 SUPERSCRIPT TWO +<3S> /xB3 SUPERSCRIPT THREE +<''> /xB4 ACUTE ACCENT + /xB5 MICRO SIGN + /xB6 PILCROW SIGN +<.M> /xB7 MIDDLE DOT +<',> /xB8 CEDILLA +<1S> /xB9 SUPERSCRIPT ONE +<-:> /xBA DIVISION SIGN +/>> /xBB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +<14> /xBC VULGAR FRACTION ONE QUARTER +<12> /xBD VULGAR FRACTION ONE HALF +<34> /xBE VULGAR FRACTION THREE QUARTERS +<=2> /xDF DOUBLE LOW LINE + /xE0 HEBREW LETTER ALEF + /xE1 HEBREW LETTER BET + /xE2 HEBREW LETTER GIMEL + /xE3 HEBREW LETTER DALET + /xE4 HEBREW LETTER HE + /xE5 HEBREW LETTER VAV + /xE6 HEBREW LETTER ZAYIN + /xE7 HEBREW LETTER HET + /xE8 HEBREW LETTER TET + /xE9 HEBREW LETTER YOD + /xEA HEBREW LETTER FINAL KAF + /xEB HEBREW LETTER KAF + /xEC HEBREW LETTER LAMED + /xED HEBREW LETTER FINAL MEM + /xEE HEBREW LETTER MEM + /xEF HEBREW LETTER FINAL NUN + /xF0 HEBREW LETTER NUN + /xF1 HEBREW LETTER SAMEKH + /xF2 HEBREW LETTER AYIN + /xF3 HEBREW LETTER FINAL PE + /xF4 HEBREW LETTER PE + /xF5 HEBREW LETTER FINAL TSADI + /xF6 HEBREW LETTER TSADI + /xF7 HEBREW LETTER QOF + /xF8 HEBREW LETTER RESH + /xF9 HEBREW LETTER SHIN + /xFA HEBREW LETTER TAV + /xFD LEFT-TO-RIGHT MARK + /xFE RIGHT-TO-LEFT MARK + /x00 NUL + /x01 START OF HEADING (SOH) + /x02 START OF TEXT (STX) + /x03 END OF TEXT (ETX) + /x04 END OF TRANSMISSION (EOT) + /x05 ENQUIRY (ENQ) + /x06 ACKNOWLEDGE (ACK) + /x07 BELL (BEL) + /x07 BELL (BEL) + /x08 BACKSPACE (BS) + /x09 CHARACTER TABULATION (HT) + /x0A LINE FEED (LF) + /x0B LINE TABULATION (VT) + /x0C FORM FEED (FF) + /x0D CARRIAGE RETURN (CR) + /x10 DATALINK ESCAPE (DLE) + /x11 DEVICE CONTROL ONE (DC1) + /x12 DEVICE CONTROL TWO (DC2) + /x13 DEVICE CONTROL THREE (DC3) + /x14 DEVICE CONTROL FOUR (DC4) + /x15 NEGATIVE ACKNOWLEDGE (NAK) + /x16 SYNCHRONOUS IDLE (SYN) + /x17 END OF TRANSMISSION BLOCK (ETB) + /x18 CANCEL (CAN) + /x1A SUBSTITUTE (SUB) + /x1B ESCAPE (ESC) + /x1C FILE SEPARATOR (IS4) + /x1D GROUP SEPARATOR (IS3) + /x1D GROUP SEPARATOR (IS3) + /x1E RECORD SEPARATOR (IS2) + /x1F UNIT SEPARATOR (IS1) + /x7F DELETE (DEL) + /x20 SPACE + /x21 EXCLAMATION MARK + /x22 QUOTATION MARK + /x23 NUMBER SIGN + /x24 DOLLAR SIGN + /x25 PERCENT SIGN + /x26 AMPERSAND + /x27 APOSTROPHE + /x28 LEFT PARENTHESIS + /x29 RIGHT PARENTHESIS + /x2A ASTERISK + /x2B PLUS SIGN + /x2C COMMA + /x2D HYPHEN-MINUS + /x2D HYPHEN-MINUS + /x2E FULL STOP + /x2E FULL STOP + /x2F SOLIDUS + /x2F SOLIDUS + /x30 DIGIT ZERO + /x31 DIGIT ONE + /x32 DIGIT TWO + /x33 DIGIT THREE + /x34 DIGIT FOUR + /x35 DIGIT FIVE + /x36 DIGIT SIX + /x37 DIGIT SEVEN + /x38 DIGIT EIGHT + /x39 DIGIT NINE + /x3A COLON + /x3B SEMICOLON + /x3C LESS-THAN SIGN + /x3D EQUALS SIGN + /x3E GREATER-THAN SIGN + /x3F QUESTION MARK + /x40 COMMERCIAL AT + /x5B LEFT SQUARE BRACKET + /x5C REVERSE SOLIDUS + /x5C REVERSE SOLIDUS + /x5D RIGHT SQUARE BRACKET + /x5E CIRCUMFLEX ACCENT + /x5E CIRCUMFLEX ACCENT + /x5F LOW LINE + /x5F LOW LINE + /x60 GRAVE ACCENT + /x7B LEFT CURLY BRACKET + /x7B LEFT CURLY BRACKET + /x7C VERTICAL LINE + /x7D RIGHT CURLY BRACKET + /x7D RIGHT CURLY BRACKET + /x7E TILDE +END CHARMAP + +" +! + mappingURL2_relativePathName ^ 'CP1255' ! ! @@ -19618,7 +21178,7 @@ !CharacterEncoder class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoder.st,v 1.6 2004-02-11 13:54:00 cg Exp $' + ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoder.st,v 1.7 2004-02-11 15:22:02 cg Exp $' ! ! CharacterEncoder initialize!

/x50 LATIN CAPITAL LETTER P + /x51 LATIN CAPITAL LETTER Q + /x52 LATIN CAPITAL LETTER R + /x53 LATIN CAPITAL LETTER S + /x54 LATIN CAPITAL LETTER T + /x55 LATIN CAPITAL LETTER U + /x56 LATIN CAPITAL LETTER V + /x57 LATIN CAPITAL LETTER W + /x58 LATIN CAPITAL LETTER X + /x59 LATIN CAPITAL LETTER Y + /x5A LATIN CAPITAL LETTER Z +<<(> /x5B LEFT SQUARE BRACKET + /x5C REVERSE SOLIDUS +<)/>> /x5D RIGHT SQUARE BRACKET +<'/>> /x5E CIRCUMFLEX ACCENT +<_> /x5F LOW LINE +<'!!> /x60 GRAVE ACCENT + /x61 LATIN SMALL LETTER A + /x62 LATIN SMALL LETTER B + /x63 LATIN SMALL LETTER C + /x64 LATIN SMALL LETTER D + /x65 LATIN SMALL LETTER E + /x66 LATIN SMALL LETTER F + /x67 LATIN SMALL LETTER G + /x68 LATIN SMALL LETTER H + /x69 LATIN SMALL LETTER I + /x6A LATIN SMALL LETTER J + /x6B LATIN SMALL LETTER K + /x6C LATIN SMALL LETTER L + /x6D LATIN SMALL LETTER M + /x6E LATIN SMALL LETTER N + /x6F LATIN SMALL LETTER O +

/x50 LATIN CAPITAL LETTER P + /x51 LATIN CAPITAL LETTER Q + /x52 LATIN CAPITAL LETTER R + /x53 LATIN CAPITAL LETTER S + /x54 LATIN CAPITAL LETTER T + /x55 LATIN CAPITAL LETTER U + /x56 LATIN CAPITAL LETTER V + /x57 LATIN CAPITAL LETTER W + /x58 LATIN CAPITAL LETTER X + /x59 LATIN CAPITAL LETTER Y + /x5A LATIN CAPITAL LETTER Z +<<(> /x5B LEFT SQUARE BRACKET + /x5C REVERSE SOLIDUS +<)/>> /x5D RIGHT SQUARE BRACKET +<'/>> /x5E CIRCUMFLEX ACCENT +<_> /x5F LOW LINE +<'!!> /x60 GRAVE ACCENT + /x61 LATIN SMALL LETTER A + /x62 LATIN SMALL LETTER B + /x63 LATIN SMALL LETTER C + /x64 LATIN SMALL LETTER D + /x65 LATIN SMALL LETTER E + /x66 LATIN SMALL LETTER F + /x67 LATIN SMALL LETTER G + /x68 LATIN SMALL LETTER H + /x69 LATIN SMALL LETTER I + /x6A LATIN SMALL LETTER J + /x6B LATIN SMALL LETTER K + /x6C LATIN SMALL LETTER L + /x6D LATIN SMALL LETTER M + /x6E LATIN SMALL LETTER N + /x6F LATIN SMALL LETTER O +

/x50 LATIN CAPITAL LETTER P + /x51 LATIN CAPITAL LETTER Q + /x52 LATIN CAPITAL LETTER R + /x53 LATIN CAPITAL LETTER S + /x54 LATIN CAPITAL LETTER T + /x55 LATIN CAPITAL LETTER U + /x56 LATIN CAPITAL LETTER V + /x57 LATIN CAPITAL LETTER W + /x58 LATIN CAPITAL LETTER X + /x59 LATIN CAPITAL LETTER Y + /x5A LATIN CAPITAL LETTER Z +<<(> /x5B LEFT SQUARE BRACKET + /x5C REVERSE SOLIDUS +<)/>> /x5D RIGHT SQUARE BRACKET +<'/>> /x5E CIRCUMFLEX ACCENT +<_> /x5F LOW LINE +<'!!> /x60 GRAVE ACCENT + /x61 LATIN SMALL LETTER A + /x62 LATIN SMALL LETTER B + /x63 LATIN SMALL LETTER C + /x64 LATIN SMALL LETTER D + /x65 LATIN SMALL LETTER E + /x66 LATIN SMALL LETTER F + /x67 LATIN SMALL LETTER G + /x68 LATIN SMALL LETTER H + /x69 LATIN SMALL LETTER I + /x6A LATIN SMALL LETTER J + /x6B LATIN SMALL LETTER K + /x6C LATIN SMALL LETTER L + /x6D LATIN SMALL LETTER M + /x6E LATIN SMALL LETTER N + /x6F LATIN SMALL LETTER O +

/x50 LATIN CAPITAL LETTER P + /x51 LATIN CAPITAL LETTER Q + /x52 LATIN CAPITAL LETTER R + /x53 LATIN CAPITAL LETTER S + /x54 LATIN CAPITAL LETTER T + /x55 LATIN CAPITAL LETTER U + /x56 LATIN CAPITAL LETTER V + /x57 LATIN CAPITAL LETTER W + /x58 LATIN CAPITAL LETTER X + /x59 LATIN CAPITAL LETTER Y + /x5A LATIN CAPITAL LETTER Z +<<(> /x5B LEFT SQUARE BRACKET + /x5C REVERSE SOLIDUS +<)/>> /x5D RIGHT SQUARE BRACKET +<'/>> /x5E CIRCUMFLEX ACCENT +<_> /x5F LOW LINE +<'!!> /x60 GRAVE ACCENT + /x61 LATIN SMALL LETTER A + /x62 LATIN SMALL LETTER B + /x63 LATIN SMALL LETTER C + /x64 LATIN SMALL LETTER D + /x65 LATIN SMALL LETTER E + /x66 LATIN SMALL LETTER F + /x67 LATIN SMALL LETTER G + /x68 LATIN SMALL LETTER H + /x69 LATIN SMALL LETTER I + /x6A LATIN SMALL LETTER J + /x6B LATIN SMALL LETTER K + /x6C LATIN SMALL LETTER L + /x6D LATIN SMALL LETTER M + /x6E LATIN SMALL LETTER N + /x6F LATIN SMALL LETTER O +

/x50 LATIN CAPITAL LETTER P + /x51 LATIN CAPITAL LETTER Q + /x52 LATIN CAPITAL LETTER R + /x53 LATIN CAPITAL LETTER S + /x54 LATIN CAPITAL LETTER T + /x55 LATIN CAPITAL LETTER U + /x56 LATIN CAPITAL LETTER V + /x57 LATIN CAPITAL LETTER W + /x58 LATIN CAPITAL LETTER X + /x59 LATIN CAPITAL LETTER Y + /x5A LATIN CAPITAL LETTER Z +<<(> /x5B LEFT SQUARE BRACKET + /x5C REVERSE SOLIDUS +<)/>> /x5D RIGHT SQUARE BRACKET +<'/>> /x5E CIRCUMFLEX ACCENT +<_> /x5F LOW LINE +<'!!> /x60 GRAVE ACCENT + /x61 LATIN SMALL LETTER A + /x62 LATIN SMALL LETTER B + /x63 LATIN SMALL LETTER C + /x64 LATIN SMALL LETTER D + /x65 LATIN SMALL LETTER E + /x66 LATIN SMALL LETTER F + /x67 LATIN SMALL LETTER G + /x68 LATIN SMALL LETTER H + /x69 LATIN SMALL LETTER I + /x6A LATIN SMALL LETTER J + /x6B LATIN SMALL LETTER K + /x6C LATIN SMALL LETTER L + /x6D LATIN SMALL LETTER M + /x6E LATIN SMALL LETTER N + /x6F LATIN SMALL LETTER O +

/x50 LATIN CAPITAL LETTER P + /x51 LATIN CAPITAL LETTER Q + /x52 LATIN CAPITAL LETTER R + /x53 LATIN CAPITAL LETTER S + /x54 LATIN CAPITAL LETTER T + /x55 LATIN CAPITAL LETTER U + /x56 LATIN CAPITAL LETTER V + /x57 LATIN CAPITAL LETTER W + /x58 LATIN CAPITAL LETTER X + /x59 LATIN CAPITAL LETTER Y + /x5A LATIN CAPITAL LETTER Z +<<(> /x5B LEFT SQUARE BRACKET + /x5C REVERSE SOLIDUS +<)/>> /x5D RIGHT SQUARE BRACKET +<'/>> /x5E CIRCUMFLEX ACCENT +<_> /x5F LOW LINE +<'!!> /x60 GRAVE ACCENT + /x61 LATIN SMALL LETTER A + /x62 LATIN SMALL LETTER B + /x63 LATIN SMALL LETTER C + /x64 LATIN SMALL LETTER D + /x65 LATIN SMALL LETTER E + /x66 LATIN SMALL LETTER F + /x67 LATIN SMALL LETTER G + /x68 LATIN SMALL LETTER H + /x69 LATIN SMALL LETTER I + /x6A LATIN SMALL LETTER J + /x6B LATIN SMALL LETTER K + /x6C LATIN SMALL LETTER L + /x6D LATIN SMALL LETTER M + /x6E LATIN SMALL LETTER N + /x6F LATIN SMALL LETTER O +