ICU-1278 upgrade to Unicode 3.1.1 SpecialCasing.txt

X-SVN-Rev: 6269
This commit is contained in:
Markus Scherer 2001-10-16 23:54:24 +00:00
parent f07ba50f9d
commit 5cc655d4a8
2 changed files with 162 additions and 80 deletions

View file

@ -1,4 +1,4 @@
# SpecialCasing-2.txt
# SpecialCasing-5.txt
#
# Special Casing Properties
#
@ -6,46 +6,53 @@
# It contains additional information about the casing of Unicode characters.
# (For compatibility, the UnicodeData.txt file only contains case mappings for
# characters where they are 1-1, and does not have locale-specific mappings.)
# These are informative character properties.
#
# Send comments to mark@unicode.org
# For more information, see
# UTR #21 Case Mappings, at http://www.unicode.org/unicode/reports/tr21/
#
# ================================================================================
# Format
# ================================================================================
# The entries in this file are in the following machine-readable format:
#
# <entry> := <case_mapping> <condition_list>? (<s>* "#" <comment>)?
# <code>; <lower> ; <title> ; <upper> ; (<condition_list> ;)? # <comment>
#
# <case_mapping> := <source> <sep> <lower> <sep> <title> <sep> <upper> <sep>
# <code>, <lower>, <title>, and <upper> provide character values in hex. If there is more than
# one character, they are separated by spaces.
#
# <source> := <code_point>
# <sep> := <s>* ";" <s>*
# <lower> := <code_point_list>
# <title> := <code_point_list>
# <upper> := <code_point_list>
# <code_point_list> := <code_point> (<s>+ <code_point>)*
# <code_point> := <hex><hex><hex><hex>
# <hex> := [0-1A-Fa-f]
# <s> := <space>
# The <condition_list> is optional. Where present, it consists of one or more locales or contexts,
# separated by spaces. In these conditions:
# - A condition list overrides the normal behavior if all of the listed conditions are true.
# - Case distinctions in the condition list are not significant.
# - Conditions preceded by "NOT_" represent the negation of the condition.
# - A cased letter is any character with general category = Ll or Lo or Lt
# - An ignorable sequence is a sequence of *zero* or more characters from
# the set {HYPHEN, SOFT HYPHEN, general category = Mn}.
#
# <condition_list> := <locale>? (<s>+ <context>)*
# <locale> := <ISO_3166_code> ( "_" <ISO_639_code> )? ( "_" <variant> )?
# <ISO_3166_code> := 2-letter country code,
# as in http://www.unicode.org/unicode/onlinedat/countries.html
# <ISO_639_code> := 2-letter code,
# as in http://www.unicode.org/unicode/onlinedat/languages.html
# <context> := "FINAL" | "NON_FINAL" | "MODERN" | "NON_MODERN"
# A locale is defined as:
# <locale> := <ISO_639_code> ( "_" <ISO_3166_code> ( "_" <variant> )? )?
# <ISO_3166_code> := 2-letter ISO country code,
# <ISO_639_code> := 2-letter ISO language code
#
# A condition list overrides the normal behavior if any of the listed conditions is true.
# FINAL: The letter is not followed by a letter of category L* (e.g. Ll, Lt, Lu, Lm, or Lo).
# MODERN: The mapping is only used for modern text.
# Conditions preceded by "NON_" represent the negation of the condition
# A context is a locale or one of the following choices:
# CFINAL: The character is not followed by a sequence consisting of
# an ignorable sequence and then a cased letter.
# CINITIAL: The character is not preceded by a sequence consisting of
# a cased letter and an ignorable sequence.
# FINAL_SIGMA: CFINAL and NOT_CINITIAL
# TYPE_i: The character is "i" (0069), "j" (006A),
# or has a canonical decomposition that begins with an "i" or "j"
# but has no combining characters above (i.e., i-ogonek (012F),
# i-tilde-below (1E2D), or i-dot-below (1ECB)).
# AFTER_i: The last preceding base character was TYPE_i, and
# no combining character class 230 (above) has intervened.
# MORE_ABOVE: The character is followed by one or more characters of
# combining class 230 (ABOVE) in the combining character sequence
#
# New contexts may be added in the future.
# Parsers of this file must be prepared to deal with that situation.
# Additional whitespace around elements is optional. Blank lines are ignored in parsing.
# On any line, all text following "#" is a comment, and are ignored in parsing.
# Other than as used to separate elements, spaces are to be ignored.
#
# Parsers of this file must be prepared to deal future additions to this format:
# * Additional contexts
# * Additional fields
# ================================================================================
# ================================================================================
@ -76,7 +83,7 @@ FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH
# No corresponding uppercase precomposed character
0149; 0149; 02BC 006E; 02BC 004E; # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
0149; 0149; 02BC 004E; 02BC 004E; # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
0390; 0390; 0399 0308 0301; 0399 0308 0301; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
03B0; 03B0; 03A5 0308 0301; 03A5 0308 0301; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
01F0; 01F0; 004A 030C; 004A 030C; # LATIN SMALL LETTER J WITH CARON
@ -191,7 +198,7 @@ FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH
# Special case for final form of sigma
03A3; 03C2; 03A3; 03A3; FINAL; # GREEK CAPITAL LETTER SIGMA
03A3; 03C2; 03A3; 03A3; FINAL_SIGMA; # GREEK CAPITAL LETTER SIGMA
# Note: the following cases for non-final are already in the UnicodeData file.
@ -199,21 +206,55 @@ FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH
# 03C3; 03C3; 03A3; 03A3; # GREEK SMALL LETTER SIGMA
# 03C2; 03C2; 03A3; 03A3; # GREEK SMALL LETTER FINAL SIGMA
# Note: the following cases are not included, since they would normalize in lowercasing
# Note: the following cases are not included, since they would case-fold in lowercasing
# 03C3; 03C2; 03A3; 03A3; FINAL; # GREEK SMALL LETTER SIGMA
# 03C2; 03C3; 03A3; 03A3; NON_FINAL; # GREEK SMALL LETTER FINAL SIGMA
# 03C3; 03C2; 03A3; 03A3; FINAL_SIGMA; # GREEK SMALL LETTER SIGMA
# 03C2; 03C3; 03A3; 03A3; NOT_FINAL_SIGMA; # GREEK SMALL LETTER FINAL SIGMA
# ================================================================================
# Locale-sensitive mappings
# ================================================================================
# Turkish
# Lithuanian
0049; 0131; 0049; 0049; TR; # LATIN CAPITAL LETTER I
0069; 0069; 0130; 0130; TR; # LATIN SMALL LETTER I
# Lithuanian retains the dot in a lowercase i when followed by accents.
# Remove DOT ABOVE after "i" with upper or titlecase
0307; 0307; ; ; lt AFTER_i # COMBINING DOT ABOVE
# Introduce an explicit dot above when lowercasing capital I's and J's
# whenever there are more accents above
# (of the accents used in Lithuanian: grave, acute, tilde above, and ogonek)
0049; 0069 0307; 0049; 0049; lt MORE_ABOVE # LATIN CAPITAL LETTER I
004A; 006A 0307; 004A; 004A; lt MORE_ABOVE # LATIN CAPITAL LETTER J
012E; 012F 0307; 012E; 012E; lt MORE_ABOVE # LATIN CAPITAL LETTER I WITH OGONEK
00CC; 0069 0307 0300; 00CC; 00CC; lt # LATIN CAPITAL LETTER I WITH GRAVE
00CD; 0069 0307 0301; 00CD; 00CD; lt # LATIN CAPITAL LETTER I WITH ACUTE
0128; 0069 0307 0303; 0128; 0128; lt # LATIN CAPITAL LETTER I WITH TILDE
# ================================================================================
# Turkish and Azeri
# I and i-dotless; I-dot and i are case pairs in Turkish and Azeri
# The following rules handle those cases.
# Remove spurious dot above small i's when lowercasing, if there are no more accents above:
0307; ; 0307; 0307; tr AFTER_i NOT_MORE_ABOVE # COMBINING DOT ABOVE
0307; ; 0307; 0307; az AFTER_i NOT_MORE_ABOVE # COMBINING DOT ABOVE
# Fix case pairs
0049; 0131; 0049; 0049; tr; # LATIN CAPITAL LETTER I
0069; 0069; 0130; 0130; tr; # LATIN SMALL LETTER I
0049; 0131; 0049; 0049; az; # LATIN CAPITAL LETTER I
0069; 0069; 0130; 0130; az; # LATIN SMALL LETTER I
# Note: the following cases are already in the UnicodeData file.
# 0131; 0131; 0049; 0049; TR; # LATIN SMALL LETTER DOTLESS I
# 0130; 0069; 0130; 0130; TR; # LATIN CAPITAL LETTER I WITH DOT ABOVE
# 0131; 0131; 0049; 0049; tr; # LATIN SMALL LETTER DOTLESS I
# 0130; 0069; 0130; 0130; tr; # LATIN CAPITAL LETTER I WITH DOT ABOVE

