freebsd-dev/share/i18n/csmapper/APPLE/UCS%GUJARATI.src
Gabor Kovesdan ad30f8e79b Add the BSD-licensed Citrus iconv to the base system with default off
setting. It can be built by setting the WITH_ICONV knob. While this
knob is unset, the library part, the binaries, the header file and
the metadata files will not be built or installed so it makes no impact
on the system if left turned off.

This work is based on the iconv implementation in NetBSD but a great
number of improvements and feature additions have been included:

- Some utilities have been added. There is a conversion table generator,
  which can compare conversion tables to reference data generated by
  GNU libiconv. This helps ensuring conversion compatibility.
- UTF-16 surrogate support and some endianness issues have been fixed.
- The rather chaotic Makefiles to build metadata have been refactored
  and cleaned up, now it is easy to read and it is also easier to add
  support for new encodings.
- A bunch of new encodings and encoding aliases have been added.
- Support for 1->2, 1->3 and 1->4 mappings, which is needed for
  transliterating with flying accents as GNU does, like "u.
- Lots of warnings have been fixed, the major part of the code is
  now WARNS=6 clean.
- New section 1 and section 5 manual pages have been added.
- Some GNU-specific calls have been implemented:
  iconvlist(), iconvctl(), iconv_canonicalize(), iconv_open_into()
- Support for GNU's //IGNORE suffix has been added.
- The "-" argument for stdin is now recognized in iconv(1) as per POSIX.
- The Big5 conversion module has been fixed.
- The iconv.h header files is supposed to be compatible with the
  GNU version, i.e. sources should build with base iconv.h and
  GNU libiconv. It also includes a macro magic to deal with the
  char ** and const char ** incompatibility.
- GNU compatibility: "" or "char" means the current local
  encoding in use
- Various cleanups and style(9) fixes.

Approved by:	delphij (mentor)
Obtained from:	The NetBSD Project
Sponsored by:	Google Summer of Code 2009
2011-02-25 00:04:39 +00:00

280 lines
8.7 KiB
Plaintext

