| Index: third_party/freetype2/src/src/autofit/afblue.dat
|
| diff --git a/third_party/freetype2/src/src/autofit/afblue.dat b/third_party/freetype2/src/src/autofit/afblue.dat
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..1b52378ed3e7c6671df1057ccafe9baefb0615d1
|
| --- /dev/null
|
| +++ b/third_party/freetype2/src/src/autofit/afblue.dat
|
| @@ -0,0 +1,447 @@
|
| +// afblue.dat
|
| +//
|
| +// Auto-fitter data for blue strings.
|
| +//
|
| +// Copyright 2013-2015 by
|
| +// David Turner, Robert Wilhelm, and Werner Lemberg.
|
| +//
|
| +// This file is part of the FreeType project, and may only be used,
|
| +// modified, and distributed under the terms of the FreeType project
|
| +// license, LICENSE.TXT. By continuing to use, modify, or distribute
|
| +// this file you indicate that you have read the license and
|
| +// understand and accept it fully.
|
| +
|
| +
|
| +// This file contains data specific to blue zones. It gets processed by
|
| +// a script to simulate `jagged arrays', with enumeration values holding
|
| +// offsets into the arrays.
|
| +//
|
| +// The format of the file is rather simple: A section starts with three
|
| +// labels separated by whitespace and followed by a colon (everything in a
|
| +// single line); the first label gives the name of the enumeration template,
|
| +// the second the name of the array template, and the third the name of the
|
| +// `maximum' template, holding the size of the largest array element. The
|
| +// script then fills the corresponding templates (indicated by `@'
|
| +// characters around the name).
|
| +//
|
| +// A section contains one or more data records. Each data record consists
|
| +// of two or more lines. The first line holds the enumeration name, and the
|
| +// remaining lines the corresponding array data.
|
| +//
|
| +// There are two possible representations for array data.
|
| +//
|
| +// - A string of characters in UTF-8 encoding enclosed in double quotes,
|
| +// using C syntax. There can be only one string per line, thus the
|
| +// starting and ending double quote must be the first and last character
|
| +// in the line, respectively, ignoring whitespace before and after the
|
| +// string. Space characters within the string are ignored too. If there
|
| +// are multiple strings (in multiple lines), they are concatenated to a
|
| +// single string. In the output, a string gets represented as a series of
|
| +// singles bytes, followed by a zero byte. The enumeration values simply
|
| +// hold byte offsets to the start of the corresponding strings.
|
| +//
|
| +// - Data blocks enclosed in balanced braces, which get copied verbatim and
|
| +// which can span multiple lines. The opening brace of a block must be
|
| +// the first character of a line (ignoring whitespace), and the closing
|
| +// brace the last (ignoring whitespace also). The script appends a comma
|
| +// character after each block and counts the number of blocks to set the
|
| +// enumeration values.
|
| +//
|
| +// A section can contain either strings only or data blocks only.
|
| +//
|
| +// A comment line starts with `//'; it gets removed. A preprocessor
|
| +// directive line (using the standard syntax of `cpp') starts with `#' and
|
| +// gets copied verbatim to both the enumeration and the array. Whitespace
|
| +// outside of a string is insignificant.
|
| +//
|
| +// Preprocessor directives are ignored while the script computes maximum
|
| +// values; this essentially means that the maximum values can easily be too
|
| +// large. Given that the purpose of those values is to create local
|
| +// fixed-size arrays at compile time for further processing of the blue zone
|
| +// data, this isn't a problem. Note the the final zero byte of a string is
|
| +// not counted. Note also that the count holds the number of UTF-8 encoded
|
| +// characters, not bytes.
|
| +
|
| +
|
| +// The blue zone string data, to be used in the blue stringsets below.
|
| +
|
| +AF_BLUE_STRING_ENUM AF_BLUE_STRINGS_ARRAY AF_BLUE_STRING_MAX_LEN:
|
| +
|
| + AF_BLUE_STRING_ARABIC_TOP
|
| + "ا إ ل ك ط ظ"
|
| + AF_BLUE_STRING_ARABIC_BOTTOM
|
| + "ت ث ط ظ ك"
|
| + // We don't necessarily have access to medial forms via Unicode in case
|
| + // Arabic presentational forms are missing. The only character that is
|
| + // guaranteed to have the same vertical position with joining (this is,
|
| + // non-isolated) forms is U+0640, ARABIC TATWEEL, which must join both
|
| + // round and flat curves.
|
| + AF_BLUE_STRING_ARABIC_JOIN
|
| + "ـ"
|
| +
|
| + AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP
|
| + "БВЕПЗОСЭ"
|
| + AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM
|
| + "БВЕШЗОСЭ"
|
| + AF_BLUE_STRING_CYRILLIC_SMALL
|
| + "хпншезос"
|
| + AF_BLUE_STRING_CYRILLIC_SMALL_DESCENDER
|
| + "руф"
|
| +
|
| + // 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_BOTTOM
|
| + "ΒΔΖΞΘΟ"
|
| + AF_BLUE_STRING_GREEK_SMALL_BETA_TOP
|
| + "βθδζλξ"
|
| + AF_BLUE_STRING_GREEK_SMALL
|
| + "αειοπστω"
|
| + AF_BLUE_STRING_GREEK_SMALL_DESCENDER
|
| + "βγημρφχψ"
|
| +
|
| + AF_BLUE_STRING_HEBREW_TOP
|
| + "בדהחךכםס"
|
| + AF_BLUE_STRING_HEBREW_BOTTOM
|
| + "בטכםסצ"
|
| + AF_BLUE_STRING_HEBREW_DESCENDER
|
| + "קךןףץ"
|
| +
|
| + AF_BLUE_STRING_LAO_TOP
|
| + "າ ດ ອ ມ ລ ວ ຣ ງ"
|
| + AF_BLUE_STRING_LAO_BOTTOM
|
| + "າ ອ ບ ຍ ຣ ຮ ວ ຢ"
|
| + AF_BLUE_STRING_LAO_ASCENDER
|
| + "ປ ຢ ຟ ຝ"
|
| + AF_BLUE_STRING_LAO_LARGE_ASCENDER
|
| + "ໂ ໄ ໃ"
|
| + AF_BLUE_STRING_LAO_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"
|
| +
|
| + // we assume that both the subscript and superscript ranges
|
| + // don't contain oldstyle digits (actually, most fonts probably
|
| + // have digits only in those ranges)
|
| + AF_BLUE_STRING_LATIN_SUBS_CAPITAL_TOP
|
| + "₀₃₅₇₈"
|
| + AF_BLUE_STRING_LATIN_SUBS_CAPITAL_BOTTOM
|
| + "₀₁₂₃₈"
|
| + AF_BLUE_STRING_LATIN_SUBS_SMALL_F_TOP
|
| + "ᵢⱼₕₖₗ"
|
| + AF_BLUE_STRING_LATIN_SUBS_SMALL
|
| + "ₐₑₒₓₙₛᵥᵤᵣ"
|
| + AF_BLUE_STRING_LATIN_SUBS_SMALL_DESCENDER
|
| + "ᵦᵧᵨᵩₚ"
|
| +
|
| + AF_BLUE_STRING_LATIN_SUPS_CAPITAL_TOP
|
| + "⁰³⁵⁷ᵀᴴᴱᴼ"
|
| + AF_BLUE_STRING_LATIN_SUPS_CAPITAL_BOTTOM
|
| + "⁰¹²³ᴱᴸᴼᵁ"
|
| + AF_BLUE_STRING_LATIN_SUPS_SMALL_F_TOP
|
| + "ᵇᵈᵏʰʲᶠⁱ"
|
| + AF_BLUE_STRING_LATIN_SUPS_SMALL
|
| + "ᵉᵒʳˢˣᶜᶻ"
|
| + AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER
|
| + "ᵖʸᵍ"
|
| +
|
| + // we separate the letters with spaces to avoid ligatures;
|
| + // this is just for convenience to simplify reading
|
| + AF_BLUE_STRING_TELUGU_TOP
|
| + "ఇ ఌ ఙ ఞ ణ ఱ ౯"
|
| + AF_BLUE_STRING_TELUGU_BOTTOM
|
| + "అ క చ ర ఽ ౨ ౬"
|
| +
|
| + AF_BLUE_STRING_THAI_TOP
|
| + "บ เ แ อ ก า"
|
| + AF_BLUE_STRING_THAI_BOTTOM
|
| + "บ ป ษ ฯ อ ย ฮ"
|
| + AF_BLUE_STRING_THAI_ASCENDER
|
| + "ป ฝ ฟ"
|
| + AF_BLUE_STRING_THAI_LARGE_ASCENDER
|
| + "โ ใ ไ"
|
| + AF_BLUE_STRING_THAI_DESCENDER
|
| + "ฎ ฏ ฤ ฦ"
|
| + AF_BLUE_STRING_THAI_LARGE_DESCENDER
|
| + "ญ ฐ"
|
| + AF_BLUE_STRING_THAI_DIGIT_TOP
|
| + "๐ ๑ ๓"
|
| +
|
| +
|
| +#ifdef AF_CONFIG_OPTION_CJK
|
| +
|
| + AF_BLUE_STRING_CJK_TOP
|
| + "他们你來們到和地"
|
| + "对對就席我时時會"
|
| + "来為能舰說说这這"
|
| + "齊 |"
|
| + "军同已愿既星是景"
|
| + "民照现現理用置要"
|
| + "軍那配里開雷露面"
|
| + "顾"
|
| + AF_BLUE_STRING_CJK_BOTTOM
|
| + "个为人他以们你來"
|
| + "個們到和大对對就"
|
| + "我时時有来為要說"
|
| + "说 |"
|
| + "主些因它想意理生"
|
| + "當看着置者自著裡"
|
| + "过还进進過道還里"
|
| + "面"
|
| +
|
| +#ifdef AF_CONFIG_OPTION_CJK_BLUE_HANI_VERT
|
| +
|
| + AF_BLUE_STRING_CJK_LEFT
|
| + "些们你來們到和地"
|
| + "她将將就年得情最"
|
| + "样樣理能說说这這"
|
| + "通 |"
|
| + "即吗吧听呢品响嗎"
|
| + "师師收断斷明眼間"
|
| + "间际陈限除陳随際"
|
| + "隨"
|
| + AF_BLUE_STRING_CJK_RIGHT
|
| + "事前學将將情想或"
|
| + "政斯新样樣民沒没"
|
| + "然特现現球第經谁"
|
| + "起 |"
|
| + "例別别制动動吗嗎"
|
| + "增指明朝期构物确"
|
| + "种調调費费那都間"
|
| + "间"
|
| +
|
| +#endif /* AF_CONFIG_OPTION_CJK_BLUE_HANI_VERT */
|
| +
|
| +#endif /* AF_CONFIG_OPTION_CJK */
|
| +
|
| +
|
| +// The blue zone stringsets, as used in the script styles, cf. `afstyles.h'.
|
| +//
|
| +// The AF_BLUE_PROPERTY_XXX flags are defined in `afblue.h'; here some
|
| +// explanations.
|
| +//
|
| +// A blue zone in general is defined by a reference and an overshoot line.
|
| +// During the hinting process, all coordinate values between those two lines
|
| +// are set equal to the reference value, provided that the blue zone is not
|
| +// wider than 0.75 pixels (otherwise the blue zone gets ignored). All
|
| +// entries must have `AF_BLUE_STRING_MAX' as the final line.
|
| +//
|
| +// During the glyph analysis, edges are sorted from bottom to top, and then
|
| +// sequentially checked, edge by edge, against the blue zones in the order
|
| +// given below.
|
| +//
|
| +//
|
| +// latin auto-hinter
|
| +// -----------------
|
| +//
|
| +// Characters in a blue string are automatically classified as having a flat
|
| +// (reference) or a round (overshoot) extremum. The blue zone is then set
|
| +// up by the mean values of all flat extrema and all round extrema,
|
| +// respectively. Only horizontal blue zones (i.e., adjusting vertical
|
| +// coordinate values) are supported.
|
| +//
|
| +// For the latin auto-hinter, the overshoot should be larger than the
|
| +// reference for top zones, and vice versa for bottom zones.
|
| +//
|
| +// LATIN_TOP
|
| +// Take the maximum flat and round coordinate values of the blue string
|
| +// characters for computing the blue zone's reference and overshoot
|
| +// values.
|
| +//
|
| +// If not set, take the minimum values.
|
| +//
|
| +// LATIN_NEUTRAL
|
| +// Ignore round extrema and define the blue zone with flat values only.
|
| +// Both top and bottom of contours can match. This is useful for
|
| +// scripts like Devanagari where vowel signs attach to the base
|
| +// character and are implemented as components of composite glyphs.
|
| +//
|
| +// If not set, both round and flat extrema are taken into account.
|
| +// Additionally, only the top or the bottom of a contour can match,
|
| +// depending on the LATIN_TOP flag.
|
| +//
|
| +// Neutral blue zones should always follow non-neutral blue zones.
|
| +//
|
| +// LATIN_X_HEIGHT
|
| +// Scale all glyphs vertically from the corresponding script to make the
|
| +// reference line of this blue zone align on the grid. The scaling
|
| +// takes place before all other blue zones get aligned to the grid.
|
| +// Only one blue character string of a script style can have this flag.
|
| +//
|
| +// LATIN_LONG
|
| +// Apply an additional constraint for blue zone values: Don't
|
| +// necessarily use the extremum as-is but a segment of the topmost (or
|
| +// bottommost) contour that is longer than a heuristic threshold, and
|
| +// which is not too far away vertically from the real extremum. This
|
| +// ensures that small bumps in the outline are ignored (for example, the
|
| +// `vertical serifs' found in many Hebrew glyph designs).
|
| +//
|
| +// The segment must be at least EM/25 font units long, and the distance
|
| +// to the extremum must be smaller than EM/4.
|
| +//
|
| +//
|
| +// cjk auto-hinter
|
| +// ---------------
|
| +//
|
| +// Characters in a blue string are *not* automatically classified. Instead,
|
| +// first come the characters used for the overshoot value, then the
|
| +// character `|', then the characters used for the reference value. The
|
| +// blue zone is then set up by the mean values of all reference values and
|
| +// all overshoot values, respectively. Both horizontal and vertical blue
|
| +// zones (i.e., adjusting vertical and horizontal coordinate values,
|
| +// respectively) are supported.
|
| +//
|
| +// For the cjk auto-hinter, the overshoot should be smaller than the
|
| +// reference for top zones, and vice versa for bottom zones.
|
| +//
|
| +// CJK_TOP
|
| +// Take the maximum flat and round coordinate values of the blue string
|
| +// characters. If not set, take the minimum values.
|
| +//
|
| +// CJK_RIGHT
|
| +// A synonym for CJK_TOP. If CJK_HORIZ is set, this flag indicates the
|
| +// right blue zone, taking horizontal maximum values.
|
| +//
|
| +// CJK_HORIZ
|
| +// Define a blue zone for horizontal hinting (i.e., vertical blue
|
| +// zones). If not set, this is a blue zone for vertical hinting.
|
| +
|
| +
|
| +AF_BLUE_STRINGSET_ENUM AF_BLUE_STRINGSETS_ARRAY AF_BLUE_STRINGSET_MAX_LEN:
|
| +
|
| + AF_BLUE_STRINGSET_ARAB
|
| + { AF_BLUE_STRING_ARABIC_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
|
| + { AF_BLUE_STRING_ARABIC_BOTTOM, 0 }
|
| + { AF_BLUE_STRING_ARABIC_JOIN, AF_BLUE_PROPERTY_LATIN_NEUTRAL }
|
| + { 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_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_STRING_GREEK_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
|
| + { AF_BLUE_STRING_GREEK_CAPITAL_BOTTOM, 0 }
|
| + { AF_BLUE_STRING_GREEK_SMALL_BETA_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
|
| + { AF_BLUE_STRING_GREEK_SMALL, AF_BLUE_PROPERTY_LATIN_TOP |
|
| + AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
|
| + { AF_BLUE_STRING_GREEK_SMALL, 0 }
|
| + { AF_BLUE_STRING_GREEK_SMALL_DESCENDER, 0 }
|
| + { AF_BLUE_STRING_MAX, 0 }
|
| +
|
| + AF_BLUE_STRINGSET_HEBR
|
| + { AF_BLUE_STRING_HEBREW_TOP, AF_BLUE_PROPERTY_LATIN_TOP |
|
| + AF_BLUE_PROPERTY_LATIN_LONG }
|
| + { AF_BLUE_STRING_HEBREW_BOTTOM, 0 }
|
| + { AF_BLUE_STRING_HEBREW_DESCENDER, 0 }
|
| + { AF_BLUE_STRING_MAX, 0 }
|
| +
|
| + AF_BLUE_STRINGSET_LAO
|
| + { AF_BLUE_STRING_LAO_TOP, AF_BLUE_PROPERTY_LATIN_TOP |
|
| + AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
|
| + { AF_BLUE_STRING_LAO_BOTTOM, 0 }
|
| + { AF_BLUE_STRING_LAO_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP }
|
| + { AF_BLUE_STRING_LAO_LARGE_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP }
|
| + { AF_BLUE_STRING_LAO_DESCENDER, 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 }
|
| +
|
| + AF_BLUE_STRINGSET_LATB
|
| + { AF_BLUE_STRING_LATIN_SUBS_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
|
| + { AF_BLUE_STRING_LATIN_SUBS_CAPITAL_BOTTOM, 0 }
|
| + { AF_BLUE_STRING_LATIN_SUBS_SMALL_F_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
|
| + { AF_BLUE_STRING_LATIN_SUBS_SMALL, AF_BLUE_PROPERTY_LATIN_TOP |
|
| + AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
|
| + { AF_BLUE_STRING_LATIN_SUBS_SMALL, 0 }
|
| + { AF_BLUE_STRING_LATIN_SUBS_SMALL_DESCENDER, 0 }
|
| + { AF_BLUE_STRING_MAX, 0 }
|
| +
|
| + AF_BLUE_STRINGSET_LATP
|
| + { AF_BLUE_STRING_LATIN_SUPS_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
|
| + { AF_BLUE_STRING_LATIN_SUPS_CAPITAL_BOTTOM, 0 }
|
| + { AF_BLUE_STRING_LATIN_SUPS_SMALL_F_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
|
| + { AF_BLUE_STRING_LATIN_SUPS_SMALL, AF_BLUE_PROPERTY_LATIN_TOP |
|
| + AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
|
| + { AF_BLUE_STRING_LATIN_SUPS_SMALL, 0 }
|
| + { AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER, 0 }
|
| + { AF_BLUE_STRING_MAX, 0 }
|
| +
|
| + AF_BLUE_STRINGSET_TELU
|
| + { AF_BLUE_STRING_TELUGU_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
|
| + { AF_BLUE_STRING_TELUGU_BOTTOM, 0 }
|
| + { AF_BLUE_STRING_MAX, 0 }
|
| +
|
| + AF_BLUE_STRINGSET_THAI
|
| + { AF_BLUE_STRING_THAI_TOP, AF_BLUE_PROPERTY_LATIN_TOP |
|
| + AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
|
| + { AF_BLUE_STRING_THAI_BOTTOM, 0 }
|
| + { AF_BLUE_STRING_THAI_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP }
|
| + { AF_BLUE_STRING_THAI_LARGE_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP }
|
| + { AF_BLUE_STRING_THAI_DESCENDER, 0 }
|
| + { AF_BLUE_STRING_THAI_LARGE_DESCENDER, 0 }
|
| + { AF_BLUE_STRING_THAI_DIGIT_TOP, 0 }
|
| + { AF_BLUE_STRING_MAX, 0 }
|
| +
|
| +
|
| +#ifdef AF_CONFIG_OPTION_CJK
|
| +
|
| + AF_BLUE_STRINGSET_HANI
|
| + { AF_BLUE_STRING_CJK_TOP, AF_BLUE_PROPERTY_CJK_TOP }
|
| + { AF_BLUE_STRING_CJK_BOTTOM, 0 }
|
| +#ifdef AF_CONFIG_OPTION_CJK_BLUE_HANI_VERT
|
| + { AF_BLUE_STRING_CJK_LEFT, AF_BLUE_PROPERTY_CJK_HORIZ }
|
| + { AF_BLUE_STRING_CJK_RIGHT, AF_BLUE_PROPERTY_CJK_HORIZ |
|
| + AF_BLUE_PROPERTY_CJK_RIGHT }
|
| +#endif /* AF_CONFIG_OPTION_CJK_BLUE_HANI_VERT */
|
| + { AF_BLUE_STRING_MAX, 0 }
|
| +
|
| +#endif /* AF_CONFIG_OPTION_CJK */
|
| +
|
| +
|
| +// END
|
|
|