View file

@ -1,4 +1,4 @@
# SpecialCasing-2.txt
# SpecialCasing-5.txt
#
# Special Casing Properties
#
@ -6,46 +6,53 @@
# It contains additional information about the casing of Unicode characters.
# (For compatibility, the UnicodeData.txt file only contains case mappings for
# characters where they are 1-1, and does not have locale-specific mappings.)
# These are informative character properties.
#
# Send comments to mark@unicode.org
# For more information, see
# UTR #21 Case Mappings, at http://www.unicode.org/unicode/reports/tr21/
#
# ================================================================================
# Format
# ================================================================================
# The entries in this file are in the following machine-readable format:
#
# <entry> := <case_mapping> <condition_list>? (<s>* "#" <comment>)?
# <code>; <lower> ; <title> ; <upper> ; (<condition_list> ;)? # <comment>
#
# <case_mapping> := <source> <sep> <lower> <sep> <title> <sep> <upper> <sep>
# <code>, <lower>, <title>, and <upper> provide character values in hex. If there is more than
# one character, they are separated by spaces.
#
# <source> := <code_point>
# <sep> := <s>* ";" <s>*
# <lower> := <code_point_list>
# <title> := <code_point_list>
# <upper> := <code_point_list>
# <code_point_list> := <code_point> (<s>+ <code_point>)*
# <code_point> := <hex><hex><hex><hex>
# <hex> := [0-1A-Fa-f]
# <s> := <space>
# The <condition_list> is optional. Where present, it consists of one or more locales or contexts,
# separated by spaces. In these conditions:
# - A condition list overrides the normal behavior if all of the listed conditions are true.
# - Case distinctions in the condition list are not significant.
# - Conditions preceded by "NOT_" represent the negation of the condition.
# - A cased letter is any character with general category = Ll or Lo or Lt
# - An ignorable sequence is a sequence of *zero* or more characters from
# the set {HYPHEN, SOFT HYPHEN, general category = Mn}.
#
# <condition_list> := <locale>? (<s>+ <context>)*
# <locale> := <ISO_3166_code> ( "_" <ISO_639_code> )? ( "_" <variant> )?
# <ISO_3166_code> := 2-letter country code,
# as in http://www.unicode.org/unicode/onlinedat/countries.html
# <ISO_639_code> := 2-letter code,
# as in http://www.unicode.org/unicode/onlinedat/languages.html
# <context> := "FINAL" | "NON_FINAL" | "MODERN" | "NON_MODERN"
# A locale is defined as:
# <locale> := <ISO_639_code> ( "_" <ISO_3166_code> ( "_" <variant> )? )?
# <ISO_3166_code> := 2-letter ISO country code,
# <ISO_639_code> := 2-letter ISO language code
#
# A condition list overrides the normal behavior if any of the listed conditions is true.
# FINAL: The letter is not followed by a letter of category L* (e.g. Ll, Lt, Lu, Lm, or Lo).
# MODERN: The mapping is only used for modern text.
# Conditions preceded by "NON_" represent the negation of the condition
# A context is a locale or one of the following choices:
# CFINAL: The character is not followed by a sequence consisting of
# an ignorable sequence and then a cased letter.
# CINITIAL: The character is not preceded by a sequence consisting of
# a cased letter and an ignorable sequence.
# FINAL_SIGMA: CFINAL and NOT_CINITIAL
# TYPE_i: The character is "i" (0069), "j" (006A),
# or has a canonical decomposition that begins with an "i" or "j"
# but has no combining characters above (i.e., i-ogonek (012F),
# i-tilde-below (1E2D), or i-dot-below (1ECB)).
# AFTER_i: The last preceding base character was TYPE_i, and
# no combining character class 230 (above) has intervened.
# MORE_ABOVE: The character is followed by one or more characters of
# combining class 230 (ABOVE) in the combining character sequence
#
# New contexts may be added in the future.
# Parsers of this file must be prepared to deal with that situation.
# Additional whitespace around elements is optional. Blank lines are ignored in parsing.
# On any line, all text following "#" is a comment, and are ignored in parsing.
# Other than as used to separate elements, spaces are to be ignored.
#
# Parsers of this file must be prepared to deal future additions to this format:
# * Additional contexts
# * Additional fields
# ================================================================================
# ================================================================================
@ -76,7 +83,7 @@ FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH
# No corresponding uppercase precomposed character
0149; 0149; 02BC 006E; 02BC 004E; # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
0149; 0149; 02BC 004E; 02BC 004E; # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
0390; 0390; 0399 0308 0301; 0399 0308 0301; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
03B0; 03B0; 03A5 0308 0301; 03A5 0308 0301; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
01F0; 01F0; 004A 030C; 004A 030C; # LATIN SMALL LETTER J WITH CARON
@ -191,7 +198,7 @@ FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH
# Special case for final form of sigma
03A3; 03C2; 03A3; 03A3; FINAL; # GREEK CAPITAL LETTER SIGMA
03A3; 03C2; 03A3; 03A3; FINAL_SIGMA; # GREEK CAPITAL LETTER SIGMA
# Note: the following cases for non-final are already in the UnicodeData file.
@ -199,21 +206,55 @@ FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH
# 03C3; 03C3; 03A3; 03A3; # GREEK SMALL LETTER SIGMA
# 03C2; 03C2; 03A3; 03A3; # GREEK SMALL LETTER FINAL SIGMA
# Note: the following cases are not included, since they would normalize in lowercasing
# Note: the following cases are not included, since they would case-fold in lowercasing
# 03C3; 03C2; 03A3; 03A3; FINAL; # GREEK SMALL LETTER SIGMA
# 03C2; 03C3; 03A3; 03A3; NON_FINAL; # GREEK SMALL LETTER FINAL SIGMA
# 03C3; 03C2; 03A3; 03A3; FINAL_SIGMA; # GREEK SMALL LETTER SIGMA
# 03C2; 03C3; 03A3; 03A3; NOT_FINAL_SIGMA; # GREEK SMALL LETTER FINAL SIGMA
# ================================================================================
# Locale-sensitive mappings
# ================================================================================
# Turkish
# Lithuanian
0049; 0131; 0049; 0049; TR; # LATIN CAPITAL LETTER I
0069; 0069; 0130; 0130; TR; # LATIN SMALL LETTER I
# Lithuanian retains the dot in a lowercase i when followed by accents.
# Remove DOT ABOVE after "i" with upper or titlecase
0307; 0307; ; ; lt AFTER_i # COMBINING DOT ABOVE
# Introduce an explicit dot above when lowercasing capital I's and J's
# whenever there are more accents above
# (of the accents used in Lithuanian: grave, acute, tilde above, and ogonek)
0049; 0069 0307; 0049; 0049; lt MORE_ABOVE # LATIN CAPITAL LETTER I
004A; 006A 0307; 004A; 004A; lt MORE_ABOVE # LATIN CAPITAL LETTER J
012E; 012F 0307; 012E; 012E; lt MORE_ABOVE # LATIN CAPITAL LETTER I WITH OGONEK
00CC; 0069 0307 0300; 00CC; 00CC; lt # LATIN CAPITAL LETTER I WITH GRAVE
00CD; 0069 0307 0301; 00CD; 00CD; lt # LATIN CAPITAL LETTER I WITH ACUTE
0128; 0069 0307 0303; 0128; 0128; lt # LATIN CAPITAL LETTER I WITH TILDE
# ================================================================================
# Turkish and Azeri
# I and i-dotless; I-dot and i are case pairs in Turkish and Azeri
# The following rules handle those cases.
# Remove spurious dot above small i's when lowercasing, if there are no more accents above:
0307; ; 0307; 0307; tr AFTER_i NOT_MORE_ABOVE # COMBINING DOT ABOVE
0307; ; 0307; 0307; az AFTER_i NOT_MORE_ABOVE # COMBINING DOT ABOVE
# Fix case pairs
0049; 0131; 0049; 0049; tr; # LATIN CAPITAL LETTER I
0069; 0069; 0130; 0130; tr; # LATIN SMALL LETTER I
0049; 0131; 0049; 0049; az; # LATIN CAPITAL LETTER I
0069; 0069; 0130; 0130; az; # LATIN SMALL LETTER I
# Note: the following cases are already in the UnicodeData file.
# 0131; 0131; 0049; 0049; TR; # LATIN SMALL LETTER DOTLESS I
# 0130; 0069; 0130; 0130; TR; # LATIN CAPITAL LETTER I WITH DOT ABOVE
# 0131; 0131; 0049; 0049; tr; # LATIN SMALL LETTER DOTLESS I
# 0130; 0069; 0130; 0130; tr; # LATIN CAPITAL LETTER I WITH DOT ABOVE