# $FreeBSD$
TYPE ROWCOL
NAME UCS/GUJARATI
SRC_ZONE 0x0000-0xFFFF
OOB_MODE INVALID
DST_INVALID 0x100
DST_UNIT_BITS 16
#=======================================================================
# File name: GUJARATI.TXT
#
# Contents: Map (external version) from Mac OS Gujarati
# encoding to Unicode 2.1 and later.
#
# Copyright: (c) 1997-2002, 2005 by Apple Computer, Inc., all rights
# reserved.
#
# Contact: charsets@apple.com
#
# Changes:
#
# c02 2005-Apr-05 Update header comments. Matches internal xml
# <c1.1> and Text Encoding Converter 2.0.
# b3,c1 2002-Dec-19 Update URLs. Matches internal utom<b1>.
# b02 1999-Sep-22 Update contact e-mail address. Matches
# internal utom<b1>, ufrm<b1>, and Text
# Encoding Converter version 1.5.
# n02 1998-Feb-05 First version; matches internal utom<n4>,
# ufrm<n5>.
#
# 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 Computer, Inc. ("Apple") makes no warranty or representation,
# either express or implied, with respect to this document and the
# included data, its 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 included data.
#
# 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 Gujarati code or code sequence
# (in hex as 0xNN or 0xNN+0xNN)
# Column #2 is the corresponding Unicode or Unicode sequence
# (in hex as 0xNNNN or 0xNNNN+0xNNNN).
# Column #3 is a comment containing the Unicode name or sequence
# of names. In some cases an additional comment follows the
# Unicode name(s).
#
# The entries are in two sections. The first section is for pairs of
# Mac OS Gujarati code points that must be mapped in a special way.
# The second section maps individual code points.
#
# Within each section, the entries are in Mac OS Gujarati code order.
#
# Control character mappings are not shown in this table, following
# the conventions of the standard UTC mapping tables. However, the
# Mac OS Gujarati character set uses the standard control characters
# at 0x00-0x1F and 0x7F.
#
# Notes on Mac OS Gujarati:
# -------------------------
#
# This is a legacy Mac OS encoding; in the Mac OS X Carbon and Cocoa
# environments, it is only supported via transcoding to and from
# Unicode.
#
# Mac OS Gujarati is based on IS 13194:1991 (ISCII-91), with the
# addition of several punctuation and symbol characters. However,
# Mac OS Gujarati does not support the ATR (attribute) mechanism of
# ISCII-91.
#
# 1. ISCII-91 features in Mac OS Gujarati include:
#
# a) Overloading of nukta
#
# In addition to using the nukta (0xE9) like a combining dot below,
# nukta is overloaded to function as a general character modifier.
# In this role, certain code points followed by 0xE9 are treated as
# a two-byte code point representing a character which may be
# rather different than the characters represented by either of
# the code points alone. For example, the character GUJARATI OM
# (U+0AD0) is represented in ISCII-91 as candrabindu + nukta.
#
# b) Explicit halant and soft halant
#
# A double halant (0xE8 + 0xE8) constitutes an "explicit halant",
# which will always appear as a halant instead of causing formation
# of a ligature or half-form consonant.
#
# Halant followed by nukta (0xE8 + 0xE9) constitutes a "soft
# halant", which prevents formation of a ligature and instead
# retains the half-form of the first consonant.
#
# c) Invisible consonant
#
# The byte 0xD9 (called INV in ISCII-91) is an invisible consonant:
# It behaves like a consonant but has no visible appearance. It is
# intended to be used (often in combination with halant) to display
# dependent forms in isolation, such as the RA forms or consonant
# half-forms.
#
# d) Extensions for Vedic, etc.
#
# The byte 0xF0 (called EXT in ISCII-91) followed by any byte in
# the range 0xA1-0xEE constitutes a two-byte code point which can
# be used to represent additional characters for Vedic (or other
# extensions); 0xF0 followed by any other byte value constitutes
# malformed text. Mac OS Gujarati supports this mechanism, but
# does not currently map any of these two-byte code points to
# anything.
#
# 2. Mac OS Gujarati additions
#
# Mac OS Gujarati adds characters using the code points
# 0x80-0x8A and 0x90.
#
# 3. Unused code points
#
# The following code points are currently unused, and are not shown
# here: 0x8B-0x8F, 0x91-0xA0, 0xAB, 0xAF, 0xC7, 0xCE, 0xD0, 0xD3,
# 0xE0, 0xE4, 0xEB-0xEF, 0xFB-0xFF. In addition, 0xF0 is not shown
# here, but it has a special function as described above.
#
# Unicode mapping issues and notes:
# ---------------------------------
#
# 1. Mapping the byte pairs
#
# If one of the following byte values is encountered when mapping
# Mac OS Gujarati text - xA1, xAA, xDF, or 0xE8 - then the next
# byte (if there is one) should be examined. If the next byte is
# 0xE9 - or also 0xE8, if the first byte was 0xE8 - then the byte
# pair should be mapped using the first section of the mapping
# table below. Otherwise, each byte should be mapped using the
# second section of the mapping table below.
#
# - The Unicode Standard, Version 2.0, specifies how explicit
# halant and soft halant should be represented in Unicode;
# these mappings are used below.
#
# If the byte value 0xF0 is encountered when mapping Mac OS
# Gujarati text, then the next byte should be examined. If there
# is no next byte (e.g. 0xF0 at end of buffer), the mapping
# process should indicate incomplete character. If there is a next
# byte but it is not in the range 0xA1-0xEE, the mapping process
# should indicate malformed text. Otherwise, the mapping process
# should treat the byte pair as a valid two-byte code point with no
# mapping (e.g. map it to QUESTION MARK, REPLACEMENT CHARACTER,
# etc.).
#
# 2. Mapping the invisible consonant
#
# It has been suggested that INV in ISCII-91 should map to ZERO
# WIDTH NON-JOINER in Unicode. However, this causes problems with
# roundtrip fidelity: The ISCII-91 sequences 0xE8+0xE8 and 0xE8+0xD9
# would map to the same sequence of Unicode characters. We have
# instead mapped INV to LEFT-TO-RIGHT MARK, which avoids these
# problems.
#
# Details of mapping changes in each version:
# -------------------------------------------
#
##################
BEGIN_MAP
0x0000 - 0x007F = 0x00 -
0x00A9 = 0x88
0x00AE = 0x89
0x00D7 = 0x80
0x0964 = 0xEA
0x0965 = 0x90
0x0A81 = 0xA1
0x0A82 = 0xA2
0x0A83 = 0xA3
0x0A85 = 0xA4
0x0A86 = 0xA5
0x0A87 = 0xA6
0x0A88 = 0xA7
0x0A89 = 0xA8
0x0A8A = 0xA9
0x0A8B = 0xAA
0x0A8D = 0xAE
0x0A8F = 0xAC
0x0A90 = 0xAD
0x0A91 = 0xB2
0x0A93 = 0xB0
0x0A94 = 0xB1
0x0A95 = 0xB3
0x0A96 = 0xB4
0x0A97 = 0xB5
0x0A98 = 0xB6
0x0A99 = 0xB7
0x0A9A = 0xB8
0x0A9B = 0xB9
0x0A9C = 0xBA
0x0A9D = 0xBB
0x0A9E = 0xBC
0x0A9F = 0xBD
0x0AA0 = 0xBE
0x0AA1 = 0xBF
0x0AA2 = 0xC0
0x0AA3 = 0xC1
0x0AA4 = 0xC2
0x0AA5 = 0xC3
0x0AA6 = 0xC4
0x0AA7 = 0xC5
0x0AA8 = 0xC6
0x0AAA = 0xC8
0x0AAB = 0xC9
0x0AAC = 0xCA
0x0AAD = 0xCB
0x0AAE = 0xCC
0x0AAF = 0xCD
0x0AB0 = 0xCF
0x0AB2 = 0xD1
0x0AB3 = 0xD2
0x0AB5 = 0xD4
0x0AB6 = 0xD5
0x0AB7 = 0xD6
0x0AB8 = 0xD7
0x0AB9 = 0xD8
0x0ABC = 0xE9
0x0ABE = 0xDA
0x0ABF = 0xDB
0x0AC0 = 0xDC
0x0AC1 = 0xDD
0x0AC2 = 0xDE
0x0AC3 = 0xDF
#0x0AC4 = 0xDF+0xE9
0x0AC5 = 0xE3
0x0AC7 = 0xE1
0x0AC8 = 0xE2
0x0AC9 = 0xE7
0x0ACB = 0xE5
0x0ACC = 0xE6
0x0ACD = 0xE8
#0x0ACD+0x200C = 0xE8+0xE8
#0x0ACD+0x200D = 0xE8+0xE9
#0x0AD0 = 0xA1+0xE9
#0x0AE0 = 0xAA+0xE9
0x0AE6 = 0xF1
0x0AE7 = 0xF2
0x0AE8 = 0xF3
0x0AE9 = 0xF4
0x0AEA = 0xF5
0x0AEB = 0xF6
0x0AEC = 0xF7
0x0AED = 0xF8
0x0AEE = 0xF9
0x0AEF = 0xFA
0x200E = 0xD9
0x2013 = 0x82
0x2014 = 0x83
0x2018 = 0x84
0x2019 = 0x85
0x2022 = 0x87
0x2026 = 0x86
0x2122 = 0x8A
0x2212 = 0x81
END_MAP