[autofit] Add blue-zone support for Devanagari.

This essentially moves the Devanagari script from the `Indic' hinter
to the `Latin' hinter.  Thanks to Girish Dalvi
<girish.dalvi@gmail.com> for guidance with blue zone characters!

* src/autofit/afblue.dat: Add blue zone data for Devanagari.

* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.

* src/autofit/afscript.h: Add Devanagari standard characters and
move data out of AF_CONFIG_OPTION_INDIC block.

* src/autofit/afranges.c: Move Devanagari data out of
AF_CONFIG_OPTION_INDIC block.
Move U+20B9, (new) Rupee sign, from Latin to Devanagari.

* src/autofit/afstyles.h: Update Devanagari data; in particular, use
AF_WRITING_SYSTEM_LATIN.
This commit is contained in:
Werner Lemberg 2014-05-01 17:24:19 +02:00
parent 63bef9a588
commit c576bb0d21
7 changed files with 178 additions and 101 deletions

View File

@ -1,3 +1,25 @@
2014-05-01 Werner Lemberg <wl@gnu.org>
[autofit] Add blue-zone support for Devanagari.
This essentially moves the Devanagari script from the `Indic' hinter
to the `Latin' hinter. Thanks to Girish Dalvi
<girish.dalvi@gmail.com> for guidance with blue zone characters!
* src/autofit/afblue.dat: Add blue zone data for Devanagari.
* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
* src/autofit/afscript.h: Add Devanagari standard characters and
move data out of AF_CONFIG_OPTION_INDIC block.
* src/autofit/afranges.c: Move Devanagari data out of
AF_CONFIG_OPTION_INDIC block.
Move U+20B9, (new) Rupee sign, from Latin to Devanagari.
* src/autofit/afstyles.h: Update Devanagari data; in particular, use
AF_WRITING_SYSTEM_LATIN.
2014-05-01 Werner Lemberg <wl@gnu.org> 2014-05-01 Werner Lemberg <wl@gnu.org>
[autofit] Fix handling of neutral blue zones in stems. [autofit] Fix handling of neutral blue zones in stems.

View File

