CharacterEncoderImplementations__MAC_Arabic.st
author Claus Gittinger <cg@exept.de>
Tue, 09 Jul 2019 20:55:17 +0200
changeset 24417 03b083548da2
parent 8148 dbf64e3142d9
child 17711 39faaaf888b4
permissions -rw-r--r--
#REFACTORING by exept class: Smalltalk class changed: #recursiveInstallAutoloadedClassesFrom:rememberIn:maxLevels:noAutoload:packageTop:showSplashInLevels: Transcript showCR:(... bindWith:...) -> Transcript showCR:... with:...

"
 COPYRIGHT (c) 2004 by eXept Software AG
              All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"

"{ Package: 'stx:libbasic' }"

"{ NameSpace: CharacterEncoderImplementations }"

SingleByteEncoder subclass:#MAC_Arabic
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'Collections-Text-Encodings'
!

!MAC_Arabic class methodsFor:'documentation'!

copyright
"
 COPYRIGHT (c) 2004 by eXept Software AG
              All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"
! !

!MAC_Arabic class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'VENDORS/APPLE/ARABIC.TXT'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/ARABIC.TXT

#=======================================================================
#   File name:  ARABIC.TXT
#
#   Contents:   Map (external version) from Mac OS Arabic
#               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:
#
#      b3,c1 2002-Dec-19    Add comments about character display and
#                           direction overrides. Update URLs, notes.
#                           Matches internal utom<b4>.
#       b02  1999-Sep-22    Update contact e-mail address. Matches
#                           internal utom<b1>, ufrm<b1>, and Text
#                           Encoding Converter version 1.5.
#       n10  1998-Feb-05    Show required Unicode character
#                           directionality in a different way. Matches
#                           internal utom<n4>, ufrm<n21>, and Text
#                           Encoding Converter version 1.3. Update
#                           header comments; include information on
#                           loose mapping of digits.
#       n07  1997-Jul-17    Update to match internal utom<n2>, ufrm<n17>:
#                           Change standard mapping for 0xC0 from U+066D
#                           to U+274A. Add direction overrides to
#                           mappings for 0x25, 0x2C, 0x3B, 0x3F. Add
#                           information on variants.
#       n03  1995-Apr-18    First version (after fixing some typos).
#                           Matches internal ufrm<n11>.
#
# 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 Arabic code (in hex as 0xNN).
#     Column #2 is the corresponding Unicode (in hex as 0xNNNN),
#       possibly 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 Arabic code order.
#
#   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 Arabic:
# -----------------------
#
#   1. General
#
#   The Mac OS Arabic character set is intended to cover Arabic as
#   used in North Africa, the Arabian peninsula, and the Levant. It
#   also contains several characters needed for Urdu and/or Farsi.
#
#   The Mac OS Arabic character set is essentially a superset of ISO
#   8859-6. The 8859-6 code points that are interpreted differently
#   in the Mac OS Arabic set are as follows:
#    0xA0 is NO-BREAK SPACE in 8859-6 and right-left SPACE in Mac OS
#         Arabic; NO-BREAK is 0x81 in Mac OS Arabic.
#    0xA4 is CURRENCY SIGN in 8859-6 and right-left DOLLAR SIGN in
#         Mac OS Arabic.
#    0xAD is SOFT HYPHEN in 8859-6 and right-left HYPHEN-MINUS in
#         Mac OS Arabic.
#   ISO 8859-6 specifies that codes 0x30-0x39 can be rendered either
#   with European digit shapes or Arabic digit shapes. This is also
#   true in Mac OS Arabic, which determines from context which digit
#   shapes to use (see below).
#
#   The Mac OS Arabic character set uses the C1 controls area and other
#   code points which are undefined in ISO 8859-6 for additional
#   graphic characters: additional Arabic letters for Farsi and Urdu,
#   some accented Roman letters for European languages (such as French),
#   and duplicates of some of the punctuation, symbols, and digits in
#   the ASCII block. The duplicate punctuation, symbol, and digit
#   characters have right-left directionality, while the ASCII versions
#   have left-right directionality. See the next section for more
#   information on this.
#
#   Mac OS Arabic characters 0xEB-0xF2 are non-spacing/combining marks.
#
#   2. Directional characters and roundtrip fidelity
#
#   The Mac OS Arabic character set was developed in 1986-1987. At that
#   time the bidirectional line layout algorithm used in the Mac OS
#   Arabic 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 layout
#   problems, certain punctuation and symbol characters were encoded
#   twice, 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 Arabic and Unicode;
#   see below.
#
#   A related problem is that even when a particular character is
#   encoded only once in Mac OS Arabic, it may have a different
#   direction attribute than the corresponding Unicode character.
#
#   For example, the Mac OS Arabic character at 0x93 is HORIZONTAL
#   ELLIPSIS with strong right-left direction. However, the Unicode
#   character HORIZONTAL ELLIPSIS has direction class neutral.
#
#   3. Behavior of ASCII-range numbers in WorldScript
#
#   Mac OS Arabic also has two sets of digit codes.
#
#   The digits at 0x30-0x39 may be displayed using either European
#   digit forms or Arabic digit forms, depending on context. If there
#   is a 'strong European' character such as a Latin letter on either
#   side of a sequence consisting of digits 0x30-0x39 and possibly comma
#   0x2C or period 0x2E, then the characters will be displayed using
#   European forms (This will happen even if there are neutral characters
#   between the digits and the strong European character). Otherwise, the
#   digits will be displayed using Arabic forms, the comma will be
#   displayed as Arabic thousands separator, and the period as Arabic
#   decimal separator. In any case, 0x2C, 0x2E, and 0x30-0x39 are always
#   left-right.
#
#   The digits at 0xB0-0xB9 are always displayed using Arabic digit
#   shapes, and moreover, these digits always have strong right-left
#   directionality. These are mainly intended for special layout
#   purposes such as part numbers, etc.
#
#   4. Font variants
#
#   The table in this file gives the Unicode mappings for the standard
#   Mac OS Arabic encoding. This encoding is supported by the Cairo font
#   (the system font for Arabic), and is the encoding supported by the
#   text processing utilities. However, the other Arabic fonts actually
#   implement slightly different encodings; this mainly affects the code
#   points 0xAA and 0xC0. For these code points the standard Mac OS
#   Arabic encoding has the following mappings:
#     0xAA -> <RL>+0x002A ASTERISK, right-left
#     0xC0 -> <RL>+0x274A EIGHT TEARDROP-SPOKED PROPELLER ASTERISK,
#                         right-left
#   This mapping of 0xAA is consistent with the normal convention for
#   Mac OS Arabic and Hebrew that the right-left duplicates have codes
#   that are equal to the ASCII code of the left-right character plus
#   0x80. However, in all of the other fonts, 0xAA is MULTIPLY SIGN, and
#   right-left ASTERISK may be at a different code point. The other
#   variants are described below.
#
#   The TrueType variant is used for most of the Arabic TrueType fonts:
#   Baghdad, Geeza, Kufi, Nadeem.  It differs from the standard variant
#   in the following way:
#     0xAA -> <RL>+0x00D7 MULTIPLICATION SIGN, right-left
#     0xC0 -> <RL>+0x002A ASTERISK, right-left
#
#   The Thuluth variant is used for the Arabic Postscript-only fonts:
#   Thuluth and Thuluth bold. It differs from the standard variant in
#   the following way:
#     0xAA -> <RL>+0x00D7 MULTIPLICATION SIGN, right-left
#     0xC0 -> 0x066D ARABIC FIVE POINTED STAR
#
#   The AlBayan variant is used for the Arabic TrueType font Al Bayan.
#   It differs from the standard variant in the following way:
#     0x81 -> no mapping (glyph just has authorship information, etc.)
#     0xA3 -> 0xFDFA ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM
#     0xA4 -> 0xFDF2 ARABIC LIGATURE ALLAH ISOLATED FORM
#     0xAA -> <RL>+0x00D7 MULTIPLICATION SIGN, right-left
#     0xDC -> <RL>+0x25CF BLACK CIRCLE, right-left
#     0xFC -> <RL>+0x25A0 BLACK SQUARE, right-left
#
# Unicode mapping issues and notes:
# ---------------------------------
#
#   1. Matching the direction of Mac OS Arabic characters
#
#   When Mac OS Arabic 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 Arabic
#   code points to Unicode and back again without loss of information.
#   With the plus sign, for example, mapping one of the Mac OS Arabic
#   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 Arabic
#   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 Arabic, the Unicode
#   bidirectional algorithm should be used to determine resolved
#   direction of the Unicode characters. The mapping from Unicode to
#   Mac OS Arabic can then be disambiguated by the use of the resolved
#   direction:
#
#     Unicode 0x002B -> Mac OS Arabic 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 Arabic (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 Arabic
#   characters to Unicode in order to achieve similar text layout with
#   the resulting Unicode text. For example, the single Mac OS Arabic
#   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 Arabic 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 Arabic.
#
#   2. Mapping the Mac OS Arabic digits
#
#   The main table below contains mappings that should be used when
#   strict round-trip fidelity is required. However, for numeric
#   values, the mappings in that table will produce Unicode characters
#   that may appear different than the Mac OS Arabic text displayed on
#   a Mac OS system using WorldScript. This is because WorldScript
#   uses context-dependent display for the 0x30-0x39 digits.
#
#   If roundtrip fidelity is not required, then the following
#   alternate mappings should be used when a sequence of 0x30-0x39
#   digits - possibly including 0x2C and 0x2E - occurs in an Arabic
#   context (that is, when the first 'strong' character on either side
#   of the digit sequence is Arabic, or there is no strong character):
#
#     0x2C      0x066C  # ARABIC THOUSANDS SEPARATOR
#     0x2E      0x066B  # ARABIC DECIMAL SEPARATOR
#     0x30      0x0660  # ARABIC-INDIC DIGIT ZERO
#     0x31      0x0661  # ARABIC-INDIC DIGIT ONE
#     0x32      0x0662  # ARABIC-INDIC DIGIT TWO
#     0x33      0x0663  # ARABIC-INDIC DIGIT THREE
#     0x34      0x0664  # ARABIC-INDIC DIGIT FOUR
#     0x35      0x0665  # ARABIC-INDIC DIGIT FIVE
#     0x36      0x0666  # ARABIC-INDIC DIGIT SIX
#     0x37      0x0667  # ARABIC-INDIC DIGIT SEVEN
#     0x38      0x0668  # ARABIC-INDIC DIGIT EIGHT
#     0x39      0x0669  # ARABIC-INDIC DIGIT NINE
#
# Details of mapping changes in each version:
# -------------------------------------------
#
#   Changes from version n03 to version n07:
#
#   - Change mapping for 0xC0 from U+066D to U+274A.
#
#   - Add direction overrides (required directionality) to mappings
#     for 0x25, 0x2C, 0x3B, 0x3F.
#
##################

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    <LR>+0x0026     # AMPERSAND, left-right
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; in Arabic-script context, displayed as 0x066C ARABIC THOUSANDS SEPARATOR
0x2D    <LR>+0x002D     # HYPHEN-MINUS, left-right
0x2E    <LR>+0x002E     # FULL STOP, left-right; in Arabic-script context, displayed as 0x066B ARABIC DECIMAL SEPARATOR
0x2F    <LR>+0x002F     # SOLIDUS, left-right
0x30    0x0030  # DIGIT ZERO;  in Arabic-script context, displayed as 0x0660 ARABIC-INDIC DIGIT ZERO
0x31    0x0031  # DIGIT ONE;   in Arabic-script context, displayed as 0x0661 ARABIC-INDIC DIGIT ONE
0x32    0x0032  # DIGIT TWO;   in Arabic-script context, displayed as 0x0662 ARABIC-INDIC DIGIT TWO
0x33    0x0033  # DIGIT THREE; in Arabic-script context, displayed as 0x0663 ARABIC-INDIC DIGIT THREE
0x34    0x0034  # DIGIT FOUR;  in Arabic-script context, displayed as 0x0664 ARABIC-INDIC DIGIT FOUR
0x35    0x0035  # DIGIT FIVE;  in Arabic-script context, displayed as 0x0665 ARABIC-INDIC DIGIT FIVE
0x36    0x0036  # DIGIT SIX;   in Arabic-script context, displayed as 0x0666 ARABIC-INDIC DIGIT SIX
0x37    0x0037  # DIGIT SEVEN; in Arabic-script context, displayed as 0x0667 ARABIC-INDIC DIGIT SEVEN
0x38    0x0038  # DIGIT EIGHT; in Arabic-script context, displayed as 0x0668 ARABIC-INDIC DIGIT EIGHT
0x39    0x0039  # DIGIT NINE;  in Arabic-script context, displayed as 0x0669 ARABIC-INDIC 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    <LR>+0x005C     # REVERSE SOLIDUS, left-right
0x5D    <LR>+0x005D     # RIGHT SQUARE BRACKET, left-right
0x5E    <LR>+0x005E     # CIRCUMFLEX ACCENT, left-right
0x5F    <LR>+0x005F     # LOW LINE, left-right
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    <RL>+0x00A0     # NO-BREAK SPACE, right-left
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    0x06BA  # ARABIC LETTER NOON GHUNNA
0x8C    <RL>+0x00AB     # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
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    <RL>+0x2026     # HORIZONTAL ELLIPSIS, right-left
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    <RL>+0x00BB     # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
0x99    0x00F4  # LATIN SMALL LETTER O WITH CIRCUMFLEX
0x9A    0x00F6  # LATIN SMALL LETTER O WITH DIAERESIS
0x9B    <RL>+0x00F7     # DIVISION SIGN, right-left
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    0x066A  # ARABIC PERCENT SIGN
0xA6    <RL>+0x0026     # AMPERSAND, right-left
0xA7    <RL>+0x0027     # APOSTROPHE, right-left
0xA8    <RL>+0x0028     # LEFT PARENTHESIS, right-left
0xA9    <RL>+0x0029     # RIGHT PARENTHESIS, right-left
0xAA    <RL>+0x002A     # ASTERISK, right-left
0xAB    <RL>+0x002B     # PLUS SIGN, right-left
0xAC    0x060C  # ARABIC COMMA
0xAD    <RL>+0x002D     # HYPHEN-MINUS, right-left
0xAE    <RL>+0x002E     # FULL STOP, right-left
0xAF    <RL>+0x002F     # SOLIDUS, right-left
0xB0    <RL>+0x0660     # ARABIC-INDIC DIGIT ZERO, right-left (need override)
0xB1    <RL>+0x0661     # ARABIC-INDIC DIGIT ONE, right-left (need override)
0xB2    <RL>+0x0662     # ARABIC-INDIC DIGIT TWO, right-left (need override)
0xB3    <RL>+0x0663     # ARABIC-INDIC DIGIT THREE, right-left (need override)
0xB4    <RL>+0x0664     # ARABIC-INDIC DIGIT FOUR, right-left (need override)
0xB5    <RL>+0x0665     # ARABIC-INDIC DIGIT FIVE, right-left (need override)
0xB6    <RL>+0x0666     # ARABIC-INDIC DIGIT SIX, right-left (need override)
0xB7    <RL>+0x0667     # ARABIC-INDIC DIGIT SEVEN, right-left (need override)
0xB8    <RL>+0x0668     # ARABIC-INDIC DIGIT EIGHT, right-left (need override)
0xB9    <RL>+0x0669     # ARABIC-INDIC DIGIT NINE, right-left (need override)
0xBA    <RL>+0x003A     # COLON, right-left
0xBB    0x061B  # ARABIC SEMICOLON
0xBC    <RL>+0x003C     # LESS-THAN SIGN, right-left
0xBD    <RL>+0x003D     # EQUALS SIGN, right-left
0xBE    <RL>+0x003E     # GREATER-THAN SIGN, right-left
0xBF    0x061F  # ARABIC QUESTION MARK
0xC0    <RL>+0x274A     # EIGHT TEARDROP-SPOKED PROPELLER ASTERISK, right-left
0xC1    0x0621  # ARABIC LETTER HAMZA
0xC2    0x0622  # ARABIC LETTER ALEF WITH MADDA ABOVE
0xC3    0x0623  # ARABIC LETTER ALEF WITH HAMZA ABOVE
0xC4    0x0624  # ARABIC LETTER WAW WITH HAMZA ABOVE
0xC5    0x0625  # ARABIC LETTER ALEF WITH HAMZA BELOW
0xC6    0x0626  # ARABIC LETTER YEH WITH HAMZA ABOVE
0xC7    0x0627  # ARABIC LETTER ALEF
0xC8    0x0628  # ARABIC LETTER BEH
0xC9    0x0629  # ARABIC LETTER TEH MARBUTA
0xCA    0x062A  # ARABIC LETTER TEH
0xCB    0x062B  # ARABIC LETTER THEH
0xCC    0x062C  # ARABIC LETTER JEEM
0xCD    0x062D  # ARABIC LETTER HAH
0xCE    0x062E  # ARABIC LETTER KHAH
0xCF    0x062F  # ARABIC LETTER DAL
0xD0    0x0630  # ARABIC LETTER THAL
0xD1    0x0631  # ARABIC LETTER REH
0xD2    0x0632  # ARABIC LETTER ZAIN
0xD3    0x0633  # ARABIC LETTER SEEN
0xD4    0x0634  # ARABIC LETTER SHEEN
0xD5    0x0635  # ARABIC LETTER SAD
0xD6    0x0636  # ARABIC LETTER DAD
0xD7    0x0637  # ARABIC LETTER TAH
0xD8    0x0638  # ARABIC LETTER ZAH
0xD9    0x0639  # ARABIC LETTER AIN
0xDA    0x063A  # ARABIC LETTER GHAIN
0xDB    <RL>+0x005B     # LEFT SQUARE BRACKET, right-left
0xDC    <RL>+0x005C     # REVERSE SOLIDUS, right-left
0xDD    <RL>+0x005D     # RIGHT SQUARE BRACKET, right-left
0xDE    <RL>+0x005E     # CIRCUMFLEX ACCENT, right-left
0xDF    <RL>+0x005F     # LOW LINE, right-left
0xE0    0x0640  # ARABIC TATWEEL
0xE1    0x0641  # ARABIC LETTER FEH
0xE2    0x0642  # ARABIC LETTER QAF
0xE3    0x0643  # ARABIC LETTER KAF
0xE4    0x0644  # ARABIC LETTER LAM
0xE5    0x0645  # ARABIC LETTER MEEM
0xE6    0x0646  # ARABIC LETTER NOON
0xE7    0x0647  # ARABIC LETTER HEH
0xE8    0x0648  # ARABIC LETTER WAW
0xE9    0x0649  # ARABIC LETTER ALEF MAKSURA
0xEA    0x064A  # ARABIC LETTER YEH
0xEB    0x064B  # ARABIC FATHATAN
0xEC    0x064C  # ARABIC DAMMATAN
0xED    0x064D  # ARABIC KASRATAN
0xEE    0x064E  # ARABIC FATHA
0xEF    0x064F  # ARABIC DAMMA
0xF0    0x0650  # ARABIC KASRA
0xF1    0x0651  # ARABIC SHADDA
0xF2    0x0652  # ARABIC SUKUN
0xF3    0x067E  # ARABIC LETTER PEH
0xF4    0x0679  # ARABIC LETTER TTEH
0xF5    0x0686  # ARABIC LETTER TCHEH
0xF6    0x06D5  # ARABIC LETTER AE
0xF7    0x06A4  # ARABIC LETTER VEH
0xF8    0x06AF  # ARABIC LETTER GAF
0xF9    0x0688  # ARABIC LETTER DDAL
0xFA    0x0691  # ARABIC LETTER RREH
0xFB    <RL>+0x007B     # LEFT CURLY BRACKET, right-left
0xFC    <RL>+0x007C     # VERTICAL LINE, right-left
0xFD    <RL>+0x007D     # RIGHT CURLY BRACKET, right-left
0xFE    0x0698  # ARABIC LETTER JEH
0xFF    0x06D2  # ARABIC LETTER YEH BARREE

"
! !

!MAC_Arabic class methodsFor:'documentation'!

version
    ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__MAC_Arabic.st,v 1.3 2004-03-09 21:59:43 cg Exp $'
! !