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