--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/CharacterEncoderImplementations__ASCII.st Fri Mar 05 18:30:49 2004 +0100
@@ -0,0 +1,217 @@
+"{ Encoding: utf8 }"
+
+"{ Package: 'stx:libbasic' }"
+
+"{ NameSpace: CharacterEncoderImplementations }"
+
+SingleByteEncoder subclass:#ASCII
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Collections-Text-Encodings'
+!
+
+
+!ASCII class methodsFor:'mapping'!
+
+mapFileURL2_relativePathName
+ ^ 'ASCII'
+
+ "
+ self generateCode
+ "
+!
+
+mapping
+"
+# From: http://std.dkuug.dk/i18n/charmaps/ASCII
+
+<code_set_name> ANSI_X3.4-1968
+<comment_char> %
+<escape_char> /
+% version: 1.0
+% repertoiremap: mnemonic,ds
+% source: ECMA registry
+
+% alias ISO-IR-6
+% alias ANSI_X3.4-1986
+% alias ISO_646.IRV:1991
+% alias ASCII
+% alias ISO646-US
+% alias US-ASCII
+% alias US
+% alias IBM367
+% alias CP367
+CHARMAP
+<NU> /x00 <U0000> NULL (NUL)
+<SH> /x01 <U0001> START OF HEADING (SOH)
+<SX> /x02 <U0002> START OF TEXT (STX)
+<EX> /x03 <U0003> END OF TEXT (ETX)
+<ET> /x04 <U0004> END OF TRANSMISSION (EOT)
+<EQ> /x05 <U0005> ENQUIRY (ENQ)
+<AK> /x06 <U0006> ACKNOWLEDGE (ACK)
+<BL> /x07 <U0007> BELL (BEL)
+<BS> /x08 <U0008> BACKSPACE (BS)
+<HT> /x09 <U0009> CHARACTER TABULATION (HT)
+<LF> /x0A <U000A> LINE FEED (LF)
+<VT> /x0B <U000B> LINE TABULATION (VT)
+<FF> /x0C <U000C> FORM FEED (FF)
+<CR> /x0D <U000D> CARRIAGE RETURN (CR)
+<SO> /x0E <U000E> SHIFT OUT (SO)
+<SI> /x0F <U000F> SHIFT IN (SI)
+<DL> /x10 <U0010> DATALINK ESCAPE (DLE)
+<D1> /x11 <U0011> DEVICE CONTROL ONE (DC1)
+<D2> /x12 <U0012> DEVICE CONTROL TWO (DC2)
+<D3> /x13 <U0013> DEVICE CONTROL THREE (DC3)
+<D4> /x14 <U0014> DEVICE CONTROL FOUR (DC4)
+<NK> /x15 <U0015> NEGATIVE ACKNOWLEDGE (NAK)
+<SY> /x16 <U0016> SYNCHRONOUS IDLE (SYN)
+<EB> /x17 <U0017> END OF TRANSMISSION BLOCK (ETB)
+<CN> /x18 <U0018> CANCEL (CAN)
+<EM> /x19 <U0019> END OF MEDIUM (EM)
+<SB> /x1A <U001A> SUBSTITUTE (SUB)
+<EC> /x1B <U001B> ESCAPE (ESC)
+<FS> /x1C <U001C> FILE SEPARATOR (IS4)
+<GS> /x1D <U001D> GROUP SEPARATOR (IS3)
+<RS> /x1E <U001E> RECORD SEPARATOR (IS2)
+<US> /x1F <U001F> UNIT SEPARATOR (IS1)
+<SP> /x20 <U0020> SPACE
+<!!> /x21 <U0021> EXCLAMATION MARK
+<'> /x22 <U0022> QUOTATION MARK
+<Nb> /x23 <U0023> NUMBER SIGN
+<DO> /x24 <U0024> DOLLAR SIGN
+<%> /x25 <U0025> PERCENT SIGN
+<&> /x26 <U0026> AMPERSAND
+<'> /x27 <U0027> APOSTROPHE
+<(> /x28 <U0028> LEFT PARENTHESIS
+<)> /x29 <U0029> RIGHT PARENTHESIS
+<*> /x2A <U002A> ASTERISK
+<+> /x2B <U002B> PLUS SIGN
+<,> /x2C <U002C> COMMA
+<-> /x2D <U002D> HYPHEN-MINUS
+<.> /x2E <U002E> FULL STOP
+<//> /x2F <U002F> SOLIDUS
+<0> /x30 <U0030> DIGIT ZERO
+<1> /x31 <U0031> DIGIT ONE
+<2> /x32 <U0032> DIGIT TWO
+<3> /x33 <U0033> DIGIT THREE
+<4> /x34 <U0034> DIGIT FOUR
+<5> /x35 <U0035> DIGIT FIVE
+<6> /x36 <U0036> DIGIT SIX
+<7> /x37 <U0037> DIGIT SEVEN
+<8> /x38 <U0038> DIGIT EIGHT
+<9> /x39 <U0039> DIGIT NINE
+<:> /x3A <U003A> COLON
+<;> /x3B <U003B> SEMICOLON
+<<> /x3C <U003C> LESS-THAN SIGN
+<=> /x3D <U003D> EQUALS SIGN
+</>> /x3E <U003E> GREATER-THAN SIGN
+<?> /x3F <U003F> QUESTION MARK
+<At> /x40 <U0040> COMMERCIAL AT
+<A> /x41 <U0041> LATIN CAPITAL LETTER A
+<B> /x42 <U0042> LATIN CAPITAL LETTER B
+<C> /x43 <U0043> LATIN CAPITAL LETTER C
+<D> /x44 <U0044> LATIN CAPITAL LETTER D
+<E> /x45 <U0045> LATIN CAPITAL LETTER E
+<F> /x46 <U0046> LATIN CAPITAL LETTER F
+<G> /x47 <U0047> LATIN CAPITAL LETTER G
+<H> /x48 <U0048> LATIN CAPITAL LETTER H
+<I> /x49 <U0049> LATIN CAPITAL LETTER I
+<J> /x4A <U004A> LATIN CAPITAL LETTER J
+<K> /x4B <U004B> LATIN CAPITAL LETTER K
+<L> /x4C <U004C> LATIN CAPITAL LETTER L
+<M> /x4D <U004D> LATIN CAPITAL LETTER M
+<N> /x4E <U004E> LATIN CAPITAL LETTER N
+<O> /x4F <U004F> LATIN CAPITAL LETTER O
+<P> /x50 <U0050> LATIN CAPITAL LETTER P
+<Q> /x51 <U0051> LATIN CAPITAL LETTER Q
+<R> /x52 <U0052> LATIN CAPITAL LETTER R
+<S> /x53 <U0053> LATIN CAPITAL LETTER S
+<T> /x54 <U0054> LATIN CAPITAL LETTER T
+<U> /x55 <U0055> LATIN CAPITAL LETTER U
+<V> /x56 <U0056> LATIN CAPITAL LETTER V
+<W> /x57 <U0057> LATIN CAPITAL LETTER W
+<X> /x58 <U0058> LATIN CAPITAL LETTER X
+<Y> /x59 <U0059> LATIN CAPITAL LETTER Y
+<Z> /x5A <U005A> LATIN CAPITAL LETTER Z
+<<(> /x5B <U005B> LEFT SQUARE BRACKET
+<////> /x5C <U005C> REVERSE SOLIDUS
+<)/>> /x5D <U005D> RIGHT SQUARE BRACKET
+<'/>> /x5E <U005E> CIRCUMFLEX ACCENT
+<_> /x5F <U005F> LOW LINE
+<'!!> /x60 <U0060> GRAVE ACCENT
+<a> /x61 <U0061> LATIN SMALL LETTER A
+<b> /x62 <U0062> LATIN SMALL LETTER B
+<c> /x63 <U0063> LATIN SMALL LETTER C
+<d> /x64 <U0064> LATIN SMALL LETTER D
+<e> /x65 <U0065> LATIN SMALL LETTER E
+<f> /x66 <U0066> LATIN SMALL LETTER F
+<g> /x67 <U0067> LATIN SMALL LETTER G
+<h> /x68 <U0068> LATIN SMALL LETTER H
+<i> /x69 <U0069> LATIN SMALL LETTER I
+<j> /x6A <U006A> LATIN SMALL LETTER J
+<k> /x6B <U006B> LATIN SMALL LETTER K
+<l> /x6C <U006C> LATIN SMALL LETTER L
+<m> /x6D <U006D> LATIN SMALL LETTER M
+<n> /x6E <U006E> LATIN SMALL LETTER N
+<o> /x6F <U006F> LATIN SMALL LETTER O
+<p> /x70 <U0070> LATIN SMALL LETTER P
+<q> /x71 <U0071> LATIN SMALL LETTER Q
+<r> /x72 <U0072> LATIN SMALL LETTER R
+<s> /x73 <U0073> LATIN SMALL LETTER S
+<t> /x74 <U0074> LATIN SMALL LETTER T
+<u> /x75 <U0075> LATIN SMALL LETTER U
+<v> /x76 <U0076> LATIN SMALL LETTER V
+<w> /x77 <U0077> LATIN SMALL LETTER W
+<x> /x78 <U0078> LATIN SMALL LETTER X
+<y> /x79 <U0079> LATIN SMALL LETTER Y
+<z> /x7A <U007A> LATIN SMALL LETTER Z
+<(!!> /x7B <U007B> LEFT CURLY BRACKET
+<!!!!> /x7C <U007C> VERTICAL LINE
+<!!)> /x7D <U007D> RIGHT CURLY BRACKET
+<'?> /x7E <U007E> TILDE
+<DT> /x7F <U007F> DELETE (DEL)
+END CHARMAP
+
+"
+! !
+
+!ASCII class methodsFor:'queries'!
+
+namesOfEncoding
+ ^ #( 'ascii' 'us-ascii' 'iso-ir-6' 'ibm-367' 'ms-cp367' 'cp367' 'iso646-us' 'ibm-cp367')
+! !
+
+!ASCII methodsFor:'encoding & decoding'!
+
+decode:codeArg
+ "Automagically generated by generateCode - do not modify.
+ Decode from my encoding into unicode."
+
+ |code "{ Class: SmallInteger }"|
+
+ code := codeArg.
+ code > 16r7F ifTrue:[
+ ^ self decodingError.
+ ].
+ ^ code.
+!
+
+encode:unicodeArg
+ "Automagically generated by generateCode - do not modify.
+ Encode from unicode into my encoding."
+
+ |unicode "{ Class: SmallInteger }"|
+
+ unicode := unicodeArg.
+ unicode > 16r7F ifTrue:[
+ ^ self encodingError.
+ ].
+ ^ unicode.
+! !
+
+!ASCII class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__ASCII.st,v 1.1 2004-03-05 17:29:45 cg Exp $'
+! !
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/CharacterEncoderImplementations__ISO8859_14.st Fri Mar 05 18:30:49 2004 +0100
@@ -0,0 +1,753 @@
+"{ Encoding: utf8 }"
+
+"{ Package: 'stx:libbasic' }"
+
+"{ NameSpace: CharacterEncoderImplementations }"
+
+SingleByteEncoder subclass:#ISO8859_14
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Collections-Text-Encodings'
+!
+
+
+!ISO8859_14 class methodsFor:'mapping'!
+
+mapFileURL1_relativePathName
+ ^ 'ISO8859/8859-14.TXT'
+!
+
+mapping
+"
+# From: http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-14.TXT
+
+#
+# Name: ISO/IEC 8859-14:1998 to Unicode
+# Unicode version: 3.0
+# Table version: 1.0
+# Table format: Format A
+# Date: 1999 July 27
+# Authors: Markus Kuhn <mkuhn@acm.org>
+# Ken Whistler <kenw@sybase.com>
+#
+# Copyright (c) 1998 - 1999 Unicode, Inc. All Rights reserved.
+#
+# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
+# No claims are made as to fitness for any particular purpose. No
+# warranties of any kind are expressed or implied. The recipient
+# agrees to determine applicability of information provided. If this
+# file has been provided on optical media by Unicode, Inc., the sole
+# remedy for any claim will be exchange of defective media within 90
+# days of receipt.
+#
+# Unicode, Inc. hereby grants the right to freely use the information
+# supplied in this file in the creation of products supporting the
+# Unicode Standard, and to make copies of this file in any form for
+# internal or external distribution as long as this notice remains
+# attached.
+#
+# General notes:
+#
+# This table contains the data the Unicode Consortium has on how
+# ISO/IEC 8859-14:1998 characters map into Unicode.
+#
+# Format: Three tab-separated columns
+# Column #1 is the ISO/IEC 8859-14 code (in hex as 0xXX)
+# Column #2 is the Unicode (in hex as 0xXXXX)
+# Column #3 the Unicode name (follows a comment sign, '#')
+#
+# The entries are in ISO/IEC 8859-14 order.
+#
+# Updated versions of this file may be found in:
+# <ftp://ftp.unicode.org/Public/MAPPINGS/>
+#
+# Any comments or problems, contact <errata@unicode.org>
+# Please note that <errata@unicode.org> is an archival address;
+# notices will be checked, but do not expect an immediate response.
+#
+0x00 0x0000 # NULL
+0x01 0x0001 # START OF HEADING
+0x02 0x0002 # START OF TEXT
+0x03 0x0003 # END OF TEXT
+0x04 0x0004 # END OF TRANSMISSION
+0x05 0x0005 # ENQUIRY
+0x06 0x0006 # ACKNOWLEDGE
+0x07 0x0007 # BELL
+0x08 0x0008 # BACKSPACE
+0x09 0x0009 # HORIZONTAL TABULATION
+0x0A 0x000A # LINE FEED
+0x0B 0x000B # VERTICAL TABULATION
+0x0C 0x000C # FORM FEED
+0x0D 0x000D # CARRIAGE RETURN
+0x0E 0x000E # SHIFT OUT
+0x0F 0x000F # SHIFT IN
+0x10 0x0010 # DATA LINK ESCAPE
+0x11 0x0011 # DEVICE CONTROL ONE
+0x12 0x0012 # DEVICE CONTROL TWO
+0x13 0x0013 # DEVICE CONTROL THREE
+0x14 0x0014 # DEVICE CONTROL FOUR
+0x15 0x0015 # NEGATIVE ACKNOWLEDGE
+0x16 0x0016 # SYNCHRONOUS IDLE
+0x17 0x0017 # END OF TRANSMISSION BLOCK
+0x18 0x0018 # CANCEL
+0x19 0x0019 # END OF MEDIUM
+0x1A 0x001A # SUBSTITUTE
+0x1B 0x001B # ESCAPE
+0x1C 0x001C # FILE SEPARATOR
+0x1D 0x001D # GROUP SEPARATOR
+0x1E 0x001E # RECORD SEPARATOR
+0x1F 0x001F # UNIT SEPARATOR
+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
+0x7F 0x007F # DELETE
+0x80 0x0080 # <control>
+0x81 0x0081 # <control>
+0x82 0x0082 # <control>
+0x83 0x0083 # <control>
+0x84 0x0084 # <control>
+0x85 0x0085 # <control>
+0x86 0x0086 # <control>
+0x87 0x0087 # <control>
+0x88 0x0088 # <control>
+0x89 0x0089 # <control>
+0x8A 0x008A # <control>
+0x8B 0x008B # <control>
+0x8C 0x008C # <control>
+0x8D 0x008D # <control>
+0x8E 0x008E # <control>
+0x8F 0x008F # <control>
+0x90 0x0090 # <control>
+0x91 0x0091 # <control>
+0x92 0x0092 # <control>
+0x93 0x0093 # <control>
+0x94 0x0094 # <control>
+0x95 0x0095 # <control>
+0x96 0x0096 # <control>
+0x97 0x0097 # <control>
+0x98 0x0098 # <control>
+0x99 0x0099 # <control>
+0x9A 0x009A # <control>
+0x9B 0x009B # <control>
+0x9C 0x009C # <control>
+0x9D 0x009D # <control>
+0x9E 0x009E # <control>
+0x9F 0x009F # <control>
+0xA0 0x00A0 # NO-BREAK SPACE
+0xA1 0x1E02 # LATIN CAPITAL LETTER B WITH DOT ABOVE
+0xA2 0x1E03 # LATIN SMALL LETTER B WITH DOT ABOVE
+0xA3 0x00A3 # POUND SIGN
+0xA4 0x010A # LATIN CAPITAL LETTER C WITH DOT ABOVE
+0xA5 0x010B # LATIN SMALL LETTER C WITH DOT ABOVE
+0xA6 0x1E0A # LATIN CAPITAL LETTER D WITH DOT ABOVE
+0xA7 0x00A7 # SECTION SIGN
+0xA8 0x1E80 # LATIN CAPITAL LETTER W WITH GRAVE
+0xA9 0x00A9 # COPYRIGHT SIGN
+0xAA 0x1E82 # LATIN CAPITAL LETTER W WITH ACUTE
+0xAB 0x1E0B # LATIN SMALL LETTER D WITH DOT ABOVE
+0xAC 0x1EF2 # LATIN CAPITAL LETTER Y WITH GRAVE
+0xAD 0x00AD # SOFT HYPHEN
+0xAE 0x00AE # REGISTERED SIGN
+0xAF 0x0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS
+0xB0 0x1E1E # LATIN CAPITAL LETTER F WITH DOT ABOVE
+0xB1 0x1E1F # LATIN SMALL LETTER F WITH DOT ABOVE
+0xB2 0x0120 # LATIN CAPITAL LETTER G WITH DOT ABOVE
+0xB3 0x0121 # LATIN SMALL LETTER G WITH DOT ABOVE
+0xB4 0x1E40 # LATIN CAPITAL LETTER M WITH DOT ABOVE
+0xB5 0x1E41 # LATIN SMALL LETTER M WITH DOT ABOVE
+0xB6 0x00B6 # PILCROW SIGN
+0xB7 0x1E56 # LATIN CAPITAL LETTER P WITH DOT ABOVE
+0xB8 0x1E81 # LATIN SMALL LETTER W WITH GRAVE
+0xB9 0x1E57 # LATIN SMALL LETTER P WITH DOT ABOVE
+0xBA 0x1E83 # LATIN SMALL LETTER W WITH ACUTE
+0xBB 0x1E60 # LATIN CAPITAL LETTER S WITH DOT ABOVE
+0xBC 0x1EF3 # LATIN SMALL LETTER Y WITH GRAVE
+0xBD 0x1E84 # LATIN CAPITAL LETTER W WITH DIAERESIS
+0xBE 0x1E85 # LATIN SMALL LETTER W WITH DIAERESIS
+0xBF 0x1E61 # LATIN SMALL LETTER S WITH DOT ABOVE
+0xC0 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE
+0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
+0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+0xC3 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE
+0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
+0xC5 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
+0xC6 0x00C6 # LATIN CAPITAL LETTER AE
+0xC7 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
+0xC8 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE
+0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
+0xCA 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
+0xCC 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE
+0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
+0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+0xCF 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
+0xD0 0x0174 # LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+0xD1 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE
+0xD2 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE
+0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
+0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+0xD5 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE
+0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
+0xD7 0x1E6A # LATIN CAPITAL LETTER T WITH DOT ABOVE
+0xD8 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE
+0xD9 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE
+0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
+0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
+0xDD 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE
+0xDE 0x0176 # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+0xDF 0x00DF # LATIN SMALL LETTER SHARP S
+0xE0 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
+0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
+0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
+0xE3 0x00E3 # LATIN SMALL LETTER A WITH TILDE
+0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
+0xE5 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
+0xE6 0x00E6 # LATIN SMALL LETTER AE
+0xE7 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
+0xE8 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
+0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
+0xEA 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
+0xEC 0x00EC # LATIN SMALL LETTER I WITH GRAVE
+0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE
+0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
+0xEF 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
+0xF0 0x0175 # LATIN SMALL LETTER W WITH CIRCUMFLEX
+0xF1 0x00F1 # LATIN SMALL LETTER N WITH TILDE
+0xF2 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
+0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
+0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
+0xF5 0x00F5 # LATIN SMALL LETTER O WITH TILDE
+0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
+0xF7 0x1E6B # LATIN SMALL LETTER T WITH DOT ABOVE
+0xF8 0x00F8 # LATIN SMALL LETTER O WITH STROKE
+0xF9 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
+0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE
+0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
+0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
+0xFD 0x00FD # LATIN SMALL LETTER Y WITH ACUTE
+0xFE 0x0177 # LATIN SMALL LETTER Y WITH CIRCUMFLEX
+0xFF 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
+
+
+"
+! !
+
+!ISO8859_14 class methodsFor:'queries'!
+
+namesOfEncoding
+ ^ #( 'iso8859-14' 'iso-8859-14' 'latin8' 'latin-8' 'latin-celtic' )
+! !
+
+!ISO8859_14 methodsFor:'encoding & decoding'!
+
+decode:codeArg
+ "Automagically generated by generateCode - do not modify.
+ Decode from my encoding into unicode."
+
+ |code "{ Class: SmallInteger }"|
+
+ code := codeArg.
+ code <= 16rA0 ifTrue:[ ^ code ].
+ code > 16rFF ifTrue:[
+ ^ self decodingError.
+ ].
+ ^ #(
+ "16r00A1" 16r1E02 " LATIN CAPITAL LETTER B WITH DOT ABOVE "
+ "16r00A2" 16r1E03 " LATIN SMALL LETTER B WITH DOT ABOVE "
+ "16r00A3" 16r00A3 " POUND SIGN "
+ "16r00A4" 16r010A " LATIN CAPITAL LETTER C WITH DOT ABOVE "
+ "16r00A5" 16r010B " LATIN SMALL LETTER C WITH DOT ABOVE "
+ "16r00A6" 16r1E0A " LATIN CAPITAL LETTER D WITH DOT ABOVE "
+ "16r00A7" 16r00A7 " SECTION SIGN "
+ "16r00A8" 16r1E80 " LATIN CAPITAL LETTER W WITH GRAVE "
+ "16r00A9" 16r00A9 " COPYRIGHT SIGN "
+ "16r00AA" 16r1E82 " LATIN CAPITAL LETTER W WITH ACUTE "
+ "16r00AB" 16r1E0B " LATIN SMALL LETTER D WITH DOT ABOVE "
+ "16r00AC" 16r1EF2 " LATIN CAPITAL LETTER Y WITH GRAVE "
+ "16r00AD" 16r00AD " SOFT HYPHEN "
+ "16r00AE" 16r00AE " REGISTERED SIGN "
+ "16r00AF" 16r0178 " LATIN CAPITAL LETTER Y WITH DIAERESIS "
+ "16r00B0" 16r1E1E " LATIN CAPITAL LETTER F WITH DOT ABOVE "
+ "16r00B1" 16r1E1F " LATIN SMALL LETTER F WITH DOT ABOVE "
+ "16r00B2" 16r0120 " LATIN CAPITAL LETTER G WITH DOT ABOVE "
+ "16r00B3" 16r0121 " LATIN SMALL LETTER G WITH DOT ABOVE "
+ "16r00B4" 16r1E40 " LATIN CAPITAL LETTER M WITH DOT ABOVE "
+ "16r00B5" 16r1E41 " LATIN SMALL LETTER M WITH DOT ABOVE "
+ "16r00B6" 16r00B6 " PILCROW SIGN "
+ "16r00B7" 16r1E56 " LATIN CAPITAL LETTER P WITH DOT ABOVE "
+ "16r00B8" 16r1E81 " LATIN SMALL LETTER W WITH GRAVE "
+ "16r00B9" 16r1E57 " LATIN SMALL LETTER P WITH DOT ABOVE "
+ "16r00BA" 16r1E83 " LATIN SMALL LETTER W WITH ACUTE "
+ "16r00BB" 16r1E60 " LATIN CAPITAL LETTER S WITH DOT ABOVE "
+ "16r00BC" 16r1EF3 " LATIN SMALL LETTER Y WITH GRAVE "
+ "16r00BD" 16r1E84 " LATIN CAPITAL LETTER W WITH DIAERESIS "
+ "16r00BE" 16r1E85 " LATIN SMALL LETTER W WITH DIAERESIS "
+ "16r00BF" 16r1E61 " LATIN SMALL LETTER S WITH DOT ABOVE "
+ "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" 16r0174 " LATIN CAPITAL LETTER W WITH CIRCUMFLEX "
+ "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" 16r1E6A " LATIN CAPITAL LETTER T WITH DOT ABOVE "
+ "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" 16r0176 " LATIN CAPITAL LETTER Y WITH CIRCUMFLEX "
+ "16r00DF" 16r00DF " LATIN SMALL LETTER SHARP S "
+ "16r00E0" 16r00E0 " LATIN SMALL LETTER A WITH GRAVE "
+ "16r00E1" 16r00E1 " LATIN SMALL LETTER A WITH ACUTE "
+ "16r00E2" 16r00E2 " LATIN SMALL LETTER A WITH CIRCUMFLEX "
+ "16r00E3" 16r00E3 " LATIN SMALL LETTER A WITH TILDE "
+ "16r00E4" 16r00E4 " LATIN SMALL LETTER A WITH DIAERESIS "
+ "16r00E5" 16r00E5 " LATIN SMALL LETTER A WITH RING ABOVE "
+ "16r00E6" 16r00E6 " LATIN SMALL LETTER AE "
+ "16r00E7" 16r00E7 " LATIN SMALL LETTER C WITH CEDILLA "
+ "16r00E8" 16r00E8 " LATIN SMALL LETTER E WITH GRAVE "
+ "16r00E9" 16r00E9 " LATIN SMALL LETTER E WITH ACUTE "
+ "16r00EA" 16r00EA " LATIN SMALL LETTER E WITH CIRCUMFLEX "
+ "16r00EB" 16r00EB " LATIN SMALL LETTER E WITH DIAERESIS "
+ "16r00EC" 16r00EC " LATIN SMALL LETTER I WITH GRAVE "
+ "16r00ED" 16r00ED " LATIN SMALL LETTER I WITH ACUTE "
+ "16r00EE" 16r00EE " LATIN SMALL LETTER I WITH CIRCUMFLEX "
+ "16r00EF" 16r00EF " LATIN SMALL LETTER I WITH DIAERESIS "
+ "16r00F0" 16r0175 " LATIN SMALL LETTER W WITH CIRCUMFLEX "
+ "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" 16r1E6B " LATIN SMALL LETTER T WITH DOT ABOVE "
+ "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" 16r0177 " LATIN SMALL LETTER Y WITH CIRCUMFLEX "
+ "16r00FF" 16r00FF " LATIN SMALL LETTER Y WITH DIAERESIS "
+ ) at:(code - 16rA0).
+!
+
+encode:unicodeArg
+ "Automagically generated by generateCode - do not modify.
+ Encode from unicode into my encoding."
+
+ |unicode "{ Class: SmallInteger }"|
+
+ unicode := unicodeArg.
+ unicode <= 16rA0 ifTrue:[ ^ unicode ].
+ unicode > 16r1EF3 ifTrue:[
+ ^ self encodingError.
+ ].
+ unicode <= 16r178 ifTrue:[
+ unicode <= 16r121 ifTrue:[
+ unicode <= 16r109 ifTrue:[
+ (#[
+ "16r00A1" 0 " invalid "
+ "16r00A2" 0 " invalid "
+ "16r00A3" 1 " POUND SIGN "
+ "16r00A4" 0 " invalid "
+ "16r00A5" 0 " invalid "
+ "16r00A6" 0 " invalid "
+ "16r00A7" 1 " SECTION SIGN "
+ "16r00A8" 0 " invalid "
+ "16r00A9" 1 " COPYRIGHT SIGN "
+ "16r00AA" 0 " invalid "
+ "16r00AB" 0 " invalid "
+ "16r00AC" 0 " invalid "
+ "16r00AD" 1 " SOFT HYPHEN "
+ "16r00AE" 1 " REGISTERED SIGN "
+ "16r00AF" 0 " invalid "
+ "16r00B0" 0 " invalid "
+ "16r00B1" 0 " invalid "
+ "16r00B2" 0 " invalid "
+ "16r00B3" 0 " invalid "
+ "16r00B4" 0 " invalid "
+ "16r00B5" 0 " invalid "
+ "16r00B6" 1 " PILCROW SIGN "
+ "16r00B7" 0 " invalid "
+ "16r00B8" 0 " invalid "
+ "16r00B9" 0 " invalid "
+ "16r00BA" 0 " invalid "
+ "16r00BB" 0 " invalid "
+ "16r00BC" 0 " invalid "
+ "16r00BD" 0 " invalid "
+ "16r00BE" 0 " invalid "
+ "16r00BF" 0 " invalid "
+ "16r00C0" 1 " LATIN CAPITAL LETTER A WITH GRAVE "
+ "16r00C1" 1 " LATIN CAPITAL LETTER A WITH ACUTE "
+ "16r00C2" 1 " LATIN CAPITAL LETTER A WITH CIRCUMFLEX "
+ "16r00C3" 1 " LATIN CAPITAL LETTER A WITH TILDE "
+ "16r00C4" 1 " LATIN CAPITAL LETTER A WITH DIAERESIS "
+ "16r00C5" 1 " LATIN CAPITAL LETTER A WITH RING ABOVE "
+ "16r00C6" 1 " LATIN CAPITAL LETTER AE "
+ "16r00C7" 1 " LATIN CAPITAL LETTER C WITH CEDILLA "
+ "16r00C8" 1 " LATIN CAPITAL LETTER E WITH GRAVE "
+ "16r00C9" 1 " LATIN CAPITAL LETTER E WITH ACUTE "
+ "16r00CA" 1 " LATIN CAPITAL LETTER E WITH CIRCUMFLEX "
+ "16r00CB" 1 " LATIN CAPITAL LETTER E WITH DIAERESIS "
+ "16r00CC" 1 " LATIN CAPITAL LETTER I WITH GRAVE "
+ "16r00CD" 1 " LATIN CAPITAL LETTER I WITH ACUTE "
+ "16r00CE" 1 " LATIN CAPITAL LETTER I WITH CIRCUMFLEX "
+ "16r00CF" 1 " LATIN CAPITAL LETTER I WITH DIAERESIS "
+ "16r00D0" 0 " invalid "
+ "16r00D1" 1 " LATIN CAPITAL LETTER N WITH TILDE "
+ "16r00D2" 1 " LATIN CAPITAL LETTER O WITH GRAVE "
+ "16r00D3" 1 " LATIN CAPITAL LETTER O WITH ACUTE "
+ "16r00D4" 1 " LATIN CAPITAL LETTER O WITH CIRCUMFLEX "
+ "16r00D5" 1 " LATIN CAPITAL LETTER O WITH TILDE "
+ "16r00D6" 1 " LATIN CAPITAL LETTER O WITH DIAERESIS "
+ "16r00D7" 0 " invalid "
+ "16r00D8" 1 " LATIN CAPITAL LETTER O WITH STROKE "
+ "16r00D9" 1 " LATIN CAPITAL LETTER U WITH GRAVE "
+ "16r00DA" 1 " LATIN CAPITAL LETTER U WITH ACUTE "
+ "16r00DB" 1 " LATIN CAPITAL LETTER U WITH CIRCUMFLEX "
+ "16r00DC" 1 " LATIN CAPITAL LETTER U WITH DIAERESIS "
+ "16r00DD" 1 " LATIN CAPITAL LETTER Y WITH ACUTE "
+ "16r00DE" 0 " invalid "
+ "16r00DF" 1 " LATIN SMALL LETTER SHARP S "
+ "16r00E0" 1 " LATIN SMALL LETTER A WITH GRAVE "
+ "16r00E1" 1 " LATIN SMALL LETTER A WITH ACUTE "
+ "16r00E2" 1 " LATIN SMALL LETTER A WITH CIRCUMFLEX "
+ "16r00E3" 1 " LATIN SMALL LETTER A WITH TILDE "
+ "16r00E4" 1 " LATIN SMALL LETTER A WITH DIAERESIS "
+ "16r00E5" 1 " LATIN SMALL LETTER A WITH RING ABOVE "
+ "16r00E6" 1 " LATIN SMALL LETTER AE "
+ "16r00E7" 1 " LATIN SMALL LETTER C WITH CEDILLA "
+ "16r00E8" 1 " LATIN SMALL LETTER E WITH GRAVE "
+ "16r00E9" 1 " LATIN SMALL LETTER E WITH ACUTE "
+ "16r00EA" 1 " LATIN SMALL LETTER E WITH CIRCUMFLEX "
+ "16r00EB" 1 " LATIN SMALL LETTER E WITH DIAERESIS "
+ "16r00EC" 1 " LATIN SMALL LETTER I WITH GRAVE "
+ "16r00ED" 1 " LATIN SMALL LETTER I WITH ACUTE "
+ "16r00EE" 1 " LATIN SMALL LETTER I WITH CIRCUMFLEX "
+ "16r00EF" 1 " LATIN SMALL LETTER I WITH DIAERESIS "
+ "16r00F0" 0 " invalid "
+ "16r00F1" 1 " LATIN SMALL LETTER N WITH TILDE "
+ "16r00F2" 1 " LATIN SMALL LETTER O WITH GRAVE "
+ "16r00F3" 1 " LATIN SMALL LETTER O WITH ACUTE "
+ "16r00F4" 1 " LATIN SMALL LETTER O WITH CIRCUMFLEX "
+ "16r00F5" 1 " LATIN SMALL LETTER O WITH TILDE "
+ "16r00F6" 1 " LATIN SMALL LETTER O WITH DIAERESIS "
+ "16r00F7" 0 " invalid "
+ "16r00F8" 1 " LATIN SMALL LETTER O WITH STROKE "
+ "16r00F9" 1 " LATIN SMALL LETTER U WITH GRAVE "
+ "16r00FA" 1 " LATIN SMALL LETTER U WITH ACUTE "
+ "16r00FB" 1 " LATIN SMALL LETTER U WITH CIRCUMFLEX "
+ "16r00FC" 1 " LATIN SMALL LETTER U WITH DIAERESIS "
+ "16r00FD" 1 " LATIN SMALL LETTER Y WITH ACUTE "
+ "16r00FE" 0 " invalid "
+ "16r00FF" 1 " LATIN SMALL LETTER Y WITH DIAERESIS "
+ "16r0100" 0 " invalid "
+ "16r0101" 0 " invalid "
+ "16r0102" 0 " invalid "
+ "16r0103" 0 " invalid "
+ "16r0104" 0 " invalid "
+ "16r0105" 0 " invalid "
+ "16r0106" 0 " invalid "
+ "16r0107" 0 " invalid "
+ "16r0108" 0 " invalid "
+ "16r0109" 0 " invalid "
+ ] at:(unicode - 160)) ~~ 0 ifTrue:[^ unicode].
+ ^ self encodingError.
+ ].
+ unicode <= 16r10B ifTrue:[
+ ^ #[
+ "16r010A" 16rA4 " LATIN CAPITAL LETTER C WITH DOT ABOVE "
+ "16r010B" 16rA5 " LATIN SMALL LETTER C WITH DOT ABOVE "
+ ] at:(unicode - 16r109).
+ ].
+ unicode <= 16r11F ifTrue:[
+ ^ self encodingError.
+ ].
+ ^ #[
+ "16r0120" 16rB2 " LATIN CAPITAL LETTER G WITH DOT ABOVE "
+ "16r0121" 16rB3 " LATIN SMALL LETTER G WITH DOT ABOVE "
+ ] at:(unicode - 16r11F).
+ ].
+ unicode <= 16r173 ifTrue:[
+ ^ self encodingError.
+ ].
+ ^ #[
+ "16r0174" 16rD0 " LATIN CAPITAL LETTER W WITH CIRCUMFLEX "
+ "16r0175" 16rF0 " LATIN SMALL LETTER W WITH CIRCUMFLEX "
+ "16r0176" 16rDE " LATIN CAPITAL LETTER Y WITH CIRCUMFLEX "
+ "16r0177" 16rFE " LATIN SMALL LETTER Y WITH CIRCUMFLEX "
+ "16r0178" 16rAF " LATIN CAPITAL LETTER Y WITH DIAERESIS "
+ ] at:(unicode - 16r173).
+ ].
+ unicode <= 16r1E01 ifTrue:[
+ ^ self encodingError.
+ ].
+ unicode <= 16r1E85 ifTrue:[
+ [
+ |t|
+ t := #[
+ "16r1E02" 16rA1 " LATIN CAPITAL LETTER B WITH DOT ABOVE "
+ "16r1E03" 16rA2 " LATIN SMALL LETTER B WITH DOT ABOVE "
+ "16r1E04" 16r00 " invalid "
+ "16r1E05" 16r00 " invalid "
+ "16r1E06" 16r00 " invalid "
+ "16r1E07" 16r00 " invalid "
+ "16r1E08" 16r00 " invalid "
+ "16r1E09" 16r00 " invalid "
+ "16r1E0A" 16rA6 " LATIN CAPITAL LETTER D WITH DOT ABOVE "
+ "16r1E0B" 16rAB " LATIN SMALL LETTER D WITH DOT ABOVE "
+ "16r1E0C" 16r00 " invalid "
+ "16r1E0D" 16r00 " invalid "
+ "16r1E0E" 16r00 " invalid "
+ "16r1E0F" 16r00 " invalid "
+ "16r1E10" 16r00 " invalid "
+ "16r1E11" 16r00 " invalid "
+ "16r1E12" 16r00 " invalid "
+ "16r1E13" 16r00 " invalid "
+ "16r1E14" 16r00 " invalid "
+ "16r1E15" 16r00 " invalid "
+ "16r1E16" 16r00 " invalid "
+ "16r1E17" 16r00 " invalid "
+ "16r1E18" 16r00 " invalid "
+ "16r1E19" 16r00 " invalid "
+ "16r1E1A" 16r00 " invalid "
+ "16r1E1B" 16r00 " invalid "
+ "16r1E1C" 16r00 " invalid "
+ "16r1E1D" 16r00 " invalid "
+ "16r1E1E" 16rB0 " LATIN CAPITAL LETTER F WITH DOT ABOVE "
+ "16r1E1F" 16rB1 " LATIN SMALL LETTER F WITH DOT ABOVE "
+ "16r1E20" 16r00 " invalid "
+ "16r1E21" 16r00 " invalid "
+ "16r1E22" 16r00 " invalid "
+ "16r1E23" 16r00 " invalid "
+ "16r1E24" 16r00 " invalid "
+ "16r1E25" 16r00 " invalid "
+ "16r1E26" 16r00 " invalid "
+ "16r1E27" 16r00 " invalid "
+ "16r1E28" 16r00 " invalid "
+ "16r1E29" 16r00 " invalid "
+ "16r1E2A" 16r00 " invalid "
+ "16r1E2B" 16r00 " invalid "
+ "16r1E2C" 16r00 " invalid "
+ "16r1E2D" 16r00 " invalid "
+ "16r1E2E" 16r00 " invalid "
+ "16r1E2F" 16r00 " invalid "
+ "16r1E30" 16r00 " invalid "
+ "16r1E31" 16r00 " invalid "
+ "16r1E32" 16r00 " invalid "
+ "16r1E33" 16r00 " invalid "
+ "16r1E34" 16r00 " invalid "
+ "16r1E35" 16r00 " invalid "
+ "16r1E36" 16r00 " invalid "
+ "16r1E37" 16r00 " invalid "
+ "16r1E38" 16r00 " invalid "
+ "16r1E39" 16r00 " invalid "
+ "16r1E3A" 16r00 " invalid "
+ "16r1E3B" 16r00 " invalid "
+ "16r1E3C" 16r00 " invalid "
+ "16r1E3D" 16r00 " invalid "
+ "16r1E3E" 16r00 " invalid "
+ "16r1E3F" 16r00 " invalid "
+ "16r1E40" 16rB4 " LATIN CAPITAL LETTER M WITH DOT ABOVE "
+ "16r1E41" 16rB5 " LATIN SMALL LETTER M WITH DOT ABOVE "
+ "16r1E42" 16r00 " invalid "
+ "16r1E43" 16r00 " invalid "
+ "16r1E44" 16r00 " invalid "
+ "16r1E45" 16r00 " invalid "
+ "16r1E46" 16r00 " invalid "
+ "16r1E47" 16r00 " invalid "
+ "16r1E48" 16r00 " invalid "
+ "16r1E49" 16r00 " invalid "
+ "16r1E4A" 16r00 " invalid "
+ "16r1E4B" 16r00 " invalid "
+ "16r1E4C" 16r00 " invalid "
+ "16r1E4D" 16r00 " invalid "
+ "16r1E4E" 16r00 " invalid "
+ "16r1E4F" 16r00 " invalid "
+ "16r1E50" 16r00 " invalid "
+ "16r1E51" 16r00 " invalid "
+ "16r1E52" 16r00 " invalid "
+ "16r1E53" 16r00 " invalid "
+ "16r1E54" 16r00 " invalid "
+ "16r1E55" 16r00 " invalid "
+ "16r1E56" 16rB7 " LATIN CAPITAL LETTER P WITH DOT ABOVE "
+ "16r1E57" 16rB9 " LATIN SMALL LETTER P WITH DOT ABOVE "
+ "16r1E58" 16r00 " invalid "
+ "16r1E59" 16r00 " invalid "
+ "16r1E5A" 16r00 " invalid "
+ "16r1E5B" 16r00 " invalid "
+ "16r1E5C" 16r00 " invalid "
+ "16r1E5D" 16r00 " invalid "
+ "16r1E5E" 16r00 " invalid "
+ "16r1E5F" 16r00 " invalid "
+ "16r1E60" 16rBB " LATIN CAPITAL LETTER S WITH DOT ABOVE "
+ "16r1E61" 16rBF " LATIN SMALL LETTER S WITH DOT ABOVE "
+ "16r1E62" 16r00 " invalid "
+ "16r1E63" 16r00 " invalid "
+ "16r1E64" 16r00 " invalid "
+ "16r1E65" 16r00 " invalid "
+ "16r1E66" 16r00 " invalid "
+ "16r1E67" 16r00 " invalid "
+ "16r1E68" 16r00 " invalid "
+ "16r1E69" 16r00 " invalid "
+ "16r1E6A" 16rD7 " LATIN CAPITAL LETTER T WITH DOT ABOVE "
+ "16r1E6B" 16rF7 " LATIN SMALL LETTER T WITH DOT ABOVE "
+ "16r1E6C" 16r00 " invalid "
+ "16r1E6D" 16r00 " invalid "
+ "16r1E6E" 16r00 " invalid "
+ "16r1E6F" 16r00 " invalid "
+ "16r1E70" 16r00 " invalid "
+ "16r1E71" 16r00 " invalid "
+ "16r1E72" 16r00 " invalid "
+ "16r1E73" 16r00 " invalid "
+ "16r1E74" 16r00 " invalid "
+ "16r1E75" 16r00 " invalid "
+ "16r1E76" 16r00 " invalid "
+ "16r1E77" 16r00 " invalid "
+ "16r1E78" 16r00 " invalid "
+ "16r1E79" 16r00 " invalid "
+ "16r1E7A" 16r00 " invalid "
+ "16r1E7B" 16r00 " invalid "
+ "16r1E7C" 16r00 " invalid "
+ "16r1E7D" 16r00 " invalid "
+ "16r1E7E" 16r00 " invalid "
+ "16r1E7F" 16r00 " invalid "
+ "16r1E80" 16rA8 " LATIN CAPITAL LETTER W WITH GRAVE "
+ "16r1E81" 16rB8 " LATIN SMALL LETTER W WITH GRAVE "
+ "16r1E82" 16rAA " LATIN CAPITAL LETTER W WITH ACUTE "
+ "16r1E83" 16rBA " LATIN SMALL LETTER W WITH ACUTE "
+ "16r1E84" 16rBD " LATIN CAPITAL LETTER W WITH DIAERESIS "
+ "16r1E85" 16rBE " LATIN SMALL LETTER W WITH DIAERESIS "
+ ] at:(unicode - 16r1E01).
+ t == 0 ifFalse:[^ t].
+ ^ self encodingError
+ ] value.
+ ].
+ unicode <= 16r1EF1 ifTrue:[
+ ^ self encodingError.
+ ].
+ ^ #[
+ "16r1EF2" 16rAC " LATIN CAPITAL LETTER Y WITH GRAVE "
+ "16r1EF3" 16rBC " LATIN SMALL LETTER Y WITH GRAVE "
+ ] at:(unicode - 16r1EF1).
+! !
+
+!ISO8859_14 class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__ISO8859_14.st,v 1.1 2004-03-05 17:29:55 cg Exp $'
+! !
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/CharacterEncoderImplementations__ISO8859_16.st Fri Mar 05 18:30:49 2004 +0100
@@ -0,0 +1,696 @@
+"{ Encoding: utf8 }"
+
+"{ Package: 'stx:libbasic' }"
+
+"{ NameSpace: CharacterEncoderImplementations }"
+
+SingleByteEncoder subclass:#ISO8859_16
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Collections-Text-Encodings'
+!
+
+
+!ISO8859_16 class methodsFor:'mapping'!
+
+mapFileURL1_relativePathName
+ ^ 'ISO8859/8859-16.TXT'
+!
+
+mapping
+"
+# From: http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-16.TXT
+
+#
+# Name: ISO/IEC 8859-16:2001 to Unicode
+# Unicode version: 3.0
+# Table version: 1.0
+# Table format: Format A
+# Date: 2001 July 26
+# Authors: Markus Kuhn <mkuhn@acm.org>
+#
+# Copyright (c) 1999-2001 Unicode, Inc. All Rights reserved.
+#
+# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
+# No claims are made as to fitness for any particular purpose. No
+# warranties of any kind are expressed or implied. The recipient
+# agrees to determine applicability of information provided. If this
+# file has been provided on optical media by Unicode, Inc., the sole
+# remedy for any claim will be exchange of defective media within 90
+# days of receipt.
+#
+# Unicode, Inc. hereby grants the right to freely use the information
+# supplied in this file in the creation of products supporting the
+# Unicode Standard, and to make copies of this file in any form for
+# internal or external distribution as long as this notice remains
+# attached.
+#
+# General notes:
+#
+# This table contains the data the Unicode Consortium has on how
+# ISO/IEC 8859-16:2001 characters map into Unicode.
+#
+# Format: Three tab-separated columns
+# Column #1 is the ISO/IEC 8859-16 code (in hex as 0xXX)
+# Column #2 is the Unicode (in hex as 0xXXXX)
+# Column #3 the Unicode name (follows a comment sign, '#')
+#
+# The entries are in ISO/IEC 8859-16 order.
+#
+# Updated versions of this file may be found in:
+# <ftp://ftp.unicode.org/Public/MAPPINGS/>
+#
+# Any comments or problems, contact <errata@unicode.org>
+# Please note that <errata@unicode.org> is an archival address;
+# notices will be checked, but do not expect an immediate response.
+#
+0x00 0x0000 # NULL
+0x01 0x0001 # START OF HEADING
+0x02 0x0002 # START OF TEXT
+0x03 0x0003 # END OF TEXT
+0x04 0x0004 # END OF TRANSMISSION
+0x05 0x0005 # ENQUIRY
+0x06 0x0006 # ACKNOWLEDGE
+0x07 0x0007 # BELL
+0x08 0x0008 # BACKSPACE
+0x09 0x0009 # HORIZONTAL TABULATION
+0x0A 0x000A # LINE FEED
+0x0B 0x000B # VERTICAL TABULATION
+0x0C 0x000C # FORM FEED
+0x0D 0x000D # CARRIAGE RETURN
+0x0E 0x000E # SHIFT OUT
+0x0F 0x000F # SHIFT IN
+0x10 0x0010 # DATA LINK ESCAPE
+0x11 0x0011 # DEVICE CONTROL ONE
+0x12 0x0012 # DEVICE CONTROL TWO
+0x13 0x0013 # DEVICE CONTROL THREE
+0x14 0x0014 # DEVICE CONTROL FOUR
+0x15 0x0015 # NEGATIVE ACKNOWLEDGE
+0x16 0x0016 # SYNCHRONOUS IDLE
+0x17 0x0017 # END OF TRANSMISSION BLOCK
+0x18 0x0018 # CANCEL
+0x19 0x0019 # END OF MEDIUM
+0x1A 0x001A # SUBSTITUTE
+0x1B 0x001B # ESCAPE
+0x1C 0x001C # FILE SEPARATOR
+0x1D 0x001D # GROUP SEPARATOR
+0x1E 0x001E # RECORD SEPARATOR
+0x1F 0x001F # UNIT SEPARATOR
+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
+0x7F 0x007F # DELETE
+0x80 0x0080 # <control>
+0x81 0x0081 # <control>
+0x82 0x0082 # <control>
+0x83 0x0083 # <control>
+0x84 0x0084 # <control>
+0x85 0x0085 # <control>
+0x86 0x0086 # <control>
+0x87 0x0087 # <control>
+0x88 0x0088 # <control>
+0x89 0x0089 # <control>
+0x8A 0x008A # <control>
+0x8B 0x008B # <control>
+0x8C 0x008C # <control>
+0x8D 0x008D # <control>
+0x8E 0x008E # <control>
+0x8F 0x008F # <control>
+0x90 0x0090 # <control>
+0x91 0x0091 # <control>
+0x92 0x0092 # <control>
+0x93 0x0093 # <control>
+0x94 0x0094 # <control>
+0x95 0x0095 # <control>
+0x96 0x0096 # <control>
+0x97 0x0097 # <control>
+0x98 0x0098 # <control>
+0x99 0x0099 # <control>
+0x9A 0x009A # <control>
+0x9B 0x009B # <control>
+0x9C 0x009C # <control>
+0x9D 0x009D # <control>
+0x9E 0x009E # <control>
+0x9F 0x009F # <control>
+0xA0 0x00A0 # NO-BREAK SPACE
+0xA1 0x0104 # LATIN CAPITAL LETTER A WITH OGONEK
+0xA2 0x0105 # LATIN SMALL LETTER A WITH OGONEK
+0xA3 0x0141 # LATIN CAPITAL LETTER L WITH STROKE
+0xA4 0x20AC # EURO SIGN
+0xA5 0x201E # DOUBLE LOW-9 QUOTATION MARK
+0xA6 0x0160 # LATIN CAPITAL LETTER S WITH CARON
+0xA7 0x00A7 # SECTION SIGN
+0xA8 0x0161 # LATIN SMALL LETTER S WITH CARON
+0xA9 0x00A9 # COPYRIGHT SIGN
+0xAA 0x0218 # LATIN CAPITAL LETTER S WITH COMMA BELOW
+0xAB 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+0xAC 0x0179 # LATIN CAPITAL LETTER Z WITH ACUTE
+0xAD 0x00AD # SOFT HYPHEN
+0xAE 0x017A # LATIN SMALL LETTER Z WITH ACUTE
+0xAF 0x017B # LATIN CAPITAL LETTER Z WITH DOT ABOVE
+0xB0 0x00B0 # DEGREE SIGN
+0xB1 0x00B1 # PLUS-MINUS SIGN
+0xB2 0x010C # LATIN CAPITAL LETTER C WITH CARON
+0xB3 0x0142 # LATIN SMALL LETTER L WITH STROKE
+0xB4 0x017D # LATIN CAPITAL LETTER Z WITH CARON
+0xB5 0x201D # RIGHT DOUBLE QUOTATION MARK
+0xB6 0x00B6 # PILCROW SIGN
+0xB7 0x00B7 # MIDDLE DOT
+0xB8 0x017E # LATIN SMALL LETTER Z WITH CARON
+0xB9 0x010D # LATIN SMALL LETTER C WITH CARON
+0xBA 0x0219 # LATIN SMALL LETTER S WITH COMMA BELOW
+0xBB 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+0xBC 0x0152 # LATIN CAPITAL LIGATURE OE
+0xBD 0x0153 # LATIN SMALL LIGATURE OE
+0xBE 0x0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS
+0xBF 0x017C # LATIN SMALL LETTER Z WITH DOT ABOVE
+0xC0 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE
+0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
+0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+0xC3 0x0102 # LATIN CAPITAL LETTER A WITH BREVE
+0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
+0xC5 0x0106 # LATIN CAPITAL LETTER C WITH ACUTE
+0xC6 0x00C6 # LATIN CAPITAL LETTER AE
+0xC7 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
+0xC8 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE
+0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
+0xCA 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
+0xCC 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE
+0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
+0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+0xCF 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
+0xD0 0x0110 # LATIN CAPITAL LETTER D WITH STROKE
+0xD1 0x0143 # LATIN CAPITAL LETTER N WITH ACUTE
+0xD2 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE
+0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
+0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+0xD5 0x0150 # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
+0xD7 0x015A # LATIN CAPITAL LETTER S WITH ACUTE
+0xD8 0x0170 # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0xD9 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE
+0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
+0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
+0xDD 0x0118 # LATIN CAPITAL LETTER E WITH OGONEK
+0xDE 0x021A # LATIN CAPITAL LETTER T WITH COMMA BELOW
+0xDF 0x00DF # LATIN SMALL LETTER SHARP S
+0xE0 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
+0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
+0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
+0xE3 0x0103 # LATIN SMALL LETTER A WITH BREVE
+0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
+0xE5 0x0107 # LATIN SMALL LETTER C WITH ACUTE
+0xE6 0x00E6 # LATIN SMALL LETTER AE
+0xE7 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
+0xE8 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
+0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
+0xEA 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
+0xEC 0x00EC # LATIN SMALL LETTER I WITH GRAVE
+0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE
+0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
+0xEF 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
+0xF0 0x0111 # LATIN SMALL LETTER D WITH STROKE
+0xF1 0x0144 # LATIN SMALL LETTER N WITH ACUTE
+0xF2 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
+0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
+0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
+0xF5 0x0151 # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
+0xF7 0x015B # LATIN SMALL LETTER S WITH ACUTE
+0xF8 0x0171 # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0xF9 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
+0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE
+0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
+0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
+0xFD 0x0119 # LATIN SMALL LETTER E WITH OGONEK
+0xFE 0x021B # LATIN SMALL LETTER T WITH COMMA BELOW
+0xFF 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
+
+"
+! !
+
+!ISO8859_16 class methodsFor:'queries'!
+
+namesOfEncoding
+ ^ #( 'iso8859-16' 'iso-8859-16' 'latin10' 'latin-10' )
+! !
+
+!ISO8859_16 methodsFor:'encoding & decoding'!
+
+decode:codeArg
+ "Automagically generated by generateCode - do not modify.
+ Decode from my encoding into unicode."
+
+ |code "{ Class: SmallInteger }"|
+
+ code := codeArg.
+ code <= 16rA0 ifTrue:[ ^ code ].
+ code > 16rFF ifTrue:[
+ ^ self decodingError.
+ ].
+ ^ #(
+ "16r00A1" 16r0104 " LATIN CAPITAL LETTER A WITH OGONEK "
+ "16r00A2" 16r0105 " LATIN SMALL LETTER A WITH OGONEK "
+ "16r00A3" 16r0141 " LATIN CAPITAL LETTER L WITH STROKE "
+ "16r00A4" 16r20AC " EURO SIGN "
+ "16r00A5" 16r201E " DOUBLE LOW-9 QUOTATION MARK "
+ "16r00A6" 16r0160 " LATIN CAPITAL LETTER S WITH CARON "
+ "16r00A7" 16r00A7 " SECTION SIGN "
+ "16r00A8" 16r0161 " LATIN SMALL LETTER S WITH CARON "
+ "16r00A9" 16r00A9 " COPYRIGHT SIGN "
+ "16r00AA" 16r0218 " LATIN CAPITAL LETTER S WITH COMMA BELOW "
+ "16r00AB" 16r00AB " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK "
+ "16r00AC" 16r0179 " LATIN CAPITAL LETTER Z WITH ACUTE "
+ "16r00AD" 16r00AD " SOFT HYPHEN "
+ "16r00AE" 16r017A " LATIN SMALL LETTER Z WITH ACUTE "
+ "16r00AF" 16r017B " LATIN CAPITAL LETTER Z WITH DOT ABOVE "
+ "16r00B0" 16r00B0 " DEGREE SIGN "
+ "16r00B1" 16r00B1 " PLUS-MINUS SIGN "
+ "16r00B2" 16r010C " LATIN CAPITAL LETTER C WITH CARON "
+ "16r00B3" 16r0142 " LATIN SMALL LETTER L WITH STROKE "
+ "16r00B4" 16r017D " LATIN CAPITAL LETTER Z WITH CARON "
+ "16r00B5" 16r201D " RIGHT DOUBLE QUOTATION MARK "
+ "16r00B6" 16r00B6 " PILCROW SIGN "
+ "16r00B7" 16r00B7 " MIDDLE DOT "
+ "16r00B8" 16r017E " LATIN SMALL LETTER Z WITH CARON "
+ "16r00B9" 16r010D " LATIN SMALL LETTER C WITH CARON "
+ "16r00BA" 16r0219 " LATIN SMALL LETTER S WITH COMMA BELOW "
+ "16r00BB" 16r00BB " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK "
+ "16r00BC" 16r0152 " LATIN CAPITAL LIGATURE OE "
+ "16r00BD" 16r0153 " LATIN SMALL LIGATURE OE "
+ "16r00BE" 16r0178 " LATIN CAPITAL LETTER Y WITH DIAERESIS "
+ "16r00BF" 16r017C " LATIN SMALL LETTER Z WITH DOT ABOVE "
+ "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" 16r0102 " LATIN CAPITAL LETTER A WITH BREVE "
+ "16r00C4" 16r00C4 " LATIN CAPITAL LETTER A WITH DIAERESIS "
+ "16r00C5" 16r0106 " LATIN CAPITAL LETTER C WITH ACUTE "
+ "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" 16r0110 " LATIN CAPITAL LETTER D WITH STROKE "
+ "16r00D1" 16r0143 " LATIN CAPITAL LETTER N WITH ACUTE "
+ "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" 16r0150 " LATIN CAPITAL LETTER O WITH DOUBLE ACUTE "
+ "16r00D6" 16r00D6 " LATIN CAPITAL LETTER O WITH DIAERESIS "
+ "16r00D7" 16r015A " LATIN CAPITAL LETTER S WITH ACUTE "
+ "16r00D8" 16r0170 " LATIN CAPITAL LETTER U WITH DOUBLE ACUTE "
+ "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" 16r0118 " LATIN CAPITAL LETTER E WITH OGONEK "
+ "16r00DE" 16r021A " LATIN CAPITAL LETTER T WITH COMMA BELOW "
+ "16r00DF" 16r00DF " LATIN SMALL LETTER SHARP S "
+ "16r00E0" 16r00E0 " LATIN SMALL LETTER A WITH GRAVE "
+ "16r00E1" 16r00E1 " LATIN SMALL LETTER A WITH ACUTE "
+ "16r00E2" 16r00E2 " LATIN SMALL LETTER A WITH CIRCUMFLEX "
+ "16r00E3" 16r0103 " LATIN SMALL LETTER A WITH BREVE "
+ "16r00E4" 16r00E4 " LATIN SMALL LETTER A WITH DIAERESIS "
+ "16r00E5" 16r0107 " LATIN SMALL LETTER C WITH ACUTE "
+ "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" 16r0111 " LATIN SMALL LETTER D WITH STROKE "
+ "16r00F1" 16r0144 " LATIN SMALL LETTER N WITH ACUTE "
+ "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" 16r0151 " LATIN SMALL LETTER O WITH DOUBLE ACUTE "
+ "16r00F6" 16r00F6 " LATIN SMALL LETTER O WITH DIAERESIS "
+ "16r00F7" 16r015B " LATIN SMALL LETTER S WITH ACUTE "
+ "16r00F8" 16r0171 " LATIN SMALL LETTER U WITH DOUBLE ACUTE "
+ "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" 16r0119 " LATIN SMALL LETTER E WITH OGONEK "
+ "16r00FE" 16r021B " LATIN SMALL LETTER T WITH COMMA BELOW "
+ "16r00FF" 16r00FF " LATIN SMALL LETTER Y WITH DIAERESIS "
+ ) at:(code - 16rA0).
+!
+
+encode:unicodeArg
+ "Automagically generated by generateCode - do not modify.
+ Encode from unicode into my encoding."
+
+ |unicode "{ Class: SmallInteger }"|
+
+ unicode := unicodeArg.
+ unicode <= 16rA0 ifTrue:[ ^ unicode ].
+ unicode > 16r20AC ifTrue:[
+ ^ self encodingError.
+ ].
+ unicode <= 16r21B ifTrue:[
+ unicode <= 16r17E ifTrue:[
+ unicode <= 16r101 ifTrue:[
+ (#[
+ "16r00A1" 0 " invalid "
+ "16r00A2" 0 " invalid "
+ "16r00A3" 0 " invalid "
+ "16r00A4" 0 " invalid "
+ "16r00A5" 0 " invalid "
+ "16r00A6" 0 " invalid "
+ "16r00A7" 1 " SECTION SIGN "
+ "16r00A8" 0 " invalid "
+ "16r00A9" 1 " COPYRIGHT SIGN "
+ "16r00AA" 0 " invalid "
+ "16r00AB" 1 " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK "
+ "16r00AC" 0 " invalid "
+ "16r00AD" 1 " SOFT HYPHEN "
+ "16r00AE" 0 " invalid "
+ "16r00AF" 0 " invalid "
+ "16r00B0" 1 " DEGREE SIGN "
+ "16r00B1" 1 " PLUS-MINUS SIGN "
+ "16r00B2" 0 " invalid "
+ "16r00B3" 0 " invalid "
+ "16r00B4" 0 " invalid "
+ "16r00B5" 0 " invalid "
+ "16r00B6" 1 " PILCROW SIGN "
+ "16r00B7" 1 " MIDDLE DOT "
+ "16r00B8" 0 " invalid "
+ "16r00B9" 0 " invalid "
+ "16r00BA" 0 " invalid "
+ "16r00BB" 1 " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK "
+ "16r00BC" 0 " invalid "
+ "16r00BD" 0 " invalid "
+ "16r00BE" 0 " invalid "
+ "16r00BF" 0 " invalid "
+ "16r00C0" 1 " LATIN CAPITAL LETTER A WITH GRAVE "
+ "16r00C1" 1 " LATIN CAPITAL LETTER A WITH ACUTE "
+ "16r00C2" 1 " LATIN CAPITAL LETTER A WITH CIRCUMFLEX "
+ "16r00C3" 0 " invalid "
+ "16r00C4" 1 " LATIN CAPITAL LETTER A WITH DIAERESIS "
+ "16r00C5" 0 " invalid "
+ "16r00C6" 1 " LATIN CAPITAL LETTER AE "
+ "16r00C7" 1 " LATIN CAPITAL LETTER C WITH CEDILLA "
+ "16r00C8" 1 " LATIN CAPITAL LETTER E WITH GRAVE "
+ "16r00C9" 1 " LATIN CAPITAL LETTER E WITH ACUTE "
+ "16r00CA" 1 " LATIN CAPITAL LETTER E WITH CIRCUMFLEX "
+ "16r00CB" 1 " LATIN CAPITAL LETTER E WITH DIAERESIS "
+ "16r00CC" 1 " LATIN CAPITAL LETTER I WITH GRAVE "
+ "16r00CD" 1 " LATIN CAPITAL LETTER I WITH ACUTE "
+ "16r00CE" 1 " LATIN CAPITAL LETTER I WITH CIRCUMFLEX "
+ "16r00CF" 1 " LATIN CAPITAL LETTER I WITH DIAERESIS "
+ "16r00D0" 0 " invalid "
+ "16r00D1" 0 " invalid "
+ "16r00D2" 1 " LATIN CAPITAL LETTER O WITH GRAVE "
+ "16r00D3" 1 " LATIN CAPITAL LETTER O WITH ACUTE "
+ "16r00D4" 1 " LATIN CAPITAL LETTER O WITH CIRCUMFLEX "
+ "16r00D5" 0 " invalid "
+ "16r00D6" 1 " LATIN CAPITAL LETTER O WITH DIAERESIS "
+ "16r00D7" 0 " invalid "
+ "16r00D8" 0 " invalid "
+ "16r00D9" 1 " LATIN CAPITAL LETTER U WITH GRAVE "
+ "16r00DA" 1 " LATIN CAPITAL LETTER U WITH ACUTE "
+ "16r00DB" 1 " LATIN CAPITAL LETTER U WITH CIRCUMFLEX "
+ "16r00DC" 1 " LATIN CAPITAL LETTER U WITH DIAERESIS "
+ "16r00DD" 0 " invalid "
+ "16r00DE" 0 " invalid "
+ "16r00DF" 1 " LATIN SMALL LETTER SHARP S "
+ "16r00E0" 1 " LATIN SMALL LETTER A WITH GRAVE "
+ "16r00E1" 1 " LATIN SMALL LETTER A WITH ACUTE "
+ "16r00E2" 1 " LATIN SMALL LETTER A WITH CIRCUMFLEX "
+ "16r00E3" 0 " invalid "
+ "16r00E4" 1 " LATIN SMALL LETTER A WITH DIAERESIS "
+ "16r00E5" 0 " invalid "
+ "16r00E6" 1 " LATIN SMALL LETTER AE "
+ "16r00E7" 1 " LATIN SMALL LETTER C WITH CEDILLA "
+ "16r00E8" 1 " LATIN SMALL LETTER E WITH GRAVE "
+ "16r00E9" 1 " LATIN SMALL LETTER E WITH ACUTE "
+ "16r00EA" 1 " LATIN SMALL LETTER E WITH CIRCUMFLEX "
+ "16r00EB" 1 " LATIN SMALL LETTER E WITH DIAERESIS "
+ "16r00EC" 1 " LATIN SMALL LETTER I WITH GRAVE "
+ "16r00ED" 1 " LATIN SMALL LETTER I WITH ACUTE "
+ "16r00EE" 1 " LATIN SMALL LETTER I WITH CIRCUMFLEX "
+ "16r00EF" 1 " LATIN SMALL LETTER I WITH DIAERESIS "
+ "16r00F0" 0 " invalid "
+ "16r00F1" 0 " invalid "
+ "16r00F2" 1 " LATIN SMALL LETTER O WITH GRAVE "
+ "16r00F3" 1 " LATIN SMALL LETTER O WITH ACUTE "
+ "16r00F4" 1 " LATIN SMALL LETTER O WITH CIRCUMFLEX "
+ "16r00F5" 0 " invalid "
+ "16r00F6" 1 " LATIN SMALL LETTER O WITH DIAERESIS "
+ "16r00F7" 0 " invalid "
+ "16r00F8" 0 " invalid "
+ "16r00F9" 1 " LATIN SMALL LETTER U WITH GRAVE "
+ "16r00FA" 1 " LATIN SMALL LETTER U WITH ACUTE "
+ "16r00FB" 1 " LATIN SMALL LETTER U WITH CIRCUMFLEX "
+ "16r00FC" 1 " LATIN SMALL LETTER U WITH DIAERESIS "
+ "16r00FD" 0 " invalid "
+ "16r00FE" 0 " invalid "
+ "16r00FF" 1 " LATIN SMALL LETTER Y WITH DIAERESIS "
+ "16r0100" 0 " invalid "
+ "16r0101" 0 " invalid "
+ ] at:(unicode - 160)) ~~ 0 ifTrue:[^ unicode].
+ ^ self encodingError.
+ ].
+ unicode <= 16r119 ifTrue:[
+ [
+ |t|
+ t := #[
+ "16r0102" 16rC3 " LATIN CAPITAL LETTER A WITH BREVE "
+ "16r0103" 16rE3 " LATIN SMALL LETTER A WITH BREVE "
+ "16r0104" 16rA1 " LATIN CAPITAL LETTER A WITH OGONEK "
+ "16r0105" 16rA2 " LATIN SMALL LETTER A WITH OGONEK "
+ "16r0106" 16rC5 " LATIN CAPITAL LETTER C WITH ACUTE "
+ "16r0107" 16rE5 " LATIN SMALL LETTER C WITH ACUTE "
+ "16r0108" 16r00 " invalid "
+ "16r0109" 16r00 " invalid "
+ "16r010A" 16r00 " invalid "
+ "16r010B" 16r00 " invalid "
+ "16r010C" 16rB2 " LATIN CAPITAL LETTER C WITH CARON "
+ "16r010D" 16rB9 " LATIN SMALL LETTER C WITH CARON "
+ "16r010E" 16r00 " invalid "
+ "16r010F" 16r00 " invalid "
+ "16r0110" 16rD0 " LATIN CAPITAL LETTER D WITH STROKE "
+ "16r0111" 16rF0 " LATIN SMALL LETTER D WITH STROKE "
+ "16r0112" 16r00 " invalid "
+ "16r0113" 16r00 " invalid "
+ "16r0114" 16r00 " invalid "
+ "16r0115" 16r00 " invalid "
+ "16r0116" 16r00 " invalid "
+ "16r0117" 16r00 " invalid "
+ "16r0118" 16rDD " LATIN CAPITAL LETTER E WITH OGONEK "
+ "16r0119" 16rFD " LATIN SMALL LETTER E WITH OGONEK "
+ ] at:(unicode - 16r101).
+ t == 0 ifFalse:[^ t].
+ ^ self encodingError
+ ] value.
+ ].
+ unicode <= 16r140 ifTrue:[
+ ^ self encodingError.
+ ].
+ [
+ |t|
+ t := #[
+ "16r0141" 16rA3 " LATIN CAPITAL LETTER L WITH STROKE "
+ "16r0142" 16rB3 " LATIN SMALL LETTER L WITH STROKE "
+ "16r0143" 16rD1 " LATIN CAPITAL LETTER N WITH ACUTE "
+ "16r0144" 16rF1 " LATIN SMALL LETTER N WITH ACUTE "
+ "16r0145" 16r00 " invalid "
+ "16r0146" 16r00 " invalid "
+ "16r0147" 16r00 " invalid "
+ "16r0148" 16r00 " invalid "
+ "16r0149" 16r00 " invalid "
+ "16r014A" 16r00 " invalid "
+ "16r014B" 16r00 " invalid "
+ "16r014C" 16r00 " invalid "
+ "16r014D" 16r00 " invalid "
+ "16r014E" 16r00 " invalid "
+ "16r014F" 16r00 " invalid "
+ "16r0150" 16rD5 " LATIN CAPITAL LETTER O WITH DOUBLE ACUTE "
+ "16r0151" 16rF5 " LATIN SMALL LETTER O WITH DOUBLE ACUTE "
+ "16r0152" 16rBC " LATIN CAPITAL LIGATURE OE "
+ "16r0153" 16rBD " LATIN SMALL LIGATURE OE "
+ "16r0154" 16r00 " invalid "
+ "16r0155" 16r00 " invalid "
+ "16r0156" 16r00 " invalid "
+ "16r0157" 16r00 " invalid "
+ "16r0158" 16r00 " invalid "
+ "16r0159" 16r00 " invalid "
+ "16r015A" 16rD7 " LATIN CAPITAL LETTER S WITH ACUTE "
+ "16r015B" 16rF7 " LATIN SMALL LETTER S WITH ACUTE "
+ "16r015C" 16r00 " invalid "
+ "16r015D" 16r00 " invalid "
+ "16r015E" 16r00 " invalid "
+ "16r015F" 16r00 " invalid "
+ "16r0160" 16rA6 " LATIN CAPITAL LETTER S WITH CARON "
+ "16r0161" 16rA8 " LATIN SMALL LETTER S WITH CARON "
+ "16r0162" 16r00 " invalid "
+ "16r0163" 16r00 " invalid "
+ "16r0164" 16r00 " invalid "
+ "16r0165" 16r00 " invalid "
+ "16r0166" 16r00 " invalid "
+ "16r0167" 16r00 " invalid "
+ "16r0168" 16r00 " invalid "
+ "16r0169" 16r00 " invalid "
+ "16r016A" 16r00 " invalid "
+ "16r016B" 16r00 " invalid "
+ "16r016C" 16r00 " invalid "
+ "16r016D" 16r00 " invalid "
+ "16r016E" 16r00 " invalid "
+ "16r016F" 16r00 " invalid "
+ "16r0170" 16rD8 " LATIN CAPITAL LETTER U WITH DOUBLE ACUTE "
+ "16r0171" 16rF8 " LATIN SMALL LETTER U WITH DOUBLE ACUTE "
+ "16r0172" 16r00 " invalid "
+ "16r0173" 16r00 " invalid "
+ "16r0174" 16r00 " invalid "
+ "16r0175" 16r00 " invalid "
+ "16r0176" 16r00 " invalid "
+ "16r0177" 16r00 " invalid "
+ "16r0178" 16rBE " LATIN CAPITAL LETTER Y WITH DIAERESIS "
+ "16r0179" 16rAC " LATIN CAPITAL LETTER Z WITH ACUTE "
+ "16r017A" 16rAE " LATIN SMALL LETTER Z WITH ACUTE "
+ "16r017B" 16rAF " LATIN CAPITAL LETTER Z WITH DOT ABOVE "
+ "16r017C" 16rBF " LATIN SMALL LETTER Z WITH DOT ABOVE "
+ "16r017D" 16rB4 " LATIN CAPITAL LETTER Z WITH CARON "
+ "16r017E" 16rB8 " LATIN SMALL LETTER Z WITH CARON "
+ ] at:(unicode - 16r140).
+ t == 0 ifFalse:[^ t].
+ ^ self encodingError
+ ] value.
+ ].
+ unicode <= 16r217 ifTrue:[
+ ^ self encodingError.
+ ].
+ ^ #[
+ "16r0218" 16rAA " LATIN CAPITAL LETTER S WITH COMMA BELOW "
+ "16r0219" 16rBA " LATIN SMALL LETTER S WITH COMMA BELOW "
+ "16r021A" 16rDE " LATIN CAPITAL LETTER T WITH COMMA BELOW "
+ "16r021B" 16rFE " LATIN SMALL LETTER T WITH COMMA BELOW "
+ ] at:(unicode - 16r217).
+ ].
+ unicode <= 16r201C ifTrue:[
+ ^ self encodingError.
+ ].
+ unicode <= 16r201E ifTrue:[
+ ^ #[
+ "16r201D" 16rB5 " RIGHT DOUBLE QUOTATION MARK "
+ "16r201E" 16rA5 " DOUBLE LOW-9 QUOTATION MARK "
+ ] at:(unicode - 16r201C).
+ ].
+ unicode <= 16r20AB ifTrue:[
+ ^ self encodingError.
+ ].
+ ^ "16r20AC" 16r00A4 " EURO SIGN "
+! !
+
+!ISO8859_16 class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__ISO8859_16.st,v 1.1 2004-03-05 17:29:35 cg Exp $'
+! !
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/CharacterEncoderImplementations__MAC_Hebrew.st Fri Mar 05 18:30:49 2004 +0100
@@ -0,0 +1,596 @@
+"{ Encoding: utf8 }"
+
+"{ Package: 'stx:libbasic' }"
+
+"{ NameSpace: CharacterEncoderImplementations }"
+
+SingleByteEncoder subclass:#MAC_Hebrew
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Collections-Text-Encodings'
+!
+
+
+!MAC_Hebrew class methodsFor:'mapping'!
+
+mapFileURL1_relativePathName
+ ^ 'VENDORS/APPLE/HEBREW.TXT'
+!
+
+mapping
+"
+# From: http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/HEBREW.TXT
+
+#=======================================================================
+# File name: HEBREW.TXT
+#
+# Contents: Map (external version) from Mac OS Hebrew
+# character set to Unicode 2.1 through Unicode 3.2.
+#
+# Copyright: (c) 1995-2002 by Apple Computer, Inc., all rights
+# reserved.
+#
+# Contact: charsets@apple.com
+#
+# Changes:
+#
+# b3,c1 2002-Dec-19 Don't require left-right context for digits
+# 0x30-0x39. Change mapping of 0x81 to use
+# decomposition. Reverse the mappings of 0xA8,
+# 0xA9. Update URLs, notes. Matches internal
+# utom<b7>.
+# b02 1999-Sep-22 Update contact e-mail address. Matches
+# internal utom<b1>, ufrm<b1>, and Text
+# Encoding Converter version 1.5.
+# n03 1998-Feb-05 Show required Unicode character
+# directionality in a different way. Update
+# mappings for 0xC0 and 0xDE to use
+# transcoding hints; matches internal utom<n6>,
+# ufrm<n20>, and Text Encoding Converter
+# version 1.3. Rewrite header comments.
+# n01 1995-Nov-15 First version. Matches internal ufrm<n8>.
+#
+# 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:
+#
+# <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
+#
+# 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 Hebrew code (in hex as 0xNN).
+# Column #2 is the corresponding Unicode or Unicode sequence (in
+# hex as 0xNNNN, 0xNNNN+0xNNNN, etc.). Sequences of up to 5
+# Unicode characters are used here. A single Unicode character
+# may be preceded by a tag indicating required directionality
+# (i.e. <LR>+0xNNNN or <RL>+0xNNNN).
+# Column #3 is a comment containing the Unicode name.
+#
+# The entries are in Mac OS Hebrew 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 Roman character set uses the standard control characters at
+# 0x00-0x1F and 0x7F.
+#
+# Notes on Mac OS Hebrew:
+# -----------------------
+#
+# 1. General
+#
+# The Mac OS Hebrew character set supports the Hebrew and Yiddish
+# languages. It incorporates the Hebrew letter repertoire of
+# ISO 8859-8, and uses the same code points for them, 0xE0-0xFA.
+# It also incorporates the ASCII character set. In addition, the
+# Mac OS Hebrew character set includes the following:
+#
+# - Hebrew points (nikud marks) at 0xC6, 0xCB-0xCF and 0xD8-0xDF.
+# These are non-spacing combining marks. Note that the RAFE point
+# at 0xD8 is not displayed correctly in some fonts, and cannot be
+# typed using the keyboard layouts in the current Hebrew localized
+# systems. Also note: The character given in Unicode as QAMATS
+# (U+05B8) actually refers to two different sounds, depending on
+# context. For example, when ALEF is followed by QAMATS, the QAMATS
+# can actually refer to two different sounds depending on the
+# following letters. The Mac OS Hebrew character set separately
+# encodes these two sounds for the same graphic shape, as 'qamats'
+# (0xCB) and 'qamats qatan' (0xDE). The 'qamats' character is more
+# common, so it is mapped to the Unicode QAMATS; 'qamats qatan' can
+# only be used with a limited number of characters, and it is
+# mapped using a corporate-zone variant tag (see below).
+#
+# - Various Hebrew ligatures at 0x81, 0xC0, 0xC7, 0xC8, 0xD6, and
+# 0xD7. Also note that the Yiddish YOD YOD PATAH ligature at 0x81
+# is missing in some fonts.
+#
+# - The NEW SHEQEL SIGN at 0xA6.
+#
+# - Latin characters with diacritics at 0x80 and 0x82-0x9F. However,
+# most of these cannot be typed using the keyboard layouts in the
+# Hebrew localized systems.
+#
+# - Right-left versions of certain ASCII punctuation, symbols and
+# digits: 0xA0-0xA5, 0xA7-0xBF, 0xFB-0xFF. See below.
+#
+# - Miscellaneous additional punctuation at 0xC1, 0xC9, 0xCA, and
+# 0xD0-0xD5. There is a variant of the Hebrew encoding in which
+# the LEFT SINGLE QUOTATION MARK at 0xD4 is replaced by FIGURE
+# SPACE. The glyphs for some of the other punctuation characters
+# are missing in some fonts.
+#
+# - Four obsolete characters at 0xC2-0xC5 known as canorals (not to
+# be confused with cantillation marks!!). These were used for
+# manual positioning of nikud marks before System 7.1 (at which
+# point nikud positioning became automatic with WorldScript.).
+#
+# 2. Directional characters and roundtrip fidelity
+#
+# The Mac OS Hebrew character set was developed around 1987. At that
+# time the bidirectional line line layout algorithm used in the Mac OS
+# Hebrew system was fairly simple; it used only a few direction
+# classes (instead of the 19 now used in the Unicode bidirectional
+# algorithm). In order to permit users to handle some tricky layou
+# problems, certain punctuation, symbol, and digit characters have
+# duplicate code points, one with a left-right direction attribute and
+# the other with a right-left direction attribute.
+#
+# For example, plus sign is encoded at 0x2B with a left-right
+# attribute, and at 0xAB with a right-left attribute. However, there
+# is only one PLUS SIGN character in Unicode. This leads to some
+# interesting problems when mapping between Mac OS Hebrew and Unicode;
+# see below.
+#
+# A related problem is that even when a particular character is
+# encoded only once in Mac OS Hebrew, it may have a different
+# direction attribute than the corresponding Unicode character.
+#
+# For example, the Mac OS Hebrew character at 0xC9 is HORIZONTAL
+# ELLIPSIS with strong right-left direction. However, the Unicode
+# character HORIZONTAL ELLIPSIS has direction class neutral.
+#
+# 3. Font variants
+#
+# The table in this file gives the Unicode mappings for the standard
+# Mac OS Hebrew encoding. This encoding is supported by many of the
+# Apple fonts (including all of the fonts in the Hebrew Language Kit),
+# and is the encoding supported by the text processing utilities.
+# However, some TrueType fonts provided with the localized Hebrew
+# system implement a slightly different encoding; the difference is
+# only in one code point, 0xD4. For the standard variant, this is:
+# 0xD4 -> <RL>+0x2018 LEFT SINGLE QUOTATION MARK, right-left
+#
+# The TrueType variant is used by the following TrueType fonts from
+# the localized system: Caesarea, Carmel Book, Gilboa, Ramat Sharon,
+# and Sinai Book. For these, 0xD4 is as follows:
+# 0xD4 -> <RL>+0x2007 FIGURE SPACE, right-left
+#
+# Unicode mapping issues and notes:
+# ---------------------------------
+#
+# 1. Matching the direction of Mac OS Hebrew characters
+#
+# When Mac OS Hebrew encodes a character twice but with different
+# direction attributes for the two code points - as in the case of
+# plus sign mentioned above - we need a way to map both Mac OS Hebrew
+# code points to Unicode and back again without loss of information.
+# With the plus sign, for example, mapping one of the Mac OS Hebrew
+# characters to a code in the Unicode corporate use zone is
+# undesirable, since both of the plus sign characters are likely to
+# be used in text that is interchanged.
+#
+# The problem is solved with the use of direction override characters
+# and direction-dependent mappings. When mapping from Mac OS Hebrew
+# to Unicode, we use direction overrides as necessary to force the
+# direction of the resulting Unicode characters.
+#
+# The required direction is indicated by a direction tag in the
+# mappings. A tag of <LR> means the corresponding Unicode character
+# must have a strong left-right context, and a tag of <RL> indicates
+# a right-left context.
+#
+# For example, the mapping of 0x2B is given as <LR>+0x002B; the
+# mapping of 0xAB is given as <RL>+0x002B. If we map an isolated
+# instance of 0x2B to Unicode, it should be mapped as follows (LRO
+# indicates LEFT-RIGHT OVERRIDE, PDF indicates POP DIRECTION
+# FORMATTING):
+#
+# 0x2B -> 0x202D (LRO) + 0x002B (PLUS SIGN) + 0x202C (PDF)
+#
+# When mapping several characters in a row that require direction
+# forcing, the overrides need only be used at the beginning and end.
+# For example:
+#
+# 0x24 0x20 0x28 0x29 -> 0x202D 0x0024 0x0020 0x0028 0x0029 0x202C
+#
+# If neutral characters that require direction forcing are already
+# between strong-direction characters with matching directionality,
+# then direction overrides need not be used. Direction overrides are
+# always needed to map the right-left digits at 0xB0-0xB9.
+#
+# When mapping from Unicode to Mac OS Hebrew, the Unicode
+# bidirectional algorithm should be used to determine resolved
+# direction of the Unicode characters. The mapping from Unicode to
+# Mac OS Hebrew can then be disambiguated by the use of the resolved
+# direction:
+#
+# Unicode 0x002B -> Mac OS Hebrew 0x2B (if L) or 0xAB (if R)
+#
+# However, this also means the direction override characters should
+# be discarded when mapping from Unicode to Mac OS Hebrew (after
+# they have been used to determine resolved direction), since the
+# direction override information is carried by the code point itself.
+#
+# Even when direction overrides are not needed for roundtrip
+# fidelity, they are sometimes used when mapping Mac OS Hebrew
+# characters to Unicode in order to achieve similar text layout with
+# the resulting Unicode text. For example, the single Mac OS Hebrew
+# ellipsis character has direction class right-left,and there is no
+# left-right version. However, the Unicode HORIZONTAL ELLIPSIS
+# character has direction class neutral (which means it may end up
+# with a resolved direction of left-right if surrounded by left-right
+# characters). When mapping the Mac OS Hebrew ellipsis to Unicode, it
+# is surrounded with a direction override to help preserve proper
+# text layout. The resolved direction is not needed or used when
+# mapping the Unicode HORIZONTAL ELLIPSIS back to Mac OS Hebrew.
+#
+# 2. Use of corporate-zone Unicodes
+#
+# The goals in the mappings provided here are:
+# - Ensure roundtrip mapping from every character in the Mac OS
+# Hebrew 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.
+#
+# Some of the characters in the Mac OS Hebrew character set do not
+# correspond to distinct, single Unicode characters. To map these
+# and satisfy both goals above, we employ various strategies.
+#
+# a) If possible, use private use characters in combination with
+# standard Unicode characters to mark variants of the standard
+# Unicode character.
+#
+# 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.
+#
+# Two transcoding hints are used in this mapping table: a grouping hint
+# and a variant tag:
+# hint:
+# 0xF86A group next 2 characters, right-left directionality
+# 0xF87F variant tag
+#
+# In Mac OS Hebrew, 0xC0 is a ligature for lamed holam. This can also
+# be represented in Mac OS Hebrew as 0xEC+0xDD, using separate
+# characters for lamed and holam. The latter sequence is mapped to
+# Unicode as 0x05DC+0x05B9, i.e. as the sequence HEBREW LETTER LAMED +
+# HEBREW POINT HOLAM. We want to map the ligature 0xC0 using the same
+# standard Unicode characters, but for round-trip fidelity we need to
+# distinguish it from the mapping of the sequence 0xEC+0xDD. Thus for
+# 0xC0 we use a grouping hint, and map as follows:
+#
+# 0xC0 -> 0xF86A+0x05DC+0x05B9
+#
+# The variant tag is used for 'qamats qatan' to mark it as an alternate
+# for HEBREW POINT QAMATS, as follows:
+#
+# 0xDE -> 0x05B8+0xF87F
+#
+# b) Otherwise, use private use characters by themselves to map Mac OS
+# Hebrew characters which have no relationship to any standard Unicode
+# character.
+#
+# The following additional corporate zone Unicode characters are used
+# for this purpose here (to map the obsolete 'canorals', see above):
+#
+# 0xF89B Hebrew canoral 1
+# 0xF89C Hebrew canoral 2
+# 0xF89D Hebrew canoral 3
+# 0xF89E Hebrew canoral 4
+#
+# Details of mapping changes in each version:
+# -------------------------------------------
+#
+# Changes from version b02 to version b03/c01:
+#
+# - Stop specifying left-right context for digits 0x30-0x39, since the
+# corresponding Unicodes 0x0030-0x0039 already have left-right
+# directionality.
+#
+# - Change mapping of 0x81 from 0xFB1F HEBREW LIGATURE YIDDISH YOD YOD
+# PATAH to its canonical decomposition 0x05F2+0x05B7 to improve
+# cross-platform compatibility (Windows doesn't handle 0xFB1F)
+#
+# - Interchange the mappings of 0xA8 and 0xA9 to obtain the correct
+# open/close behavior; they work differently than in Mac Arabic.
+# The old mapping was
+# 0xA8 <RL>+0x0028 # LEFT PARENTHESIS, right-left
+# 0xA9 <RL>+0x0029 # RIGHT PARENTHESIS, right-left
+# and the new mapping is
+# 0xA8 <RL>+0x0029 # RIGHT PARENTHESIS, right-left
+# 0xA9 <RL>+0x0028 # LEFT PARENTHESIS, right-left
+#
+# Changes from version n01 to version n03:
+#
+# - Change mapping for 0xC0 from single corporate character to
+# grouping hint plus standard Unicodes
+#
+# - Change mapping for 0xDE from single corporate character to
+# standard Unicode plus variant tag
+#
+##################
+
+0x20 <LR>+0x0020 # SPACE, left-right
+0x21 <LR>+0x0021 # EXCLAMATION MARK, left-right
+0x22 <LR>+0x0022 # QUOTATION MARK, left-right
+0x23 <LR>+0x0023 # NUMBER SIGN, left-right
+0x24 <LR>+0x0024 # DOLLAR SIGN, left-right
+0x25 <LR>+0x0025 # PERCENT SIGN, left-right
+0x26 0x0026 # AMPERSAND
+0x27 <LR>+0x0027 # APOSTROPHE, left-right
+0x28 <LR>+0x0028 # LEFT PARENTHESIS, left-right
+0x29 <LR>+0x0029 # RIGHT PARENTHESIS, left-right
+0x2A <LR>+0x002A # ASTERISK, left-right
+0x2B <LR>+0x002B # PLUS SIGN, left-right
+0x2C <LR>+0x002C # COMMA, left-right
+0x2D <LR>+0x002D # HYPHEN-MINUS, left-right
+0x2E <LR>+0x002E # FULL STOP, left-right
+0x2F <LR>+0x002F # SOLIDUS, left-right
+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 <LR>+0x003A # COLON, left-right
+0x3B <LR>+0x003B # SEMICOLON, left-right
+0x3C <LR>+0x003C # LESS-THAN SIGN, left-right
+0x3D <LR>+0x003D # EQUALS SIGN, left-right
+0x3E <LR>+0x003E # GREATER-THAN SIGN, left-right
+0x3F <LR>+0x003F # QUESTION MARK, left-right
+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 <LR>+0x005B # LEFT SQUARE BRACKET, left-right
+0x5C 0x005C # REVERSE SOLIDUS
+0x5D <LR>+0x005D # RIGHT SQUARE BRACKET, left-right
+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 <LR>+0x007B # LEFT CURLY BRACKET, left-right
+0x7C <LR>+0x007C # VERTICAL LINE, left-right
+0x7D <LR>+0x007D # RIGHT CURLY BRACKET, left-right
+0x7E 0x007E # TILDE
+#
+0x80 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
+0x81 0x05F2+0x05B7 # HEBREW LIGATURE YIDDISH YOD YOD PATAH
+0x82 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
+0x83 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
+0x84 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE
+0x85 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
+0x86 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
+0x87 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
+0x88 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
+0x89 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
+0x8A 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
+0x8B 0x00E3 # LATIN SMALL LETTER A WITH TILDE
+0x8C 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
+0x8D 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
+0x8E 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
+0x8F 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
+0x90 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0x91 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
+0x92 0x00ED # LATIN SMALL LETTER I WITH ACUTE
+0x93 0x00EC # LATIN SMALL LETTER I WITH GRAVE
+0x94 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
+0x95 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
+0x96 0x00F1 # LATIN SMALL LETTER N WITH TILDE
+0x97 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
+0x98 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
+0x99 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
+0x9A 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
+0x9B 0x00F5 # LATIN SMALL LETTER O WITH TILDE
+0x9C 0x00FA # LATIN SMALL LETTER U WITH ACUTE
+0x9D 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
+0x9E 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
+0x9F 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
+0xA0 <RL>+0x0020 # SPACE, right-left
+0xA1 <RL>+0x0021 # EXCLAMATION MARK, right-left
+0xA2 <RL>+0x0022 # QUOTATION MARK, right-left
+0xA3 <RL>+0x0023 # NUMBER SIGN, right-left
+0xA4 <RL>+0x0024 # DOLLAR SIGN, right-left
+0xA5 <RL>+0x0025 # PERCENT SIGN, right-left
+0xA6 0x20AA # NEW SHEQEL SIGN
+0xA7 <RL>+0x0027 # APOSTROPHE, right-left
+0xA8 <RL>+0x0029 # RIGHT PARENTHESIS, right-left
+0xA9 <RL>+0x0028 # LEFT PARENTHESIS, right-left
+0xAA <RL>+0x002A # ASTERISK, right-left
+0xAB <RL>+0x002B # PLUS SIGN, right-left
+0xAC <RL>+0x002C # COMMA, right-left
+0xAD <RL>+0x002D # HYPHEN-MINUS, right-left
+0xAE <RL>+0x002E # FULL STOP, right-left
+0xAF <RL>+0x002F # SOLIDUS, right-left
+0xB0 <RL>+0x0030 # DIGIT ZERO, right-left (need override)
+0xB1 <RL>+0x0031 # DIGIT ONE, right-left (need override)
+0xB2 <RL>+0x0032 # DIGIT TWO, right-left (need override)
+0xB3 <RL>+0x0033 # DIGIT THREE, right-left (need override)
+0xB4 <RL>+0x0034 # DIGIT FOUR, right-left (need override)
+0xB5 <RL>+0x0035 # DIGIT FIVE, right-left (need override)
+0xB6 <RL>+0x0036 # DIGIT SIX, right-left (need override)
+0xB7 <RL>+0x0037 # DIGIT SEVEN, right-left (need override)
+0xB8 <RL>+0x0038 # DIGIT EIGHT, right-left (need override)
+0xB9 <RL>+0x0039 # DIGIT NINE, right-left (need override)
+0xBA <RL>+0x003A # COLON, right-left
+0xBB <RL>+0x003B # SEMICOLON, right-left
+0xBC <RL>+0x003C # LESS-THAN SIGN, right-left
+0xBD <RL>+0x003D # EQUALS SIGN, right-left
+0xBE <RL>+0x003E # GREATER-THAN SIGN, right-left
+0xBF <RL>+0x003F # QUESTION MARK, right-left
+0xC0 0xF86A+0x05DC+0x05B9 # Hebrew ligature lamed holam
+0xC1 <RL>+0x201E # DOUBLE LOW-9 QUOTATION MARK, right-left
+0xC2 0xF89B # Hebrew canoral 1
+0xC3 0xF89C # Hebrew canoral 2
+0xC4 0xF89D # Hebrew canoral 3
+0xC5 0xF89E # Hebrew canoral 4
+0xC6 0x05BC # HEBREW POINT DAGESH OR MAPIQ
+0xC7 0xFB4B # HEBREW LETTER VAV WITH HOLAM
+0xC8 0xFB35 # HEBREW LETTER VAV WITH DAGESH
+0xC9 <RL>+0x2026 # HORIZONTAL ELLIPSIS, right-left
+0xCA <RL>+0x00A0 # NO-BREAK SPACE, right-left
+0xCB 0x05B8 # HEBREW POINT QAMATS
+0xCC 0x05B7 # HEBREW POINT PATAH
+0xCD 0x05B5 # HEBREW POINT TSERE
+0xCE 0x05B6 # HEBREW POINT SEGOL
+0xCF 0x05B4 # HEBREW POINT HIRIQ
+0xD0 <RL>+0x2013 # EN DASH, right-left
+0xD1 <RL>+0x2014 # EM DASH, right-left
+0xD2 <RL>+0x201C # LEFT DOUBLE QUOTATION MARK, right-left
+0xD3 <RL>+0x201D # RIGHT DOUBLE QUOTATION MARK, right-left
+0xD4 <RL>+0x2018 # LEFT SINGLE QUOTATION MARK, right-left
+0xD5 <RL>+0x2019 # RIGHT SINGLE QUOTATION MARK, right-left
+0xD6 0xFB2A # HEBREW LETTER SHIN WITH SHIN DOT
+0xD7 0xFB2B # HEBREW LETTER SHIN WITH SIN DOT
+0xD8 0x05BF # HEBREW POINT RAFE
+0xD9 0x05B0 # HEBREW POINT SHEVA
+0xDA 0x05B2 # HEBREW POINT HATAF PATAH
+0xDB 0x05B1 # HEBREW POINT HATAF SEGOL
+0xDC 0x05BB # HEBREW POINT QUBUTS
+0xDD 0x05B9 # HEBREW POINT HOLAM
+0xDE 0x05B8+0xF87F # HEBREW POINT QAMATS, alternate form 'qamats qatan'
+0xDF 0x05B3 # HEBREW POINT HATAF QAMATS
+0xE0 0x05D0 # HEBREW LETTER ALEF
+0xE1 0x05D1 # HEBREW LETTER BET
+0xE2 0x05D2 # HEBREW LETTER GIMEL
+0xE3 0x05D3 # HEBREW LETTER DALET
+0xE4 0x05D4 # HEBREW LETTER HE
+0xE5 0x05D5 # HEBREW LETTER VAV
+0xE6 0x05D6 # HEBREW LETTER ZAYIN
+0xE7 0x05D7 # HEBREW LETTER HET
+0xE8 0x05D8 # HEBREW LETTER TET
+0xE9 0x05D9 # HEBREW LETTER YOD
+0xEA 0x05DA # HEBREW LETTER FINAL KAF
+0xEB 0x05DB # HEBREW LETTER KAF
+0xEC 0x05DC # HEBREW LETTER LAMED
+0xED 0x05DD # HEBREW LETTER FINAL MEM
+0xEE 0x05DE # HEBREW LETTER MEM
+0xEF 0x05DF # HEBREW LETTER FINAL NUN
+0xF0 0x05E0 # HEBREW LETTER NUN
+0xF1 0x05E1 # HEBREW LETTER SAMEKH
+0xF2 0x05E2 # HEBREW LETTER AYIN
+0xF3 0x05E3 # HEBREW LETTER FINAL PE
+0xF4 0x05E4 # HEBREW LETTER PE
+0xF5 0x05E5 # HEBREW LETTER FINAL TSADI
+0xF6 0x05E6 # HEBREW LETTER TSADI
+0xF7 0x05E7 # HEBREW LETTER QOF
+0xF8 0x05E8 # HEBREW LETTER RESH
+0xF9 0x05E9 # HEBREW LETTER SHIN
+0xFA 0x05EA # HEBREW LETTER TAV
+0xFB <RL>+0x007D # RIGHT CURLY BRACKET, right-left
+0xFC <RL>+0x005D # RIGHT SQUARE BRACKET, right-left
+0xFD <RL>+0x007B # LEFT CURLY BRACKET, right-left
+0xFE <RL>+0x005B # LEFT SQUARE BRACKET, right-left
+0xFF <RL>+0x007C # VERTICAL LINE, right-left
+
+"
+! !
+
+!MAC_Hebrew class methodsFor:'queries'!
+
+namesOfEncoding
+ ^ #( #'mac-hebrew' #'machebrew' )
+! !
+
+!MAC_Hebrew class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Hebrew.st,v 1.1 2004-03-05 17:30:21 cg Exp $'
+! !
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/CharacterEncoderImplementations__MAC_Roman.st Fri Mar 05 18:30:49 2004 +0100
@@ -0,0 +1,401 @@
+"{ Encoding: utf8 }"
+
+"{ Package: 'stx:libbasic' }"
+
+"{ NameSpace: CharacterEncoderImplementations }"
+
+SingleByteEncoder subclass:#MAC_Roman
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Collections-Text-Encodings'
+!
+
+
+!MAC_Roman class methodsFor:'mapping'!
+
+mapFileURL1_relativePathName
+ ^ 'VENDORS/APPLE/ROMAN.TXT'
+!
+
+mapping
+"
+# From: http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/ROMAN.TXT
+
+#=======================================================================
+# File name: ROMAN.TXT
+#
+# Contents: Map (external version) from Mac OS Roman
+# character set to Unicode 2.1 through Unicode 3.2
+#
+# Copyright: (c) 1994-2002 by Apple Computer, Inc., all rights
+# reserved.
+#
+# Contact: charsets@apple.com
+#
+# Changes:
+#
+# b4,c1 2002-Dec-19 Update URLs, notes. Matches internal
+# utom<b5>.
+# b03 1999-Sep-22 Update contact e-mail address. Matches
+# internal utom<b4>, ufrm<b3>, and Text
+# Encoding Converter version 1.5.
+# b02 1998-Aug-18 Encoding changed for Mac OS 8.5; change
+# mapping of 0xDB from CURRENCY SIGN to
+# EURO SIGN. Matches internal utom<b3>,
+# ufrm<b3>.
+# n08 1998-Feb-05 Minor update to header comments
+# n06 1997-Dec-14 Add warning about future changes to 0xDB
+# from CURRENCY SIGN to EURO SIGN. Clarify
+# some header information
+# n04 1997-Dec-01 Update to match internal utom<n3>, ufrm<n22>:
+# Change standard mapping for 0xBD from U+2126
+# to its canonical decomposition, U+03A9.
+# n03 1995-Apr-15 First version (after fixing some typos).
+# Matches internal ufrm<n9>.
+#
+# 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:
+#
+# <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
+#
+# 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 Roman code (in hex as 0xNN)
+# Column #2 is the corresponding Unicode (in hex as 0xNNNN)
+# Column #3 is a comment containing the Unicode name
+#
+# The entries are in Mac OS Roman code order.
+#
+# One of these mappings requires the use of a corporate character.
+# 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 Roman character set uses the standard control characters at
+# 0x00-0x1F and 0x7F.
+#
+# Notes on Mac OS Roman:
+# ----------------------
+#
+# This character set is used for at least the following Mac OS
+# localizations: U.S., British, Canadian French, French, Swiss
+# French, German, Swiss German, Italian, Swiss Italian, Dutch,
+# Swedish, Norwegian, Danish, Finnish, Spanish, Catalan,
+# Portuguese, Brazilian, and the default International system.
+#
+# Variants of Mac OS Roman are used for Croatian, Icelandic,
+# Turkish, Romanian, and other encodings. Separate mapping tables
+# are available for these encodings.
+#
+# Before Mac OS 8.5, code point 0xDB was CURRENCY SIGN, and was
+# mapped to U+00A4. In Mac OS 8.5 and later versions, code point
+# 0xDB is changed to EURO SIGN and maps to U+20AC; the standard
+# Apple fonts are updated for Mac OS 8.5 to reflect this. There is
+# a 'currency sign' variant of the Mac OS Roman encoding that still
+# maps 0xDB to U+00A4; this can be used for older fonts.
+#
+# Before Mac OS 8.5, the ROM bitmap versions of the fonts Chicago,
+# New York, Geneva, and Monaco did not implement the full Mac OS
+# Roman character set; they only supported character codes up to
+# 0xD8. The TrueType versions of these fonts have always implemented
+# the full character set, as with the bitmap and TrueType versions
+# of the other standard Roman fonts.
+#
+# In all Mac OS encodings, fonts such as Chicago which are used
+# as 'system' fonts (for menus, dialogs, etc.) have four glyphs
+# at code points 0x11-0x14 for transient use by the Menu Manager.
+# These glyphs are not intended as characters for use in normal
+# text, and the associated code points are not generally
+# interpreted as associated with these glyphs; they are usually
+# interpreted (if at all) as the control codes DC1-DC4.
+#
+# Unicode mapping issues and notes:
+# ---------------------------------
+#
+# The following corporate zone Unicode character is used in this
+# mapping:
+#
+# 0xF8FF Apple logo
+#
+# NOTE: The graphic image associated with the Apple logo character
+# is not authorized for use without permission of Apple, and
+# unauthorized use might constitute trademark infringement.
+#
+# Details of mapping changes in each version:
+# -------------------------------------------
+#
+# Changes from version n08 to version b02:
+#
+# - Encoding changed for Mac OS 8.5; change mapping of 0xDB from
+# CURRENCY SIGN (U+00A4) to EURO SIGN (U+20AC).
+#
+# Changes from version n03 to version n04:
+#
+# - Change mapping of 0xBD from U+2126 to its canonical
+# decomposition, U+03A9.
+#
+##################
+
+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 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
+0x81 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
+0x82 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
+0x83 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
+0x84 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE
+0x85 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
+0x86 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
+0x87 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
+0x88 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
+0x89 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
+0x8A 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
+0x8B 0x00E3 # LATIN SMALL LETTER A WITH TILDE
+0x8C 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
+0x8D 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
+0x8E 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
+0x8F 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
+0x90 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0x91 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
+0x92 0x00ED # LATIN SMALL LETTER I WITH ACUTE
+0x93 0x00EC # LATIN SMALL LETTER I WITH GRAVE
+0x94 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
+0x95 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
+0x96 0x00F1 # LATIN SMALL LETTER N WITH TILDE
+0x97 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
+0x98 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
+0x99 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
+0x9A 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
+0x9B 0x00F5 # LATIN SMALL LETTER O WITH TILDE
+0x9C 0x00FA # LATIN SMALL LETTER U WITH ACUTE
+0x9D 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
+0x9E 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
+0x9F 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
+0xA0 0x2020 # DAGGER
+0xA1 0x00B0 # DEGREE SIGN
+0xA2 0x00A2 # CENT SIGN
+0xA3 0x00A3 # POUND SIGN
+0xA4 0x00A7 # SECTION SIGN
+0xA5 0x2022 # BULLET
+0xA6 0x00B6 # PILCROW SIGN
+0xA7 0x00DF # LATIN SMALL LETTER SHARP S
+0xA8 0x00AE # REGISTERED SIGN
+0xA9 0x00A9 # COPYRIGHT SIGN
+0xAA 0x2122 # TRADE MARK SIGN
+0xAB 0x00B4 # ACUTE ACCENT
+0xAC 0x00A8 # DIAERESIS
+0xAD 0x2260 # NOT EQUAL TO
+0xAE 0x00C6 # LATIN CAPITAL LETTER AE
+0xAF 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE
+0xB0 0x221E # INFINITY
+0xB1 0x00B1 # PLUS-MINUS SIGN
+0xB2 0x2264 # LESS-THAN OR EQUAL TO
+0xB3 0x2265 # GREATER-THAN OR EQUAL TO
+0xB4 0x00A5 # YEN SIGN
+0xB5 0x00B5 # MICRO SIGN
+0xB6 0x2202 # PARTIAL DIFFERENTIAL
+0xB7 0x2211 # N-ARY SUMMATION
+0xB8 0x220F # N-ARY PRODUCT
+0xB9 0x03C0 # GREEK SMALL LETTER PI
+0xBA 0x222B # INTEGRAL
+0xBB 0x00AA # FEMININE ORDINAL INDICATOR
+0xBC 0x00BA # MASCULINE ORDINAL INDICATOR
+0xBD 0x03A9 # GREEK CAPITAL LETTER OMEGA
+0xBE 0x00E6 # LATIN SMALL LETTER AE
+0xBF 0x00F8 # LATIN SMALL LETTER O WITH STROKE
+0xC0 0x00BF # INVERTED QUESTION MARK
+0xC1 0x00A1 # INVERTED EXCLAMATION MARK
+0xC2 0x00AC # NOT SIGN
+0xC3 0x221A # SQUARE ROOT
+0xC4 0x0192 # LATIN SMALL LETTER F WITH HOOK
+0xC5 0x2248 # ALMOST EQUAL TO
+0xC6 0x2206 # INCREMENT
+0xC7 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+0xC8 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+0xC9 0x2026 # HORIZONTAL ELLIPSIS
+0xCA 0x00A0 # NO-BREAK SPACE
+0xCB 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE
+0xCC 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE
+0xCD 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE
+0xCE 0x0152 # LATIN CAPITAL LIGATURE OE
+0xCF 0x0153 # LATIN SMALL LIGATURE OE
+0xD0 0x2013 # EN DASH
+0xD1 0x2014 # EM DASH
+0xD2 0x201C # LEFT DOUBLE QUOTATION MARK
+0xD3 0x201D # RIGHT DOUBLE QUOTATION MARK
+0xD4 0x2018 # LEFT SINGLE QUOTATION MARK
+0xD5 0x2019 # RIGHT SINGLE QUOTATION MARK
+0xD6 0x00F7 # DIVISION SIGN
+0xD7 0x25CA # LOZENGE
+0xD8 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
+0xD9 0x0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS
+0xDA 0x2044 # FRACTION SLASH
+0xDB 0x20AC # EURO SIGN
+0xDC 0x2039 # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+0xDD 0x203A # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+0xDE 0xFB01 # LATIN SMALL LIGATURE FI
+0xDF 0xFB02 # LATIN SMALL LIGATURE FL
+0xE0 0x2021 # DOUBLE DAGGER
+0xE1 0x00B7 # MIDDLE DOT
+0xE2 0x201A # SINGLE LOW-9 QUOTATION MARK
+0xE3 0x201E # DOUBLE LOW-9 QUOTATION MARK
+0xE4 0x2030 # PER MILLE SIGN
+0xE5 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+0xE6 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0xE7 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
+0xE8 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
+0xE9 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE
+0xEA 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
+0xEB 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+0xEC 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
+0xED 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE
+0xEE 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
+0xEF 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+0xF0 0xF8FF # Apple logo
+0xF1 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE
+0xF2 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
+0xF3 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+0xF4 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE
+0xF5 0x0131 # LATIN SMALL LETTER DOTLESS I
+0xF6 0x02C6 # MODIFIER LETTER CIRCUMFLEX ACCENT
+0xF7 0x02DC # SMALL TILDE
+0xF8 0x00AF # MACRON
+0xF9 0x02D8 # BREVE
+0xFA 0x02D9 # DOT ABOVE
+0xFB 0x02DA # RING ABOVE
+0xFC 0x00B8 # CEDILLA
+0xFD 0x02DD # DOUBLE ACUTE ACCENT
+0xFE 0x02DB # OGONEK
+0xFF 0x02C7 # CARON
+
+"
+! !
+
+!MAC_Roman class methodsFor:'queries'!
+
+namesOfEncoding
+ ^ #( #'mac-roman' #'macroman')
+! !
+
+!MAC_Roman class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Roman.st,v 1.1 2004-03-05 17:30:49 cg Exp $'
+! !
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Encoder_ASCII.st Fri Mar 05 18:30:49 2004 +0100
@@ -0,0 +1,217 @@
+"{ Encoding: utf8 }"
+
+"{ Package: 'stx:libbasic' }"
+
+"{ NameSpace: CharacterEncoderImplementations }"
+
+SingleByteEncoder subclass:#ASCII
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Collections-Text-Encodings'
+!
+
+
+!ASCII class methodsFor:'mapping'!
+
+mapFileURL2_relativePathName
+ ^ 'ASCII'
+
+ "
+ self generateCode
+ "
+!
+
+mapping
+"
+# From: http://std.dkuug.dk/i18n/charmaps/ASCII
+
+<code_set_name> ANSI_X3.4-1968
+<comment_char> %
+<escape_char> /
+% version: 1.0
+% repertoiremap: mnemonic,ds
+% source: ECMA registry
+
+% alias ISO-IR-6
+% alias ANSI_X3.4-1986
+% alias ISO_646.IRV:1991
+% alias ASCII
+% alias ISO646-US
+% alias US-ASCII
+% alias US
+% alias IBM367
+% alias CP367
+CHARMAP
+<NU> /x00 <U0000> NULL (NUL)
+<SH> /x01 <U0001> START OF HEADING (SOH)
+<SX> /x02 <U0002> START OF TEXT (STX)
+<EX> /x03 <U0003> END OF TEXT (ETX)
+<ET> /x04 <U0004> END OF TRANSMISSION (EOT)
+<EQ> /x05 <U0005> ENQUIRY (ENQ)
+<AK> /x06 <U0006> ACKNOWLEDGE (ACK)
+<BL> /x07 <U0007> BELL (BEL)
+<BS> /x08 <U0008> BACKSPACE (BS)
+<HT> /x09 <U0009> CHARACTER TABULATION (HT)
+<LF> /x0A <U000A> LINE FEED (LF)
+<VT> /x0B <U000B> LINE TABULATION (VT)
+<FF> /x0C <U000C> FORM FEED (FF)
+<CR> /x0D <U000D> CARRIAGE RETURN (CR)
+<SO> /x0E <U000E> SHIFT OUT (SO)
+<SI> /x0F <U000F> SHIFT IN (SI)
+<DL> /x10 <U0010> DATALINK ESCAPE (DLE)
+<D1> /x11 <U0011> DEVICE CONTROL ONE (DC1)
+<D2> /x12 <U0012> DEVICE CONTROL TWO (DC2)
+<D3> /x13 <U0013> DEVICE CONTROL THREE (DC3)
+<D4> /x14 <U0014> DEVICE CONTROL FOUR (DC4)
+<NK> /x15 <U0015> NEGATIVE ACKNOWLEDGE (NAK)
+<SY> /x16 <U0016> SYNCHRONOUS IDLE (SYN)
+<EB> /x17 <U0017> END OF TRANSMISSION BLOCK (ETB)
+<CN> /x18 <U0018> CANCEL (CAN)
+<EM> /x19 <U0019> END OF MEDIUM (EM)
+<SB> /x1A <U001A> SUBSTITUTE (SUB)
+<EC> /x1B <U001B> ESCAPE (ESC)
+<FS> /x1C <U001C> FILE SEPARATOR (IS4)
+<GS> /x1D <U001D> GROUP SEPARATOR (IS3)
+<RS> /x1E <U001E> RECORD SEPARATOR (IS2)
+<US> /x1F <U001F> UNIT SEPARATOR (IS1)
+<SP> /x20 <U0020> SPACE
+<!!> /x21 <U0021> EXCLAMATION MARK
+<'> /x22 <U0022> QUOTATION MARK
+<Nb> /x23 <U0023> NUMBER SIGN
+<DO> /x24 <U0024> DOLLAR SIGN
+<%> /x25 <U0025> PERCENT SIGN
+<&> /x26 <U0026> AMPERSAND
+<'> /x27 <U0027> APOSTROPHE
+<(> /x28 <U0028> LEFT PARENTHESIS
+<)> /x29 <U0029> RIGHT PARENTHESIS
+<*> /x2A <U002A> ASTERISK
+<+> /x2B <U002B> PLUS SIGN
+<,> /x2C <U002C> COMMA
+<-> /x2D <U002D> HYPHEN-MINUS
+<.> /x2E <U002E> FULL STOP
+<//> /x2F <U002F> SOLIDUS
+<0> /x30 <U0030> DIGIT ZERO
+<1> /x31 <U0031> DIGIT ONE
+<2> /x32 <U0032> DIGIT TWO
+<3> /x33 <U0033> DIGIT THREE
+<4> /x34 <U0034> DIGIT FOUR
+<5> /x35 <U0035> DIGIT FIVE
+<6> /x36 <U0036> DIGIT SIX
+<7> /x37 <U0037> DIGIT SEVEN
+<8> /x38 <U0038> DIGIT EIGHT
+<9> /x39 <U0039> DIGIT NINE
+<:> /x3A <U003A> COLON
+<;> /x3B <U003B> SEMICOLON
+<<> /x3C <U003C> LESS-THAN SIGN
+<=> /x3D <U003D> EQUALS SIGN
+</>> /x3E <U003E> GREATER-THAN SIGN
+<?> /x3F <U003F> QUESTION MARK
+<At> /x40 <U0040> COMMERCIAL AT
+<A> /x41 <U0041> LATIN CAPITAL LETTER A
+<B> /x42 <U0042> LATIN CAPITAL LETTER B
+<C> /x43 <U0043> LATIN CAPITAL LETTER C
+<D> /x44 <U0044> LATIN CAPITAL LETTER D
+<E> /x45 <U0045> LATIN CAPITAL LETTER E
+<F> /x46 <U0046> LATIN CAPITAL LETTER F
+<G> /x47 <U0047> LATIN CAPITAL LETTER G
+<H> /x48 <U0048> LATIN CAPITAL LETTER H
+<I> /x49 <U0049> LATIN CAPITAL LETTER I
+<J> /x4A <U004A> LATIN CAPITAL LETTER J
+<K> /x4B <U004B> LATIN CAPITAL LETTER K
+<L> /x4C <U004C> LATIN CAPITAL LETTER L
+<M> /x4D <U004D> LATIN CAPITAL LETTER M
+<N> /x4E <U004E> LATIN CAPITAL LETTER N
+<O> /x4F <U004F> LATIN CAPITAL LETTER O
+<P> /x50 <U0050> LATIN CAPITAL LETTER P
+<Q> /x51 <U0051> LATIN CAPITAL LETTER Q
+<R> /x52 <U0052> LATIN CAPITAL LETTER R
+<S> /x53 <U0053> LATIN CAPITAL LETTER S
+<T> /x54 <U0054> LATIN CAPITAL LETTER T
+<U> /x55 <U0055> LATIN CAPITAL LETTER U
+<V> /x56 <U0056> LATIN CAPITAL LETTER V
+<W> /x57 <U0057> LATIN CAPITAL LETTER W
+<X> /x58 <U0058> LATIN CAPITAL LETTER X
+<Y> /x59 <U0059> LATIN CAPITAL LETTER Y
+<Z> /x5A <U005A> LATIN CAPITAL LETTER Z
+<<(> /x5B <U005B> LEFT SQUARE BRACKET
+<////> /x5C <U005C> REVERSE SOLIDUS
+<)/>> /x5D <U005D> RIGHT SQUARE BRACKET
+<'/>> /x5E <U005E> CIRCUMFLEX ACCENT
+<_> /x5F <U005F> LOW LINE
+<'!!> /x60 <U0060> GRAVE ACCENT
+<a> /x61 <U0061> LATIN SMALL LETTER A
+<b> /x62 <U0062> LATIN SMALL LETTER B
+<c> /x63 <U0063> LATIN SMALL LETTER C
+<d> /x64 <U0064> LATIN SMALL LETTER D
+<e> /x65 <U0065> LATIN SMALL LETTER E
+<f> /x66 <U0066> LATIN SMALL LETTER F
+<g> /x67 <U0067> LATIN SMALL LETTER G
+<h> /x68 <U0068> LATIN SMALL LETTER H
+<i> /x69 <U0069> LATIN SMALL LETTER I
+<j> /x6A <U006A> LATIN SMALL LETTER J
+<k> /x6B <U006B> LATIN SMALL LETTER K
+<l> /x6C <U006C> LATIN SMALL LETTER L
+<m> /x6D <U006D> LATIN SMALL LETTER M
+<n> /x6E <U006E> LATIN SMALL LETTER N
+<o> /x6F <U006F> LATIN SMALL LETTER O
+<p> /x70 <U0070> LATIN SMALL LETTER P
+<q> /x71 <U0071> LATIN SMALL LETTER Q
+<r> /x72 <U0072> LATIN SMALL LETTER R
+<s> /x73 <U0073> LATIN SMALL LETTER S
+<t> /x74 <U0074> LATIN SMALL LETTER T
+<u> /x75 <U0075> LATIN SMALL LETTER U
+<v> /x76 <U0076> LATIN SMALL LETTER V
+<w> /x77 <U0077> LATIN SMALL LETTER W
+<x> /x78 <U0078> LATIN SMALL LETTER X
+<y> /x79 <U0079> LATIN SMALL LETTER Y
+<z> /x7A <U007A> LATIN SMALL LETTER Z
+<(!!> /x7B <U007B> LEFT CURLY BRACKET
+<!!!!> /x7C <U007C> VERTICAL LINE
+<!!)> /x7D <U007D> RIGHT CURLY BRACKET
+<'?> /x7E <U007E> TILDE
+<DT> /x7F <U007F> DELETE (DEL)
+END CHARMAP
+
+"
+! !
+
+!ASCII class methodsFor:'queries'!
+
+namesOfEncoding
+ ^ #( 'ascii' 'us-ascii' 'iso-ir-6' 'ibm-367' 'ms-cp367' 'cp367' 'iso646-us' 'ibm-cp367')
+! !
+
+!ASCII methodsFor:'encoding & decoding'!
+
+decode:codeArg
+ "Automagically generated by generateCode - do not modify.
+ Decode from my encoding into unicode."
+
+ |code "{ Class: SmallInteger }"|
+
+ code := codeArg.
+ code > 16r7F ifTrue:[
+ ^ self decodingError.
+ ].
+ ^ code.
+!
+
+encode:unicodeArg
+ "Automagically generated by generateCode - do not modify.
+ Encode from unicode into my encoding."
+
+ |unicode "{ Class: SmallInteger }"|
+
+ unicode := unicodeArg.
+ unicode > 16r7F ifTrue:[
+ ^ self encodingError.
+ ].
+ ^ unicode.
+! !
+
+!ASCII class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /cvs/stx/stx/libbasic/Attic/Encoder_ASCII.st,v 1.1 2004-03-05 17:29:45 cg Exp $'
+! !
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Encoder_ISO8859_14.st Fri Mar 05 18:30:49 2004 +0100
@@ -0,0 +1,753 @@
+"{ Encoding: utf8 }"
+
+"{ Package: 'stx:libbasic' }"
+
+"{ NameSpace: CharacterEncoderImplementations }"
+
+SingleByteEncoder subclass:#ISO8859_14
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Collections-Text-Encodings'
+!
+
+
+!ISO8859_14 class methodsFor:'mapping'!
+
+mapFileURL1_relativePathName
+ ^ 'ISO8859/8859-14.TXT'
+!
+
+mapping
+"
+# From: http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-14.TXT
+
+#
+# Name: ISO/IEC 8859-14:1998 to Unicode
+# Unicode version: 3.0
+# Table version: 1.0
+# Table format: Format A
+# Date: 1999 July 27
+# Authors: Markus Kuhn <mkuhn@acm.org>
+# Ken Whistler <kenw@sybase.com>
+#
+# Copyright (c) 1998 - 1999 Unicode, Inc. All Rights reserved.
+#
+# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
+# No claims are made as to fitness for any particular purpose. No
+# warranties of any kind are expressed or implied. The recipient
+# agrees to determine applicability of information provided. If this
+# file has been provided on optical media by Unicode, Inc., the sole
+# remedy for any claim will be exchange of defective media within 90
+# days of receipt.
+#
+# Unicode, Inc. hereby grants the right to freely use the information
+# supplied in this file in the creation of products supporting the
+# Unicode Standard, and to make copies of this file in any form for
+# internal or external distribution as long as this notice remains
+# attached.
+#
+# General notes:
+#
+# This table contains the data the Unicode Consortium has on how
+# ISO/IEC 8859-14:1998 characters map into Unicode.
+#
+# Format: Three tab-separated columns
+# Column #1 is the ISO/IEC 8859-14 code (in hex as 0xXX)
+# Column #2 is the Unicode (in hex as 0xXXXX)
+# Column #3 the Unicode name (follows a comment sign, '#')
+#
+# The entries are in ISO/IEC 8859-14 order.
+#
+# Updated versions of this file may be found in:
+# <ftp://ftp.unicode.org/Public/MAPPINGS/>
+#
+# Any comments or problems, contact <errata@unicode.org>
+# Please note that <errata@unicode.org> is an archival address;
+# notices will be checked, but do not expect an immediate response.
+#
+0x00 0x0000 # NULL
+0x01 0x0001 # START OF HEADING
+0x02 0x0002 # START OF TEXT
+0x03 0x0003 # END OF TEXT
+0x04 0x0004 # END OF TRANSMISSION
+0x05 0x0005 # ENQUIRY
+0x06 0x0006 # ACKNOWLEDGE
+0x07 0x0007 # BELL
+0x08 0x0008 # BACKSPACE
+0x09 0x0009 # HORIZONTAL TABULATION
+0x0A 0x000A # LINE FEED
+0x0B 0x000B # VERTICAL TABULATION
+0x0C 0x000C # FORM FEED
+0x0D 0x000D # CARRIAGE RETURN
+0x0E 0x000E # SHIFT OUT
+0x0F 0x000F # SHIFT IN
+0x10 0x0010 # DATA LINK ESCAPE
+0x11 0x0011 # DEVICE CONTROL ONE
+0x12 0x0012 # DEVICE CONTROL TWO
+0x13 0x0013 # DEVICE CONTROL THREE
+0x14 0x0014 # DEVICE CONTROL FOUR
+0x15 0x0015 # NEGATIVE ACKNOWLEDGE
+0x16 0x0016 # SYNCHRONOUS IDLE
+0x17 0x0017 # END OF TRANSMISSION BLOCK
+0x18 0x0018 # CANCEL
+0x19 0x0019 # END OF MEDIUM
+0x1A 0x001A # SUBSTITUTE
+0x1B 0x001B # ESCAPE
+0x1C 0x001C # FILE SEPARATOR
+0x1D 0x001D # GROUP SEPARATOR
+0x1E 0x001E # RECORD SEPARATOR
+0x1F 0x001F # UNIT SEPARATOR
+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
+0x7F 0x007F # DELETE
+0x80 0x0080 # <control>
+0x81 0x0081 # <control>
+0x82 0x0082 # <control>
+0x83 0x0083 # <control>
+0x84 0x0084 # <control>
+0x85 0x0085 # <control>
+0x86 0x0086 # <control>
+0x87 0x0087 # <control>
+0x88 0x0088 # <control>
+0x89 0x0089 # <control>
+0x8A 0x008A # <control>
+0x8B 0x008B # <control>
+0x8C 0x008C # <control>
+0x8D 0x008D # <control>
+0x8E 0x008E # <control>
+0x8F 0x008F # <control>
+0x90 0x0090 # <control>
+0x91 0x0091 # <control>
+0x92 0x0092 # <control>
+0x93 0x0093 # <control>
+0x94 0x0094 # <control>
+0x95 0x0095 # <control>
+0x96 0x0096 # <control>
+0x97 0x0097 # <control>
+0x98 0x0098 # <control>
+0x99 0x0099 # <control>
+0x9A 0x009A # <control>
+0x9B 0x009B # <control>
+0x9C 0x009C # <control>
+0x9D 0x009D # <control>
+0x9E 0x009E # <control>
+0x9F 0x009F # <control>
+0xA0 0x00A0 # NO-BREAK SPACE
+0xA1 0x1E02 # LATIN CAPITAL LETTER B WITH DOT ABOVE
+0xA2 0x1E03 # LATIN SMALL LETTER B WITH DOT ABOVE
+0xA3 0x00A3 # POUND SIGN
+0xA4 0x010A # LATIN CAPITAL LETTER C WITH DOT ABOVE
+0xA5 0x010B # LATIN SMALL LETTER C WITH DOT ABOVE
+0xA6 0x1E0A # LATIN CAPITAL LETTER D WITH DOT ABOVE
+0xA7 0x00A7 # SECTION SIGN
+0xA8 0x1E80 # LATIN CAPITAL LETTER W WITH GRAVE
+0xA9 0x00A9 # COPYRIGHT SIGN
+0xAA 0x1E82 # LATIN CAPITAL LETTER W WITH ACUTE
+0xAB 0x1E0B # LATIN SMALL LETTER D WITH DOT ABOVE
+0xAC 0x1EF2 # LATIN CAPITAL LETTER Y WITH GRAVE
+0xAD 0x00AD # SOFT HYPHEN
+0xAE 0x00AE # REGISTERED SIGN
+0xAF 0x0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS
+0xB0 0x1E1E # LATIN CAPITAL LETTER F WITH DOT ABOVE
+0xB1 0x1E1F # LATIN SMALL LETTER F WITH DOT ABOVE
+0xB2 0x0120 # LATIN CAPITAL LETTER G WITH DOT ABOVE
+0xB3 0x0121 # LATIN SMALL LETTER G WITH DOT ABOVE
+0xB4 0x1E40 # LATIN CAPITAL LETTER M WITH DOT ABOVE
+0xB5 0x1E41 # LATIN SMALL LETTER M WITH DOT ABOVE
+0xB6 0x00B6 # PILCROW SIGN
+0xB7 0x1E56 # LATIN CAPITAL LETTER P WITH DOT ABOVE
+0xB8 0x1E81 # LATIN SMALL LETTER W WITH GRAVE
+0xB9 0x1E57 # LATIN SMALL LETTER P WITH DOT ABOVE
+0xBA 0x1E83 # LATIN SMALL LETTER W WITH ACUTE
+0xBB 0x1E60 # LATIN CAPITAL LETTER S WITH DOT ABOVE
+0xBC 0x1EF3 # LATIN SMALL LETTER Y WITH GRAVE
+0xBD 0x1E84 # LATIN CAPITAL LETTER W WITH DIAERESIS
+0xBE 0x1E85 # LATIN SMALL LETTER W WITH DIAERESIS
+0xBF 0x1E61 # LATIN SMALL LETTER S WITH DOT ABOVE
+0xC0 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE
+0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
+0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+0xC3 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE
+0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
+0xC5 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
+0xC6 0x00C6 # LATIN CAPITAL LETTER AE
+0xC7 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
+0xC8 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE
+0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
+0xCA 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
+0xCC 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE
+0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
+0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+0xCF 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
+0xD0 0x0174 # LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+0xD1 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE
+0xD2 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE
+0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
+0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+0xD5 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE
+0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
+0xD7 0x1E6A # LATIN CAPITAL LETTER T WITH DOT ABOVE
+0xD8 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE
+0xD9 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE
+0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
+0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
+0xDD 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE
+0xDE 0x0176 # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+0xDF 0x00DF # LATIN SMALL LETTER SHARP S
+0xE0 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
+0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
+0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
+0xE3 0x00E3 # LATIN SMALL LETTER A WITH TILDE
+0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
+0xE5 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
+0xE6 0x00E6 # LATIN SMALL LETTER AE
+0xE7 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
+0xE8 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
+0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
+0xEA 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
+0xEC 0x00EC # LATIN SMALL LETTER I WITH GRAVE
+0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE
+0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
+0xEF 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
+0xF0 0x0175 # LATIN SMALL LETTER W WITH CIRCUMFLEX
+0xF1 0x00F1 # LATIN SMALL LETTER N WITH TILDE
+0xF2 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
+0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
+0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
+0xF5 0x00F5 # LATIN SMALL LETTER O WITH TILDE
+0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
+0xF7 0x1E6B # LATIN SMALL LETTER T WITH DOT ABOVE
+0xF8 0x00F8 # LATIN SMALL LETTER O WITH STROKE
+0xF9 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
+0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE
+0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
+0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
+0xFD 0x00FD # LATIN SMALL LETTER Y WITH ACUTE
+0xFE 0x0177 # LATIN SMALL LETTER Y WITH CIRCUMFLEX
+0xFF 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
+
+
+"
+! !
+
+!ISO8859_14 class methodsFor:'queries'!
+
+namesOfEncoding
+ ^ #( 'iso8859-14' 'iso-8859-14' 'latin8' 'latin-8' 'latin-celtic' )
+! !
+
+!ISO8859_14 methodsFor:'encoding & decoding'!
+
+decode:codeArg
+ "Automagically generated by generateCode - do not modify.
+ Decode from my encoding into unicode."
+
+ |code "{ Class: SmallInteger }"|
+
+ code := codeArg.
+ code <= 16rA0 ifTrue:[ ^ code ].
+ code > 16rFF ifTrue:[
+ ^ self decodingError.
+ ].
+ ^ #(
+ "16r00A1" 16r1E02 " LATIN CAPITAL LETTER B WITH DOT ABOVE "
+ "16r00A2" 16r1E03 " LATIN SMALL LETTER B WITH DOT ABOVE "
+ "16r00A3" 16r00A3 " POUND SIGN "
+ "16r00A4" 16r010A " LATIN CAPITAL LETTER C WITH DOT ABOVE "
+ "16r00A5" 16r010B " LATIN SMALL LETTER C WITH DOT ABOVE "
+ "16r00A6" 16r1E0A " LATIN CAPITAL LETTER D WITH DOT ABOVE "
+ "16r00A7" 16r00A7 " SECTION SIGN "
+ "16r00A8" 16r1E80 " LATIN CAPITAL LETTER W WITH GRAVE "
+ "16r00A9" 16r00A9 " COPYRIGHT SIGN "
+ "16r00AA" 16r1E82 " LATIN CAPITAL LETTER W WITH ACUTE "
+ "16r00AB" 16r1E0B " LATIN SMALL LETTER D WITH DOT ABOVE "
+ "16r00AC" 16r1EF2 " LATIN CAPITAL LETTER Y WITH GRAVE "
+ "16r00AD" 16r00AD " SOFT HYPHEN "
+ "16r00AE" 16r00AE " REGISTERED SIGN "
+ "16r00AF" 16r0178 " LATIN CAPITAL LETTER Y WITH DIAERESIS "
+ "16r00B0" 16r1E1E " LATIN CAPITAL LETTER F WITH DOT ABOVE "
+ "16r00B1" 16r1E1F " LATIN SMALL LETTER F WITH DOT ABOVE "
+ "16r00B2" 16r0120 " LATIN CAPITAL LETTER G WITH DOT ABOVE "
+ "16r00B3" 16r0121 " LATIN SMALL LETTER G WITH DOT ABOVE "
+ "16r00B4" 16r1E40 " LATIN CAPITAL LETTER M WITH DOT ABOVE "
+ "16r00B5" 16r1E41 " LATIN SMALL LETTER M WITH DOT ABOVE "
+ "16r00B6" 16r00B6 " PILCROW SIGN "
+ "16r00B7" 16r1E56 " LATIN CAPITAL LETTER P WITH DOT ABOVE "
+ "16r00B8" 16r1E81 " LATIN SMALL LETTER W WITH GRAVE "
+ "16r00B9" 16r1E57 " LATIN SMALL LETTER P WITH DOT ABOVE "
+ "16r00BA" 16r1E83 " LATIN SMALL LETTER W WITH ACUTE "
+ "16r00BB" 16r1E60 " LATIN CAPITAL LETTER S WITH DOT ABOVE "
+ "16r00BC" 16r1EF3 " LATIN SMALL LETTER Y WITH GRAVE "
+ "16r00BD" 16r1E84 " LATIN CAPITAL LETTER W WITH DIAERESIS "
+ "16r00BE" 16r1E85 " LATIN SMALL LETTER W WITH DIAERESIS "
+ "16r00BF" 16r1E61 " LATIN SMALL LETTER S WITH DOT ABOVE "
+ "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" 16r0174 " LATIN CAPITAL LETTER W WITH CIRCUMFLEX "
+ "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" 16r1E6A " LATIN CAPITAL LETTER T WITH DOT ABOVE "
+ "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" 16r0176 " LATIN CAPITAL LETTER Y WITH CIRCUMFLEX "
+ "16r00DF" 16r00DF " LATIN SMALL LETTER SHARP S "
+ "16r00E0" 16r00E0 " LATIN SMALL LETTER A WITH GRAVE "
+ "16r00E1" 16r00E1 " LATIN SMALL LETTER A WITH ACUTE "
+ "16r00E2" 16r00E2 " LATIN SMALL LETTER A WITH CIRCUMFLEX "
+ "16r00E3" 16r00E3 " LATIN SMALL LETTER A WITH TILDE "
+ "16r00E4" 16r00E4 " LATIN SMALL LETTER A WITH DIAERESIS "
+ "16r00E5" 16r00E5 " LATIN SMALL LETTER A WITH RING ABOVE "
+ "16r00E6" 16r00E6 " LATIN SMALL LETTER AE "
+ "16r00E7" 16r00E7 " LATIN SMALL LETTER C WITH CEDILLA "
+ "16r00E8" 16r00E8 " LATIN SMALL LETTER E WITH GRAVE "
+ "16r00E9" 16r00E9 " LATIN SMALL LETTER E WITH ACUTE "
+ "16r00EA" 16r00EA " LATIN SMALL LETTER E WITH CIRCUMFLEX "
+ "16r00EB" 16r00EB " LATIN SMALL LETTER E WITH DIAERESIS "
+ "16r00EC" 16r00EC " LATIN SMALL LETTER I WITH GRAVE "
+ "16r00ED" 16r00ED " LATIN SMALL LETTER I WITH ACUTE "
+ "16r00EE" 16r00EE " LATIN SMALL LETTER I WITH CIRCUMFLEX "
+ "16r00EF" 16r00EF " LATIN SMALL LETTER I WITH DIAERESIS "
+ "16r00F0" 16r0175 " LATIN SMALL LETTER W WITH CIRCUMFLEX "
+ "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" 16r1E6B " LATIN SMALL LETTER T WITH DOT ABOVE "
+ "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" 16r0177 " LATIN SMALL LETTER Y WITH CIRCUMFLEX "
+ "16r00FF" 16r00FF " LATIN SMALL LETTER Y WITH DIAERESIS "
+ ) at:(code - 16rA0).
+!
+
+encode:unicodeArg
+ "Automagically generated by generateCode - do not modify.
+ Encode from unicode into my encoding."
+
+ |unicode "{ Class: SmallInteger }"|
+
+ unicode := unicodeArg.
+ unicode <= 16rA0 ifTrue:[ ^ unicode ].
+ unicode > 16r1EF3 ifTrue:[
+ ^ self encodingError.
+ ].
+ unicode <= 16r178 ifTrue:[
+ unicode <= 16r121 ifTrue:[
+ unicode <= 16r109 ifTrue:[
+ (#[
+ "16r00A1" 0 " invalid "
+ "16r00A2" 0 " invalid "
+ "16r00A3" 1 " POUND SIGN "
+ "16r00A4" 0 " invalid "
+ "16r00A5" 0 " invalid "
+ "16r00A6" 0 " invalid "
+ "16r00A7" 1 " SECTION SIGN "
+ "16r00A8" 0 " invalid "
+ "16r00A9" 1 " COPYRIGHT SIGN "
+ "16r00AA" 0 " invalid "
+ "16r00AB" 0 " invalid "
+ "16r00AC" 0 " invalid "
+ "16r00AD" 1 " SOFT HYPHEN "
+ "16r00AE" 1 " REGISTERED SIGN "
+ "16r00AF" 0 " invalid "
+ "16r00B0" 0 " invalid "
+ "16r00B1" 0 " invalid "
+ "16r00B2" 0 " invalid "
+ "16r00B3" 0 " invalid "
+ "16r00B4" 0 " invalid "
+ "16r00B5" 0 " invalid "
+ "16r00B6" 1 " PILCROW SIGN "
+ "16r00B7" 0 " invalid "
+ "16r00B8" 0 " invalid "
+ "16r00B9" 0 " invalid "
+ "16r00BA" 0 " invalid "
+ "16r00BB" 0 " invalid "
+ "16r00BC" 0 " invalid "
+ "16r00BD" 0 " invalid "
+ "16r00BE" 0 " invalid "
+ "16r00BF" 0 " invalid "
+ "16r00C0" 1 " LATIN CAPITAL LETTER A WITH GRAVE "
+ "16r00C1" 1 " LATIN CAPITAL LETTER A WITH ACUTE "
+ "16r00C2" 1 " LATIN CAPITAL LETTER A WITH CIRCUMFLEX "
+ "16r00C3" 1 " LATIN CAPITAL LETTER A WITH TILDE "
+ "16r00C4" 1 " LATIN CAPITAL LETTER A WITH DIAERESIS "
+ "16r00C5" 1 " LATIN CAPITAL LETTER A WITH RING ABOVE "
+ "16r00C6" 1 " LATIN CAPITAL LETTER AE "
+ "16r00C7" 1 " LATIN CAPITAL LETTER C WITH CEDILLA "
+ "16r00C8" 1 " LATIN CAPITAL LETTER E WITH GRAVE "
+ "16r00C9" 1 " LATIN CAPITAL LETTER E WITH ACUTE "
+ "16r00CA" 1 " LATIN CAPITAL LETTER E WITH CIRCUMFLEX "
+ "16r00CB" 1 " LATIN CAPITAL LETTER E WITH DIAERESIS "
+ "16r00CC" 1 " LATIN CAPITAL LETTER I WITH GRAVE "
+ "16r00CD" 1 " LATIN CAPITAL LETTER I WITH ACUTE "
+ "16r00CE" 1 " LATIN CAPITAL LETTER I WITH CIRCUMFLEX "
+ "16r00CF" 1 " LATIN CAPITAL LETTER I WITH DIAERESIS "
+ "16r00D0" 0 " invalid "
+ "16r00D1" 1 " LATIN CAPITAL LETTER N WITH TILDE "
+ "16r00D2" 1 " LATIN CAPITAL LETTER O WITH GRAVE "
+ "16r00D3" 1 " LATIN CAPITAL LETTER O WITH ACUTE "
+ "16r00D4" 1 " LATIN CAPITAL LETTER O WITH CIRCUMFLEX "
+ "16r00D5" 1 " LATIN CAPITAL LETTER O WITH TILDE "
+ "16r00D6" 1 " LATIN CAPITAL LETTER O WITH DIAERESIS "
+ "16r00D7" 0 " invalid "
+ "16r00D8" 1 " LATIN CAPITAL LETTER O WITH STROKE "
+ "16r00D9" 1 " LATIN CAPITAL LETTER U WITH GRAVE "
+ "16r00DA" 1 " LATIN CAPITAL LETTER U WITH ACUTE "
+ "16r00DB" 1 " LATIN CAPITAL LETTER U WITH CIRCUMFLEX "
+ "16r00DC" 1 " LATIN CAPITAL LETTER U WITH DIAERESIS "
+ "16r00DD" 1 " LATIN CAPITAL LETTER Y WITH ACUTE "
+ "16r00DE" 0 " invalid "
+ "16r00DF" 1 " LATIN SMALL LETTER SHARP S "
+ "16r00E0" 1 " LATIN SMALL LETTER A WITH GRAVE "
+ "16r00E1" 1 " LATIN SMALL LETTER A WITH ACUTE "
+ "16r00E2" 1 " LATIN SMALL LETTER A WITH CIRCUMFLEX "
+ "16r00E3" 1 " LATIN SMALL LETTER A WITH TILDE "
+ "16r00E4" 1 " LATIN SMALL LETTER A WITH DIAERESIS "
+ "16r00E5" 1 " LATIN SMALL LETTER A WITH RING ABOVE "
+ "16r00E6" 1 " LATIN SMALL LETTER AE "
+ "16r00E7" 1 " LATIN SMALL LETTER C WITH CEDILLA "
+ "16r00E8" 1 " LATIN SMALL LETTER E WITH GRAVE "
+ "16r00E9" 1 " LATIN SMALL LETTER E WITH ACUTE "
+ "16r00EA" 1 " LATIN SMALL LETTER E WITH CIRCUMFLEX "
+ "16r00EB" 1 " LATIN SMALL LETTER E WITH DIAERESIS "
+ "16r00EC" 1 " LATIN SMALL LETTER I WITH GRAVE "
+ "16r00ED" 1 " LATIN SMALL LETTER I WITH ACUTE "
+ "16r00EE" 1 " LATIN SMALL LETTER I WITH CIRCUMFLEX "
+ "16r00EF" 1 " LATIN SMALL LETTER I WITH DIAERESIS "
+ "16r00F0" 0 " invalid "
+ "16r00F1" 1 " LATIN SMALL LETTER N WITH TILDE "
+ "16r00F2" 1 " LATIN SMALL LETTER O WITH GRAVE "
+ "16r00F3" 1 " LATIN SMALL LETTER O WITH ACUTE "
+ "16r00F4" 1 " LATIN SMALL LETTER O WITH CIRCUMFLEX "
+ "16r00F5" 1 " LATIN SMALL LETTER O WITH TILDE "
+ "16r00F6" 1 " LATIN SMALL LETTER O WITH DIAERESIS "
+ "16r00F7" 0 " invalid "
+ "16r00F8" 1 " LATIN SMALL LETTER O WITH STROKE "
+ "16r00F9" 1 " LATIN SMALL LETTER U WITH GRAVE "
+ "16r00FA" 1 " LATIN SMALL LETTER U WITH ACUTE "
+ "16r00FB" 1 " LATIN SMALL LETTER U WITH CIRCUMFLEX "
+ "16r00FC" 1 " LATIN SMALL LETTER U WITH DIAERESIS "
+ "16r00FD" 1 " LATIN SMALL LETTER Y WITH ACUTE "
+ "16r00FE" 0 " invalid "
+ "16r00FF" 1 " LATIN SMALL LETTER Y WITH DIAERESIS "
+ "16r0100" 0 " invalid "
+ "16r0101" 0 " invalid "
+ "16r0102" 0 " invalid "
+ "16r0103" 0 " invalid "
+ "16r0104" 0 " invalid "
+ "16r0105" 0 " invalid "
+ "16r0106" 0 " invalid "
+ "16r0107" 0 " invalid "
+ "16r0108" 0 " invalid "
+ "16r0109" 0 " invalid "
+ ] at:(unicode - 160)) ~~ 0 ifTrue:[^ unicode].
+ ^ self encodingError.
+ ].
+ unicode <= 16r10B ifTrue:[
+ ^ #[
+ "16r010A" 16rA4 " LATIN CAPITAL LETTER C WITH DOT ABOVE "
+ "16r010B" 16rA5 " LATIN SMALL LETTER C WITH DOT ABOVE "
+ ] at:(unicode - 16r109).
+ ].
+ unicode <= 16r11F ifTrue:[
+ ^ self encodingError.
+ ].
+ ^ #[
+ "16r0120" 16rB2 " LATIN CAPITAL LETTER G WITH DOT ABOVE "
+ "16r0121" 16rB3 " LATIN SMALL LETTER G WITH DOT ABOVE "
+ ] at:(unicode - 16r11F).
+ ].
+ unicode <= 16r173 ifTrue:[
+ ^ self encodingError.
+ ].
+ ^ #[
+ "16r0174" 16rD0 " LATIN CAPITAL LETTER W WITH CIRCUMFLEX "
+ "16r0175" 16rF0 " LATIN SMALL LETTER W WITH CIRCUMFLEX "
+ "16r0176" 16rDE " LATIN CAPITAL LETTER Y WITH CIRCUMFLEX "
+ "16r0177" 16rFE " LATIN SMALL LETTER Y WITH CIRCUMFLEX "
+ "16r0178" 16rAF " LATIN CAPITAL LETTER Y WITH DIAERESIS "
+ ] at:(unicode - 16r173).
+ ].
+ unicode <= 16r1E01 ifTrue:[
+ ^ self encodingError.
+ ].
+ unicode <= 16r1E85 ifTrue:[
+ [
+ |t|
+ t := #[
+ "16r1E02" 16rA1 " LATIN CAPITAL LETTER B WITH DOT ABOVE "
+ "16r1E03" 16rA2 " LATIN SMALL LETTER B WITH DOT ABOVE "
+ "16r1E04" 16r00 " invalid "
+ "16r1E05" 16r00 " invalid "
+ "16r1E06" 16r00 " invalid "
+ "16r1E07" 16r00 " invalid "
+ "16r1E08" 16r00 " invalid "
+ "16r1E09" 16r00 " invalid "
+ "16r1E0A" 16rA6 " LATIN CAPITAL LETTER D WITH DOT ABOVE "
+ "16r1E0B" 16rAB " LATIN SMALL LETTER D WITH DOT ABOVE "
+ "16r1E0C" 16r00 " invalid "
+ "16r1E0D" 16r00 " invalid "
+ "16r1E0E" 16r00 " invalid "
+ "16r1E0F" 16r00 " invalid "
+ "16r1E10" 16r00 " invalid "
+ "16r1E11" 16r00 " invalid "
+ "16r1E12" 16r00 " invalid "
+ "16r1E13" 16r00 " invalid "
+ "16r1E14" 16r00 " invalid "
+ "16r1E15" 16r00 " invalid "
+ "16r1E16" 16r00 " invalid "
+ "16r1E17" 16r00 " invalid "
+ "16r1E18" 16r00 " invalid "
+ "16r1E19" 16r00 " invalid "
+ "16r1E1A" 16r00 " invalid "
+ "16r1E1B" 16r00 " invalid "
+ "16r1E1C" 16r00 " invalid "
+ "16r1E1D" 16r00 " invalid "
+ "16r1E1E" 16rB0 " LATIN CAPITAL LETTER F WITH DOT ABOVE "
+ "16r1E1F" 16rB1 " LATIN SMALL LETTER F WITH DOT ABOVE "
+ "16r1E20" 16r00 " invalid "
+ "16r1E21" 16r00 " invalid "
+ "16r1E22" 16r00 " invalid "
+ "16r1E23" 16r00 " invalid "
+ "16r1E24" 16r00 " invalid "
+ "16r1E25" 16r00 " invalid "
+ "16r1E26" 16r00 " invalid "
+ "16r1E27" 16r00 " invalid "
+ "16r1E28" 16r00 " invalid "
+ "16r1E29" 16r00 " invalid "
+ "16r1E2A" 16r00 " invalid "
+ "16r1E2B" 16r00 " invalid "
+ "16r1E2C" 16r00 " invalid "
+ "16r1E2D" 16r00 " invalid "
+ "16r1E2E" 16r00 " invalid "
+ "16r1E2F" 16r00 " invalid "
+ "16r1E30" 16r00 " invalid "
+ "16r1E31" 16r00 " invalid "
+ "16r1E32" 16r00 " invalid "
+ "16r1E33" 16r00 " invalid "
+ "16r1E34" 16r00 " invalid "
+ "16r1E35" 16r00 " invalid "
+ "16r1E36" 16r00 " invalid "
+ "16r1E37" 16r00 " invalid "
+ "16r1E38" 16r00 " invalid "
+ "16r1E39" 16r00 " invalid "
+ "16r1E3A" 16r00 " invalid "
+ "16r1E3B" 16r00 " invalid "
+ "16r1E3C" 16r00 " invalid "
+ "16r1E3D" 16r00 " invalid "
+ "16r1E3E" 16r00 " invalid "
+ "16r1E3F" 16r00 " invalid "
+ "16r1E40" 16rB4 " LATIN CAPITAL LETTER M WITH DOT ABOVE "
+ "16r1E41" 16rB5 " LATIN SMALL LETTER M WITH DOT ABOVE "
+ "16r1E42" 16r00 " invalid "
+ "16r1E43" 16r00 " invalid "
+ "16r1E44" 16r00 " invalid "
+ "16r1E45" 16r00 " invalid "
+ "16r1E46" 16r00 " invalid "
+ "16r1E47" 16r00 " invalid "
+ "16r1E48" 16r00 " invalid "
+ "16r1E49" 16r00 " invalid "
+ "16r1E4A" 16r00 " invalid "
+ "16r1E4B" 16r00 " invalid "
+ "16r1E4C" 16r00 " invalid "
+ "16r1E4D" 16r00 " invalid "
+ "16r1E4E" 16r00 " invalid "
+ "16r1E4F" 16r00 " invalid "
+ "16r1E50" 16r00 " invalid "
+ "16r1E51" 16r00 " invalid "
+ "16r1E52" 16r00 " invalid "
+ "16r1E53" 16r00 " invalid "
+ "16r1E54" 16r00 " invalid "
+ "16r1E55" 16r00 " invalid "
+ "16r1E56" 16rB7 " LATIN CAPITAL LETTER P WITH DOT ABOVE "
+ "16r1E57" 16rB9 " LATIN SMALL LETTER P WITH DOT ABOVE "
+ "16r1E58" 16r00 " invalid "
+ "16r1E59" 16r00 " invalid "
+ "16r1E5A" 16r00 " invalid "
+ "16r1E5B" 16r00 " invalid "
+ "16r1E5C" 16r00 " invalid "
+ "16r1E5D" 16r00 " invalid "
+ "16r1E5E" 16r00 " invalid "
+ "16r1E5F" 16r00 " invalid "
+ "16r1E60" 16rBB " LATIN CAPITAL LETTER S WITH DOT ABOVE "
+ "16r1E61" 16rBF " LATIN SMALL LETTER S WITH DOT ABOVE "
+ "16r1E62" 16r00 " invalid "
+ "16r1E63" 16r00 " invalid "
+ "16r1E64" 16r00 " invalid "
+ "16r1E65" 16r00 " invalid "
+ "16r1E66" 16r00 " invalid "
+ "16r1E67" 16r00 " invalid "
+ "16r1E68" 16r00 " invalid "
+ "16r1E69" 16r00 " invalid "
+ "16r1E6A" 16rD7 " LATIN CAPITAL LETTER T WITH DOT ABOVE "
+ "16r1E6B" 16rF7 " LATIN SMALL LETTER T WITH DOT ABOVE "
+ "16r1E6C" 16r00 " invalid "
+ "16r1E6D" 16r00 " invalid "
+ "16r1E6E" 16r00 " invalid "
+ "16r1E6F" 16r00 " invalid "
+ "16r1E70" 16r00 " invalid "
+ "16r1E71" 16r00 " invalid "
+ "16r1E72" 16r00 " invalid "
+ "16r1E73" 16r00 " invalid "
+ "16r1E74" 16r00 " invalid "
+ "16r1E75" 16r00 " invalid "
+ "16r1E76" 16r00 " invalid "
+ "16r1E77" 16r00 " invalid "
+ "16r1E78" 16r00 " invalid "
+ "16r1E79" 16r00 " invalid "
+ "16r1E7A" 16r00 " invalid "
+ "16r1E7B" 16r00 " invalid "
+ "16r1E7C" 16r00 " invalid "
+ "16r1E7D" 16r00 " invalid "
+ "16r1E7E" 16r00 " invalid "
+ "16r1E7F" 16r00 " invalid "
+ "16r1E80" 16rA8 " LATIN CAPITAL LETTER W WITH GRAVE "
+ "16r1E81" 16rB8 " LATIN SMALL LETTER W WITH GRAVE "
+ "16r1E82" 16rAA " LATIN CAPITAL LETTER W WITH ACUTE "
+ "16r1E83" 16rBA " LATIN SMALL LETTER W WITH ACUTE "
+ "16r1E84" 16rBD " LATIN CAPITAL LETTER W WITH DIAERESIS "
+ "16r1E85" 16rBE " LATIN SMALL LETTER W WITH DIAERESIS "
+ ] at:(unicode - 16r1E01).
+ t == 0 ifFalse:[^ t].
+ ^ self encodingError
+ ] value.
+ ].
+ unicode <= 16r1EF1 ifTrue:[
+ ^ self encodingError.
+ ].
+ ^ #[
+ "16r1EF2" 16rAC " LATIN CAPITAL LETTER Y WITH GRAVE "
+ "16r1EF3" 16rBC " LATIN SMALL LETTER Y WITH GRAVE "
+ ] at:(unicode - 16r1EF1).
+! !
+
+!ISO8859_14 class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /cvs/stx/stx/libbasic/Attic/Encoder_ISO8859_14.st,v 1.1 2004-03-05 17:29:55 cg Exp $'
+! !
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Encoder_ISO8859_16.st Fri Mar 05 18:30:49 2004 +0100
@@ -0,0 +1,696 @@
+"{ Encoding: utf8 }"
+
+"{ Package: 'stx:libbasic' }"
+
+"{ NameSpace: CharacterEncoderImplementations }"
+
+SingleByteEncoder subclass:#ISO8859_16
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Collections-Text-Encodings'
+!
+
+
+!ISO8859_16 class methodsFor:'mapping'!
+
+mapFileURL1_relativePathName
+ ^ 'ISO8859/8859-16.TXT'
+!
+
+mapping
+"
+# From: http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-16.TXT
+
+#
+# Name: ISO/IEC 8859-16:2001 to Unicode
+# Unicode version: 3.0
+# Table version: 1.0
+# Table format: Format A
+# Date: 2001 July 26
+# Authors: Markus Kuhn <mkuhn@acm.org>
+#
+# Copyright (c) 1999-2001 Unicode, Inc. All Rights reserved.
+#
+# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
+# No claims are made as to fitness for any particular purpose. No
+# warranties of any kind are expressed or implied. The recipient
+# agrees to determine applicability of information provided. If this
+# file has been provided on optical media by Unicode, Inc., the sole
+# remedy for any claim will be exchange of defective media within 90
+# days of receipt.
+#
+# Unicode, Inc. hereby grants the right to freely use the information
+# supplied in this file in the creation of products supporting the
+# Unicode Standard, and to make copies of this file in any form for
+# internal or external distribution as long as this notice remains
+# attached.
+#
+# General notes:
+#
+# This table contains the data the Unicode Consortium has on how
+# ISO/IEC 8859-16:2001 characters map into Unicode.
+#
+# Format: Three tab-separated columns
+# Column #1 is the ISO/IEC 8859-16 code (in hex as 0xXX)
+# Column #2 is the Unicode (in hex as 0xXXXX)
+# Column #3 the Unicode name (follows a comment sign, '#')
+#
+# The entries are in ISO/IEC 8859-16 order.
+#
+# Updated versions of this file may be found in:
+# <ftp://ftp.unicode.org/Public/MAPPINGS/>
+#
+# Any comments or problems, contact <errata@unicode.org>
+# Please note that <errata@unicode.org> is an archival address;
+# notices will be checked, but do not expect an immediate response.
+#
+0x00 0x0000 # NULL
+0x01 0x0001 # START OF HEADING
+0x02 0x0002 # START OF TEXT
+0x03 0x0003 # END OF TEXT
+0x04 0x0004 # END OF TRANSMISSION
+0x05 0x0005 # ENQUIRY
+0x06 0x0006 # ACKNOWLEDGE
+0x07 0x0007 # BELL
+0x08 0x0008 # BACKSPACE
+0x09 0x0009 # HORIZONTAL TABULATION
+0x0A 0x000A # LINE FEED
+0x0B 0x000B # VERTICAL TABULATION
+0x0C 0x000C # FORM FEED
+0x0D 0x000D # CARRIAGE RETURN
+0x0E 0x000E # SHIFT OUT
+0x0F 0x000F # SHIFT IN
+0x10 0x0010 # DATA LINK ESCAPE
+0x11 0x0011 # DEVICE CONTROL ONE
+0x12 0x0012 # DEVICE CONTROL TWO
+0x13 0x0013 # DEVICE CONTROL THREE
+0x14 0x0014 # DEVICE CONTROL FOUR
+0x15 0x0015 # NEGATIVE ACKNOWLEDGE
+0x16 0x0016 # SYNCHRONOUS IDLE
+0x17 0x0017 # END OF TRANSMISSION BLOCK
+0x18 0x0018 # CANCEL
+0x19 0x0019 # END OF MEDIUM
+0x1A 0x001A # SUBSTITUTE
+0x1B 0x001B # ESCAPE
+0x1C 0x001C # FILE SEPARATOR
+0x1D 0x001D # GROUP SEPARATOR
+0x1E 0x001E # RECORD SEPARATOR
+0x1F 0x001F # UNIT SEPARATOR
+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
+0x7F 0x007F # DELETE
+0x80 0x0080 # <control>
+0x81 0x0081 # <control>
+0x82 0x0082 # <control>
+0x83 0x0083 # <control>
+0x84 0x0084 # <control>
+0x85 0x0085 # <control>
+0x86 0x0086 # <control>
+0x87 0x0087 # <control>
+0x88 0x0088 # <control>
+0x89 0x0089 # <control>
+0x8A 0x008A # <control>
+0x8B 0x008B # <control>
+0x8C 0x008C # <control>
+0x8D 0x008D # <control>
+0x8E 0x008E # <control>
+0x8F 0x008F # <control>
+0x90 0x0090 # <control>
+0x91 0x0091 # <control>
+0x92 0x0092 # <control>
+0x93 0x0093 # <control>
+0x94 0x0094 # <control>
+0x95 0x0095 # <control>
+0x96 0x0096 # <control>
+0x97 0x0097 # <control>
+0x98 0x0098 # <control>
+0x99 0x0099 # <control>
+0x9A 0x009A # <control>
+0x9B 0x009B # <control>
+0x9C 0x009C # <control>
+0x9D 0x009D # <control>
+0x9E 0x009E # <control>
+0x9F 0x009F # <control>
+0xA0 0x00A0 # NO-BREAK SPACE
+0xA1 0x0104 # LATIN CAPITAL LETTER A WITH OGONEK
+0xA2 0x0105 # LATIN SMALL LETTER A WITH OGONEK
+0xA3 0x0141 # LATIN CAPITAL LETTER L WITH STROKE
+0xA4 0x20AC # EURO SIGN
+0xA5 0x201E # DOUBLE LOW-9 QUOTATION MARK
+0xA6 0x0160 # LATIN CAPITAL LETTER S WITH CARON
+0xA7 0x00A7 # SECTION SIGN
+0xA8 0x0161 # LATIN SMALL LETTER S WITH CARON
+0xA9 0x00A9 # COPYRIGHT SIGN
+0xAA 0x0218 # LATIN CAPITAL LETTER S WITH COMMA BELOW
+0xAB 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+0xAC 0x0179 # LATIN CAPITAL LETTER Z WITH ACUTE
+0xAD 0x00AD # SOFT HYPHEN
+0xAE 0x017A # LATIN SMALL LETTER Z WITH ACUTE
+0xAF 0x017B # LATIN CAPITAL LETTER Z WITH DOT ABOVE
+0xB0 0x00B0 # DEGREE SIGN
+0xB1 0x00B1 # PLUS-MINUS SIGN
+0xB2 0x010C # LATIN CAPITAL LETTER C WITH CARON
+0xB3 0x0142 # LATIN SMALL LETTER L WITH STROKE
+0xB4 0x017D # LATIN CAPITAL LETTER Z WITH CARON
+0xB5 0x201D # RIGHT DOUBLE QUOTATION MARK
+0xB6 0x00B6 # PILCROW SIGN
+0xB7 0x00B7 # MIDDLE DOT
+0xB8 0x017E # LATIN SMALL LETTER Z WITH CARON
+0xB9 0x010D # LATIN SMALL LETTER C WITH CARON
+0xBA 0x0219 # LATIN SMALL LETTER S WITH COMMA BELOW
+0xBB 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+0xBC 0x0152 # LATIN CAPITAL LIGATURE OE
+0xBD 0x0153 # LATIN SMALL LIGATURE OE
+0xBE 0x0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS
+0xBF 0x017C # LATIN SMALL LETTER Z WITH DOT ABOVE
+0xC0 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE
+0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
+0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+0xC3 0x0102 # LATIN CAPITAL LETTER A WITH BREVE
+0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
+0xC5 0x0106 # LATIN CAPITAL LETTER C WITH ACUTE
+0xC6 0x00C6 # LATIN CAPITAL LETTER AE
+0xC7 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
+0xC8 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE
+0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
+0xCA 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
+0xCC 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE
+0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
+0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+0xCF 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
+0xD0 0x0110 # LATIN CAPITAL LETTER D WITH STROKE
+0xD1 0x0143 # LATIN CAPITAL LETTER N WITH ACUTE
+0xD2 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE
+0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
+0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+0xD5 0x0150 # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
+0xD7 0x015A # LATIN CAPITAL LETTER S WITH ACUTE
+0xD8 0x0170 # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0xD9 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE
+0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
+0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
+0xDD 0x0118 # LATIN CAPITAL LETTER E WITH OGONEK
+0xDE 0x021A # LATIN CAPITAL LETTER T WITH COMMA BELOW
+0xDF 0x00DF # LATIN SMALL LETTER SHARP S
+0xE0 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
+0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
+0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
+0xE3 0x0103 # LATIN SMALL LETTER A WITH BREVE
+0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
+0xE5 0x0107 # LATIN SMALL LETTER C WITH ACUTE
+0xE6 0x00E6 # LATIN SMALL LETTER AE
+0xE7 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
+0xE8 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
+0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
+0xEA 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
+0xEC 0x00EC # LATIN SMALL LETTER I WITH GRAVE
+0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE
+0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
+0xEF 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
+0xF0 0x0111 # LATIN SMALL LETTER D WITH STROKE
+0xF1 0x0144 # LATIN SMALL LETTER N WITH ACUTE
+0xF2 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
+0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
+0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
+0xF5 0x0151 # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
+0xF7 0x015B # LATIN SMALL LETTER S WITH ACUTE
+0xF8 0x0171 # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0xF9 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
+0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE
+0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
+0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
+0xFD 0x0119 # LATIN SMALL LETTER E WITH OGONEK
+0xFE 0x021B # LATIN SMALL LETTER T WITH COMMA BELOW
+0xFF 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
+
+"
+! !
+
+!ISO8859_16 class methodsFor:'queries'!
+
+namesOfEncoding
+ ^ #( 'iso8859-16' 'iso-8859-16' 'latin10' 'latin-10' )
+! !
+
+!ISO8859_16 methodsFor:'encoding & decoding'!
+
+decode:codeArg
+ "Automagically generated by generateCode - do not modify.
+ Decode from my encoding into unicode."
+
+ |code "{ Class: SmallInteger }"|
+
+ code := codeArg.
+ code <= 16rA0 ifTrue:[ ^ code ].
+ code > 16rFF ifTrue:[
+ ^ self decodingError.
+ ].
+ ^ #(
+ "16r00A1" 16r0104 " LATIN CAPITAL LETTER A WITH OGONEK "
+ "16r00A2" 16r0105 " LATIN SMALL LETTER A WITH OGONEK "
+ "16r00A3" 16r0141 " LATIN CAPITAL LETTER L WITH STROKE "
+ "16r00A4" 16r20AC " EURO SIGN "
+ "16r00A5" 16r201E " DOUBLE LOW-9 QUOTATION MARK "
+ "16r00A6" 16r0160 " LATIN CAPITAL LETTER S WITH CARON "
+ "16r00A7" 16r00A7 " SECTION SIGN "
+ "16r00A8" 16r0161 " LATIN SMALL LETTER S WITH CARON "
+ "16r00A9" 16r00A9 " COPYRIGHT SIGN "
+ "16r00AA" 16r0218 " LATIN CAPITAL LETTER S WITH COMMA BELOW "
+ "16r00AB" 16r00AB " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK "
+ "16r00AC" 16r0179 " LATIN CAPITAL LETTER Z WITH ACUTE "
+ "16r00AD" 16r00AD " SOFT HYPHEN "
+ "16r00AE" 16r017A " LATIN SMALL LETTER Z WITH ACUTE "
+ "16r00AF" 16r017B " LATIN CAPITAL LETTER Z WITH DOT ABOVE "
+ "16r00B0" 16r00B0 " DEGREE SIGN "
+ "16r00B1" 16r00B1 " PLUS-MINUS SIGN "
+ "16r00B2" 16r010C " LATIN CAPITAL LETTER C WITH CARON "
+ "16r00B3" 16r0142 " LATIN SMALL LETTER L WITH STROKE "
+ "16r00B4" 16r017D " LATIN CAPITAL LETTER Z WITH CARON "
+ "16r00B5" 16r201D " RIGHT DOUBLE QUOTATION MARK "
+ "16r00B6" 16r00B6 " PILCROW SIGN "
+ "16r00B7" 16r00B7 " MIDDLE DOT "
+ "16r00B8" 16r017E " LATIN SMALL LETTER Z WITH CARON "
+ "16r00B9" 16r010D " LATIN SMALL LETTER C WITH CARON "
+ "16r00BA" 16r0219 " LATIN SMALL LETTER S WITH COMMA BELOW "
+ "16r00BB" 16r00BB " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK "
+ "16r00BC" 16r0152 " LATIN CAPITAL LIGATURE OE "
+ "16r00BD" 16r0153 " LATIN SMALL LIGATURE OE "
+ "16r00BE" 16r0178 " LATIN CAPITAL LETTER Y WITH DIAERESIS "
+ "16r00BF" 16r017C " LATIN SMALL LETTER Z WITH DOT ABOVE "
+ "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" 16r0102 " LATIN CAPITAL LETTER A WITH BREVE "
+ "16r00C4" 16r00C4 " LATIN CAPITAL LETTER A WITH DIAERESIS "
+ "16r00C5" 16r0106 " LATIN CAPITAL LETTER C WITH ACUTE "
+ "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" 16r0110 " LATIN CAPITAL LETTER D WITH STROKE "
+ "16r00D1" 16r0143 " LATIN CAPITAL LETTER N WITH ACUTE "
+ "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" 16r0150 " LATIN CAPITAL LETTER O WITH DOUBLE ACUTE "
+ "16r00D6" 16r00D6 " LATIN CAPITAL LETTER O WITH DIAERESIS "
+ "16r00D7" 16r015A " LATIN CAPITAL LETTER S WITH ACUTE "
+ "16r00D8" 16r0170 " LATIN CAPITAL LETTER U WITH DOUBLE ACUTE "
+ "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" 16r0118 " LATIN CAPITAL LETTER E WITH OGONEK "
+ "16r00DE" 16r021A " LATIN CAPITAL LETTER T WITH COMMA BELOW "
+ "16r00DF" 16r00DF " LATIN SMALL LETTER SHARP S "
+ "16r00E0" 16r00E0 " LATIN SMALL LETTER A WITH GRAVE "
+ "16r00E1" 16r00E1 " LATIN SMALL LETTER A WITH ACUTE "
+ "16r00E2" 16r00E2 " LATIN SMALL LETTER A WITH CIRCUMFLEX "
+ "16r00E3" 16r0103 " LATIN SMALL LETTER A WITH BREVE "
+ "16r00E4" 16r00E4 " LATIN SMALL LETTER A WITH DIAERESIS "
+ "16r00E5" 16r0107 " LATIN SMALL LETTER C WITH ACUTE "
+ "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" 16r0111 " LATIN SMALL LETTER D WITH STROKE "
+ "16r00F1" 16r0144 " LATIN SMALL LETTER N WITH ACUTE "
+ "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" 16r0151 " LATIN SMALL LETTER O WITH DOUBLE ACUTE "
+ "16r00F6" 16r00F6 " LATIN SMALL LETTER O WITH DIAERESIS "
+ "16r00F7" 16r015B " LATIN SMALL LETTER S WITH ACUTE "
+ "16r00F8" 16r0171 " LATIN SMALL LETTER U WITH DOUBLE ACUTE "
+ "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" 16r0119 " LATIN SMALL LETTER E WITH OGONEK "
+ "16r00FE" 16r021B " LATIN SMALL LETTER T WITH COMMA BELOW "
+ "16r00FF" 16r00FF " LATIN SMALL LETTER Y WITH DIAERESIS "
+ ) at:(code - 16rA0).
+!
+
+encode:unicodeArg
+ "Automagically generated by generateCode - do not modify.
+ Encode from unicode into my encoding."
+
+ |unicode "{ Class: SmallInteger }"|
+
+ unicode := unicodeArg.
+ unicode <= 16rA0 ifTrue:[ ^ unicode ].
+ unicode > 16r20AC ifTrue:[
+ ^ self encodingError.
+ ].
+ unicode <= 16r21B ifTrue:[
+ unicode <= 16r17E ifTrue:[
+ unicode <= 16r101 ifTrue:[
+ (#[
+ "16r00A1" 0 " invalid "
+ "16r00A2" 0 " invalid "
+ "16r00A3" 0 " invalid "
+ "16r00A4" 0 " invalid "
+ "16r00A5" 0 " invalid "
+ "16r00A6" 0 " invalid "
+ "16r00A7" 1 " SECTION SIGN "
+ "16r00A8" 0 " invalid "
+ "16r00A9" 1 " COPYRIGHT SIGN "
+ "16r00AA" 0 " invalid "
+ "16r00AB" 1 " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK "
+ "16r00AC" 0 " invalid "
+ "16r00AD" 1 " SOFT HYPHEN "
+ "16r00AE" 0 " invalid "
+ "16r00AF" 0 " invalid "
+ "16r00B0" 1 " DEGREE SIGN "
+ "16r00B1" 1 " PLUS-MINUS SIGN "
+ "16r00B2" 0 " invalid "
+ "16r00B3" 0 " invalid "
+ "16r00B4" 0 " invalid "
+ "16r00B5" 0 " invalid "
+ "16r00B6" 1 " PILCROW SIGN "
+ "16r00B7" 1 " MIDDLE DOT "
+ "16r00B8" 0 " invalid "
+ "16r00B9" 0 " invalid "
+ "16r00BA" 0 " invalid "
+ "16r00BB" 1 " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK "
+ "16r00BC" 0 " invalid "
+ "16r00BD" 0 " invalid "
+ "16r00BE" 0 " invalid "
+ "16r00BF" 0 " invalid "
+ "16r00C0" 1 " LATIN CAPITAL LETTER A WITH GRAVE "
+ "16r00C1" 1 " LATIN CAPITAL LETTER A WITH ACUTE "
+ "16r00C2" 1 " LATIN CAPITAL LETTER A WITH CIRCUMFLEX "
+ "16r00C3" 0 " invalid "
+ "16r00C4" 1 " LATIN CAPITAL LETTER A WITH DIAERESIS "
+ "16r00C5" 0 " invalid "
+ "16r00C6" 1 " LATIN CAPITAL LETTER AE "
+ "16r00C7" 1 " LATIN CAPITAL LETTER C WITH CEDILLA "
+ "16r00C8" 1 " LATIN CAPITAL LETTER E WITH GRAVE "
+ "16r00C9" 1 " LATIN CAPITAL LETTER E WITH ACUTE "
+ "16r00CA" 1 " LATIN CAPITAL LETTER E WITH CIRCUMFLEX "
+ "16r00CB" 1 " LATIN CAPITAL LETTER E WITH DIAERESIS "
+ "16r00CC" 1 " LATIN CAPITAL LETTER I WITH GRAVE "
+ "16r00CD" 1 " LATIN CAPITAL LETTER I WITH ACUTE "
+ "16r00CE" 1 " LATIN CAPITAL LETTER I WITH CIRCUMFLEX "
+ "16r00CF" 1 " LATIN CAPITAL LETTER I WITH DIAERESIS "
+ "16r00D0" 0 " invalid "
+ "16r00D1" 0 " invalid "
+ "16r00D2" 1 " LATIN CAPITAL LETTER O WITH GRAVE "
+ "16r00D3" 1 " LATIN CAPITAL LETTER O WITH ACUTE "
+ "16r00D4" 1 " LATIN CAPITAL LETTER O WITH CIRCUMFLEX "
+ "16r00D5" 0 " invalid "
+ "16r00D6" 1 " LATIN CAPITAL LETTER O WITH DIAERESIS "
+ "16r00D7" 0 " invalid "
+ "16r00D8" 0 " invalid "
+ "16r00D9" 1 " LATIN CAPITAL LETTER U WITH GRAVE "
+ "16r00DA" 1 " LATIN CAPITAL LETTER U WITH ACUTE "
+ "16r00DB" 1 " LATIN CAPITAL LETTER U WITH CIRCUMFLEX "
+ "16r00DC" 1 " LATIN CAPITAL LETTER U WITH DIAERESIS "
+ "16r00DD" 0 " invalid "
+ "16r00DE" 0 " invalid "
+ "16r00DF" 1 " LATIN SMALL LETTER SHARP S "
+ "16r00E0" 1 " LATIN SMALL LETTER A WITH GRAVE "
+ "16r00E1" 1 " LATIN SMALL LETTER A WITH ACUTE "
+ "16r00E2" 1 " LATIN SMALL LETTER A WITH CIRCUMFLEX "
+ "16r00E3" 0 " invalid "
+ "16r00E4" 1 " LATIN SMALL LETTER A WITH DIAERESIS "
+ "16r00E5" 0 " invalid "
+ "16r00E6" 1 " LATIN SMALL LETTER AE "
+ "16r00E7" 1 " LATIN SMALL LETTER C WITH CEDILLA "
+ "16r00E8" 1 " LATIN SMALL LETTER E WITH GRAVE "
+ "16r00E9" 1 " LATIN SMALL LETTER E WITH ACUTE "
+ "16r00EA" 1 " LATIN SMALL LETTER E WITH CIRCUMFLEX "
+ "16r00EB" 1 " LATIN SMALL LETTER E WITH DIAERESIS "
+ "16r00EC" 1 " LATIN SMALL LETTER I WITH GRAVE "
+ "16r00ED" 1 " LATIN SMALL LETTER I WITH ACUTE "
+ "16r00EE" 1 " LATIN SMALL LETTER I WITH CIRCUMFLEX "
+ "16r00EF" 1 " LATIN SMALL LETTER I WITH DIAERESIS "
+ "16r00F0" 0 " invalid "
+ "16r00F1" 0 " invalid "
+ "16r00F2" 1 " LATIN SMALL LETTER O WITH GRAVE "
+ "16r00F3" 1 " LATIN SMALL LETTER O WITH ACUTE "
+ "16r00F4" 1 " LATIN SMALL LETTER O WITH CIRCUMFLEX "
+ "16r00F5" 0 " invalid "
+ "16r00F6" 1 " LATIN SMALL LETTER O WITH DIAERESIS "
+ "16r00F7" 0 " invalid "
+ "16r00F8" 0 " invalid "
+ "16r00F9" 1 " LATIN SMALL LETTER U WITH GRAVE "
+ "16r00FA" 1 " LATIN SMALL LETTER U WITH ACUTE "
+ "16r00FB" 1 " LATIN SMALL LETTER U WITH CIRCUMFLEX "
+ "16r00FC" 1 " LATIN SMALL LETTER U WITH DIAERESIS "
+ "16r00FD" 0 " invalid "
+ "16r00FE" 0 " invalid "
+ "16r00FF" 1 " LATIN SMALL LETTER Y WITH DIAERESIS "
+ "16r0100" 0 " invalid "
+ "16r0101" 0 " invalid "
+ ] at:(unicode - 160)) ~~ 0 ifTrue:[^ unicode].
+ ^ self encodingError.
+ ].
+ unicode <= 16r119 ifTrue:[
+ [
+ |t|
+ t := #[
+ "16r0102" 16rC3 " LATIN CAPITAL LETTER A WITH BREVE "
+ "16r0103" 16rE3 " LATIN SMALL LETTER A WITH BREVE "
+ "16r0104" 16rA1 " LATIN CAPITAL LETTER A WITH OGONEK "
+ "16r0105" 16rA2 " LATIN SMALL LETTER A WITH OGONEK "
+ "16r0106" 16rC5 " LATIN CAPITAL LETTER C WITH ACUTE "
+ "16r0107" 16rE5 " LATIN SMALL LETTER C WITH ACUTE "
+ "16r0108" 16r00 " invalid "
+ "16r0109" 16r00 " invalid "
+ "16r010A" 16r00 " invalid "
+ "16r010B" 16r00 " invalid "
+ "16r010C" 16rB2 " LATIN CAPITAL LETTER C WITH CARON "
+ "16r010D" 16rB9 " LATIN SMALL LETTER C WITH CARON "
+ "16r010E" 16r00 " invalid "
+ "16r010F" 16r00 " invalid "
+ "16r0110" 16rD0 " LATIN CAPITAL LETTER D WITH STROKE "
+ "16r0111" 16rF0 " LATIN SMALL LETTER D WITH STROKE "
+ "16r0112" 16r00 " invalid "
+ "16r0113" 16r00 " invalid "
+ "16r0114" 16r00 " invalid "
+ "16r0115" 16r00 " invalid "
+ "16r0116" 16r00 " invalid "
+ "16r0117" 16r00 " invalid "
+ "16r0118" 16rDD " LATIN CAPITAL LETTER E WITH OGONEK "
+ "16r0119" 16rFD " LATIN SMALL LETTER E WITH OGONEK "
+ ] at:(unicode - 16r101).
+ t == 0 ifFalse:[^ t].
+ ^ self encodingError
+ ] value.
+ ].
+ unicode <= 16r140 ifTrue:[
+ ^ self encodingError.
+ ].
+ [
+ |t|
+ t := #[
+ "16r0141" 16rA3 " LATIN CAPITAL LETTER L WITH STROKE "
+ "16r0142" 16rB3 " LATIN SMALL LETTER L WITH STROKE "
+ "16r0143" 16rD1 " LATIN CAPITAL LETTER N WITH ACUTE "
+ "16r0144" 16rF1 " LATIN SMALL LETTER N WITH ACUTE "
+ "16r0145" 16r00 " invalid "
+ "16r0146" 16r00 " invalid "
+ "16r0147" 16r00 " invalid "
+ "16r0148" 16r00 " invalid "
+ "16r0149" 16r00 " invalid "
+ "16r014A" 16r00 " invalid "
+ "16r014B" 16r00 " invalid "
+ "16r014C" 16r00 " invalid "
+ "16r014D" 16r00 " invalid "
+ "16r014E" 16r00 " invalid "
+ "16r014F" 16r00 " invalid "
+ "16r0150" 16rD5 " LATIN CAPITAL LETTER O WITH DOUBLE ACUTE "
+ "16r0151" 16rF5 " LATIN SMALL LETTER O WITH DOUBLE ACUTE "
+ "16r0152" 16rBC " LATIN CAPITAL LIGATURE OE "
+ "16r0153" 16rBD " LATIN SMALL LIGATURE OE "
+ "16r0154" 16r00 " invalid "
+ "16r0155" 16r00 " invalid "
+ "16r0156" 16r00 " invalid "
+ "16r0157" 16r00 " invalid "
+ "16r0158" 16r00 " invalid "
+ "16r0159" 16r00 " invalid "
+ "16r015A" 16rD7 " LATIN CAPITAL LETTER S WITH ACUTE "
+ "16r015B" 16rF7 " LATIN SMALL LETTER S WITH ACUTE "
+ "16r015C" 16r00 " invalid "
+ "16r015D" 16r00 " invalid "
+ "16r015E" 16r00 " invalid "
+ "16r015F" 16r00 " invalid "
+ "16r0160" 16rA6 " LATIN CAPITAL LETTER S WITH CARON "
+ "16r0161" 16rA8 " LATIN SMALL LETTER S WITH CARON "
+ "16r0162" 16r00 " invalid "
+ "16r0163" 16r00 " invalid "
+ "16r0164" 16r00 " invalid "
+ "16r0165" 16r00 " invalid "
+ "16r0166" 16r00 " invalid "
+ "16r0167" 16r00 " invalid "
+ "16r0168" 16r00 " invalid "
+ "16r0169" 16r00 " invalid "
+ "16r016A" 16r00 " invalid "
+ "16r016B" 16r00 " invalid "
+ "16r016C" 16r00 " invalid "
+ "16r016D" 16r00 " invalid "
+ "16r016E" 16r00 " invalid "
+ "16r016F" 16r00 " invalid "
+ "16r0170" 16rD8 " LATIN CAPITAL LETTER U WITH DOUBLE ACUTE "
+ "16r0171" 16rF8 " LATIN SMALL LETTER U WITH DOUBLE ACUTE "
+ "16r0172" 16r00 " invalid "
+ "16r0173" 16r00 " invalid "
+ "16r0174" 16r00 " invalid "
+ "16r0175" 16r00 " invalid "
+ "16r0176" 16r00 " invalid "
+ "16r0177" 16r00 " invalid "
+ "16r0178" 16rBE " LATIN CAPITAL LETTER Y WITH DIAERESIS "
+ "16r0179" 16rAC " LATIN CAPITAL LETTER Z WITH ACUTE "
+ "16r017A" 16rAE " LATIN SMALL LETTER Z WITH ACUTE "
+ "16r017B" 16rAF " LATIN CAPITAL LETTER Z WITH DOT ABOVE "
+ "16r017C" 16rBF " LATIN SMALL LETTER Z WITH DOT ABOVE "
+ "16r017D" 16rB4 " LATIN CAPITAL LETTER Z WITH CARON "
+ "16r017E" 16rB8 " LATIN SMALL LETTER Z WITH CARON "
+ ] at:(unicode - 16r140).
+ t == 0 ifFalse:[^ t].
+ ^ self encodingError
+ ] value.
+ ].
+ unicode <= 16r217 ifTrue:[
+ ^ self encodingError.
+ ].
+ ^ #[
+ "16r0218" 16rAA " LATIN CAPITAL LETTER S WITH COMMA BELOW "
+ "16r0219" 16rBA " LATIN SMALL LETTER S WITH COMMA BELOW "
+ "16r021A" 16rDE " LATIN CAPITAL LETTER T WITH COMMA BELOW "
+ "16r021B" 16rFE " LATIN SMALL LETTER T WITH COMMA BELOW "
+ ] at:(unicode - 16r217).
+ ].
+ unicode <= 16r201C ifTrue:[
+ ^ self encodingError.
+ ].
+ unicode <= 16r201E ifTrue:[
+ ^ #[
+ "16r201D" 16rB5 " RIGHT DOUBLE QUOTATION MARK "
+ "16r201E" 16rA5 " DOUBLE LOW-9 QUOTATION MARK "
+ ] at:(unicode - 16r201C).
+ ].
+ unicode <= 16r20AB ifTrue:[
+ ^ self encodingError.
+ ].
+ ^ "16r20AC" 16r00A4 " EURO SIGN "
+! !
+
+!ISO8859_16 class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /cvs/stx/stx/libbasic/Attic/Encoder_ISO8859_16.st,v 1.1 2004-03-05 17:29:35 cg Exp $'
+! !
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Encoder_MAC_Hebrew.st Fri Mar 05 18:30:49 2004 +0100
@@ -0,0 +1,596 @@
+"{ Encoding: utf8 }"
+
+"{ Package: 'stx:libbasic' }"
+
+"{ NameSpace: CharacterEncoderImplementations }"
+
+SingleByteEncoder subclass:#MAC_Hebrew
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Collections-Text-Encodings'
+!
+
+
+!MAC_Hebrew class methodsFor:'mapping'!
+
+mapFileURL1_relativePathName
+ ^ 'VENDORS/APPLE/HEBREW.TXT'
+!
+
+mapping
+"
+# From: http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/HEBREW.TXT
+
+#=======================================================================
+# File name: HEBREW.TXT
+#
+# Contents: Map (external version) from Mac OS Hebrew
+# character set to Unicode 2.1 through Unicode 3.2.
+#
+# Copyright: (c) 1995-2002 by Apple Computer, Inc., all rights
+# reserved.
+#
+# Contact: charsets@apple.com
+#
+# Changes:
+#
+# b3,c1 2002-Dec-19 Don't require left-right context for digits
+# 0x30-0x39. Change mapping of 0x81 to use
+# decomposition. Reverse the mappings of 0xA8,
+# 0xA9. Update URLs, notes. Matches internal
+# utom<b7>.
+# b02 1999-Sep-22 Update contact e-mail address. Matches
+# internal utom<b1>, ufrm<b1>, and Text
+# Encoding Converter version 1.5.
+# n03 1998-Feb-05 Show required Unicode character
+# directionality in a different way. Update
+# mappings for 0xC0 and 0xDE to use
+# transcoding hints; matches internal utom<n6>,
+# ufrm<n20>, and Text Encoding Converter
+# version 1.3. Rewrite header comments.
+# n01 1995-Nov-15 First version. Matches internal ufrm<n8>.
+#
+# 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:
+#
+# <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
+#
+# 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 Hebrew code (in hex as 0xNN).
+# Column #2 is the corresponding Unicode or Unicode sequence (in
+# hex as 0xNNNN, 0xNNNN+0xNNNN, etc.). Sequences of up to 5
+# Unicode characters are used here. A single Unicode character
+# may be preceded by a tag indicating required directionality
+# (i.e. <LR>+0xNNNN or <RL>+0xNNNN).
+# Column #3 is a comment containing the Unicode name.
+#
+# The entries are in Mac OS Hebrew 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 Roman character set uses the standard control characters at
+# 0x00-0x1F and 0x7F.
+#
+# Notes on Mac OS Hebrew:
+# -----------------------
+#
+# 1. General
+#
+# The Mac OS Hebrew character set supports the Hebrew and Yiddish
+# languages. It incorporates the Hebrew letter repertoire of
+# ISO 8859-8, and uses the same code points for them, 0xE0-0xFA.
+# It also incorporates the ASCII character set. In addition, the
+# Mac OS Hebrew character set includes the following:
+#
+# - Hebrew points (nikud marks) at 0xC6, 0xCB-0xCF and 0xD8-0xDF.
+# These are non-spacing combining marks. Note that the RAFE point
+# at 0xD8 is not displayed correctly in some fonts, and cannot be
+# typed using the keyboard layouts in the current Hebrew localized
+# systems. Also note: The character given in Unicode as QAMATS
+# (U+05B8) actually refers to two different sounds, depending on
+# context. For example, when ALEF is followed by QAMATS, the QAMATS
+# can actually refer to two different sounds depending on the
+# following letters. The Mac OS Hebrew character set separately
+# encodes these two sounds for the same graphic shape, as 'qamats'
+# (0xCB) and 'qamats qatan' (0xDE). The 'qamats' character is more
+# common, so it is mapped to the Unicode QAMATS; 'qamats qatan' can
+# only be used with a limited number of characters, and it is
+# mapped using a corporate-zone variant tag (see below).
+#
+# - Various Hebrew ligatures at 0x81, 0xC0, 0xC7, 0xC8, 0xD6, and
+# 0xD7. Also note that the Yiddish YOD YOD PATAH ligature at 0x81
+# is missing in some fonts.
+#
+# - The NEW SHEQEL SIGN at 0xA6.
+#
+# - Latin characters with diacritics at 0x80 and 0x82-0x9F. However,
+# most of these cannot be typed using the keyboard layouts in the
+# Hebrew localized systems.
+#
+# - Right-left versions of certain ASCII punctuation, symbols and
+# digits: 0xA0-0xA5, 0xA7-0xBF, 0xFB-0xFF. See below.
+#
+# - Miscellaneous additional punctuation at 0xC1, 0xC9, 0xCA, and
+# 0xD0-0xD5. There is a variant of the Hebrew encoding in which
+# the LEFT SINGLE QUOTATION MARK at 0xD4 is replaced by FIGURE
+# SPACE. The glyphs for some of the other punctuation characters
+# are missing in some fonts.
+#
+# - Four obsolete characters at 0xC2-0xC5 known as canorals (not to
+# be confused with cantillation marks!!). These were used for
+# manual positioning of nikud marks before System 7.1 (at which
+# point nikud positioning became automatic with WorldScript.).
+#
+# 2. Directional characters and roundtrip fidelity
+#
+# The Mac OS Hebrew character set was developed around 1987. At that
+# time the bidirectional line line layout algorithm used in the Mac OS
+# Hebrew system was fairly simple; it used only a few direction
+# classes (instead of the 19 now used in the Unicode bidirectional
+# algorithm). In order to permit users to handle some tricky layou
+# problems, certain punctuation, symbol, and digit characters have
+# duplicate code points, one with a left-right direction attribute and
+# the other with a right-left direction attribute.
+#
+# For example, plus sign is encoded at 0x2B with a left-right
+# attribute, and at 0xAB with a right-left attribute. However, there
+# is only one PLUS SIGN character in Unicode. This leads to some
+# interesting problems when mapping between Mac OS Hebrew and Unicode;
+# see below.
+#
+# A related problem is that even when a particular character is
+# encoded only once in Mac OS Hebrew, it may have a different
+# direction attribute than the corresponding Unicode character.
+#
+# For example, the Mac OS Hebrew character at 0xC9 is HORIZONTAL
+# ELLIPSIS with strong right-left direction. However, the Unicode
+# character HORIZONTAL ELLIPSIS has direction class neutral.
+#
+# 3. Font variants
+#
+# The table in this file gives the Unicode mappings for the standard
+# Mac OS Hebrew encoding. This encoding is supported by many of the
+# Apple fonts (including all of the fonts in the Hebrew Language Kit),
+# and is the encoding supported by the text processing utilities.
+# However, some TrueType fonts provided with the localized Hebrew
+# system implement a slightly different encoding; the difference is
+# only in one code point, 0xD4. For the standard variant, this is:
+# 0xD4 -> <RL>+0x2018 LEFT SINGLE QUOTATION MARK, right-left
+#
+# The TrueType variant is used by the following TrueType fonts from
+# the localized system: Caesarea, Carmel Book, Gilboa, Ramat Sharon,
+# and Sinai Book. For these, 0xD4 is as follows:
+# 0xD4 -> <RL>+0x2007 FIGURE SPACE, right-left
+#
+# Unicode mapping issues and notes:
+# ---------------------------------
+#
+# 1. Matching the direction of Mac OS Hebrew characters
+#
+# When Mac OS Hebrew encodes a character twice but with different
+# direction attributes for the two code points - as in the case of
+# plus sign mentioned above - we need a way to map both Mac OS Hebrew
+# code points to Unicode and back again without loss of information.
+# With the plus sign, for example, mapping one of the Mac OS Hebrew
+# characters to a code in the Unicode corporate use zone is
+# undesirable, since both of the plus sign characters are likely to
+# be used in text that is interchanged.
+#
+# The problem is solved with the use of direction override characters
+# and direction-dependent mappings. When mapping from Mac OS Hebrew
+# to Unicode, we use direction overrides as necessary to force the
+# direction of the resulting Unicode characters.
+#
+# The required direction is indicated by a direction tag in the
+# mappings. A tag of <LR> means the corresponding Unicode character
+# must have a strong left-right context, and a tag of <RL> indicates
+# a right-left context.
+#
+# For example, the mapping of 0x2B is given as <LR>+0x002B; the
+# mapping of 0xAB is given as <RL>+0x002B. If we map an isolated
+# instance of 0x2B to Unicode, it should be mapped as follows (LRO
+# indicates LEFT-RIGHT OVERRIDE, PDF indicates POP DIRECTION
+# FORMATTING):
+#
+# 0x2B -> 0x202D (LRO) + 0x002B (PLUS SIGN) + 0x202C (PDF)
+#
+# When mapping several characters in a row that require direction
+# forcing, the overrides need only be used at the beginning and end.
+# For example:
+#
+# 0x24 0x20 0x28 0x29 -> 0x202D 0x0024 0x0020 0x0028 0x0029 0x202C
+#
+# If neutral characters that require direction forcing are already
+# between strong-direction characters with matching directionality,
+# then direction overrides need not be used. Direction overrides are
+# always needed to map the right-left digits at 0xB0-0xB9.
+#
+# When mapping from Unicode to Mac OS Hebrew, the Unicode
+# bidirectional algorithm should be used to determine resolved
+# direction of the Unicode characters. The mapping from Unicode to
+# Mac OS Hebrew can then be disambiguated by the use of the resolved
+# direction:
+#
+# Unicode 0x002B -> Mac OS Hebrew 0x2B (if L) or 0xAB (if R)
+#
+# However, this also means the direction override characters should
+# be discarded when mapping from Unicode to Mac OS Hebrew (after
+# they have been used to determine resolved direction), since the
+# direction override information is carried by the code point itself.
+#
+# Even when direction overrides are not needed for roundtrip
+# fidelity, they are sometimes used when mapping Mac OS Hebrew
+# characters to Unicode in order to achieve similar text layout with
+# the resulting Unicode text. For example, the single Mac OS Hebrew
+# ellipsis character has direction class right-left,and there is no
+# left-right version. However, the Unicode HORIZONTAL ELLIPSIS
+# character has direction class neutral (which means it may end up
+# with a resolved direction of left-right if surrounded by left-right
+# characters). When mapping the Mac OS Hebrew ellipsis to Unicode, it
+# is surrounded with a direction override to help preserve proper
+# text layout. The resolved direction is not needed or used when
+# mapping the Unicode HORIZONTAL ELLIPSIS back to Mac OS Hebrew.
+#
+# 2. Use of corporate-zone Unicodes
+#
+# The goals in the mappings provided here are:
+# - Ensure roundtrip mapping from every character in the Mac OS
+# Hebrew 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.
+#
+# Some of the characters in the Mac OS Hebrew character set do not
+# correspond to distinct, single Unicode characters. To map these
+# and satisfy both goals above, we employ various strategies.
+#
+# a) If possible, use private use characters in combination with
+# standard Unicode characters to mark variants of the standard
+# Unicode character.
+#
+# 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.
+#
+# Two transcoding hints are used in this mapping table: a grouping hint
+# and a variant tag:
+# hint:
+# 0xF86A group next 2 characters, right-left directionality
+# 0xF87F variant tag
+#
+# In Mac OS Hebrew, 0xC0 is a ligature for lamed holam. This can also
+# be represented in Mac OS Hebrew as 0xEC+0xDD, using separate
+# characters for lamed and holam. The latter sequence is mapped to
+# Unicode as 0x05DC+0x05B9, i.e. as the sequence HEBREW LETTER LAMED +
+# HEBREW POINT HOLAM. We want to map the ligature 0xC0 using the same
+# standard Unicode characters, but for round-trip fidelity we need to
+# distinguish it from the mapping of the sequence 0xEC+0xDD. Thus for
+# 0xC0 we use a grouping hint, and map as follows:
+#
+# 0xC0 -> 0xF86A+0x05DC+0x05B9
+#
+# The variant tag is used for 'qamats qatan' to mark it as an alternate
+# for HEBREW POINT QAMATS, as follows:
+#
+# 0xDE -> 0x05B8+0xF87F
+#
+# b) Otherwise, use private use characters by themselves to map Mac OS
+# Hebrew characters which have no relationship to any standard Unicode
+# character.
+#
+# The following additional corporate zone Unicode characters are used
+# for this purpose here (to map the obsolete 'canorals', see above):
+#
+# 0xF89B Hebrew canoral 1
+# 0xF89C Hebrew canoral 2
+# 0xF89D Hebrew canoral 3
+# 0xF89E Hebrew canoral 4
+#
+# Details of mapping changes in each version:
+# -------------------------------------------
+#
+# Changes from version b02 to version b03/c01:
+#
+# - Stop specifying left-right context for digits 0x30-0x39, since the
+# corresponding Unicodes 0x0030-0x0039 already have left-right
+# directionality.
+#
+# - Change mapping of 0x81 from 0xFB1F HEBREW LIGATURE YIDDISH YOD YOD
+# PATAH to its canonical decomposition 0x05F2+0x05B7 to improve
+# cross-platform compatibility (Windows doesn't handle 0xFB1F)
+#
+# - Interchange the mappings of 0xA8 and 0xA9 to obtain the correct
+# open/close behavior; they work differently than in Mac Arabic.
+# The old mapping was
+# 0xA8 <RL>+0x0028 # LEFT PARENTHESIS, right-left
+# 0xA9 <RL>+0x0029 # RIGHT PARENTHESIS, right-left
+# and the new mapping is
+# 0xA8 <RL>+0x0029 # RIGHT PARENTHESIS, right-left
+# 0xA9 <RL>+0x0028 # LEFT PARENTHESIS, right-left
+#
+# Changes from version n01 to version n03:
+#
+# - Change mapping for 0xC0 from single corporate character to
+# grouping hint plus standard Unicodes
+#
+# - Change mapping for 0xDE from single corporate character to
+# standard Unicode plus variant tag
+#
+##################
+
+0x20 <LR>+0x0020 # SPACE, left-right
+0x21 <LR>+0x0021 # EXCLAMATION MARK, left-right
+0x22 <LR>+0x0022 # QUOTATION MARK, left-right
+0x23 <LR>+0x0023 # NUMBER SIGN, left-right
+0x24 <LR>+0x0024 # DOLLAR SIGN, left-right
+0x25 <LR>+0x0025 # PERCENT SIGN, left-right
+0x26 0x0026 # AMPERSAND
+0x27 <LR>+0x0027 # APOSTROPHE, left-right
+0x28 <LR>+0x0028 # LEFT PARENTHESIS, left-right
+0x29 <LR>+0x0029 # RIGHT PARENTHESIS, left-right
+0x2A <LR>+0x002A # ASTERISK, left-right
+0x2B <LR>+0x002B # PLUS SIGN, left-right
+0x2C <LR>+0x002C # COMMA, left-right
+0x2D <LR>+0x002D # HYPHEN-MINUS, left-right
+0x2E <LR>+0x002E # FULL STOP, left-right
+0x2F <LR>+0x002F # SOLIDUS, left-right
+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 <LR>+0x003A # COLON, left-right
+0x3B <LR>+0x003B # SEMICOLON, left-right
+0x3C <LR>+0x003C # LESS-THAN SIGN, left-right
+0x3D <LR>+0x003D # EQUALS SIGN, left-right
+0x3E <LR>+0x003E # GREATER-THAN SIGN, left-right
+0x3F <LR>+0x003F # QUESTION MARK, left-right
+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 <LR>+0x005B # LEFT SQUARE BRACKET, left-right
+0x5C 0x005C # REVERSE SOLIDUS
+0x5D <LR>+0x005D # RIGHT SQUARE BRACKET, left-right
+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 <LR>+0x007B # LEFT CURLY BRACKET, left-right
+0x7C <LR>+0x007C # VERTICAL LINE, left-right
+0x7D <LR>+0x007D # RIGHT CURLY BRACKET, left-right
+0x7E 0x007E # TILDE
+#
+0x80 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
+0x81 0x05F2+0x05B7 # HEBREW LIGATURE YIDDISH YOD YOD PATAH
+0x82 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
+0x83 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
+0x84 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE
+0x85 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
+0x86 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
+0x87 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
+0x88 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
+0x89 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
+0x8A 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
+0x8B 0x00E3 # LATIN SMALL LETTER A WITH TILDE
+0x8C 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
+0x8D 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
+0x8E 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
+0x8F 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
+0x90 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0x91 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
+0x92 0x00ED # LATIN SMALL LETTER I WITH ACUTE
+0x93 0x00EC # LATIN SMALL LETTER I WITH GRAVE
+0x94 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
+0x95 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
+0x96 0x00F1 # LATIN SMALL LETTER N WITH TILDE
+0x97 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
+0x98 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
+0x99 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
+0x9A 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
+0x9B 0x00F5 # LATIN SMALL LETTER O WITH TILDE
+0x9C 0x00FA # LATIN SMALL LETTER U WITH ACUTE
+0x9D 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
+0x9E 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
+0x9F 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
+0xA0 <RL>+0x0020 # SPACE, right-left
+0xA1 <RL>+0x0021 # EXCLAMATION MARK, right-left
+0xA2 <RL>+0x0022 # QUOTATION MARK, right-left
+0xA3 <RL>+0x0023 # NUMBER SIGN, right-left
+0xA4 <RL>+0x0024 # DOLLAR SIGN, right-left
+0xA5 <RL>+0x0025 # PERCENT SIGN, right-left
+0xA6 0x20AA # NEW SHEQEL SIGN
+0xA7 <RL>+0x0027 # APOSTROPHE, right-left
+0xA8 <RL>+0x0029 # RIGHT PARENTHESIS, right-left
+0xA9 <RL>+0x0028 # LEFT PARENTHESIS, right-left
+0xAA <RL>+0x002A # ASTERISK, right-left
+0xAB <RL>+0x002B # PLUS SIGN, right-left
+0xAC <RL>+0x002C # COMMA, right-left
+0xAD <RL>+0x002D # HYPHEN-MINUS, right-left
+0xAE <RL>+0x002E # FULL STOP, right-left
+0xAF <RL>+0x002F # SOLIDUS, right-left
+0xB0 <RL>+0x0030 # DIGIT ZERO, right-left (need override)
+0xB1 <RL>+0x0031 # DIGIT ONE, right-left (need override)
+0xB2 <RL>+0x0032 # DIGIT TWO, right-left (need override)
+0xB3 <RL>+0x0033 # DIGIT THREE, right-left (need override)
+0xB4 <RL>+0x0034 # DIGIT FOUR, right-left (need override)
+0xB5 <RL>+0x0035 # DIGIT FIVE, right-left (need override)
+0xB6 <RL>+0x0036 # DIGIT SIX, right-left (need override)
+0xB7 <RL>+0x0037 # DIGIT SEVEN, right-left (need override)
+0xB8 <RL>+0x0038 # DIGIT EIGHT, right-left (need override)
+0xB9 <RL>+0x0039 # DIGIT NINE, right-left (need override)
+0xBA <RL>+0x003A # COLON, right-left
+0xBB <RL>+0x003B # SEMICOLON, right-left
+0xBC <RL>+0x003C # LESS-THAN SIGN, right-left
+0xBD <RL>+0x003D # EQUALS SIGN, right-left
+0xBE <RL>+0x003E # GREATER-THAN SIGN, right-left
+0xBF <RL>+0x003F # QUESTION MARK, right-left
+0xC0 0xF86A+0x05DC+0x05B9 # Hebrew ligature lamed holam
+0xC1 <RL>+0x201E # DOUBLE LOW-9 QUOTATION MARK, right-left
+0xC2 0xF89B # Hebrew canoral 1
+0xC3 0xF89C # Hebrew canoral 2
+0xC4 0xF89D # Hebrew canoral 3
+0xC5 0xF89E # Hebrew canoral 4
+0xC6 0x05BC # HEBREW POINT DAGESH OR MAPIQ
+0xC7 0xFB4B # HEBREW LETTER VAV WITH HOLAM
+0xC8 0xFB35 # HEBREW LETTER VAV WITH DAGESH
+0xC9 <RL>+0x2026 # HORIZONTAL ELLIPSIS, right-left
+0xCA <RL>+0x00A0 # NO-BREAK SPACE, right-left
+0xCB 0x05B8 # HEBREW POINT QAMATS
+0xCC 0x05B7 # HEBREW POINT PATAH
+0xCD 0x05B5 # HEBREW POINT TSERE
+0xCE 0x05B6 # HEBREW POINT SEGOL
+0xCF 0x05B4 # HEBREW POINT HIRIQ
+0xD0 <RL>+0x2013 # EN DASH, right-left
+0xD1 <RL>+0x2014 # EM DASH, right-left
+0xD2 <RL>+0x201C # LEFT DOUBLE QUOTATION MARK, right-left
+0xD3 <RL>+0x201D # RIGHT DOUBLE QUOTATION MARK, right-left
+0xD4 <RL>+0x2018 # LEFT SINGLE QUOTATION MARK, right-left
+0xD5 <RL>+0x2019 # RIGHT SINGLE QUOTATION MARK, right-left
+0xD6 0xFB2A # HEBREW LETTER SHIN WITH SHIN DOT
+0xD7 0xFB2B # HEBREW LETTER SHIN WITH SIN DOT
+0xD8 0x05BF # HEBREW POINT RAFE
+0xD9 0x05B0 # HEBREW POINT SHEVA
+0xDA 0x05B2 # HEBREW POINT HATAF PATAH
+0xDB 0x05B1 # HEBREW POINT HATAF SEGOL
+0xDC 0x05BB # HEBREW POINT QUBUTS
+0xDD 0x05B9 # HEBREW POINT HOLAM
+0xDE 0x05B8+0xF87F # HEBREW POINT QAMATS, alternate form 'qamats qatan'
+0xDF 0x05B3 # HEBREW POINT HATAF QAMATS
+0xE0 0x05D0 # HEBREW LETTER ALEF
+0xE1 0x05D1 # HEBREW LETTER BET
+0xE2 0x05D2 # HEBREW LETTER GIMEL
+0xE3 0x05D3 # HEBREW LETTER DALET
+0xE4 0x05D4 # HEBREW LETTER HE
+0xE5 0x05D5 # HEBREW LETTER VAV
+0xE6 0x05D6 # HEBREW LETTER ZAYIN
+0xE7 0x05D7 # HEBREW LETTER HET
+0xE8 0x05D8 # HEBREW LETTER TET
+0xE9 0x05D9 # HEBREW LETTER YOD
+0xEA 0x05DA # HEBREW LETTER FINAL KAF
+0xEB 0x05DB # HEBREW LETTER KAF
+0xEC 0x05DC # HEBREW LETTER LAMED
+0xED 0x05DD # HEBREW LETTER FINAL MEM
+0xEE 0x05DE # HEBREW LETTER MEM
+0xEF 0x05DF # HEBREW LETTER FINAL NUN
+0xF0 0x05E0 # HEBREW LETTER NUN
+0xF1 0x05E1 # HEBREW LETTER SAMEKH
+0xF2 0x05E2 # HEBREW LETTER AYIN
+0xF3 0x05E3 # HEBREW LETTER FINAL PE
+0xF4 0x05E4 # HEBREW LETTER PE
+0xF5 0x05E5 # HEBREW LETTER FINAL TSADI
+0xF6 0x05E6 # HEBREW LETTER TSADI
+0xF7 0x05E7 # HEBREW LETTER QOF
+0xF8 0x05E8 # HEBREW LETTER RESH
+0xF9 0x05E9 # HEBREW LETTER SHIN
+0xFA 0x05EA # HEBREW LETTER TAV
+0xFB <RL>+0x007D # RIGHT CURLY BRACKET, right-left
+0xFC <RL>+0x005D # RIGHT SQUARE BRACKET, right-left
+0xFD <RL>+0x007B # LEFT CURLY BRACKET, right-left
+0xFE <RL>+0x005B # LEFT SQUARE BRACKET, right-left
+0xFF <RL>+0x007C # VERTICAL LINE, right-left
+
+"
+! !
+
+!MAC_Hebrew class methodsFor:'queries'!
+
+namesOfEncoding
+ ^ #( #'mac-hebrew' #'machebrew' )
+! !
+
+!MAC_Hebrew class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /cvs/stx/stx/libbasic/Attic/Encoder_MAC_Hebrew.st,v 1.1 2004-03-05 17:30:21 cg Exp $'
+! !
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Encoder_MAC_Roman.st Fri Mar 05 18:30:49 2004 +0100
@@ -0,0 +1,401 @@
+"{ Encoding: utf8 }"
+
+"{ Package: 'stx:libbasic' }"
+
+"{ NameSpace: CharacterEncoderImplementations }"
+
+SingleByteEncoder subclass:#MAC_Roman
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Collections-Text-Encodings'
+!
+
+
+!MAC_Roman class methodsFor:'mapping'!
+
+mapFileURL1_relativePathName
+ ^ 'VENDORS/APPLE/ROMAN.TXT'
+!
+
+mapping
+"
+# From: http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/ROMAN.TXT
+
+#=======================================================================
+# File name: ROMAN.TXT
+#
+# Contents: Map (external version) from Mac OS Roman
+# character set to Unicode 2.1 through Unicode 3.2
+#
+# Copyright: (c) 1994-2002 by Apple Computer, Inc., all rights
+# reserved.
+#
+# Contact: charsets@apple.com
+#
+# Changes:
+#
+# b4,c1 2002-Dec-19 Update URLs, notes. Matches internal
+# utom<b5>.
+# b03 1999-Sep-22 Update contact e-mail address. Matches
+# internal utom<b4>, ufrm<b3>, and Text
+# Encoding Converter version 1.5.
+# b02 1998-Aug-18 Encoding changed for Mac OS 8.5; change
+# mapping of 0xDB from CURRENCY SIGN to
+# EURO SIGN. Matches internal utom<b3>,
+# ufrm<b3>.
+# n08 1998-Feb-05 Minor update to header comments
+# n06 1997-Dec-14 Add warning about future changes to 0xDB
+# from CURRENCY SIGN to EURO SIGN. Clarify
+# some header information
+# n04 1997-Dec-01 Update to match internal utom<n3>, ufrm<n22>:
+# Change standard mapping for 0xBD from U+2126
+# to its canonical decomposition, U+03A9.
+# n03 1995-Apr-15 First version (after fixing some typos).
+# Matches internal ufrm<n9>.
+#
+# 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:
+#
+# <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
+#
+# 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 Roman code (in hex as 0xNN)
+# Column #2 is the corresponding Unicode (in hex as 0xNNNN)
+# Column #3 is a comment containing the Unicode name
+#
+# The entries are in Mac OS Roman code order.
+#
+# One of these mappings requires the use of a corporate character.
+# 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 Roman character set uses the standard control characters at
+# 0x00-0x1F and 0x7F.
+#
+# Notes on Mac OS Roman:
+# ----------------------
+#
+# This character set is used for at least the following Mac OS
+# localizations: U.S., British, Canadian French, French, Swiss
+# French, German, Swiss German, Italian, Swiss Italian, Dutch,
+# Swedish, Norwegian, Danish, Finnish, Spanish, Catalan,
+# Portuguese, Brazilian, and the default International system.
+#
+# Variants of Mac OS Roman are used for Croatian, Icelandic,
+# Turkish, Romanian, and other encodings. Separate mapping tables
+# are available for these encodings.
+#
+# Before Mac OS 8.5, code point 0xDB was CURRENCY SIGN, and was
+# mapped to U+00A4. In Mac OS 8.5 and later versions, code point
+# 0xDB is changed to EURO SIGN and maps to U+20AC; the standard
+# Apple fonts are updated for Mac OS 8.5 to reflect this. There is
+# a 'currency sign' variant of the Mac OS Roman encoding that still
+# maps 0xDB to U+00A4; this can be used for older fonts.
+#
+# Before Mac OS 8.5, the ROM bitmap versions of the fonts Chicago,
+# New York, Geneva, and Monaco did not implement the full Mac OS
+# Roman character set; they only supported character codes up to
+# 0xD8. The TrueType versions of these fonts have always implemented
+# the full character set, as with the bitmap and TrueType versions
+# of the other standard Roman fonts.
+#
+# In all Mac OS encodings, fonts such as Chicago which are used
+# as 'system' fonts (for menus, dialogs, etc.) have four glyphs
+# at code points 0x11-0x14 for transient use by the Menu Manager.
+# These glyphs are not intended as characters for use in normal
+# text, and the associated code points are not generally
+# interpreted as associated with these glyphs; they are usually
+# interpreted (if at all) as the control codes DC1-DC4.
+#
+# Unicode mapping issues and notes:
+# ---------------------------------
+#
+# The following corporate zone Unicode character is used in this
+# mapping:
+#
+# 0xF8FF Apple logo
+#
+# NOTE: The graphic image associated with the Apple logo character
+# is not authorized for use without permission of Apple, and
+# unauthorized use might constitute trademark infringement.
+#
+# Details of mapping changes in each version:
+# -------------------------------------------
+#
+# Changes from version n08 to version b02:
+#
+# - Encoding changed for Mac OS 8.5; change mapping of 0xDB from
+# CURRENCY SIGN (U+00A4) to EURO SIGN (U+20AC).
+#
+# Changes from version n03 to version n04:
+#
+# - Change mapping of 0xBD from U+2126 to its canonical
+# decomposition, U+03A9.
+#
+##################
+
+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 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
+0x81 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
+0x82 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
+0x83 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
+0x84 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE
+0x85 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
+0x86 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
+0x87 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
+0x88 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
+0x89 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
+0x8A 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
+0x8B 0x00E3 # LATIN SMALL LETTER A WITH TILDE
+0x8C 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
+0x8D 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
+0x8E 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
+0x8F 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
+0x90 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0x91 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
+0x92 0x00ED # LATIN SMALL LETTER I WITH ACUTE
+0x93 0x00EC # LATIN SMALL LETTER I WITH GRAVE
+0x94 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
+0x95 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
+0x96 0x00F1 # LATIN SMALL LETTER N WITH TILDE
+0x97 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
+0x98 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
+0x99 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
+0x9A 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
+0x9B 0x00F5 # LATIN SMALL LETTER O WITH TILDE
+0x9C 0x00FA # LATIN SMALL LETTER U WITH ACUTE
+0x9D 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
+0x9E 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
+0x9F 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
+0xA0 0x2020 # DAGGER
+0xA1 0x00B0 # DEGREE SIGN
+0xA2 0x00A2 # CENT SIGN
+0xA3 0x00A3 # POUND SIGN
+0xA4 0x00A7 # SECTION SIGN
+0xA5 0x2022 # BULLET
+0xA6 0x00B6 # PILCROW SIGN
+0xA7 0x00DF # LATIN SMALL LETTER SHARP S
+0xA8 0x00AE # REGISTERED SIGN
+0xA9 0x00A9 # COPYRIGHT SIGN
+0xAA 0x2122 # TRADE MARK SIGN
+0xAB 0x00B4 # ACUTE ACCENT
+0xAC 0x00A8 # DIAERESIS
+0xAD 0x2260 # NOT EQUAL TO
+0xAE 0x00C6 # LATIN CAPITAL LETTER AE
+0xAF 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE
+0xB0 0x221E # INFINITY
+0xB1 0x00B1 # PLUS-MINUS SIGN
+0xB2 0x2264 # LESS-THAN OR EQUAL TO
+0xB3 0x2265 # GREATER-THAN OR EQUAL TO
+0xB4 0x00A5 # YEN SIGN
+0xB5 0x00B5 # MICRO SIGN
+0xB6 0x2202 # PARTIAL DIFFERENTIAL
+0xB7 0x2211 # N-ARY SUMMATION
+0xB8 0x220F # N-ARY PRODUCT
+0xB9 0x03C0 # GREEK SMALL LETTER PI
+0xBA 0x222B # INTEGRAL
+0xBB 0x00AA # FEMININE ORDINAL INDICATOR
+0xBC 0x00BA # MASCULINE ORDINAL INDICATOR
+0xBD 0x03A9 # GREEK CAPITAL LETTER OMEGA
+0xBE 0x00E6 # LATIN SMALL LETTER AE
+0xBF 0x00F8 # LATIN SMALL LETTER O WITH STROKE
+0xC0 0x00BF # INVERTED QUESTION MARK
+0xC1 0x00A1 # INVERTED EXCLAMATION MARK
+0xC2 0x00AC # NOT SIGN
+0xC3 0x221A # SQUARE ROOT
+0xC4 0x0192 # LATIN SMALL LETTER F WITH HOOK
+0xC5 0x2248 # ALMOST EQUAL TO
+0xC6 0x2206 # INCREMENT
+0xC7 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+0xC8 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+0xC9 0x2026 # HORIZONTAL ELLIPSIS
+0xCA 0x00A0 # NO-BREAK SPACE
+0xCB 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE
+0xCC 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE
+0xCD 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE
+0xCE 0x0152 # LATIN CAPITAL LIGATURE OE
+0xCF 0x0153 # LATIN SMALL LIGATURE OE
+0xD0 0x2013 # EN DASH
+0xD1 0x2014 # EM DASH
+0xD2 0x201C # LEFT DOUBLE QUOTATION MARK
+0xD3 0x201D # RIGHT DOUBLE QUOTATION MARK
+0xD4 0x2018 # LEFT SINGLE QUOTATION MARK
+0xD5 0x2019 # RIGHT SINGLE QUOTATION MARK
+0xD6 0x00F7 # DIVISION SIGN
+0xD7 0x25CA # LOZENGE
+0xD8 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
+0xD9 0x0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS
+0xDA 0x2044 # FRACTION SLASH
+0xDB 0x20AC # EURO SIGN
+0xDC 0x2039 # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+0xDD 0x203A # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+0xDE 0xFB01 # LATIN SMALL LIGATURE FI
+0xDF 0xFB02 # LATIN SMALL LIGATURE FL
+0xE0 0x2021 # DOUBLE DAGGER
+0xE1 0x00B7 # MIDDLE DOT
+0xE2 0x201A # SINGLE LOW-9 QUOTATION MARK
+0xE3 0x201E # DOUBLE LOW-9 QUOTATION MARK
+0xE4 0x2030 # PER MILLE SIGN
+0xE5 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+0xE6 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0xE7 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
+0xE8 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
+0xE9 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE
+0xEA 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
+0xEB 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+0xEC 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
+0xED 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE
+0xEE 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
+0xEF 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+0xF0 0xF8FF # Apple logo
+0xF1 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE
+0xF2 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
+0xF3 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+0xF4 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE
+0xF5 0x0131 # LATIN SMALL LETTER DOTLESS I
+0xF6 0x02C6 # MODIFIER LETTER CIRCUMFLEX ACCENT
+0xF7 0x02DC # SMALL TILDE
+0xF8 0x00AF # MACRON
+0xF9 0x02D8 # BREVE
+0xFA 0x02D9 # DOT ABOVE
+0xFB 0x02DA # RING ABOVE
+0xFC 0x00B8 # CEDILLA
+0xFD 0x02DD # DOUBLE ACUTE ACCENT
+0xFE 0x02DB # OGONEK
+0xFF 0x02C7 # CARON
+
+"
+! !
+
+!MAC_Roman class methodsFor:'queries'!
+
+namesOfEncoding
+ ^ #( #'mac-roman' #'macroman')
+! !
+
+!MAC_Roman class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /cvs/stx/stx/libbasic/Attic/Encoder_MAC_Roman.st,v 1.1 2004-03-05 17:30:49 cg Exp $'
+! !