Umlaute raus!
[closure-html.git] / resources / encodings / apple / GURMUKHI.TXT
blob06eacf162a4b6ba9f6af0e224304d3628a080399
1 #=======================================================================
2 #   FTP file name:  GURMUKHI.TXT
4 #   Contents:       Map (external version) from Mac OS Gurmukhi
5 #                   encoding to Unicode 2.0
7 #   Copyright:      (c) 1997-1998 by Apple Computer, Inc., all rights
8 #                   reserved.
10 #   Contacts:       Peter Edberg <pedberg@apple.com>
11 #                   Julio Gonzalez <juliog@apple.com>
12 #                   John Jenkins <jenkins@apple.com>
14 #   Changes:
16 #       n02  1998-Feb-05    First version; matches internal utom<5>,
17 #                           ufrm<6>.
19 # Standard header:
20 # ----------------
22 #   Apple, the Apple logo, and Macintosh are trademarks of Apple
23 #   Computer, Inc., registered in the United States and other countries.
24 #   Unicode is a trademark of Unicode Inc. For the sake of brevity,
25 #   throughout this document, "Macintosh" can be used to refer to
26 #   Macintosh computers and "Unicode" can be used to refer to the
27 #   Unicode standard.
29 #   Apple makes no warranty or representation, either express or
30 #   implied, with respect to these tables, their quality, accuracy, or
31 #   fitness for a particular purpose. In no event will Apple be liable
32 #   for direct, indirect, special, incidental, or consequential damages 
33 #   resulting from any defect or inaccuracy in this document or the
34 #   accompanying tables.
36 #   These mapping tables and character lists are subject to change.
37 #   The latest tables should be available from the following:
39 #   <ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
40 #   <ftp://dev.apple.com/devworld/Technical_Documentation/Misc._Standards/>
42 #   For general information about Mac OS encodings and these mapping
43 #   tables, see the file "README.TXT".
45 # Format:
46 # -------
48 #   Three tab-separated columns;
49 #   '#' begins a comment which continues to the end of the line.
50 #     Column #1 is the Mac OS Gurmukhi code or code sequence
51 #       (in hex as 0xNN or 0xNN+0xNN)
52 #     Column #2 is the corresponding Unicode or Unicode sequence
53 #       (in hex as 0xNNNN or 0xNNNN+0xNNNN).
54 #     Column #3 is a comment containing the Unicode name or sequence
55 #       of names. In some cases an additional comment follows the
56 #       Unicode name(s).
58 #   The entries are in two sections. The first section is for pairs of
59 #   Mac OS Gurmukhi code points that must be mapped in a special way.
60 #   The second section maps individual code points.
62 #   Within each section, the entries are in Mac OS Gurmukhi code order.
64 #   Control character mappings are not shown in this table, following
65 #   the conventions of the standard UTC mapping tables. However, the
66 #   Mac OS Gurmukhi character set uses the standard control characters
67 #   at 0x00-0x1F and 0x7F.
69 # Notes on Mac OS Gurmukhi:
70 # -------------------------
72 #   Mac OS Gurmukhi is based on IS 13194:1991 (ISCII-91), with the
73 #   addition of several punctuation and symbol characters. However,
74 #   Mac OS Gurmukhi does not support the ATR (attribute) mechanism of
75 #   ISCII-91.
77 # 1. ISCII-91 features in Mac OS Gurmukhi include:
79 #  a) Explicit halant and soft halant
81 #     A double halant (0xE8 + 0xE8) constitutes an "explicit halant",
82 #     which will always appear as a halant instead of causing formation
83 #     of a ligature or half-form consonant.
85 #     Halant followed by nukta (0xE8 + 0xE9) constitutes a "soft
86 #     halant", which prevents formation of a ligature and instead
87 #     retains the half-form of the first consonant.
89 #  b) Invisible consonant
91 #     The byte 0xD9 (called INV in ISCII-91) is an invisible consonant:
92 #     It behaves like a consonant but has no visible appearance. It is
93 #     intended to be used (often in combination with halant) to display
94 #     dependent forms in isolation, such as the RA forms or consonant
95 #     half-forms.
97 #  c) Extensions for Vedic, etc.
99 #     The byte 0xF0 (called EXT in ISCII-91) followed by any byte in
100 #     the range 0xA1-0xEE constitutes a two-byte code point which can
101 #     be used to represent additional characters for Vedic (or other
102 #     extensions); 0xF0 followed by any other byte value constitutes
103 #     malformed text. Mac OS Gurmukhi supports this mechanism, but
104 #     does not currently map any of these two-byte code points to
105 #     anything.
107 # 2. Mac OS Gurmukhi additions
109 #   Mac OS Gurmukhi adds characters using the code points
110 #   0x80-0x8A and 0x90-0x94 (the latter are some Gurmukhi additions).
112 #   The character at 0x91 is a special case. This is an alternate
113 #   encoding for GURMUKHI LETTER RRA (corresponding to the single
114 #   Unicode character 0x0A5C). The normal encoding in ISCII-91 and
115 #   Mac OS Gurmukhi is 0xBF+0xE9 (corresponding to the Unicodes
116 #   0x0A21+0x0A3C, which are the canonical decomposition of 0x0A5C).
118 # 3. Unused code points
119 #   
120 #   The following code points are currently unused, and are not shown
121 #   here: 0x8B-0x8F, 0x95-0xA1, 0xA3, 0xAA-0xAB, 0xAE-0xAF, 0xB2,
122 #   0xC7, 0xCE, 0xD0, 0xD2-0xD3, 0xD6, 0xDF-0xE0, 0xE3-0xE4, 0xE7,
123 #   0xEB-0xEF, 0xFB-0xFF. In addition, 0xF0 is not shown here, but it
124 #   has a special function as described above.
126 # Unicode mapping issues and notes:
127 # ---------------------------------
129 # 1. Mapping the byte pairs
131 #   If the byte value 0xE8 is encountered when mapping Mac OS
132 #   Gurmukhi text, then the next byte (if there is one) should be
133 #   examined. If the next byte is 0xE8 or 0xE9, then the byte pair
134 #   should be mapped using the first section of the mapping table
135 #   below. Otherwise, each byte should be mapped using the second
136 #   section of the mapping table below.
138 #   - The Unicode Standard, Version 2.0, specifies how explicit
139 #     halant and soft halant should be represented in Unicode;
140 #     these mappings are used below.
142 #   If the byte value 0xF0 is encountered when mapping Mac OS 
143 #   Gurmukhi text, then the next byte should be examined. If there
144 #   is no next byte (e.g. 0xF0 at end of buffer), the mapping
145 #   process should indicate incomplete character. If there is a next
146 #   byte but it is not in the range 0xA1-0xEE, the mapping process
147 #   should indicate malformed text. Otherwise, the mapping process
148 #   should treat the byte pair as a valid two-byte code point with no
149 #   mapping (e.g. map it to QUESTION MARK, REPLACEMENT CHARACTER,
150 #   etc.).
152 # 2. Mapping the invisible consonant
154 #   It has been suggested that INV in ISCII-91 should map to ZERO
155 #   WIDTH NON-JOINER in Unicode. However, this causes problems with
156 #   roundtrip fidelity: The ISCII-91 sequences 0xE8+0xE8 and 0xE8+0xD9
157 #   would map to the same sequence of Unicode characters. We have
158 #   instead mapped INV to LEFT-TO-RIGHT MARK, which avoids these
159 #   problems.
161 # 3. Mappings using corporate characters
163 #   Mapping the GURMUKHI LETTER RRA alternate encoding 0x91 presents
164 #   an interesting problem. At first glance, we could map it to the
165 #   single Unicode character 0x0A5C, since we map the normal encoding
166 #   of GURMUKHI LETTER RRA - 0xBF+0xE9 - to the Unicode sequence
167 #   0x0A21+0x0A3C.
169 #   However, our goal is that the mappings provided here should also
170 #   be able to generate the mappings to maximally decomposed Unicode
171 #   by simple recursive substitution of the canonical decompositions
172 #   in the Unicode database. We want mapping tables derived this way
173 #   to retain full roundtrip fidelity.
175 #   Since the canonical decomposition of 0x0A5C is 0x0A21+0x0A3C,
176 #   the decomposition mapping for 0x91 would be identical with the
177 #   decomposition mapping for 0xBF+0xE9, and roundtrip fidelity would
178 #   be lost.
180 #   We solve this problem by using a grouping hint (one of the set of
181 #   transcoding hints defined by Apple).
183 #   Apple has defined a block of 32 corporate characters as "transcoding
184 #   hints." These are used in combination with standard Unicode characters
185 #   to force them to be treated in a special way for mapping to other
186 #   encodings; they have no other effect. Sixteen of these transcoding
187 #   hints are "grouping hints" - they indicate that the next 2-4 Unicode
188 #   characters should be treated as a single entity for transcoding. The
189 #   other sixteen transcoding hints are "variant tags" - they are like
190 #   combining characters, and can follow a standard Unicode (or a sequence
191 #   consisting of a base character and other combining characters) to
192 #   cause it to be treated in a special way for transcoding. These always
193 #   terminate a combining-character sequence.
195 #   The transcoding coding hint used in this mapping table is:
196 #     0xF860 group next 2 characters
198 #   Then we can map 0x91 as follows:
199 #     0x91 -> 0xF860+0x0A21+0x0A3C
201 #   We could also have used a variant tag such as 0xF87F and mapped it 
202 #   this way:
203 #     0x91 -> 0x0A5C+0xF87F
205 # 4. Additional loose mappings from Unicode
207 #   These are not preserved in roundtrip mappings.
209 #   0A59 -> 0xB4+0xE9   # GURMUKHI LETTER KHHA
210 #   0A5A -> 0xB5+0xE9   # GURMUKHI LETTER GHHA
211 #   0A5B -> 0xBA+0xE9   # GURMUKHI LETTER ZA
212 #   0A5C -> 0xBF+0xE9   # GURMUKHI LETTER RRA
213 #   0A5E -> 0xC9+0xE9   # GURMUKHI LETTER FA
215 #   0A70 -> 0xA2    # GURMUKHI TIPPI
217 #   Loose mappings from Unicode should also map U+0A71 (GURMUKHI ADDAK)
218 #   followed by any Gurmukhi consonant to the equivalent ISCII-91
219 #   consonant plus halant plus the consonant again. For example:
221 #   0A71+0A15 -> 0xB3+0xE8+0xB3
222 #   0A71+0A16 -> 0xB4+0xE8+0xB4
223 #   ...
225 # Details of mapping changes in each version:
226 # -------------------------------------------
228 ##################
230 # Section 1: Map the following byte pairs as indicated:
231 # (ZWNJ means ZERO WIDTH NON-JOINER, ZWJ means ZERO WIDTH JOINER)
232 # (Also see note about 0xF0 in comments above)
234 0xE8+0xE8       0x0A4D+0x200C   # GURMUKHI SIGN VIRAMA + ZWNJ   # explicit halant
235 0xE8+0xE9       0x0A4D+0x200D   # GURMUKHI SIGN VIRAMA + ZWJ    # soft halant
237 # Section 2: Map the remaining bytes as follows:
239 0x20    0x0020  # SPACE
240 0x21    0x0021  # EXCLAMATION MARK
241 0x22    0x0022  # QUOTATION MARK
242 0x23    0x0023  # NUMBER SIGN
243 0x24    0x0024  # DOLLAR SIGN
244 0x25    0x0025  # PERCENT SIGN
245 0x26    0x0026  # AMPERSAND
246 0x27    0x0027  # APOSTROPHE
247 0x28    0x0028  # LEFT PARENTHESIS
248 0x29    0x0029  # RIGHT PARENTHESIS
249 0x2A    0x002A  # ASTERISK
250 0x2B    0x002B  # PLUS SIGN
251 0x2C    0x002C  # COMMA
252 0x2D    0x002D  # HYPHEN-MINUS
253 0x2E    0x002E  # FULL STOP
254 0x2F    0x002F  # SOLIDUS
255 0x30    0x0030  # DIGIT ZERO
256 0x31    0x0031  # DIGIT ONE
257 0x32    0x0032  # DIGIT TWO
258 0x33    0x0033  # DIGIT THREE
259 0x34    0x0034  # DIGIT FOUR
260 0x35    0x0035  # DIGIT FIVE
261 0x36    0x0036  # DIGIT SIX
262 0x37    0x0037  # DIGIT SEVEN
263 0x38    0x0038  # DIGIT EIGHT
264 0x39    0x0039  # DIGIT NINE
265 0x3A    0x003A  # COLON
266 0x3B    0x003B  # SEMICOLON
267 0x3C    0x003C  # LESS-THAN SIGN
268 0x3D    0x003D  # EQUALS SIGN
269 0x3E    0x003E  # GREATER-THAN SIGN
270 0x3F    0x003F  # QUESTION MARK
271 0x40    0x0040  # COMMERCIAL AT
272 0x41    0x0041  # LATIN CAPITAL LETTER A
273 0x42    0x0042  # LATIN CAPITAL LETTER B
274 0x43    0x0043  # LATIN CAPITAL LETTER C
275 0x44    0x0044  # LATIN CAPITAL LETTER D
276 0x45    0x0045  # LATIN CAPITAL LETTER E
277 0x46    0x0046  # LATIN CAPITAL LETTER F
278 0x47    0x0047  # LATIN CAPITAL LETTER G
279 0x48    0x0048  # LATIN CAPITAL LETTER H
280 0x49    0x0049  # LATIN CAPITAL LETTER I
281 0x4A    0x004A  # LATIN CAPITAL LETTER J
282 0x4B    0x004B  # LATIN CAPITAL LETTER K
283 0x4C    0x004C  # LATIN CAPITAL LETTER L
284 0x4D    0x004D  # LATIN CAPITAL LETTER M
285 0x4E    0x004E  # LATIN CAPITAL LETTER N
286 0x4F    0x004F  # LATIN CAPITAL LETTER O
287 0x50    0x0050  # LATIN CAPITAL LETTER P
288 0x51    0x0051  # LATIN CAPITAL LETTER Q
289 0x52    0x0052  # LATIN CAPITAL LETTER R
290 0x53    0x0053  # LATIN CAPITAL LETTER S
291 0x54    0x0054  # LATIN CAPITAL LETTER T
292 0x55    0x0055  # LATIN CAPITAL LETTER U
293 0x56    0x0056  # LATIN CAPITAL LETTER V
294 0x57    0x0057  # LATIN CAPITAL LETTER W
295 0x58    0x0058  # LATIN CAPITAL LETTER X
296 0x59    0x0059  # LATIN CAPITAL LETTER Y
297 0x5A    0x005A  # LATIN CAPITAL LETTER Z
298 0x5B    0x005B  # LEFT SQUARE BRACKET
299 0x5C    0x005C  # REVERSE SOLIDUS
300 0x5D    0x005D  # RIGHT SQUARE BRACKET
301 0x5E    0x005E  # CIRCUMFLEX ACCENT
302 0x5F    0x005F  # LOW LINE
303 0x60    0x0060  # GRAVE ACCENT
304 0x61    0x0061  # LATIN SMALL LETTER A
305 0x62    0x0062  # LATIN SMALL LETTER B
306 0x63    0x0063  # LATIN SMALL LETTER C
307 0x64    0x0064  # LATIN SMALL LETTER D
308 0x65    0x0065  # LATIN SMALL LETTER E
309 0x66    0x0066  # LATIN SMALL LETTER F
310 0x67    0x0067  # LATIN SMALL LETTER G
311 0x68    0x0068  # LATIN SMALL LETTER H
312 0x69    0x0069  # LATIN SMALL LETTER I
313 0x6A    0x006A  # LATIN SMALL LETTER J
314 0x6B    0x006B  # LATIN SMALL LETTER K
315 0x6C    0x006C  # LATIN SMALL LETTER L
316 0x6D    0x006D  # LATIN SMALL LETTER M
317 0x6E    0x006E  # LATIN SMALL LETTER N
318 0x6F    0x006F  # LATIN SMALL LETTER O
319 0x70    0x0070  # LATIN SMALL LETTER P
320 0x71    0x0071  # LATIN SMALL LETTER Q
321 0x72    0x0072  # LATIN SMALL LETTER R
322 0x73    0x0073  # LATIN SMALL LETTER S
323 0x74    0x0074  # LATIN SMALL LETTER T
324 0x75    0x0075  # LATIN SMALL LETTER U
325 0x76    0x0076  # LATIN SMALL LETTER V
326 0x77    0x0077  # LATIN SMALL LETTER W
327 0x78    0x0078  # LATIN SMALL LETTER X
328 0x79    0x0079  # LATIN SMALL LETTER Y
329 0x7A    0x007A  # LATIN SMALL LETTER Z
330 0x7B    0x007B  # LEFT CURLY BRACKET
331 0x7C    0x007C  # VERTICAL LINE
332 0x7D    0x007D  # RIGHT CURLY BRACKET
333 0x7E    0x007E  # TILDE
335 0x80    0x00D7  # MULTIPLICATION SIGN
336 0x81    0x2212  # MINUS SIGN
337 0x82    0x2013  # EN DASH
338 0x83    0x2014  # EM DASH
339 0x84    0x2018  # LEFT SINGLE QUOTATION MARK
340 0x85    0x2019  # RIGHT SINGLE QUOTATION MARK
341 0x86    0x2026  # HORIZONTAL ELLIPSIS
342 0x87    0x2022  # BULLET
343 0x88    0x00A9  # COPYRIGHT SIGN
344 0x89    0x00AE  # REGISTERED SIGN
345 0x8A    0x2122  # TRADE MARK SIGN
347 0x90    0x0A71  # GURMUKHI ADDAK
348 0x91    0xF860+0x0A21+0x0A3C    # GURMUKHI LETTER RRA, alternate
349 0x92    0x0A73  # GURMUKHI URA
350 0x93    0x0A72  # GURMUKHI IRI
351 0x94    0x0A74  # GURMUKHI EK ONKAR
353 0xA2    0x0A02  # GURMUKHI SIGN BINDI
355 0xA4    0x0A05  # GURMUKHI LETTER A
356 0xA5    0x0A06  # GURMUKHI LETTER AA
357 0xA6    0x0A07  # GURMUKHI LETTER I
358 0xA7    0x0A08  # GURMUKHI LETTER II
359 0xA8    0x0A09  # GURMUKHI LETTER U
360 0xA9    0x0A0A  # GURMUKHI LETTER UU
362 0xAC    0x0A0F  # GURMUKHI LETTER EE
363 0xAD    0x0A10  # GURMUKHI LETTER AI
365 0xB0    0x0A13  # GURMUKHI LETTER OO
366 0xB1    0x0A14  # GURMUKHI LETTER AU
368 0xB3    0x0A15  # GURMUKHI LETTER KA
369 0xB4    0x0A16  # GURMUKHI LETTER KHA
370 0xB5    0x0A17  # GURMUKHI LETTER GA
371 0xB6    0x0A18  # GURMUKHI LETTER GHA
372 0xB7    0x0A19  # GURMUKHI LETTER NGA
373 0xB8    0x0A1A  # GURMUKHI LETTER CA
374 0xB9    0x0A1B  # GURMUKHI LETTER CHA
375 0xBA    0x0A1C  # GURMUKHI LETTER JA
376 0xBB    0x0A1D  # GURMUKHI LETTER JHA
377 0xBC    0x0A1E  # GURMUKHI LETTER NYA
378 0xBD    0x0A1F  # GURMUKHI LETTER TTA
379 0xBE    0x0A20  # GURMUKHI LETTER TTHA
380 0xBF    0x0A21  # GURMUKHI LETTER DDA
381 0xC0    0x0A22  # GURMUKHI LETTER DDHA
382 0xC1    0x0A23  # GURMUKHI LETTER NNA
383 0xC2    0x0A24  # GURMUKHI LETTER TA
384 0xC3    0x0A25  # GURMUKHI LETTER THA
385 0xC4    0x0A26  # GURMUKHI LETTER DA
386 0xC5    0x0A27  # GURMUKHI LETTER DHA
387 0xC6    0x0A28  # GURMUKHI LETTER NA
389 0xC8    0x0A2A  # GURMUKHI LETTER PA
390 0xC9    0x0A2B  # GURMUKHI LETTER PHA
391 0xCA    0x0A2C  # GURMUKHI LETTER BA
392 0xCB    0x0A2D  # GURMUKHI LETTER BHA
393 0xCC    0x0A2E  # GURMUKHI LETTER MA
394 0xCD    0x0A2F  # GURMUKHI LETTER YA
396 0xCF    0x0A30  # GURMUKHI LETTER RA
398 0xD1    0x0A32  # GURMUKHI LETTER LA
400 0xD4    0x0A35  # GURMUKHI LETTER VA
401 0xD5    0x0A36  # GURMUKHI LETTER SHA
403 0xD7    0x0A38  # GURMUKHI LETTER SA
404 0xD8    0x0A39  # GURMUKHI LETTER HA
405 0xD9    0x200E  # LEFT-TO-RIGHT MARK    # invisible consonant
406 0xDA    0x0A3E  # GURMUKHI VOWEL SIGN AA
407 0xDB    0x0A3F  # GURMUKHI VOWEL SIGN I
408 0xDC    0x0A40  # GURMUKHI VOWEL SIGN II
409 0xDD    0x0A41  # GURMUKHI VOWEL SIGN U
410 0xDE    0x0A42  # GURMUKHI VOWEL SIGN UU
412 0xE1    0x0A47  # GURMUKHI VOWEL SIGN EE
413 0xE2    0x0A48  # GURMUKHI VOWEL SIGN AI
415 0xE5    0x0A4B  # GURMUKHI VOWEL SIGN OO
416 0xE6    0x0A4C  # GURMUKHI VOWEL SIGN AU
418 0xE8    0x0A4D  # GURMUKHI SIGN VIRAMA  # halant
419 0xE9    0x0A3C  # GURMUKHI SIGN NUKTA
420 0xEA    0x0964  # DEVANAGARI DANDA
422 0xF1    0x0A66  # GURMUKHI DIGIT ZERO
423 0xF2    0x0A67  # GURMUKHI DIGIT ONE
424 0xF3    0x0A68  # GURMUKHI DIGIT TWO
425 0xF4    0x0A69  # GURMUKHI DIGIT THREE
426 0xF5    0x0A6A  # GURMUKHI DIGIT FOUR
427 0xF6    0x0A6B  # GURMUKHI DIGIT FIVE
428 0xF7    0x0A6C  # GURMUKHI DIGIT SIX
429 0xF8    0x0A6D  # GURMUKHI DIGIT SEVEN
430 0xF9    0x0A6E  # GURMUKHI DIGIT EIGHT
431 0xFA    0x0A6F  # GURMUKHI DIGIT NINE