Encoder_MAC_Arabic.st
changeset 8081 b468050174a9
child 8114 05274a80fcc4
equal deleted inserted replaced
8080:db22e5dcf518 8081:b468050174a9
       
     1 "{ Encoding: utf8 }"
       
     2 
       
     3 "{ Package: 'stx:libbasic' }"
       
     4 
       
     5 "{ NameSpace: CharacterEncoderImplementations }"
       
     6 
       
     7 SingleByteEncoder subclass:#MAC_Arabic
       
     8 	instanceVariableNames:''
       
     9 	classVariableNames:''
       
    10 	poolDictionaries:''
       
    11 	category:'Collections-Text-Encodings'
       
    12 !
       
    13 
       
    14 
       
    15 !MAC_Arabic class methodsFor:'mapping'!
       
    16 
       
    17 mapFileURL1_relativePathName
       
    18     ^ 'VENDORS/APPLE/ARABIC.TXT'
       
    19 !
       
    20 
       
    21 mapping
       
    22 "
       
    23 # From: http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/ARABIC.TXT
       
    24 
       
    25 #=======================================================================
       
    26 #   File name:  ARABIC.TXT
       
    27 #
       
    28 #   Contents:   Map (external version) from Mac OS Arabic
       
    29 #               character set to Unicode 2.1 through Unicode 3.2.
       
    30 #
       
    31 #   Copyright:  (c) 1994-2002 by Apple Computer, Inc., all rights
       
    32 #               reserved.
       
    33 #
       
    34 #   Contact:    charsets@apple.com
       
    35 #
       
    36 #   Changes:
       
    37 #
       
    38 #      b3,c1 2002-Dec-19    Add comments about character display and
       
    39 #                           direction overrides. Update URLs, notes.
       
    40 #                           Matches internal utom<b4>.
       
    41 #       b02  1999-Sep-22    Update contact e-mail address. Matches
       
    42 #                           internal utom<b1>, ufrm<b1>, and Text
       
    43 #                           Encoding Converter version 1.5.
       
    44 #       n10  1998-Feb-05    Show required Unicode character
       
    45 #                           directionality in a different way. Matches
       
    46 #                           internal utom<n4>, ufrm<n21>, and Text
       
    47 #                           Encoding Converter version 1.3. Update
       
    48 #                           header comments; include information on
       
    49 #                           loose mapping of digits.
       
    50 #       n07  1997-Jul-17    Update to match internal utom<n2>, ufrm<n17>:
       
    51 #                           Change standard mapping for 0xC0 from U+066D
       
    52 #                           to U+274A. Add direction overrides to
       
    53 #                           mappings for 0x25, 0x2C, 0x3B, 0x3F. Add
       
    54 #                           information on variants.
       
    55 #       n03  1995-Apr-18    First version (after fixing some typos).
       
    56 #                           Matches internal ufrm<n11>.
       
    57 #
       
    58 # Standard header:
       
    59 # ----------------
       
    60 #
       
    61 #   Apple, the Apple logo, and Macintosh are trademarks of Apple
       
    62 #   Computer, Inc., registered in the United States and other countries.
       
    63 #   Unicode is a trademark of Unicode Inc. For the sake of brevity,
       
    64 #   throughout this document, 'Macintosh' can be used to refer to
       
    65 #   Macintosh computers and 'Unicode' can be used to refer to the
       
    66 #   Unicode standard.
       
    67 #
       
    68 #   Apple makes no warranty or representation, either express or
       
    69 #   implied, with respect to these tables, their quality, accuracy, or
       
    70 #   fitness for a particular purpose. In no event will Apple be liable
       
    71 #   for direct, indirect, special, incidental, or consequential damages 
       
    72 #   resulting from any defect or inaccuracy in this document or the
       
    73 #   accompanying tables.
       
    74 #
       
    75 #   These mapping tables and character lists are subject to change.
       
    76 #   The latest tables should be available from the following:
       
    77 #
       
    78 #   <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
       
    79 #
       
    80 #   For general information about Mac OS encodings and these mapping
       
    81 #   tables, see the file 'README.TXT'.
       
    82 #
       
    83 # Format:
       
    84 # -------
       
    85 #
       
    86 #   Three tab-separated columns;
       
    87 #   '#' begins a comment which continues to the end of the line.
       
    88 #     Column #1 is the Mac OS Arabic code (in hex as 0xNN).
       
    89 #     Column #2 is the corresponding Unicode (in hex as 0xNNNN),
       
    90 #       possibly preceded by a tag indicating required directionality
       
    91 #       (i.e. <LR>+0xNNNN or <RL>+0xNNNN).
       
    92 #     Column #3 is a comment containing the Unicode name.
       
    93 #
       
    94 #   The entries are in Mac OS Arabic code order.
       
    95 #
       
    96 #   Control character mappings are not shown in this table, following
       
    97 #   the conventions of the standard UTC mapping tables. However, the
       
    98 #   Mac OS Roman character set uses the standard control characters at
       
    99 #   0x00-0x1F and 0x7F.
       
   100 #
       
   101 # Notes on Mac OS Arabic:
       
   102 # -----------------------
       
   103 #
       
   104 #   1. General
       
   105 #
       
   106 #   The Mac OS Arabic character set is intended to cover Arabic as
       
   107 #   used in North Africa, the Arabian peninsula, and the Levant. It
       
   108 #   also contains several characters needed for Urdu and/or Farsi.
       
   109 #
       
   110 #   The Mac OS Arabic character set is essentially a superset of ISO
       
   111 #   8859-6. The 8859-6 code points that are interpreted differently
       
   112 #   in the Mac OS Arabic set are as follows:
       
   113 #    0xA0 is NO-BREAK SPACE in 8859-6 and right-left SPACE in Mac OS
       
   114 #         Arabic; NO-BREAK is 0x81 in Mac OS Arabic.
       
   115 #    0xA4 is CURRENCY SIGN in 8859-6 and right-left DOLLAR SIGN in
       
   116 #         Mac OS Arabic.
       
   117 #    0xAD is SOFT HYPHEN in 8859-6 and right-left HYPHEN-MINUS in
       
   118 #         Mac OS Arabic.
       
   119 #   ISO 8859-6 specifies that codes 0x30-0x39 can be rendered either
       
   120 #   with European digit shapes or Arabic digit shapes. This is also
       
   121 #   true in Mac OS Arabic, which determines from context which digit
       
   122 #   shapes to use (see below).
       
   123 #
       
   124 #   The Mac OS Arabic character set uses the C1 controls area and other
       
   125 #   code points which are undefined in ISO 8859-6 for additional
       
   126 #   graphic characters: additional Arabic letters for Farsi and Urdu,
       
   127 #   some accented Roman letters for European languages (such as French),
       
   128 #   and duplicates of some of the punctuation, symbols, and digits in
       
   129 #   the ASCII block. The duplicate punctuation, symbol, and digit
       
   130 #   characters have right-left directionality, while the ASCII versions
       
   131 #   have left-right directionality. See the next section for more
       
   132 #   information on this.
       
   133 #
       
   134 #   Mac OS Arabic characters 0xEB-0xF2 are non-spacing/combining marks.
       
   135 #
       
   136 #   2. Directional characters and roundtrip fidelity
       
   137 #
       
   138 #   The Mac OS Arabic character set was developed in 1986-1987. At that
       
   139 #   time the bidirectional line layout algorithm used in the Mac OS
       
   140 #   Arabic system was fairly simple; it used only a few direction
       
   141 #   classes (instead of the 19 now used in the Unicode bidirectional
       
   142 #   algorithm). In order to permit users to handle some tricky layout
       
   143 #   problems, certain punctuation and symbol characters were encoded
       
   144 #   twice, one with a left-right direction attribute and the other with
       
   145 #   a right-left direction attribute.
       
   146 #
       
   147 #   For example, plus sign is encoded at 0x2B with a left-right
       
   148 #   attribute, and at 0xAB with a right-left attribute. However, there
       
   149 #   is only one PLUS SIGN character in Unicode. This leads to some
       
   150 #   interesting problems when mapping between Mac OS Arabic and Unicode;
       
   151 #   see below.
       
   152 #
       
   153 #   A related problem is that even when a particular character is
       
   154 #   encoded only once in Mac OS Arabic, it may have a different
       
   155 #   direction attribute than the corresponding Unicode character.
       
   156 #
       
   157 #   For example, the Mac OS Arabic character at 0x93 is HORIZONTAL
       
   158 #   ELLIPSIS with strong right-left direction. However, the Unicode
       
   159 #   character HORIZONTAL ELLIPSIS has direction class neutral.
       
   160 #
       
   161 #   3. Behavior of ASCII-range numbers in WorldScript
       
   162 #
       
   163 #   Mac OS Arabic also has two sets of digit codes.
       
   164 #
       
   165 #   The digits at 0x30-0x39 may be displayed using either European
       
   166 #   digit forms or Arabic digit forms, depending on context. If there
       
   167 #   is a 'strong European' character such as a Latin letter on either
       
   168 #   side of a sequence consisting of digits 0x30-0x39 and possibly comma
       
   169 #   0x2C or period 0x2E, then the characters will be displayed using
       
   170 #   European forms (This will happen even if there are neutral characters
       
   171 #   between the digits and the strong European character). Otherwise, the
       
   172 #   digits will be displayed using Arabic forms, the comma will be
       
   173 #   displayed as Arabic thousands separator, and the period as Arabic
       
   174 #   decimal separator. In any case, 0x2C, 0x2E, and 0x30-0x39 are always
       
   175 #   left-right.
       
   176 #
       
   177 #   The digits at 0xB0-0xB9 are always displayed using Arabic digit
       
   178 #   shapes, and moreover, these digits always have strong right-left
       
   179 #   directionality. These are mainly intended for special layout
       
   180 #   purposes such as part numbers, etc.
       
   181 #
       
   182 #   4. Font variants
       
   183 #
       
   184 #   The table in this file gives the Unicode mappings for the standard
       
   185 #   Mac OS Arabic encoding. This encoding is supported by the Cairo font
       
   186 #   (the system font for Arabic), and is the encoding supported by the
       
   187 #   text processing utilities. However, the other Arabic fonts actually
       
   188 #   implement slightly different encodings; this mainly affects the code
       
   189 #   points 0xAA and 0xC0. For these code points the standard Mac OS
       
   190 #   Arabic encoding has the following mappings:
       
   191 #     0xAA -> <RL>+0x002A ASTERISK, right-left
       
   192 #     0xC0 -> <RL>+0x274A EIGHT TEARDROP-SPOKED PROPELLER ASTERISK,
       
   193 #                         right-left
       
   194 #   This mapping of 0xAA is consistent with the normal convention for
       
   195 #   Mac OS Arabic and Hebrew that the right-left duplicates have codes
       
   196 #   that are equal to the ASCII code of the left-right character plus
       
   197 #   0x80. However, in all of the other fonts, 0xAA is MULTIPLY SIGN, and
       
   198 #   right-left ASTERISK may be at a different code point. The other
       
   199 #   variants are described below.
       
   200 #
       
   201 #   The TrueType variant is used for most of the Arabic TrueType fonts:
       
   202 #   Baghdad, Geeza, Kufi, Nadeem.  It differs from the standard variant
       
   203 #   in the following way:
       
   204 #     0xAA -> <RL>+0x00D7 MULTIPLICATION SIGN, right-left
       
   205 #     0xC0 -> <RL>+0x002A ASTERISK, right-left
       
   206 #
       
   207 #   The Thuluth variant is used for the Arabic Postscript-only fonts:
       
   208 #   Thuluth and Thuluth bold. It differs from the standard variant in
       
   209 #   the following way:
       
   210 #     0xAA -> <RL>+0x00D7 MULTIPLICATION SIGN, right-left
       
   211 #     0xC0 -> 0x066D ARABIC FIVE POINTED STAR
       
   212 #
       
   213 #   The AlBayan variant is used for the Arabic TrueType font Al Bayan.
       
   214 #   It differs from the standard variant in the following way:
       
   215 #     0x81 -> no mapping (glyph just has authorship information, etc.)
       
   216 #     0xA3 -> 0xFDFA ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM
       
   217 #     0xA4 -> 0xFDF2 ARABIC LIGATURE ALLAH ISOLATED FORM
       
   218 #     0xAA -> <RL>+0x00D7 MULTIPLICATION SIGN, right-left
       
   219 #     0xDC -> <RL>+0x25CF BLACK CIRCLE, right-left
       
   220 #     0xFC -> <RL>+0x25A0 BLACK SQUARE, right-left
       
   221 #
       
   222 # Unicode mapping issues and notes:
       
   223 # ---------------------------------
       
   224 #
       
   225 #   1. Matching the direction of Mac OS Arabic characters
       
   226 #
       
   227 #   When Mac OS Arabic encodes a character twice but with different
       
   228 #   direction attributes for the two code points - as in the case of
       
   229 #   plus sign mentioned above - we need a way to map both Mac OS Arabic
       
   230 #   code points to Unicode and back again without loss of information.
       
   231 #   With the plus sign, for example, mapping one of the Mac OS Arabic
       
   232 #   characters to a code in the Unicode corporate use zone is
       
   233 #   undesirable, since both of the plus sign characters are likely to
       
   234 #   be used in text that is interchanged.
       
   235 #
       
   236 #   The problem is solved with the use of direction override characters
       
   237 #   and direction-dependent mappings. When mapping from Mac OS Arabic
       
   238 #   to Unicode, we use direction overrides as necessary to force the
       
   239 #   direction of the resulting Unicode characters.
       
   240 #
       
   241 #   The required direction is indicated by a direction tag in the
       
   242 #   mappings. A tag of <LR> means the corresponding Unicode character
       
   243 #   must have a strong left-right context, and a tag of <RL> indicates
       
   244 #   a right-left context.
       
   245 #
       
   246 #   For example, the mapping of 0x2B is given as <LR>+0x002B; the
       
   247 #   mapping of 0xAB is given as <RL>+0x002B. If we map an isolated
       
   248 #   instance of 0x2B to Unicode, it should be mapped as follows (LRO
       
   249 #   indicates LEFT-RIGHT OVERRIDE, PDF indicates POP DIRECTION
       
   250 #   FORMATTING):
       
   251 #
       
   252 #     0x2B ->  0x202D (LRO) + 0x002B (PLUS SIGN) + 0x202C (PDF)
       
   253 #
       
   254 #   When mapping several characters in a row that require direction
       
   255 #   forcing, the overrides need only be used at the beginning and end.
       
   256 #   For example:
       
   257 #
       
   258 #     0x24 0x20 0x28 0x29 -> 0x202D 0x0024 0x0020 0x0028 0x0029 0x202C
       
   259 #
       
   260 #   If neutral characters that require direction forcing are already
       
   261 #   between strong-direction characters with matching directionality,
       
   262 #   then direction overrides need not be used. Direction overrides are
       
   263 #   always needed to map the right-left digits at 0xB0-0xB9.
       
   264 #
       
   265 #   When mapping from Unicode to Mac OS Arabic, the Unicode
       
   266 #   bidirectional algorithm should be used to determine resolved
       
   267 #   direction of the Unicode characters. The mapping from Unicode to
       
   268 #   Mac OS Arabic can then be disambiguated by the use of the resolved
       
   269 #   direction:
       
   270 #
       
   271 #     Unicode 0x002B -> Mac OS Arabic 0x2B (if L) or 0xAB (if R)
       
   272 #
       
   273 #   However, this also means the direction override characters should
       
   274 #   be discarded when mapping from Unicode to Mac OS Arabic (after
       
   275 #   they have been used to determine resolved direction), since the
       
   276 #   direction override information is carried by the code point itself.
       
   277 #
       
   278 #   Even when direction overrides are not needed for roundtrip
       
   279 #   fidelity, they are sometimes used when mapping Mac OS Arabic
       
   280 #   characters to Unicode in order to achieve similar text layout with
       
   281 #   the resulting Unicode text. For example, the single Mac OS Arabic
       
   282 #   ellipsis character has direction class right-left,and there is no
       
   283 #   left-right version. However, the Unicode HORIZONTAL ELLIPSIS
       
   284 #   character has direction class neutral (which means it may end up
       
   285 #   with a resolved direction of left-right if surrounded by left-right
       
   286 #   characters). When mapping the Mac OS Arabic ellipsis to Unicode, it
       
   287 #   is surrounded with a direction override to help preserve proper
       
   288 #   text layout. The resolved direction is not needed or used when
       
   289 #   mapping the Unicode HORIZONTAL ELLIPSIS back to Mac OS Arabic.
       
   290 #
       
   291 #   2. Mapping the Mac OS Arabic digits
       
   292 #
       
   293 #   The main table below contains mappings that should be used when
       
   294 #   strict round-trip fidelity is required. However, for numeric
       
   295 #   values, the mappings in that table will produce Unicode characters
       
   296 #   that may appear different than the Mac OS Arabic text displayed on
       
   297 #   a Mac OS system using WorldScript. This is because WorldScript
       
   298 #   uses context-dependent display for the 0x30-0x39 digits.
       
   299 #
       
   300 #   If roundtrip fidelity is not required, then the following
       
   301 #   alternate mappings should be used when a sequence of 0x30-0x39
       
   302 #   digits - possibly including 0x2C and 0x2E - occurs in an Arabic
       
   303 #   context (that is, when the first 'strong' character on either side
       
   304 #   of the digit sequence is Arabic, or there is no strong character):
       
   305 #
       
   306 #     0x2C      0x066C  # ARABIC THOUSANDS SEPARATOR
       
   307 #     0x2E      0x066B  # ARABIC DECIMAL SEPARATOR
       
   308 #     0x30      0x0660  # ARABIC-INDIC DIGIT ZERO
       
   309 #     0x31      0x0661  # ARABIC-INDIC DIGIT ONE
       
   310 #     0x32      0x0662  # ARABIC-INDIC DIGIT TWO
       
   311 #     0x33      0x0663  # ARABIC-INDIC DIGIT THREE
       
   312 #     0x34      0x0664  # ARABIC-INDIC DIGIT FOUR
       
   313 #     0x35      0x0665  # ARABIC-INDIC DIGIT FIVE
       
   314 #     0x36      0x0666  # ARABIC-INDIC DIGIT SIX
       
   315 #     0x37      0x0667  # ARABIC-INDIC DIGIT SEVEN
       
   316 #     0x38      0x0668  # ARABIC-INDIC DIGIT EIGHT
       
   317 #     0x39      0x0669  # ARABIC-INDIC DIGIT NINE
       
   318 #
       
   319 # Details of mapping changes in each version:
       
   320 # -------------------------------------------
       
   321 #
       
   322 #   Changes from version n03 to version n07:
       
   323 #
       
   324 #   - Change mapping for 0xC0 from U+066D to U+274A.
       
   325 #
       
   326 #   - Add direction overrides (required directionality) to mappings
       
   327 #     for 0x25, 0x2C, 0x3B, 0x3F.
       
   328 #
       
   329 ##################
       
   330 
       
   331 0x20    <LR>+0x0020     # SPACE, left-right
       
   332 0x21    <LR>+0x0021     # EXCLAMATION MARK, left-right
       
   333 0x22    <LR>+0x0022     # QUOTATION MARK, left-right
       
   334 0x23    <LR>+0x0023     # NUMBER SIGN, left-right
       
   335 0x24    <LR>+0x0024     # DOLLAR SIGN, left-right
       
   336 0x25    <LR>+0x0025     # PERCENT SIGN, left-right
       
   337 0x26    <LR>+0x0026     # AMPERSAND, left-right
       
   338 0x27    <LR>+0x0027     # APOSTROPHE, left-right
       
   339 0x28    <LR>+0x0028     # LEFT PARENTHESIS, left-right
       
   340 0x29    <LR>+0x0029     # RIGHT PARENTHESIS, left-right
       
   341 0x2A    <LR>+0x002A     # ASTERISK, left-right
       
   342 0x2B    <LR>+0x002B     # PLUS SIGN, left-right
       
   343 0x2C    <LR>+0x002C     # COMMA, left-right; in Arabic-script context, displayed as 0x066C ARABIC THOUSANDS SEPARATOR
       
   344 0x2D    <LR>+0x002D     # HYPHEN-MINUS, left-right
       
   345 0x2E    <LR>+0x002E     # FULL STOP, left-right; in Arabic-script context, displayed as 0x066B ARABIC DECIMAL SEPARATOR
       
   346 0x2F    <LR>+0x002F     # SOLIDUS, left-right
       
   347 0x30    0x0030  # DIGIT ZERO;  in Arabic-script context, displayed as 0x0660 ARABIC-INDIC DIGIT ZERO
       
   348 0x31    0x0031  # DIGIT ONE;   in Arabic-script context, displayed as 0x0661 ARABIC-INDIC DIGIT ONE
       
   349 0x32    0x0032  # DIGIT TWO;   in Arabic-script context, displayed as 0x0662 ARABIC-INDIC DIGIT TWO
       
   350 0x33    0x0033  # DIGIT THREE; in Arabic-script context, displayed as 0x0663 ARABIC-INDIC DIGIT THREE
       
   351 0x34    0x0034  # DIGIT FOUR;  in Arabic-script context, displayed as 0x0664 ARABIC-INDIC DIGIT FOUR
       
   352 0x35    0x0035  # DIGIT FIVE;  in Arabic-script context, displayed as 0x0665 ARABIC-INDIC DIGIT FIVE
       
   353 0x36    0x0036  # DIGIT SIX;   in Arabic-script context, displayed as 0x0666 ARABIC-INDIC DIGIT SIX
       
   354 0x37    0x0037  # DIGIT SEVEN; in Arabic-script context, displayed as 0x0667 ARABIC-INDIC DIGIT SEVEN
       
   355 0x38    0x0038  # DIGIT EIGHT; in Arabic-script context, displayed as 0x0668 ARABIC-INDIC DIGIT EIGHT
       
   356 0x39    0x0039  # DIGIT NINE;  in Arabic-script context, displayed as 0x0669 ARABIC-INDIC DIGIT NINE
       
   357 0x3A    <LR>+0x003A     # COLON, left-right
       
   358 0x3B    <LR>+0x003B     # SEMICOLON, left-right
       
   359 0x3C    <LR>+0x003C     # LESS-THAN SIGN, left-right
       
   360 0x3D    <LR>+0x003D     # EQUALS SIGN, left-right
       
   361 0x3E    <LR>+0x003E     # GREATER-THAN SIGN, left-right
       
   362 0x3F    <LR>+0x003F     # QUESTION MARK, left-right
       
   363 0x40    0x0040  # COMMERCIAL AT
       
   364 0x41    0x0041  # LATIN CAPITAL LETTER A
       
   365 0x42    0x0042  # LATIN CAPITAL LETTER B
       
   366 0x43    0x0043  # LATIN CAPITAL LETTER C
       
   367 0x44    0x0044  # LATIN CAPITAL LETTER D
       
   368 0x45    0x0045  # LATIN CAPITAL LETTER E
       
   369 0x46    0x0046  # LATIN CAPITAL LETTER F
       
   370 0x47    0x0047  # LATIN CAPITAL LETTER G
       
   371 0x48    0x0048  # LATIN CAPITAL LETTER H
       
   372 0x49    0x0049  # LATIN CAPITAL LETTER I
       
   373 0x4A    0x004A  # LATIN CAPITAL LETTER J
       
   374 0x4B    0x004B  # LATIN CAPITAL LETTER K
       
   375 0x4C    0x004C  # LATIN CAPITAL LETTER L
       
   376 0x4D    0x004D  # LATIN CAPITAL LETTER M
       
   377 0x4E    0x004E  # LATIN CAPITAL LETTER N
       
   378 0x4F    0x004F  # LATIN CAPITAL LETTER O
       
   379 0x50    0x0050  # LATIN CAPITAL LETTER P
       
   380 0x51    0x0051  # LATIN CAPITAL LETTER Q
       
   381 0x52    0x0052  # LATIN CAPITAL LETTER R
       
   382 0x53    0x0053  # LATIN CAPITAL LETTER S
       
   383 0x54    0x0054  # LATIN CAPITAL LETTER T
       
   384 0x55    0x0055  # LATIN CAPITAL LETTER U
       
   385 0x56    0x0056  # LATIN CAPITAL LETTER V
       
   386 0x57    0x0057  # LATIN CAPITAL LETTER W
       
   387 0x58    0x0058  # LATIN CAPITAL LETTER X
       
   388 0x59    0x0059  # LATIN CAPITAL LETTER Y
       
   389 0x5A    0x005A  # LATIN CAPITAL LETTER Z
       
   390 0x5B    <LR>+0x005B     # LEFT SQUARE BRACKET, left-right
       
   391 0x5C    <LR>+0x005C     # REVERSE SOLIDUS, left-right
       
   392 0x5D    <LR>+0x005D     # RIGHT SQUARE BRACKET, left-right
       
   393 0x5E    <LR>+0x005E     # CIRCUMFLEX ACCENT, left-right
       
   394 0x5F    <LR>+0x005F     # LOW LINE, left-right
       
   395 0x60    0x0060  # GRAVE ACCENT
       
   396 0x61    0x0061  # LATIN SMALL LETTER A
       
   397 0x62    0x0062  # LATIN SMALL LETTER B
       
   398 0x63    0x0063  # LATIN SMALL LETTER C
       
   399 0x64    0x0064  # LATIN SMALL LETTER D
       
   400 0x65    0x0065  # LATIN SMALL LETTER E
       
   401 0x66    0x0066  # LATIN SMALL LETTER F
       
   402 0x67    0x0067  # LATIN SMALL LETTER G
       
   403 0x68    0x0068  # LATIN SMALL LETTER H
       
   404 0x69    0x0069  # LATIN SMALL LETTER I
       
   405 0x6A    0x006A  # LATIN SMALL LETTER J
       
   406 0x6B    0x006B  # LATIN SMALL LETTER K
       
   407 0x6C    0x006C  # LATIN SMALL LETTER L
       
   408 0x6D    0x006D  # LATIN SMALL LETTER M
       
   409 0x6E    0x006E  # LATIN SMALL LETTER N
       
   410 0x6F    0x006F  # LATIN SMALL LETTER O
       
   411 0x70    0x0070  # LATIN SMALL LETTER P
       
   412 0x71    0x0071  # LATIN SMALL LETTER Q
       
   413 0x72    0x0072  # LATIN SMALL LETTER R
       
   414 0x73    0x0073  # LATIN SMALL LETTER S
       
   415 0x74    0x0074  # LATIN SMALL LETTER T
       
   416 0x75    0x0075  # LATIN SMALL LETTER U
       
   417 0x76    0x0076  # LATIN SMALL LETTER V
       
   418 0x77    0x0077  # LATIN SMALL LETTER W
       
   419 0x78    0x0078  # LATIN SMALL LETTER X
       
   420 0x79    0x0079  # LATIN SMALL LETTER Y
       
   421 0x7A    0x007A  # LATIN SMALL LETTER Z
       
   422 0x7B    <LR>+0x007B     # LEFT CURLY BRACKET, left-right
       
   423 0x7C    <LR>+0x007C     # VERTICAL LINE, left-right
       
   424 0x7D    <LR>+0x007D     # RIGHT CURLY BRACKET, left-right
       
   425 0x7E    0x007E  # TILDE
       
   426 #
       
   427 0x80    0x00C4  # LATIN CAPITAL LETTER A WITH DIAERESIS
       
   428 0x81    <RL>+0x00A0     # NO-BREAK SPACE, right-left
       
   429 0x82    0x00C7  # LATIN CAPITAL LETTER C WITH CEDILLA
       
   430 0x83    0x00C9  # LATIN CAPITAL LETTER E WITH ACUTE
       
   431 0x84    0x00D1  # LATIN CAPITAL LETTER N WITH TILDE
       
   432 0x85    0x00D6  # LATIN CAPITAL LETTER O WITH DIAERESIS
       
   433 0x86    0x00DC  # LATIN CAPITAL LETTER U WITH DIAERESIS
       
   434 0x87    0x00E1  # LATIN SMALL LETTER A WITH ACUTE
       
   435 0x88    0x00E0  # LATIN SMALL LETTER A WITH GRAVE
       
   436 0x89    0x00E2  # LATIN SMALL LETTER A WITH CIRCUMFLEX
       
   437 0x8A    0x00E4  # LATIN SMALL LETTER A WITH DIAERESIS
       
   438 0x8B    0x06BA  # ARABIC LETTER NOON GHUNNA
       
   439 0x8C    <RL>+0x00AB     # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
       
   440 0x8D    0x00E7  # LATIN SMALL LETTER C WITH CEDILLA
       
   441 0x8E    0x00E9  # LATIN SMALL LETTER E WITH ACUTE
       
   442 0x8F    0x00E8  # LATIN SMALL LETTER E WITH GRAVE
       
   443 0x90    0x00EA  # LATIN SMALL LETTER E WITH CIRCUMFLEX
       
   444 0x91    0x00EB  # LATIN SMALL LETTER E WITH DIAERESIS
       
   445 0x92    0x00ED  # LATIN SMALL LETTER I WITH ACUTE
       
   446 0x93    <RL>+0x2026     # HORIZONTAL ELLIPSIS, right-left
       
   447 0x94    0x00EE  # LATIN SMALL LETTER I WITH CIRCUMFLEX
       
   448 0x95    0x00EF  # LATIN SMALL LETTER I WITH DIAERESIS
       
   449 0x96    0x00F1  # LATIN SMALL LETTER N WITH TILDE
       
   450 0x97    0x00F3  # LATIN SMALL LETTER O WITH ACUTE
       
   451 0x98    <RL>+0x00BB     # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
       
   452 0x99    0x00F4  # LATIN SMALL LETTER O WITH CIRCUMFLEX
       
   453 0x9A    0x00F6  # LATIN SMALL LETTER O WITH DIAERESIS
       
   454 0x9B    <RL>+0x00F7     # DIVISION SIGN, right-left
       
   455 0x9C    0x00FA  # LATIN SMALL LETTER U WITH ACUTE
       
   456 0x9D    0x00F9  # LATIN SMALL LETTER U WITH GRAVE
       
   457 0x9E    0x00FB  # LATIN SMALL LETTER U WITH CIRCUMFLEX
       
   458 0x9F    0x00FC  # LATIN SMALL LETTER U WITH DIAERESIS
       
   459 0xA0    <RL>+0x0020     # SPACE, right-left
       
   460 0xA1    <RL>+0x0021     # EXCLAMATION MARK, right-left
       
   461 0xA2    <RL>+0x0022     # QUOTATION MARK, right-left
       
   462 0xA3    <RL>+0x0023     # NUMBER SIGN, right-left
       
   463 0xA4    <RL>+0x0024     # DOLLAR SIGN, right-left
       
   464 0xA5    0x066A  # ARABIC PERCENT SIGN
       
   465 0xA6    <RL>+0x0026     # AMPERSAND, right-left
       
   466 0xA7    <RL>+0x0027     # APOSTROPHE, right-left
       
   467 0xA8    <RL>+0x0028     # LEFT PARENTHESIS, right-left
       
   468 0xA9    <RL>+0x0029     # RIGHT PARENTHESIS, right-left
       
   469 0xAA    <RL>+0x002A     # ASTERISK, right-left
       
   470 0xAB    <RL>+0x002B     # PLUS SIGN, right-left
       
   471 0xAC    0x060C  # ARABIC COMMA
       
   472 0xAD    <RL>+0x002D     # HYPHEN-MINUS, right-left
       
   473 0xAE    <RL>+0x002E     # FULL STOP, right-left
       
   474 0xAF    <RL>+0x002F     # SOLIDUS, right-left
       
   475 0xB0    <RL>+0x0660     # ARABIC-INDIC DIGIT ZERO, right-left (need override)
       
   476 0xB1    <RL>+0x0661     # ARABIC-INDIC DIGIT ONE, right-left (need override)
       
   477 0xB2    <RL>+0x0662     # ARABIC-INDIC DIGIT TWO, right-left (need override)
       
   478 0xB3    <RL>+0x0663     # ARABIC-INDIC DIGIT THREE, right-left (need override)
       
   479 0xB4    <RL>+0x0664     # ARABIC-INDIC DIGIT FOUR, right-left (need override)
       
   480 0xB5    <RL>+0x0665     # ARABIC-INDIC DIGIT FIVE, right-left (need override)
       
   481 0xB6    <RL>+0x0666     # ARABIC-INDIC DIGIT SIX, right-left (need override)
       
   482 0xB7    <RL>+0x0667     # ARABIC-INDIC DIGIT SEVEN, right-left (need override)
       
   483 0xB8    <RL>+0x0668     # ARABIC-INDIC DIGIT EIGHT, right-left (need override)
       
   484 0xB9    <RL>+0x0669     # ARABIC-INDIC DIGIT NINE, right-left (need override)
       
   485 0xBA    <RL>+0x003A     # COLON, right-left
       
   486 0xBB    0x061B  # ARABIC SEMICOLON
       
   487 0xBC    <RL>+0x003C     # LESS-THAN SIGN, right-left
       
   488 0xBD    <RL>+0x003D     # EQUALS SIGN, right-left
       
   489 0xBE    <RL>+0x003E     # GREATER-THAN SIGN, right-left
       
   490 0xBF    0x061F  # ARABIC QUESTION MARK
       
   491 0xC0    <RL>+0x274A     # EIGHT TEARDROP-SPOKED PROPELLER ASTERISK, right-left
       
   492 0xC1    0x0621  # ARABIC LETTER HAMZA
       
   493 0xC2    0x0622  # ARABIC LETTER ALEF WITH MADDA ABOVE
       
   494 0xC3    0x0623  # ARABIC LETTER ALEF WITH HAMZA ABOVE
       
   495 0xC4    0x0624  # ARABIC LETTER WAW WITH HAMZA ABOVE
       
   496 0xC5    0x0625  # ARABIC LETTER ALEF WITH HAMZA BELOW
       
   497 0xC6    0x0626  # ARABIC LETTER YEH WITH HAMZA ABOVE
       
   498 0xC7    0x0627  # ARABIC LETTER ALEF
       
   499 0xC8    0x0628  # ARABIC LETTER BEH
       
   500 0xC9    0x0629  # ARABIC LETTER TEH MARBUTA
       
   501 0xCA    0x062A  # ARABIC LETTER TEH
       
   502 0xCB    0x062B  # ARABIC LETTER THEH
       
   503 0xCC    0x062C  # ARABIC LETTER JEEM
       
   504 0xCD    0x062D  # ARABIC LETTER HAH
       
   505 0xCE    0x062E  # ARABIC LETTER KHAH
       
   506 0xCF    0x062F  # ARABIC LETTER DAL
       
   507 0xD0    0x0630  # ARABIC LETTER THAL
       
   508 0xD1    0x0631  # ARABIC LETTER REH
       
   509 0xD2    0x0632  # ARABIC LETTER ZAIN
       
   510 0xD3    0x0633  # ARABIC LETTER SEEN
       
   511 0xD4    0x0634  # ARABIC LETTER SHEEN
       
   512 0xD5    0x0635  # ARABIC LETTER SAD
       
   513 0xD6    0x0636  # ARABIC LETTER DAD
       
   514 0xD7    0x0637  # ARABIC LETTER TAH
       
   515 0xD8    0x0638  # ARABIC LETTER ZAH
       
   516 0xD9    0x0639  # ARABIC LETTER AIN
       
   517 0xDA    0x063A  # ARABIC LETTER GHAIN
       
   518 0xDB    <RL>+0x005B     # LEFT SQUARE BRACKET, right-left
       
   519 0xDC    <RL>+0x005C     # REVERSE SOLIDUS, right-left
       
   520 0xDD    <RL>+0x005D     # RIGHT SQUARE BRACKET, right-left
       
   521 0xDE    <RL>+0x005E     # CIRCUMFLEX ACCENT, right-left
       
   522 0xDF    <RL>+0x005F     # LOW LINE, right-left
       
   523 0xE0    0x0640  # ARABIC TATWEEL
       
   524 0xE1    0x0641  # ARABIC LETTER FEH
       
   525 0xE2    0x0642  # ARABIC LETTER QAF
       
   526 0xE3    0x0643  # ARABIC LETTER KAF
       
   527 0xE4    0x0644  # ARABIC LETTER LAM
       
   528 0xE5    0x0645  # ARABIC LETTER MEEM
       
   529 0xE6    0x0646  # ARABIC LETTER NOON
       
   530 0xE7    0x0647  # ARABIC LETTER HEH
       
   531 0xE8    0x0648  # ARABIC LETTER WAW
       
   532 0xE9    0x0649  # ARABIC LETTER ALEF MAKSURA
       
   533 0xEA    0x064A  # ARABIC LETTER YEH
       
   534 0xEB    0x064B  # ARABIC FATHATAN
       
   535 0xEC    0x064C  # ARABIC DAMMATAN
       
   536 0xED    0x064D  # ARABIC KASRATAN
       
   537 0xEE    0x064E  # ARABIC FATHA
       
   538 0xEF    0x064F  # ARABIC DAMMA
       
   539 0xF0    0x0650  # ARABIC KASRA
       
   540 0xF1    0x0651  # ARABIC SHADDA
       
   541 0xF2    0x0652  # ARABIC SUKUN
       
   542 0xF3    0x067E  # ARABIC LETTER PEH
       
   543 0xF4    0x0679  # ARABIC LETTER TTEH
       
   544 0xF5    0x0686  # ARABIC LETTER TCHEH
       
   545 0xF6    0x06D5  # ARABIC LETTER AE
       
   546 0xF7    0x06A4  # ARABIC LETTER VEH
       
   547 0xF8    0x06AF  # ARABIC LETTER GAF
       
   548 0xF9    0x0688  # ARABIC LETTER DDAL
       
   549 0xFA    0x0691  # ARABIC LETTER RREH
       
   550 0xFB    <RL>+0x007B     # LEFT CURLY BRACKET, right-left
       
   551 0xFC    <RL>+0x007C     # VERTICAL LINE, right-left
       
   552 0xFD    <RL>+0x007D     # RIGHT CURLY BRACKET, right-left
       
   553 0xFE    0x0698  # ARABIC LETTER JEH
       
   554 0xFF    0x06D2  # ARABIC LETTER YEH BARREE
       
   555 
       
   556 "
       
   557 ! !
       
   558 
       
   559 !MAC_Arabic class methodsFor:'queries'!
       
   560 
       
   561 namesOfEncoding
       
   562     ^ #( #'mac-arabic' 'macarabic' )
       
   563 ! !
       
   564 
       
   565 !MAC_Arabic class methodsFor:'documentation'!
       
   566 
       
   567 version
       
   568     ^ '$Header: /cvs/stx/stx/libbasic/Attic/Encoder_MAC_Arabic.st,v 1.1 2004-03-05 17:26:04 cg Exp $'
       
   569 ! !