--- a/CharacterEncoderImplementations__MS_Ansi.st Tue May 06 22:17:51 2008 +0200
+++ b/CharacterEncoderImplementations__MS_Ansi.st Wed May 07 16:46:49 2008 +0200
@@ -9,7 +9,6 @@
other person. No title to or ownership of the software is
hereby transferred.
"
-
"{ Package: 'stx:libbasic' }"
"{ NameSpace: CharacterEncoderImplementations }"
@@ -330,279 +329,294 @@
decode:codeArg
|code "{ Class: SmallInteger }"|
- code := codeArg.
- code <= 16r7F ifTrue:[ ^ code ].
- code > 16rFF ifTrue:[
- ^ codeArg.
- ].
- [
- |t|
- t := #(
- "16r0080" 16r0000 " invalid "
- "16r0081" 16r0000 " invalid "
- "16r0082" 16r201A " SINGLE LOW-9 QUOTATION MARK "
- "16r0083" 16r0192 " LATIN SMALL LETTER F WITH HOOK "
- "16r0084" 16r201E " DOUBLE LOW-9 QUOTATION MARK "
- "16r0085" 16r2026 " HORIZONTAL ELLIPSIS "
- "16r0086" 16r2020 " DAGGER "
- "16r0087" 16r2021 " DOUBLE DAGGER "
- "16r0088" 16r02C6 " MODIFIER LETTER CIRCUMFLEX ACCENT "
- "16r0089" 16r2030 " PER MILLE SIGN "
- "16r008A" 16r0160 " LATIN CAPITAL LETTER S WITH CARON "
- "16r008B" 16r2039 " SINGLE LEFT-POINTING ANGLE QUOTATION MARK "
- "16r008C" 16r0152 " LATIN CAPITAL LIGATURE OE "
- "16r008D" 16r0000 " invalid "
- "16r008E" 16r0000 " invalid "
- "16r008F" 16r0000 " invalid "
- "16r0090" 16r0000 " invalid "
- "16r0091" 16r2018 " LEFT SINGLE QUOTATION MARK "
- "16r0092" 16r2019 " RIGHT SINGLE QUOTATION MARK "
- "16r0093" 16r201C " LEFT DOUBLE QUOTATION MARK "
- "16r0094" 16r201D " RIGHT DOUBLE QUOTATION MARK "
- "16r0095" 16r2022 " BULLET "
- "16r0096" 16r2013 " EN DASH "
- "16r0097" 16r2014 " EM DASH "
- "16r0098" 16r02DC " SMALL TILDE "
- "16r0099" 16r2122 " TRADE MARK SIGN "
- "16r009A" 16r0161 " LATIN SMALL LETTER S WITH CARON "
- "16r009B" 16r203A " SINGLE RIGHT-POINTING ANGLE QUOTATION MARK "
- "16r009C" 16r0153 " LATIN SMALL LIGATURE OE "
- "16r009D" 16r0000 " invalid "
- "16r009E" 16r0000 " invalid "
- "16r009F" 16r0178 " LATIN CAPITAL LETTER Y WITH DIAERESIS "
- "16r00A0" 16r00A0 " NO-BREAK SPACE "
- "16r00A1" 16r00A1 " INVERTED EXCLAMATION MARK "
- "16r00A2" 16r00A2 " CENT SIGN "
- "16r00A3" 16r00A3 " POUND SIGN "
- "16r00A4" 16r00A4 " CURRENCY SIGN "
- "16r00A5" 16r00A5 " YEN SIGN "
- "16r00A6" 16r00A6 " BROKEN BAR "
- "16r00A7" 16r00A7 " SECTION SIGN "
- "16r00A8" 16r00A8 " DIAERESIS "
- "16r00A9" 16r00A9 " COPYRIGHT SIGN "
- "16r00AA" 16r00AA " FEMININE ORDINAL INDICATOR "
- "16r00AB" 16r00AB " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK "
- "16r00AC" 16r00AC " NOT SIGN "
- "16r00AD" 16r00AD " SOFT HYPHEN "
- "16r00AE" 16r00AE " REGISTERED SIGN "
- "16r00AF" 16r00AF " MACRON "
- "16r00B0" 16r00B0 " DEGREE SIGN "
- "16r00B1" 16r00B1 " PLUS-MINUS SIGN "
- "16r00B2" 16r00B2 " SUPERSCRIPT TWO "
- "16r00B3" 16r00B3 " SUPERSCRIPT THREE "
- "16r00B4" 16r00B4 " ACUTE ACCENT "
- "16r00B5" 16r00B5 " MICRO SIGN "
- "16r00B6" 16r00B6 " PILCROW SIGN "
- "16r00B7" 16r00B7 " MIDDLE DOT "
- "16r00B8" 16r00B8 " CEDILLA "
- "16r00B9" 16r00B9 " SUPERSCRIPT ONE "
- "16r00BA" 16r00BA " MASCULINE ORDINAL INDICATOR "
- "16r00BB" 16r00BB " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK "
- "16r00BC" 16r00BC " VULGAR FRACTION ONE QUARTER "
- "16r00BD" 16r00BD " VULGAR FRACTION ONE HALF "
- "16r00BE" 16r00BE " VULGAR FRACTION THREE QUARTERS "
- "16r00BF" 16r00BF " INVERTED QUESTION MARK "
- "16r00C0" 16r00C0 " LATIN CAPITAL LETTER A WITH GRAVE "
- "16r00C1" 16r00C1 " LATIN CAPITAL LETTER A WITH ACUTE "
- "16r00C2" 16r00C2 " LATIN CAPITAL LETTER A WITH CIRCUMFLEX "
- "16r00C3" 16r00C3 " LATIN CAPITAL LETTER A WITH TILDE "
- "16r00C4" 16r00C4 " LATIN CAPITAL LETTER A WITH DIAERESIS "
- "16r00C5" 16r00C5 " LATIN CAPITAL LETTER A WITH RING ABOVE "
- "16r00C6" 16r00C6 " LATIN CAPITAL LETTER AE "
- "16r00C7" 16r00C7 " LATIN CAPITAL LETTER C WITH CEDILLA "
- "16r00C8" 16r00C8 " LATIN CAPITAL LETTER E WITH GRAVE "
- "16r00C9" 16r00C9 " LATIN CAPITAL LETTER E WITH ACUTE "
- "16r00CA" 16r00CA " LATIN CAPITAL LETTER E WITH CIRCUMFLEX "
- "16r00CB" 16r00CB " LATIN CAPITAL LETTER E WITH DIAERESIS "
- "16r00CC" 16r00CC " LATIN CAPITAL LETTER I WITH GRAVE "
- "16r00CD" 16r00CD " LATIN CAPITAL LETTER I WITH ACUTE "
- "16r00CE" 16r00CE " LATIN CAPITAL LETTER I WITH CIRCUMFLEX "
- "16r00CF" 16r00CF " LATIN CAPITAL LETTER I WITH DIAERESIS "
- "16r00D0" 16r00D0 " LATIN CAPITAL LETTER ETH (Icelandic) "
- "16r00D1" 16r00D1 " LATIN CAPITAL LETTER N WITH TILDE "
- "16r00D2" 16r00D2 " LATIN CAPITAL LETTER O WITH GRAVE "
- "16r00D3" 16r00D3 " LATIN CAPITAL LETTER O WITH ACUTE "
- "16r00D4" 16r00D4 " LATIN CAPITAL LETTER O WITH CIRCUMFLEX "
- "16r00D5" 16r00D5 " LATIN CAPITAL LETTER O WITH TILDE "
- "16r00D6" 16r00D6 " LATIN CAPITAL LETTER O WITH DIAERESIS "
- "16r00D7" 16r00D7 " MULTIPLICATION SIGN "
- "16r00D8" 16r00D8 " LATIN CAPITAL LETTER O WITH STROKE "
- "16r00D9" 16r00D9 " LATIN CAPITAL LETTER U WITH GRAVE "
- "16r00DA" 16r00DA " LATIN CAPITAL LETTER U WITH ACUTE "
- "16r00DB" 16r00DB " LATIN CAPITAL LETTER U WITH CIRCUMFLEX "
- "16r00DC" 16r00DC " LATIN CAPITAL LETTER U WITH DIAERESIS "
- "16r00DD" 16r00DD " LATIN CAPITAL LETTER Y WITH ACUTE "
- "16r00DE" 16r00DE " LATIN CAPITAL LETTER THORN (Icelandic) "
- "16r00DF" 16r00DF " LATIN SMALL LETTER SHARP S (German) "
- "16r00E0" 16r00E0 " LATIN SMALL LETTER A WITH GRAVE "
- "16r00E1" 16r00E1 " LATIN SMALL LETTER A WITH ACUTE "
- "16r00E2" 16r00E2 " LATIN SMALL LETTER A WITH CIRCUMFLEX "
- "16r00E3" 16r00E3 " LATIN SMALL LETTER A WITH TILDE "
- "16r00E4" 16r00E4 " LATIN SMALL LETTER A WITH DIAERESIS "
- "16r00E5" 16r00E5 " LATIN SMALL LETTER A WITH RING ABOVE "
- "16r00E6" 16r00E6 " LATIN SMALL LETTER AE "
- "16r00E7" 16r00E7 " LATIN SMALL LETTER C WITH CEDILLA "
- "16r00E8" 16r00E8 " LATIN SMALL LETTER E WITH GRAVE "
- "16r00E9" 16r00E9 " LATIN SMALL LETTER E WITH ACUTE "
- "16r00EA" 16r00EA " LATIN SMALL LETTER E WITH CIRCUMFLEX "
- "16r00EB" 16r00EB " LATIN SMALL LETTER E WITH DIAERESIS "
- "16r00EC" 16r00EC " LATIN SMALL LETTER I WITH GRAVE "
- "16r00ED" 16r00ED " LATIN SMALL LETTER I WITH ACUTE "
- "16r00EE" 16r00EE " LATIN SMALL LETTER I WITH CIRCUMFLEX "
- "16r00EF" 16r00EF " LATIN SMALL LETTER I WITH DIAERESIS "
- "16r00F0" 16r00F0 " LATIN SMALL LETTER ETH (Icelandic) "
- "16r00F1" 16r00F1 " LATIN SMALL LETTER N WITH TILDE "
- "16r00F2" 16r00F2 " LATIN SMALL LETTER O WITH GRAVE "
- "16r00F3" 16r00F3 " LATIN SMALL LETTER O WITH ACUTE "
- "16r00F4" 16r00F4 " LATIN SMALL LETTER O WITH CIRCUMFLEX "
- "16r00F5" 16r00F5 " LATIN SMALL LETTER O WITH TILDE "
- "16r00F6" 16r00F6 " LATIN SMALL LETTER O WITH DIAERESIS "
- "16r00F7" 16r00F7 " DIVISION SIGN "
- "16r00F8" 16r00F8 " LATIN SMALL LETTER O WITH STROKE "
- "16r00F9" 16r00F9 " LATIN SMALL LETTER U WITH GRAVE "
- "16r00FA" 16r00FA " LATIN SMALL LETTER U WITH ACUTE "
- "16r00FB" 16r00FB " LATIN SMALL LETTER U WITH CIRCUMFLEX "
- "16r00FC" 16r00FC " LATIN SMALL LETTER U WITH DIAERESIS "
- "16r00FD" 16r00FD " LATIN SMALL LETTER Y WITH ACUTE "
- "16r00FE" 16r00FE " LATIN SMALL LETTER THORN (Icelandic) "
- "16r00FF" 16r00FF " LATIN SMALL LETTER Y WITH DIAERESIS "
- ) at:(code - 16r7F).
- t == 0 ifFalse:[^ t].
- ^ self decodingError.
- ] value.
+ "/ mh - it seems that microsoft has fixed ms-ansi to be unicode compatible
+ "/ with XP, Vista etc.
+ "/ as W95 is not supported anyhow, simply return identity here...
+ ^ codeArg.
+
+"/ code := codeArg.
+"/ code <= 16r7F ifTrue:[ ^ code ].
+"/ code > 16rFF ifTrue:[
+"/ ^ codeArg.
+"/ ].
+"/ [
+"/ |t|
+"/ t := #(
+"/ "16r0080" 16r0000 " invalid "
+"/ "16r0081" 16r0000 " invalid "
+"/ "16r0082" 16r201A " SINGLE LOW-9 QUOTATION MARK "
+"/ "16r0083" 16r0192 " LATIN SMALL LETTER F WITH HOOK "
+"/ "16r0084" 16r201E " DOUBLE LOW-9 QUOTATION MARK "
+"/ "16r0085" 16r2026 " HORIZONTAL ELLIPSIS "
+"/ "16r0086" 16r2020 " DAGGER "
+"/ "16r0087" 16r2021 " DOUBLE DAGGER "
+"/ "16r0088" 16r02C6 " MODIFIER LETTER CIRCUMFLEX ACCENT "
+"/ "16r0089" 16r2030 " PER MILLE SIGN "
+"/ "16r008A" 16r0160 " LATIN CAPITAL LETTER S WITH CARON "
+"/ "16r008B" 16r2039 " SINGLE LEFT-POINTING ANGLE QUOTATION MARK "
+"/ "16r008C" 16r0152 " LATIN CAPITAL LIGATURE OE "
+"/ "16r008D" 16r0000 " invalid "
+"/ "16r008E" 16r0000 " invalid "
+"/ "16r008F" 16r0000 " invalid "
+"/ "16r0090" 16r0000 " invalid "
+"/ "16r0091" 16r2018 " LEFT SINGLE QUOTATION MARK "
+"/ "16r0092" 16r2019 " RIGHT SINGLE QUOTATION MARK "
+"/ "16r0093" 16r201C " LEFT DOUBLE QUOTATION MARK "
+"/ "16r0094" 16r201D " RIGHT DOUBLE QUOTATION MARK "
+"/ "16r0095" 16r2022 " BULLET "
+"/ "16r0096" 16r2013 " EN DASH "
+"/ "16r0097" 16r2014 " EM DASH "
+"/ "16r0098" 16r02DC " SMALL TILDE "
+"/ "16r0099" 16r2122 " TRADE MARK SIGN "
+"/ "16r009A" 16r0161 " LATIN SMALL LETTER S WITH CARON "
+"/ "16r009B" 16r203A " SINGLE RIGHT-POINTING ANGLE QUOTATION MARK "
+"/ "16r009C" 16r0153 " LATIN SMALL LIGATURE OE "
+"/ "16r009D" 16r0000 " invalid "
+"/ "16r009E" 16r0000 " invalid "
+"/ "16r009F" 16r0178 " LATIN CAPITAL LETTER Y WITH DIAERESIS "
+"/ "16r00A0" 16r00A0 " NO-BREAK SPACE "
+"/ "16r00A1" 16r00A1 " INVERTED EXCLAMATION MARK "
+"/ "16r00A2" 16r00A2 " CENT SIGN "
+"/ "16r00A3" 16r00A3 " POUND SIGN "
+"/ "16r00A4" 16r00A4 " CURRENCY SIGN "
+"/ "16r00A5" 16r00A5 " YEN SIGN "
+"/ "16r00A6" 16r00A6 " BROKEN BAR "
+"/ "16r00A7" 16r00A7 " SECTION SIGN "
+"/ "16r00A8" 16r00A8 " DIAERESIS "
+"/ "16r00A9" 16r00A9 " COPYRIGHT SIGN "
+"/ "16r00AA" 16r00AA " FEMININE ORDINAL INDICATOR "
+"/ "16r00AB" 16r00AB " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK "
+"/ "16r00AC" 16r00AC " NOT SIGN "
+"/ "16r00AD" 16r00AD " SOFT HYPHEN "
+"/ "16r00AE" 16r00AE " REGISTERED SIGN "
+"/ "16r00AF" 16r00AF " MACRON "
+"/ "16r00B0" 16r00B0 " DEGREE SIGN "
+"/ "16r00B1" 16r00B1 " PLUS-MINUS SIGN "
+"/ "16r00B2" 16r00B2 " SUPERSCRIPT TWO "
+"/ "16r00B3" 16r00B3 " SUPERSCRIPT THREE "
+"/ "16r00B4" 16r00B4 " ACUTE ACCENT "
+"/ "16r00B5" 16r00B5 " MICRO SIGN "
+"/ "16r00B6" 16r00B6 " PILCROW SIGN "
+"/ "16r00B7" 16r00B7 " MIDDLE DOT "
+"/ "16r00B8" 16r00B8 " CEDILLA "
+"/ "16r00B9" 16r00B9 " SUPERSCRIPT ONE "
+"/ "16r00BA" 16r00BA " MASCULINE ORDINAL INDICATOR "
+"/ "16r00BB" 16r00BB " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK "
+"/ "16r00BC" 16r00BC " VULGAR FRACTION ONE QUARTER "
+"/ "16r00BD" 16r00BD " VULGAR FRACTION ONE HALF "
+"/ "16r00BE" 16r00BE " VULGAR FRACTION THREE QUARTERS "
+"/ "16r00BF" 16r00BF " INVERTED QUESTION MARK "
+"/ "16r00C0" 16r00C0 " LATIN CAPITAL LETTER A WITH GRAVE "
+"/ "16r00C1" 16r00C1 " LATIN CAPITAL LETTER A WITH ACUTE "
+"/ "16r00C2" 16r00C2 " LATIN CAPITAL LETTER A WITH CIRCUMFLEX "
+"/ "16r00C3" 16r00C3 " LATIN CAPITAL LETTER A WITH TILDE "
+"/ "16r00C4" 16r00C4 " LATIN CAPITAL LETTER A WITH DIAERESIS "
+"/ "16r00C5" 16r00C5 " LATIN CAPITAL LETTER A WITH RING ABOVE "
+"/ "16r00C6" 16r00C6 " LATIN CAPITAL LETTER AE "
+"/ "16r00C7" 16r00C7 " LATIN CAPITAL LETTER C WITH CEDILLA "
+"/ "16r00C8" 16r00C8 " LATIN CAPITAL LETTER E WITH GRAVE "
+"/ "16r00C9" 16r00C9 " LATIN CAPITAL LETTER E WITH ACUTE "
+"/ "16r00CA" 16r00CA " LATIN CAPITAL LETTER E WITH CIRCUMFLEX "
+"/ "16r00CB" 16r00CB " LATIN CAPITAL LETTER E WITH DIAERESIS "
+"/ "16r00CC" 16r00CC " LATIN CAPITAL LETTER I WITH GRAVE "
+"/ "16r00CD" 16r00CD " LATIN CAPITAL LETTER I WITH ACUTE "
+"/ "16r00CE" 16r00CE " LATIN CAPITAL LETTER I WITH CIRCUMFLEX "
+"/ "16r00CF" 16r00CF " LATIN CAPITAL LETTER I WITH DIAERESIS "
+"/ "16r00D0" 16r00D0 " LATIN CAPITAL LETTER ETH (Icelandic) "
+"/ "16r00D1" 16r00D1 " LATIN CAPITAL LETTER N WITH TILDE "
+"/ "16r00D2" 16r00D2 " LATIN CAPITAL LETTER O WITH GRAVE "
+"/ "16r00D3" 16r00D3 " LATIN CAPITAL LETTER O WITH ACUTE "
+"/ "16r00D4" 16r00D4 " LATIN CAPITAL LETTER O WITH CIRCUMFLEX "
+"/ "16r00D5" 16r00D5 " LATIN CAPITAL LETTER O WITH TILDE "
+"/ "16r00D6" 16r00D6 " LATIN CAPITAL LETTER O WITH DIAERESIS "
+"/ "16r00D7" 16r00D7 " MULTIPLICATION SIGN "
+"/ "16r00D8" 16r00D8 " LATIN CAPITAL LETTER O WITH STROKE "
+"/ "16r00D9" 16r00D9 " LATIN CAPITAL LETTER U WITH GRAVE "
+"/ "16r00DA" 16r00DA " LATIN CAPITAL LETTER U WITH ACUTE "
+"/ "16r00DB" 16r00DB " LATIN CAPITAL LETTER U WITH CIRCUMFLEX "
+"/ "16r00DC" 16r00DC " LATIN CAPITAL LETTER U WITH DIAERESIS "
+"/ "16r00DD" 16r00DD " LATIN CAPITAL LETTER Y WITH ACUTE "
+"/ "16r00DE" 16r00DE " LATIN CAPITAL LETTER THORN (Icelandic) "
+"/ "16r00DF" 16r00DF " LATIN SMALL LETTER SHARP S (German) "
+"/ "16r00E0" 16r00E0 " LATIN SMALL LETTER A WITH GRAVE "
+"/ "16r00E1" 16r00E1 " LATIN SMALL LETTER A WITH ACUTE "
+"/ "16r00E2" 16r00E2 " LATIN SMALL LETTER A WITH CIRCUMFLEX "
+"/ "16r00E3" 16r00E3 " LATIN SMALL LETTER A WITH TILDE "
+"/ "16r00E4" 16r00E4 " LATIN SMALL LETTER A WITH DIAERESIS "
+"/ "16r00E5" 16r00E5 " LATIN SMALL LETTER A WITH RING ABOVE "
+"/ "16r00E6" 16r00E6 " LATIN SMALL LETTER AE "
+"/ "16r00E7" 16r00E7 " LATIN SMALL LETTER C WITH CEDILLA "
+"/ "16r00E8" 16r00E8 " LATIN SMALL LETTER E WITH GRAVE "
+"/ "16r00E9" 16r00E9 " LATIN SMALL LETTER E WITH ACUTE "
+"/ "16r00EA" 16r00EA " LATIN SMALL LETTER E WITH CIRCUMFLEX "
+"/ "16r00EB" 16r00EB " LATIN SMALL LETTER E WITH DIAERESIS "
+"/ "16r00EC" 16r00EC " LATIN SMALL LETTER I WITH GRAVE "
+"/ "16r00ED" 16r00ED " LATIN SMALL LETTER I WITH ACUTE "
+"/ "16r00EE" 16r00EE " LATIN SMALL LETTER I WITH CIRCUMFLEX "
+"/ "16r00EF" 16r00EF " LATIN SMALL LETTER I WITH DIAERESIS "
+"/ "16r00F0" 16r00F0 " LATIN SMALL LETTER ETH (Icelandic) "
+"/ "16r00F1" 16r00F1 " LATIN SMALL LETTER N WITH TILDE "
+"/ "16r00F2" 16r00F2 " LATIN SMALL LETTER O WITH GRAVE "
+"/ "16r00F3" 16r00F3 " LATIN SMALL LETTER O WITH ACUTE "
+"/ "16r00F4" 16r00F4 " LATIN SMALL LETTER O WITH CIRCUMFLEX "
+"/ "16r00F5" 16r00F5 " LATIN SMALL LETTER O WITH TILDE "
+"/ "16r00F6" 16r00F6 " LATIN SMALL LETTER O WITH DIAERESIS "
+"/ "16r00F7" 16r00F7 " DIVISION SIGN "
+"/ "16r00F8" 16r00F8 " LATIN SMALL LETTER O WITH STROKE "
+"/ "16r00F9" 16r00F9 " LATIN SMALL LETTER U WITH GRAVE "
+"/ "16r00FA" 16r00FA " LATIN SMALL LETTER U WITH ACUTE "
+"/ "16r00FB" 16r00FB " LATIN SMALL LETTER U WITH CIRCUMFLEX "
+"/ "16r00FC" 16r00FC " LATIN SMALL LETTER U WITH DIAERESIS "
+"/ "16r00FD" 16r00FD " LATIN SMALL LETTER Y WITH ACUTE "
+"/ "16r00FE" 16r00FE " LATIN SMALL LETTER THORN (Icelandic) "
+"/ "16r00FF" 16r00FF " LATIN SMALL LETTER Y WITH DIAERESIS "
+"/ ) at:(code - 16r7F).
+"/ t == 0 ifFalse:[^ t].
+"/ ^ self decodingError.
+"/ ] value.
!
encode:unicodeArg
|unicode "{ Class: SmallInteger }"|
- unicode := unicodeArg.
- unicode > 16r2122 ifTrue:[
- ^ unicode.
- ].
- unicode <= 16r151 ifTrue:[
- ^ unicode
- ].
- unicode <= 16r2DC ifTrue:[
- unicode <= 16r192 ifTrue:[
- unicode <= 16r178 ifTrue:[
- unicode <= 16r161 ifTrue:[
- [
- |t|
- t := #[
- "16r0152" 16r8C " LATIN CAPITAL LIGATURE OE "
- "16r0153" 16r9C " LATIN SMALL LIGATURE OE "
- "16r0154" 16r00 " invalid "
- "16r0155" 16r00 " invalid "
- "16r0156" 16r00 " invalid "
- "16r0157" 16r00 " invalid "
- "16r0158" 16r00 " invalid "
- "16r0159" 16r00 " invalid "
- "16r015A" 16r00 " invalid "
- "16r015B" 16r00 " invalid "
- "16r015C" 16r00 " invalid "
- "16r015D" 16r00 " invalid "
- "16r015E" 16r00 " invalid "
- "16r015F" 16r00 " invalid "
- "16r0160" 16r8A " LATIN CAPITAL LETTER S WITH CARON "
- "16r0161" 16r9A " LATIN SMALL LETTER S WITH CARON "
- ] at:(unicode - 16r151).
- t == 0 ifFalse:[^ t].
- ^ unicode
- ] value.
- ].
- unicode <= 16r177 ifTrue:[
- ^ unicode
- ].
- ^ "16r0178" 16r009F " LATIN CAPITAL LETTER Y WITH DIAERESIS "
- ].
- unicode <= 16r191 ifTrue:[
- ^ unicode
- ].
- ^ "16r0192" 16r0083 " LATIN SMALL LETTER F WITH HOOK "
- ].
- unicode <= 16r2C5 ifTrue:[
- ^ unicode
- ].
- unicode == 16r2C6 ifTrue:[
- ^ "16r02C6" 16r0088 " MODIFIER LETTER CIRCUMFLEX ACCENT "
- ].
- unicode <= 16r2DB ifTrue:[
- ^ unicode
- ].
- ^ "16r02DC" 16r0098 " SMALL TILDE "
- ].
- unicode <= 16r2012 ifTrue:[
- ^ unicode
- ].
- unicode <= 16r203A ifTrue:[
- [
- |t|
- t := #[
- "16r2013" 16r96 " EN DASH "
- "16r2014" 16r97 " EM DASH "
- "16r2015" 16r00 " invalid "
- "16r2016" 16r00 " invalid "
- "16r2017" 16r00 " invalid "
- "16r2018" 16r91 " LEFT SINGLE QUOTATION MARK "
- "16r2019" 16r92 " RIGHT SINGLE QUOTATION MARK "
- "16r201A" 16r82 " SINGLE LOW-9 QUOTATION MARK "
- "16r201B" 16r00 " invalid "
- "16r201C" 16r93 " LEFT DOUBLE QUOTATION MARK "
- "16r201D" 16r94 " RIGHT DOUBLE QUOTATION MARK "
- "16r201E" 16r84 " DOUBLE LOW-9 QUOTATION MARK "
- "16r201F" 16r00 " invalid "
- "16r2020" 16r86 " DAGGER "
- "16r2021" 16r87 " DOUBLE DAGGER "
- "16r2022" 16r95 " BULLET "
- "16r2023" 16r00 " invalid "
- "16r2024" 16r00 " invalid "
- "16r2025" 16r00 " invalid "
- "16r2026" 16r85 " HORIZONTAL ELLIPSIS "
- "16r2027" 16r00 " invalid "
- "16r2028" 16r00 " invalid "
- "16r2029" 16r00 " invalid "
- "16r202A" 16r00 " invalid "
- "16r202B" 16r00 " invalid "
- "16r202C" 16r00 " invalid "
- "16r202D" 16r00 " invalid "
- "16r202E" 16r00 " invalid "
- "16r202F" 16r00 " invalid "
- "16r2030" 16r89 " PER MILLE SIGN "
- "16r2031" 16r00 " invalid "
- "16r2032" 16r00 " invalid "
- "16r2033" 16r00 " invalid "
- "16r2034" 16r00 " invalid "
- "16r2035" 16r00 " invalid "
- "16r2036" 16r00 " invalid "
- "16r2037" 16r00 " invalid "
- "16r2038" 16r00 " invalid "
- "16r2039" 16r8B " SINGLE LEFT-POINTING ANGLE QUOTATION MARK "
- "16r203A" 16r9B " SINGLE RIGHT-POINTING ANGLE QUOTATION MARK "
- ] at:(unicode - 16r2012).
- t == 0 ifFalse:[^ t].
- ^ unicode
- ] value.
- ].
- unicode <= 16r2121 ifTrue:[
- ^ unicode
- ].
- ^ "16r2122" 16r0099 " TRADE MARK SIGN "
+ "/ mh - it seems that microsoft has fixed ms-ansi to be unicode compatible
+ "/ with XP, Vista etc.
+ "/ as W95 is not supported anyhow, simply return identity here...
+ ^ unicodeArg.
+
+"/ unicode := unicodeArg.
+"/ unicode > 16r2122 ifTrue:[
+"/ ^ unicode.
+"/ ].
+"/ unicode <= 16r151 ifTrue:[
+"/ ^ unicode
+"/ ].
+"/ unicode <= 16r2DC ifTrue:[
+"/ unicode <= 16r192 ifTrue:[
+"/ unicode <= 16r178 ifTrue:[
+"/ unicode <= 16r161 ifTrue:[
+"/ [
+"/ |t|
+"/ t := #[
+"/ "16r0152" 16r8C " LATIN CAPITAL LIGATURE OE "
+"/ "16r0153" 16r9C " LATIN SMALL LIGATURE OE "
+"/ "16r0154" 16r00 " invalid "
+"/ "16r0155" 16r00 " invalid "
+"/ "16r0156" 16r00 " invalid "
+"/ "16r0157" 16r00 " invalid "
+"/ "16r0158" 16r00 " invalid "
+"/ "16r0159" 16r00 " invalid "
+"/ "16r015A" 16r00 " invalid "
+"/ "16r015B" 16r00 " invalid "
+"/ "16r015C" 16r00 " invalid "
+"/ "16r015D" 16r00 " invalid "
+"/ "16r015E" 16r00 " invalid "
+"/ "16r015F" 16r00 " invalid "
+"/ "16r0160" 16r8A " LATIN CAPITAL LETTER S WITH CARON "
+"/ "16r0161" 16r9A " LATIN SMALL LETTER S WITH CARON "
+"/ ] at:(unicode - 16r151).
+"/ t == 0 ifFalse:[^ t].
+"/ ^ unicode
+"/ ] value.
+"/ ].
+"/ unicode <= 16r177 ifTrue:[
+"/ ^ unicode
+"/ ].
+"/ ^ "16r0178" 16r009F " LATIN CAPITAL LETTER Y WITH DIAERESIS "
+"/ ].
+"/ unicode <= 16r191 ifTrue:[
+"/ ^ unicode
+"/ ].
+"/ ^ "16r0192" 16r0083 " LATIN SMALL LETTER F WITH HOOK "
+"/ ].
+"/ unicode <= 16r2C5 ifTrue:[
+"/ ^ unicode
+"/ ].
+"/ unicode == 16r2C6 ifTrue:[
+"/ ^ "16r02C6" 16r0088 " MODIFIER LETTER CIRCUMFLEX ACCENT "
+"/ ].
+"/ unicode <= 16r2DB ifTrue:[
+"/ ^ unicode
+"/ ].
+"/ ^ "16r02DC" 16r0098 " SMALL TILDE "
+"/ ].
+"/ unicode <= 16r2012 ifTrue:[
+"/ ^ unicode
+"/ ].
+"/ unicode <= 16r203A ifTrue:[
+"/ [
+"/ |t|
+"/ t := #(
+"/ "16r2013" 16r2013 "16r96" " EN DASH "
+"/ "16r2014" 16r2014 "16r97" " EM DASH "
+"/ "16r2015" 16r00 " invalid "
+"/ "16r2016" 16r00 " invalid "
+"/ "16r2017" 16r00 " invalid "
+"/ "16r2018" 16r91 " LEFT SINGLE QUOTATION MARK "
+"/ "16r2019" 16r92 " RIGHT SINGLE QUOTATION MARK "
+"/ "16r201A" 16r82 " SINGLE LOW-9 QUOTATION MARK "
+"/ "16r201B" 16r00 " invalid "
+"/ "16r201C" 16r93 " LEFT DOUBLE QUOTATION MARK "
+"/ "16r201D" 16r94 " RIGHT DOUBLE QUOTATION MARK "
+"/ "16r201E" 16r84 " DOUBLE LOW-9 QUOTATION MARK "
+"/ "16r201F" 16r00 " invalid "
+"/ "16r2020" 16r86 " DAGGER "
+"/ "16r2021" 16r87 " DOUBLE DAGGER "
+"/ "16r2022" 16r95 " BULLET "
+"/ "16r2023" 16r00 " invalid "
+"/ "16r2024" 16r00 " invalid "
+"/ "16r2025" 16r00 " invalid "
+"/ "16r2026" 16r85 " HORIZONTAL ELLIPSIS "
+"/ "16r2027" 16r00 " invalid "
+"/ "16r2028" 16r00 " invalid "
+"/ "16r2029" 16r00 " invalid "
+"/ "16r202A" 16r00 " invalid "
+"/ "16r202B" 16r00 " invalid "
+"/ "16r202C" 16r00 " invalid "
+"/ "16r202D" 16r00 " invalid "
+"/ "16r202E" 16r00 " invalid "
+"/ "16r202F" 16r00 " invalid "
+"/ "16r2030" 16r89 " PER MILLE SIGN "
+"/ "16r2031" 16r00 " invalid "
+"/ "16r2032" 16r00 " invalid "
+"/ "16r2033" 16r00 " invalid "
+"/ "16r2034" 16r00 " invalid "
+"/ "16r2035" 16r00 " invalid "
+"/ "16r2036" 16r00 " invalid "
+"/ "16r2037" 16r00 " invalid "
+"/ "16r2038" 16r00 " invalid "
+"/ "16r2039" 16r8B " SINGLE LEFT-POINTING ANGLE QUOTATION MARK "
+"/ "16r203A" 16r9B " SINGLE RIGHT-POINTING ANGLE QUOTATION MARK "
+"/ ) at:(unicode - 16r2012).
+"/ t == 0 ifFalse:[^ t].
+"/ ^ unicode
+"/ ] value.
+"/ ].
+"/ unicode <= 16r2121 ifTrue:[
+"/ ^ unicode
+"/ ].
+"/ ^ "16r2122" 16r0099 " TRADE MARK SIGN "
!
encodeString:aStringOrUnicodeString
"redefined to speedup simple 8 bit strings"
- aStringOrUnicodeString bitsPerCharacter == 8 ifTrue:[
- "/ all between 0 and FF
- (aStringOrUnicodeString contains8BitCharacters) ifFalse:[
- ^ aStringOrUnicodeString
- ]
- ].
- ^ super encodeString:aStringOrUnicodeString
+ "/ mh - it seems that microsoft has fixed ms-ansi to be unicode compatible
+ "/ with XP, Vista etc.
+ "/ as W95 is not supported anyhow, simply return identity here...
+ ^ aStringOrUnicodeString.
+
+"/ aStringOrUnicodeString bitsPerCharacter == 8 ifTrue:[
+"/ "/ all between 0 and FF
+"/ (aStringOrUnicodeString contains8BitCharacters) ifFalse:[
+"/ ^ aStringOrUnicodeString
+"/ ]
+"/ ].
+"/ ^ super encodeString:aStringOrUnicodeString
! !
!MS_Ansi class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MS_Ansi.st,v 1.6 2006-03-13 16:07:07 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MS_Ansi.st,v 1.7 2008-05-07 14:46:49 mb Exp $'
! !