@ -26,15 +26,21 @@
af_blue_strings[] = af_blue_strings[] =
{ {
/* */ /* */
'T', 'H', 'E', 'Z', 'O', 'C', 'Q', 'S', /* THEZOCQS */ '\xD0', '\x91', '\xD0', '\x92', '\xD0', '\x95', '\xD0', '\x9F', '\xD0', '\x97', '\xD0', '\x9E', '\xD0', '\xA1', '\xD0', '\xAD', /* БВЕПЗОСЭ */
'\0', '\0',
'H', 'E', 'Z', 'L', 'O', 'C', 'U', 'S', /* HEZLOCUS */ '\xD0', '\x91', '\xD0', '\x92', '\xD0', '\x95', '\xD0', '\xA8', '\xD0', '\x97', '\xD0', '\x9E', '\xD0', '\xA1', '\xD0', '\xAD', /* БВЕШЗОСЭ */
'\0', '\0',
'f', 'i', 'j', 'k', 'd', 'b', 'h', /* fijkdbh */ '\xD1', '\x85', '\xD0', '\xBF', '\xD0', '\xBD', '\xD1', '\x88', '\xD0', '\xB5', '\xD0', '\xB7', '\xD0', '\xBE', '\xD1', '\x81', /* хпншезос */
'\0', '\0',
'x', 'z', 'r', 'o', 'e', 's', 'c', /* xzroesc */ '\xD1', '\x80', '\xD1', '\x83', '\xD1', '\x84', /* руф */
'\0', '\0',
'p', 'q', 'g', 'j', 'y', /* pqgjy */ '\xE0', '\xA4', '\x95', '\xE0', '\xA4', '\xAE', '\xE0', '\xA4', '\x85', '\xE0', '\xA4', '\x86', '\xE0', '\xA4', '\xA5', '\xE0', '\xA4', '\xA7', '\xE0', '\xA4', '\xAD', '\xE0', '\xA4', '\xB6', /* क म अ आ थ ध भ श */
'\0',
'\xE0', '\xA4', '\x88', '\xE0', '\xA4', '\x90', '\xE0', '\xA4', '\x93', '\xE0', '\xA4', '\x94', '\xE0', '\xA4', '\xBF', '\xE0', '\xA5', '\x80', '\xE0', '\xA5', '\x8B', '\xE0', '\xA5', '\x8C', /* ई ऐ ओ औ ि ी ो ौ */
'\0',
'\xE0', '\xA4', '\x95', '\xE0', '\xA4', '\xAE', '\xE0', '\xA4', '\x85', '\xE0', '\xA4', '\x86', '\xE0', '\xA4', '\xA5', '\xE0', '\xA4', '\xA7', '\xE0', '\xA4', '\xAD', '\xE0', '\xA4', '\xB6', /* क म अ आ थ ध भ श */
'\0',
'\xE0', '\xA5', '\x81', '\xE0', '\xA5', '\x83', /* ु ृ */
'\0', '\0',
'\xCE', '\x93', '\xCE', '\x92', '\xCE', '\x95', '\xCE', '\x96', '\xCE', '\x98', '\xCE', '\x9F', '\xCE', '\xA9', /* ΓΒΕΖΘΟΩ */ '\xCE', '\x93', '\xCE', '\x92', '\xCE', '\x95', '\xCE', '\x96', '\xCE', '\x98', '\xCE', '\x9F', '\xCE', '\xA9', /* ΓΒΕΖΘΟΩ */
'\0', '\0',
@ -46,19 +52,21 @@
'\0', '\0',
'\xCE', '\xB2', '\xCE', '\xB3', '\xCE', '\xB7', '\xCE', '\xBC', '\xCF', '\x81', '\xCF', '\x86', '\xCF', '\x87', '\xCF', '\x88', /* βγημρφχψ */ '\xCE', '\xB2', '\xCE', '\xB3', '\xCE', '\xB7', '\xCE', '\xBC', '\xCF', '\x81', '\xCF', '\x86', '\xCF', '\x87', '\xCF', '\x88', /* βγημρφχψ */
'\0', '\0',
'\xD0', '\x91', '\xD0', '\x92', '\xD0', '\x95', '\xD0', '\x9F', '\xD0', '\x97', '\xD0', '\x9E', '\xD0', '\xA1', '\xD0', '\xAD', /* БВЕПЗОСЭ */
'\0',
'\xD0', '\x91', '\xD0', '\x92', '\xD0', '\x95', '\xD0', '\xA8', '\xD0', '\x97', '\xD0', '\x9E', '\xD0', '\xA1', '\xD0', '\xAD', /* БВЕШЗОСЭ */
'\0',
'\xD1', '\x85', '\xD0', '\xBF', '\xD0', '\xBD', '\xD1', '\x88', '\xD0', '\xB5', '\xD0', '\xB7', '\xD0', '\xBE', '\xD1', '\x81', /* хпншезос */
'\0',
'\xD1', '\x80', '\xD1', '\x83', '\xD1', '\x84', /* руф */
'\0',
'\xD7', '\x91', '\xD7', '\x93', '\xD7', '\x94', '\xD7', '\x97', '\xD7', '\x9A', '\xD7', '\x9B', '\xD7', '\x9D', '\xD7', '\xA1', /* בדהחךכםס */ '\xD7', '\x91', '\xD7', '\x93', '\xD7', '\x94', '\xD7', '\x97', '\xD7', '\x9A', '\xD7', '\x9B', '\xD7', '\x9D', '\xD7', '\xA1', /* בדהחךכםס */
'\0', '\0',
'\xD7', '\x91', '\xD7', '\x98', '\xD7', '\x9B', '\xD7', '\x9D', '\xD7', '\xA1', '\xD7', '\xA6', /* בטכםסצ */ '\xD7', '\x91', '\xD7', '\x98', '\xD7', '\x9B', '\xD7', '\x9D', '\xD7', '\xA1', '\xD7', '\xA6', /* בטכםסצ */
'\0', '\0',
'\xD7', '\xA7', '\xD7', '\x9A', '\xD7', '\x9F', '\xD7', '\xA3', '\xD7', '\xA5', /* קךןףץ */ '\xD7', '\xA7', '\xD7', '\x9A', '\xD7', '\x9F', '\xD7', '\xA3', '\xD7', '\xA5', /* קךןףץ */
'\0',
'T', 'H', 'E', 'Z', 'O', 'C', 'Q', 'S', /* THEZOCQS */
'\0',
'H', 'E', 'Z', 'L', 'O', 'C', 'U', 'S', /* HEZLOCUS */
'\0',
'f', 'i', 'j', 'k', 'd', 'b', 'h', /* fijkdbh */
'\0',
'x', 'z', 'r', 'o', 'e', 's', 'c', /* xzroesc */
'\0',
'p', 'q', 'g', 'j', 'y', /* pqgjy */
#ifdef AF_CONFIG_OPTION_CJK #ifdef AF_CONFIG_OPTION_CJK
'\0', '\0',
'\xE4', '\xBB', '\x96', '\xE4', '\xBB', '\xAC', '\xE4', '\xBD', '\xA0', '\xE4', '\xBE', '\x86', '\xE5', '\x80', '\x91', '\xE5', '\x88', '\xB0', '\xE5', '\x92', '\x8C', '\xE5', '\x9C', '\xB0', /* 他们你來們到和地 */ '\xE4', '\xBB', '\x96', '\xE4', '\xBB', '\xAC', '\xE4', '\xBD', '\xA0', '\xE4', '\xBE', '\x86', '\xE5', '\x80', '\x91', '\xE5', '\x88', '\xB0', '\xE5', '\x92', '\x8C', '\xE5', '\x9C', '\xB0', /* 他们你來們到和地 */
@ -109,14 +117,21 @@
af_blue_stringsets[] = af_blue_stringsets[] =
{ {
/* */ /* */
{ AF_BLUE_STRING_LATIN_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP }, { AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP },
{ AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM, 0 }, { AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM, 0 },
{ AF_BLUE_STRING_LATIN_SMALL_F_TOP, AF_BLUE_PROPERTY_LATIN_TOP }, { AF_BLUE_STRING_CYRILLIC_SMALL, AF_BLUE_PROPERTY_LATIN_TOP |
{ AF_BLUE_STRING_LATIN_SMALL, AF_BLUE_PROPERTY_LATIN_TOP | AF_BLUE_PROPERTY_LATIN_X_HEIGHT },
AF_BLUE_PROPERTY_LATIN_X_HEIGHT }, { AF_BLUE_STRING_CYRILLIC_SMALL, 0 },
{ AF_BLUE_STRING_LATIN_SMALL, 0 }, { AF_BLUE_STRING_CYRILLIC_SMALL_DESCENDER, 0 },
{ AF_BLUE_STRING_LATIN_SMALL_DESCENDER, 0 }, { AF_BLUE_STRING_MAX, 0 },
{ AF_BLUE_STRING_MAX, 0 }, { AF_BLUE_STRING_DEVANAGARI_TOP, AF_BLUE_PROPERTY_LATIN_TOP },
{ AF_BLUE_STRING_DEVANAGARI_HEAD, AF_BLUE_PROPERTY_LATIN_TOP },
{ AF_BLUE_STRING_DEVANAGARI_BASE, AF_BLUE_PROPERTY_LATIN_TOP |
AF_BLUE_PROPERTY_LATIN_NEUTRAL |
AF_BLUE_PROPERTY_LATIN_X_HEIGHT },
{ AF_BLUE_STRING_DEVANAGARI_BASE, 0 },
{ AF_BLUE_STRING_DEVANAGARI_BOTTOM, 0 },
{ AF_BLUE_STRING_MAX, 0 },
{ AF_BLUE_STRING_GREEK_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP }, { AF_BLUE_STRING_GREEK_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP },
{ AF_BLUE_STRING_GREEK_CAPITAL_BOTTOM, 0 }, { AF_BLUE_STRING_GREEK_CAPITAL_BOTTOM, 0 },
{ AF_BLUE_STRING_GREEK_SMALL_BETA_TOP, AF_BLUE_PROPERTY_LATIN_TOP }, { AF_BLUE_STRING_GREEK_SMALL_BETA_TOP, AF_BLUE_PROPERTY_LATIN_TOP },
@ -125,18 +140,19 @@
{ AF_BLUE_STRING_GREEK_SMALL, 0 }, { AF_BLUE_STRING_GREEK_SMALL, 0 },
{ AF_BLUE_STRING_GREEK_SMALL_DESCENDER, 0 }, { AF_BLUE_STRING_GREEK_SMALL_DESCENDER, 0 },
{ AF_BLUE_STRING_MAX, 0 }, { AF_BLUE_STRING_MAX, 0 },
{ AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP },
{ AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM, 0 },
{ AF_BLUE_STRING_CYRILLIC_SMALL, AF_BLUE_PROPERTY_LATIN_TOP |
AF_BLUE_PROPERTY_LATIN_X_HEIGHT },
{ AF_BLUE_STRING_CYRILLIC_SMALL, 0 },
{ AF_BLUE_STRING_CYRILLIC_SMALL_DESCENDER, 0 },
{ AF_BLUE_STRING_MAX, 0 },
{ AF_BLUE_STRING_HEBREW_TOP, AF_BLUE_PROPERTY_LATIN_TOP | { AF_BLUE_STRING_HEBREW_TOP, AF_BLUE_PROPERTY_LATIN_TOP |
AF_BLUE_PROPERTY_LATIN_LONG }, AF_BLUE_PROPERTY_LATIN_LONG },
{ AF_BLUE_STRING_HEBREW_BOTTOM, 0 }, { AF_BLUE_STRING_HEBREW_BOTTOM, 0 },
{ AF_BLUE_STRING_HEBREW_DESCENDER, 0 }, { AF_BLUE_STRING_HEBREW_DESCENDER, 0 },
{ AF_BLUE_STRING_MAX, 0 }, { AF_BLUE_STRING_MAX, 0 },
{ AF_BLUE_STRING_LATIN_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP },
{ AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM, 0 },
{ AF_BLUE_STRING_LATIN_SMALL_F_TOP, AF_BLUE_PROPERTY_LATIN_TOP },
{ AF_BLUE_STRING_LATIN_SMALL, AF_BLUE_PROPERTY_LATIN_TOP |
AF_BLUE_PROPERTY_LATIN_X_HEIGHT },
{ AF_BLUE_STRING_LATIN_SMALL, 0 },
{ AF_BLUE_STRING_LATIN_SMALL_DESCENDER, 0 },
{ AF_BLUE_STRING_MAX, 0 },
#ifdef AF_CONFIG_OPTION_CJK #ifdef AF_CONFIG_OPTION_CJK
{ AF_BLUE_STRING_CJK_TOP, AF_BLUE_PROPERTY_CJK_TOP }, { AF_BLUE_STRING_CJK_TOP, AF_BLUE_PROPERTY_CJK_TOP },
{ AF_BLUE_STRING_CJK_BOTTOM, 0 }, { AF_BLUE_STRING_CJK_BOTTOM, 0 },

View File

@ -67,16 +67,28 @@
AF_BLUE_STRING_ENUM AF_BLUE_STRINGS_ARRAY AF_BLUE_STRING_MAX_LEN: AF_BLUE_STRING_ENUM AF_BLUE_STRINGS_ARRAY AF_BLUE_STRING_MAX_LEN:
AF_BLUE_STRING_LATIN_CAPITAL_TOP AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP
"THEZOCQS" "БВЕПЗОСЭ"
AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM
"HEZLOCUS" "БВЕШЗОСЭ"
AF_BLUE_STRING_LATIN_SMALL_F_TOP AF_BLUE_STRING_CYRILLIC_SMALL
"fijkdbh" "хпншезос"
AF_BLUE_STRING_LATIN_SMALL AF_BLUE_STRING_CYRILLIC_SMALL_DESCENDER
"xzroesc" "руф"
AF_BLUE_STRING_LATIN_SMALL_DESCENDER
"pqgjy" // we separate the letters with spaces to avoid ligatures;
// this is just for convenience to simplify reading
AF_BLUE_STRING_DEVANAGARI_BASE
"क म अ आ थ ध भ श"
AF_BLUE_STRING_DEVANAGARI_TOP
"ई ऐ ओ औ ि ी ो ौ"
// note that some fonts have extreme variation in the height of the
// round head elements; for this reason we also define the `base'
// blue zone, which must be always present
AF_BLUE_STRING_DEVANAGARI_HEAD
"क म अ आ थ ध भ श"
AF_BLUE_STRING_DEVANAGARI_BOTTOM
"ु ृ"
AF_BLUE_STRING_GREEK_CAPITAL_TOP AF_BLUE_STRING_GREEK_CAPITAL_TOP
"ΓΒΕΖΘΟΩ" "ΓΒΕΖΘΟΩ"
@ -89,15 +101,6 @@ AF_BLUE_STRING_ENUM AF_BLUE_STRINGS_ARRAY AF_BLUE_STRING_MAX_LEN:
AF_BLUE_STRING_GREEK_SMALL_DESCENDER AF_BLUE_STRING_GREEK_SMALL_DESCENDER
"βγημρφχψ" "βγημρφχψ"
AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP
"БВЕПЗОСЭ"
AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM
"БВЕШЗОСЭ"
AF_BLUE_STRING_CYRILLIC_SMALL
"хпншезос"
AF_BLUE_STRING_CYRILLIC_SMALL_DESCENDER
"руф"
AF_BLUE_STRING_HEBREW_TOP AF_BLUE_STRING_HEBREW_TOP
"בדהחךכםס" "בדהחךכםס"
AF_BLUE_STRING_HEBREW_BOTTOM AF_BLUE_STRING_HEBREW_BOTTOM
@ -105,6 +108,17 @@ AF_BLUE_STRING_ENUM AF_BLUE_STRINGS_ARRAY AF_BLUE_STRING_MAX_LEN:
AF_BLUE_STRING_HEBREW_DESCENDER AF_BLUE_STRING_HEBREW_DESCENDER
"קךןףץ" "קךןףץ"
AF_BLUE_STRING_LATIN_CAPITAL_TOP
"THEZOCQS"
AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM
"HEZLOCUS"
AF_BLUE_STRING_LATIN_SMALL_F_TOP
"fijkdbh"
AF_BLUE_STRING_LATIN_SMALL
"xzroesc"
AF_BLUE_STRING_LATIN_SMALL_DESCENDER
"pqgjy"
#ifdef AF_CONFIG_OPTION_CJK #ifdef AF_CONFIG_OPTION_CJK
AF_BLUE_STRING_CJK_TOP AF_BLUE_STRING_CJK_TOP
@ -246,15 +260,24 @@ AF_BLUE_STRING_ENUM AF_BLUE_STRINGS_ARRAY AF_BLUE_STRING_MAX_LEN:
AF_BLUE_STRINGSET_ENUM AF_BLUE_STRINGSETS_ARRAY AF_BLUE_STRINGSET_MAX_LEN: AF_BLUE_STRINGSET_ENUM AF_BLUE_STRINGSETS_ARRAY AF_BLUE_STRINGSET_MAX_LEN:
AF_BLUE_STRINGSET_LATN AF_BLUE_STRINGSET_CYRL
{ AF_BLUE_STRING_LATIN_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP } { AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
{ AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM, 0 } { AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM, 0 }
{ AF_BLUE_STRING_LATIN_SMALL_F_TOP, AF_BLUE_PROPERTY_LATIN_TOP } { AF_BLUE_STRING_CYRILLIC_SMALL, AF_BLUE_PROPERTY_LATIN_TOP |
{ AF_BLUE_STRING_LATIN_SMALL, AF_BLUE_PROPERTY_LATIN_TOP | AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
AF_BLUE_PROPERTY_LATIN_X_HEIGHT } { AF_BLUE_STRING_CYRILLIC_SMALL, 0 }
{ AF_BLUE_STRING_LATIN_SMALL, 0 } { AF_BLUE_STRING_CYRILLIC_SMALL_DESCENDER, 0 }
{ AF_BLUE_STRING_LATIN_SMALL_DESCENDER, 0 } { AF_BLUE_STRING_MAX, 0 }
{ AF_BLUE_STRING_MAX, 0 }
AF_BLUE_STRINGSET_DEVA
{ AF_BLUE_STRING_DEVANAGARI_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
{ AF_BLUE_STRING_DEVANAGARI_HEAD, AF_BLUE_PROPERTY_LATIN_TOP }
{ AF_BLUE_STRING_DEVANAGARI_BASE, AF_BLUE_PROPERTY_LATIN_TOP |
AF_BLUE_PROPERTY_LATIN_NEUTRAL |
AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
{ AF_BLUE_STRING_DEVANAGARI_BASE, 0 }
{ AF_BLUE_STRING_DEVANAGARI_BOTTOM, 0 }
{ AF_BLUE_STRING_MAX, 0 }
AF_BLUE_STRINGSET_GREK AF_BLUE_STRINGSET_GREK
{ AF_BLUE_STRING_GREEK_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP } { AF_BLUE_STRING_GREEK_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
@ -266,15 +289,6 @@ AF_BLUE_STRINGSET_ENUM AF_BLUE_STRINGSETS_ARRAY AF_BLUE_STRINGSET_MAX_LEN:
{ AF_BLUE_STRING_GREEK_SMALL_DESCENDER, 0 } { AF_BLUE_STRING_GREEK_SMALL_DESCENDER, 0 }
{ AF_BLUE_STRING_MAX, 0 } { AF_BLUE_STRING_MAX, 0 }
AF_BLUE_STRINGSET_CYRL
{ AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
{ AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM, 0 }
{ AF_BLUE_STRING_CYRILLIC_SMALL, AF_BLUE_PROPERTY_LATIN_TOP |
AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
{ AF_BLUE_STRING_CYRILLIC_SMALL, 0 }
{ AF_BLUE_STRING_CYRILLIC_SMALL_DESCENDER, 0 }
{ AF_BLUE_STRING_MAX, 0 }
AF_BLUE_STRINGSET_HEBR AF_BLUE_STRINGSET_HEBR
{ AF_BLUE_STRING_HEBREW_TOP, AF_BLUE_PROPERTY_LATIN_TOP | { AF_BLUE_STRING_HEBREW_TOP, AF_BLUE_PROPERTY_LATIN_TOP |
AF_BLUE_PROPERTY_LATIN_LONG } AF_BLUE_PROPERTY_LATIN_LONG }
@ -282,6 +296,16 @@ AF_BLUE_STRINGSET_ENUM AF_BLUE_STRINGSETS_ARRAY AF_BLUE_STRINGSET_MAX_LEN:
{ AF_BLUE_STRING_HEBREW_DESCENDER, 0 } { AF_BLUE_STRING_HEBREW_DESCENDER, 0 }
{ AF_BLUE_STRING_MAX, 0 } { AF_BLUE_STRING_MAX, 0 }
AF_BLUE_STRINGSET_LATN
{ AF_BLUE_STRING_LATIN_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
{ AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM, 0 }
{ AF_BLUE_STRING_LATIN_SMALL_F_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
{ AF_BLUE_STRING_LATIN_SMALL, AF_BLUE_PROPERTY_LATIN_TOP |
AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
{ AF_BLUE_STRING_LATIN_SMALL, 0 }
{ AF_BLUE_STRING_LATIN_SMALL_DESCENDER, 0 }
{ AF_BLUE_STRING_MAX, 0 }
#ifdef AF_CONFIG_OPTION_CJK #ifdef AF_CONFIG_OPTION_CJK
AF_BLUE_STRINGSET_HANI AF_BLUE_STRINGSET_HANI

View File

@ -74,24 +74,28 @@ FT_BEGIN_HEADER
typedef enum AF_Blue_String_ typedef enum AF_Blue_String_
{ {
AF_BLUE_STRING_LATIN_CAPITAL_TOP = 0, AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP = 0,
AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM = 9, AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM = 17,
AF_BLUE_STRING_LATIN_SMALL_F_TOP = 18, AF_BLUE_STRING_CYRILLIC_SMALL = 34,
AF_BLUE_STRING_LATIN_SMALL = 26, AF_BLUE_STRING_CYRILLIC_SMALL_DESCENDER = 51,
AF_BLUE_STRING_LATIN_SMALL_DESCENDER = 34, AF_BLUE_STRING_DEVANAGARI_BASE = 58,
AF_BLUE_STRING_GREEK_CAPITAL_TOP = 40, AF_BLUE_STRING_DEVANAGARI_TOP = 83,
AF_BLUE_STRING_GREEK_CAPITAL_BOTTOM = 55, AF_BLUE_STRING_DEVANAGARI_HEAD = 108,
AF_BLUE_STRING_GREEK_SMALL_BETA_TOP = 68, AF_BLUE_STRING_DEVANAGARI_BOTTOM = 133,
AF_BLUE_STRING_GREEK_SMALL = 81, AF_BLUE_STRING_GREEK_CAPITAL_TOP = 140,
AF_BLUE_STRING_GREEK_SMALL_DESCENDER = 98, AF_BLUE_STRING_GREEK_CAPITAL_BOTTOM = 155,
AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP = 115, AF_BLUE_STRING_GREEK_SMALL_BETA_TOP = 168,
AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM = 132, AF_BLUE_STRING_GREEK_SMALL = 181,
AF_BLUE_STRING_CYRILLIC_SMALL = 149, AF_BLUE_STRING_GREEK_SMALL_DESCENDER = 198,
AF_BLUE_STRING_CYRILLIC_SMALL_DESCENDER = 166, AF_BLUE_STRING_HEBREW_TOP = 215,
AF_BLUE_STRING_HEBREW_TOP = 173, AF_BLUE_STRING_HEBREW_BOTTOM = 232,
AF_BLUE_STRING_HEBREW_BOTTOM = 190, AF_BLUE_STRING_HEBREW_DESCENDER = 245,
AF_BLUE_STRING_HEBREW_DESCENDER = 203, AF_BLUE_STRING_LATIN_CAPITAL_TOP = 256,
af_blue_1_1 = 213, AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM = 265,
AF_BLUE_STRING_LATIN_SMALL_F_TOP = 274,
AF_BLUE_STRING_LATIN_SMALL = 282,
AF_BLUE_STRING_LATIN_SMALL_DESCENDER = 290,
af_blue_1_1 = 295,
#ifdef AF_CONFIG_OPTION_CJK #ifdef AF_CONFIG_OPTION_CJK
AF_BLUE_STRING_CJK_TOP = af_blue_1_1 + 1, AF_BLUE_STRING_CJK_TOP = af_blue_1_1 + 1,
AF_BLUE_STRING_CJK_BOTTOM = af_blue_1_1 + 153, AF_BLUE_STRING_CJK_BOTTOM = af_blue_1_1 + 153,
@ -149,11 +153,12 @@ FT_BEGIN_HEADER
typedef enum AF_Blue_Stringset_ typedef enum AF_Blue_Stringset_
{ {
AF_BLUE_STRINGSET_LATN = 0, AF_BLUE_STRINGSET_CYRL = 0,
AF_BLUE_STRINGSET_GREK = 7, AF_BLUE_STRINGSET_DEVA = 6,
AF_BLUE_STRINGSET_CYRL = 14, AF_BLUE_STRINGSET_GREK = 12,
AF_BLUE_STRINGSET_HEBR = 20, AF_BLUE_STRINGSET_HEBR = 19,
af_blue_2_1 = 24, AF_BLUE_STRINGSET_LATN = 23,
af_blue_2_1 = 30,
#ifdef AF_CONFIG_OPTION_CJK #ifdef AF_CONFIG_OPTION_CJK
AF_BLUE_STRINGSET_HANI = af_blue_2_1 + 0, AF_BLUE_STRINGSET_HANI = af_blue_2_1 + 0,
af_blue_2_1_1 = af_blue_2_1 + 2, af_blue_2_1_1 = af_blue_2_1 + 2,

View File

@ -28,6 +28,13 @@
AF_UNIRANGE_REC( 0UL, 0UL ) AF_UNIRANGE_REC( 0UL, 0UL )
}; };
const AF_Script_UniRangeRec af_deva_uniranges[] =
{
AF_UNIRANGE_REC( 0x0900UL, 0x097FUL ), /* Devanagari */
AF_UNIRANGE_REC( 0x20B9UL, 0x20B9UL ), /* (new) Rupee sign */
AF_UNIRANGE_REC( 0UL, 0UL )
};
const AF_Script_UniRangeRec af_grek_uniranges[] = const AF_Script_UniRangeRec af_grek_uniranges[] =
{ {
AF_UNIRANGE_REC( 0x0370UL, 0x03FFUL ), /* Greek and Coptic */ AF_UNIRANGE_REC( 0x0370UL, 0x03FFUL ), /* Greek and Coptic */
@ -57,7 +64,8 @@
AF_UNIRANGE_REC( 0x1E00UL, 0x1EFFUL ), /* Latin Extended Additional */ AF_UNIRANGE_REC( 0x1E00UL, 0x1EFFUL ), /* Latin Extended Additional */
AF_UNIRANGE_REC( 0x2000UL, 0x206FUL ), /* General Punctuation */ AF_UNIRANGE_REC( 0x2000UL, 0x206FUL ), /* General Punctuation */
AF_UNIRANGE_REC( 0x2070UL, 0x209FUL ), /* Superscripts and Subscripts */ AF_UNIRANGE_REC( 0x2070UL, 0x209FUL ), /* Superscripts and Subscripts */
AF_UNIRANGE_REC( 0x20A0UL, 0x20CFUL ), /* Currency Symbols */ AF_UNIRANGE_REC( 0x20A0UL, 0x20B8UL ), /* Currency Symbols ...*/
AF_UNIRANGE_REC( 0x20BAUL, 0x20CFUL ), /* ... except new Rupee sign */
AF_UNIRANGE_REC( 0x2150UL, 0x218FUL ), /* Number Forms */ AF_UNIRANGE_REC( 0x2150UL, 0x218FUL ), /* Number Forms */
AF_UNIRANGE_REC( 0x2460UL, 0x24FFUL ), /* Enclosed Alphanumerics */ AF_UNIRANGE_REC( 0x2460UL, 0x24FFUL ), /* Enclosed Alphanumerics */
AF_UNIRANGE_REC( 0x2C60UL, 0x2C7FUL ), /* Latin Extended-C */ AF_UNIRANGE_REC( 0x2C60UL, 0x2C7FUL ), /* Latin Extended-C */
@ -82,12 +90,6 @@
AF_UNIRANGE_REC( 0UL, 0UL ) AF_UNIRANGE_REC( 0UL, 0UL )
}; };
const AF_Script_UniRangeRec af_deva_uniranges[] =
{
AF_UNIRANGE_REC( 0x0900UL, 0x097FUL ), /* Devanagari */
AF_UNIRANGE_REC( 0UL, 0UL )
};
const AF_Script_UniRangeRec af_gujr_uniranges[] = const AF_Script_UniRangeRec af_gujr_uniranges[] =
{ {
AF_UNIRANGE_REC( 0x0A80UL, 0x0AFFUL ), /* Gujarati */ AF_UNIRANGE_REC( 0x0A80UL, 0x0AFFUL ), /* Gujarati */

View File

@ -31,6 +31,11 @@
HB_SCRIPT_CYRILLIC, HB_SCRIPT_CYRILLIC,
0x43E, 0x41E, 0x0 ) /* оО */ 0x43E, 0x41E, 0x0 ) /* оО */
SCRIPT( deva, DEVA,
"Devanagari",
HB_SCRIPT_DEVANAGARI,
0x920, 0x935, 0x91F ) /* ठ व ट */
SCRIPT( grek, GREK, SCRIPT( grek, GREK,
"Greek", "Greek",
HB_SCRIPT_GREEK, HB_SCRIPT_GREEK,
@ -58,11 +63,6 @@
HB_SCRIPT_BENGALI, HB_SCRIPT_BENGALI,
'o', 0x0, 0x0 ) /* XXX */ 'o', 0x0, 0x0 ) /* XXX */
SCRIPT( deva, DEVA,
"Devanagari",
HB_SCRIPT_DEVANAGARI,
'o', 0x0, 0x0 ) /* XXX */
SCRIPT( gujr, GUJR, SCRIPT( gujr, GUJR,
"Gujarati", "Gujarati",
HB_SCRIPT_GUJARATI, HB_SCRIPT_GUJARATI,

View File

@ -81,7 +81,9 @@
DEFAULT ) DEFAULT )
META_STYLE_LATIN( cyrl, CYRL, "Cyrillic" ) META_STYLE_LATIN( cyrl, CYRL, "Cyrillic" )
META_STYLE_LATIN( grek, GREK, "Greek" ) META_STYLE_LATIN( grek, GREK, "Greek" )
STYLE( hebr_dflt, HEBR_DFLT, STYLE( hebr_dflt, HEBR_DFLT,
"Hebrew default style", "Hebrew default style",
AF_WRITING_SYSTEM_LATIN, AF_WRITING_SYSTEM_LATIN,
@ -90,6 +92,13 @@
AF_COVERAGE_DEFAULT ) AF_COVERAGE_DEFAULT )
META_STYLE_LATIN( latn, LATN, "Latin" ) META_STYLE_LATIN( latn, LATN, "Latin" )
STYLE( deva_dflt, DEVA_DFLT,
"Devanagari default style",
AF_WRITING_SYSTEM_LATIN,
AF_SCRIPT_DEVA,
AF_BLUE_STRINGSET_DEVA,
AF_COVERAGE_DEFAULT )
#ifdef FT_OPTION_AUTOFIT2 #ifdef FT_OPTION_AUTOFIT2
STYLE( ltn2_dflt, LTN2_DFLT, STYLE( ltn2_dflt, LTN2_DFLT,
"Latin 2 default style", "Latin 2 default style",
@ -119,7 +128,6 @@
AF_COVERAGE_DEFAULT ) AF_COVERAGE_DEFAULT )
STYLE_DEFAULT_INDIC( beng, BENG, "Bengali" ) STYLE_DEFAULT_INDIC( beng, BENG, "Bengali" )
STYLE_DEFAULT_INDIC( deva, DEVA, "Devanagari" )
STYLE_DEFAULT_INDIC( gujr, GUJR, "Gujarati" ) STYLE_DEFAULT_INDIC( gujr, GUJR, "Gujarati" )
STYLE_DEFAULT_INDIC( guru, GURU, "Gurmukhi" ) STYLE_DEFAULT_INDIC( guru, GURU, "Gurmukhi" )
STYLE_DEFAULT_INDIC( knda, KNDA, "Kannada" ) STYLE_DEFAULT_INDIC( knda, KNDA, "Kannada" )