Browse Source

Unicode Emoji 11.0.0

master
Reece H. Dunn 7 years ago
parent
commit
22457d74b2
4 changed files with 28 additions and 23 deletions
  1. 2
    0
      CHANGELOG.md
  2. 2
    2
      README.md
  3. 2
    2
      configure.ac
  4. 22
    19
      src/proplist.c

+ 2
- 0
CHANGELOG.md View File

@@ -3,6 +3,8 @@
## (In Development)

* Make the ispunct ctype compatibility implementation conformant.
* Update to Unicode Character Data 11.0.0.
* Update to Unicode Emoji 11.0.

## 10.0.0 - 2017-06-25


+ 2
- 2
README.md View File

@@ -17,8 +17,8 @@ this information within a C or C++ program.

The project uses and supports the following sources of Unicode codepoint data:

* [Unicode Character Database](http://www.unicode.org/Public/10.0.0/ucd/) 10.0.0
* [Unicode Emoji](http://www.unicode.org/Public/emoji/5.0/) 5.0 (UTR #51)
* [Unicode Character Database](http://www.unicode.org/Public/11.0.0/ucd/) 11.0.0
* [Unicode Emoji](http://www.unicode.org/Public/emoji/11.0/) 11.0 (UTR #51)
* [ConScript Unicode Registry](http://www.evertype.com/standards/csur/)

## Build Dependencies

+ 2
- 2
configure.ac View File

@@ -42,10 +42,10 @@ AC_ARG_WITH([unicode-version],
AC_SUBST(UCD_VERSION)

AC_ARG_WITH([emoji-version],
[AS_HELP_STRING([--with-emoji-version], [Unicode emoji version to support @<:@default=5.0@:>@])],
[AS_HELP_STRING([--with-emoji-version], [Unicode emoji version to support @<:@default=11.0@:>@])],
[AS_IF([test x"$withval" != x],
[EMOJI_VERSION="$withval"])],
[EMOJI_VERSION="5.0"])
[EMOJI_VERSION="11.0"])

AC_SUBST(EMOJI_VERSION)


+ 22
- 19
src/proplist.c View File

@@ -47,7 +47,7 @@ static ucd_property properties_Cf(codepoint_t c)
break;
case 0x2000:
if (c == 0x200C) return UCD_PROPERTY_JOIN_CONTROL | UCD_PROPERTY_OTHER_GRAPHEME_EXTEND;
if (c == 0x200D) return UCD_PROPERTY_JOIN_CONTROL;
if (c == 0x200D) return UCD_PROPERTY_JOIN_CONTROL | UCD_PROPERTY_EMOJI_COMPONENT;
if (c >= 0x200E && c <= 0x200F) return UCD_PROPERTY_BIDI_CONTROL | UCD_PROPERTY_PATTERN_WHITE_SPACE;
if (c >= 0x202A && c <= 0x202E) return UCD_PROPERTY_BIDI_CONTROL;
if (c >= 0x2061 && c <= 0x2064) return UCD_PROPERTY_OTHER_MATH;
@@ -60,7 +60,7 @@ static ucd_property properties_Cf(codepoint_t c)
break;
case 0x0E0000:
if (c == 0x0E0001) return UCD_PROPERTY_DEPRECATED;
if (c >= 0x0E0020 && c <= 0x0E007F) return UCD_PROPERTY_OTHER_GRAPHEME_EXTEND;
if (c >= 0x0E0020 && c <= 0x0E007F) return UCD_PROPERTY_OTHER_GRAPHEME_EXTEND | UCD_PROPERTY_EMOJI_COMPONENT;
break;
}
return 0;
@@ -596,6 +596,12 @@ static ucd_property properties_Mc(codepoint_t c)
return UCD_PROPERTY_OTHER_ALPHABETIC;
}

static ucd_property properties_Me(codepoint_t c)
{
if (c == 0x20E3) return UCD_PROPERTY_EMOJI_COMPONENT;
return 0;
}

static ucd_property properties_Mn(codepoint_t c)
{
switch (c & 0xFFFFFF00)
@@ -902,7 +908,8 @@ static ucd_property properties_Mn(codepoint_t c)
if (c == 0xFB1E) return UCD_PROPERTY_DIACRITIC | UCD_PROPERTY_OTHER_ALPHABETIC;
break;
case 0xFE00:
if (c >= 0xFE00 && c <= 0xFE0F) return UCD_PROPERTY_VARIATION_SELECTOR;
if (c >= 0xFE00 && c <= 0xFE0E) return UCD_PROPERTY_VARIATION_SELECTOR;
if (c == 0xFE0F) return UCD_PROPERTY_VARIATION_SELECTOR | UCD_PROPERTY_EMOJI_COMPONENT;
if (c >= 0xFE20 && c <= 0xFE2F) return UCD_PROPERTY_DIACRITIC;
break;
case 0x010200:
@@ -1682,6 +1689,7 @@ static ucd_property properties_So_002600(codepoint_t c)
break;
case 0x2650:
if (c <= 0x2653) return UCD_PROPERTY_EMOJI | UCD_PROPERTY_EMOJI_PRESENTATION;
if (c == 0x265F) return UCD_PROPERTY_EMOJI;
break;
case 0x2660:
if (c == 0x2606) return UCD_PROPERTY_OTHER_MATH;
@@ -1694,6 +1702,7 @@ static ucd_property properties_So_002600(codepoint_t c)
break;
case 0x2670:
if (c == 0x267B) return UCD_PROPERTY_EMOJI;
if (c == 0x267E) return UCD_PROPERTY_EMOJI;
if (c == 0x267F) return UCD_PROPERTY_EMOJI | UCD_PROPERTY_EMOJI_PRESENTATION;
break;
case 0x2690:
@@ -1998,29 +2007,22 @@ static ucd_property properties_So(codepoint_t c)
if (c >= 0x01F6EB && c <= 0x01F6EC) return UCD_PROPERTY_EMOJI | UCD_PROPERTY_EMOJI_PRESENTATION;
if (c == 0x01F6F0) return UCD_PROPERTY_EMOJI;
if (c == 0x01F6F3) return UCD_PROPERTY_EMOJI;
if (c >= 0x01F6F4 && c <= 0x01F6F8) return UCD_PROPERTY_EMOJI | UCD_PROPERTY_EMOJI_PRESENTATION;
if (c >= 0x01F6F4 && c <= 0x01F6F9) return UCD_PROPERTY_EMOJI | UCD_PROPERTY_EMOJI_PRESENTATION;
break;
case 0x01F900:
if (c <= 0x01F90B) return 0;
if (c >= 0x01F918 && c <= 0x01F91C) return UCD_PROPERTY_EMOJI | UCD_PROPERTY_EMOJI_PRESENTATION | UCD_PROPERTY_EMOJI_MODIFIER_BASE;
if (c >= 0x01F910 && c <= 0x01F91D) return UCD_PROPERTY_EMOJI | UCD_PROPERTY_EMOJI_PRESENTATION;
if (c >= 0x01F91E && c <= 0x01F91F) return UCD_PROPERTY_EMOJI | UCD_PROPERTY_EMOJI_PRESENTATION | UCD_PROPERTY_EMOJI_MODIFIER_BASE;
if (c == 0x01F926) return UCD_PROPERTY_EMOJI | UCD_PROPERTY_EMOJI_PRESENTATION | UCD_PROPERTY_EMOJI_MODIFIER_BASE;
if (c >= 0x01F920 && c <= 0x01F92F) return UCD_PROPERTY_EMOJI | UCD_PROPERTY_EMOJI_PRESENTATION;
if (c >= 0x01F930 && c <= 0x01F932) return UCD_PROPERTY_EMOJI | UCD_PROPERTY_EMOJI_PRESENTATION | UCD_PROPERTY_EMOJI_MODIFIER_BASE;
if (c >= 0x01F930 && c <= 0x01F939) return UCD_PROPERTY_EMOJI | UCD_PROPERTY_EMOJI_PRESENTATION | UCD_PROPERTY_EMOJI_MODIFIER_BASE;
if (c == 0x01F93B) return 0;
if (c >= 0x01F93A && c <= 0x01F93C) return UCD_PROPERTY_EMOJI | UCD_PROPERTY_EMOJI_PRESENTATION;
if (c >= 0x01F933 && c <= 0x01F93E) return UCD_PROPERTY_EMOJI | UCD_PROPERTY_EMOJI_PRESENTATION | UCD_PROPERTY_EMOJI_MODIFIER_BASE;
if (c >= 0x01F93D && c <= 0x01F93E) return UCD_PROPERTY_EMOJI | UCD_PROPERTY_EMOJI_PRESENTATION | UCD_PROPERTY_EMOJI_MODIFIER_BASE;
if (c == 0x01F946) return 0;
if (c >= 0x01F940 && c <= 0x01F94B) return UCD_PROPERTY_EMOJI | UCD_PROPERTY_EMOJI_PRESENTATION;
if (c == 0x01F94C) return UCD_PROPERTY_EMOJI | UCD_PROPERTY_EMOJI_PRESENTATION;
if (c >= 0x01F950 && c <= 0x01F95E) return UCD_PROPERTY_EMOJI | UCD_PROPERTY_EMOJI_PRESENTATION;
if (c >= 0x01F95F && c <= 0x01F96B) return UCD_PROPERTY_EMOJI | UCD_PROPERTY_EMOJI_PRESENTATION;
if (c >= 0x01F980 && c <= 0x01F991) return UCD_PROPERTY_EMOJI | UCD_PROPERTY_EMOJI_PRESENTATION;
if (c >= 0x01F992 && c <= 0x01F997) return UCD_PROPERTY_EMOJI | UCD_PROPERTY_EMOJI_PRESENTATION;
if (c == 0x01F9C0) return UCD_PROPERTY_EMOJI | UCD_PROPERTY_EMOJI_PRESENTATION;
if (c >= 0x01F9B0 && c <= 0x01F9B3) return UCD_PROPERTY_EMOJI | UCD_PROPERTY_EMOJI_PRESENTATION | UCD_PROPERTY_EMOJI_COMPONENT;
if (c >= 0x01F9B5 && c <= 0x01F9B6) return UCD_PROPERTY_EMOJI | UCD_PROPERTY_EMOJI_PRESENTATION | UCD_PROPERTY_EMOJI_MODIFIER_BASE;
if (c >= 0x01F9B8 && c <= 0x01F9B9) return UCD_PROPERTY_EMOJI | UCD_PROPERTY_EMOJI_PRESENTATION | UCD_PROPERTY_EMOJI_MODIFIER_BASE;
if (c >= 0x01F9D1 && c <= 0x01F9DD) return UCD_PROPERTY_EMOJI | UCD_PROPERTY_EMOJI_PRESENTATION | UCD_PROPERTY_EMOJI_MODIFIER_BASE;
if (c >= 0x01F9D0 && c <= 0x01F9E6) return UCD_PROPERTY_EMOJI | UCD_PROPERTY_EMOJI_PRESENTATION;
return 0;
return UCD_PROPERTY_EMOJI | UCD_PROPERTY_EMOJI_PRESENTATION;
}
return 0;
}
@@ -2043,6 +2045,7 @@ ucd_property ucd_properties(codepoint_t c, ucd_category category)
case UCD_CATEGORY_Lo: return properties_Lo(c) | properties_Lo_ideographic(c);
case UCD_CATEGORY_Lu: return properties_Lu(c);
case UCD_CATEGORY_Mc: return properties_Mc(c);
case UCD_CATEGORY_Me: return properties_Me(c);
case UCD_CATEGORY_Mn: return properties_Mn(c);
case UCD_CATEGORY_Nd: return properties_Nd(c);
case UCD_CATEGORY_Nl: return properties_Nl(c);
@@ -2061,6 +2064,6 @@ ucd_property ucd_properties(codepoint_t c, ucd_category category)
case UCD_CATEGORY_Zl: return UCD_PROPERTY_WHITE_SPACE | UCD_PROPERTY_PATTERN_WHITE_SPACE;
case UCD_CATEGORY_Zp: return UCD_PROPERTY_WHITE_SPACE | UCD_PROPERTY_PATTERN_WHITE_SPACE;
case UCD_CATEGORY_Zs: return properties_Zs(c);
default: return 0; /* Co Cs Ii Lt Me */
default: return 0; /* Co Cs Ii Lt */
};
}

Loading…
Cancel
Save