From 5b43eb5a4caadd1494a7402ff0bea893102556d7 Mon Sep 17 00:00:00 2001 From: Nathan Willis Date: Mon, 22 Apr 2019 19:16:48 +0100 Subject: [PATCH] [Docs] Add GTK-Dod comments to hb-unicode. --- src/hb-unicode.cc | 118 +++++++++++------- src/hb-unicode.h | 307 ++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 339 insertions(+), 86 deletions(-) diff --git a/src/hb-unicode.cc b/src/hb-unicode.cc index 36070a7f1..9621a2256 100644 --- a/src/hb-unicode.cc +++ b/src/hb-unicode.cc @@ -40,11 +40,16 @@ * @include: hb.h * * Unicode functions are used to access Unicode character properties. - * Client can pass its own Unicode functions to HarfBuzz, or access - * the built-in Unicode functions that come with HarfBuzz. + * With these functions, client programs can query various properties from + * the Unicode Character Database for any code point, such as General + * Category (gc), Script (sc), Canonical Combining Class (ccc), etc. * - * With the Unicode functions, one can query variour Unicode character - * properties, such as General Category, Script, Combining Class, etc. + * Client programs can optionally pass in their own Unicode functions + * that implement the same queries. The set of functions available is + * defined by the virtual methods in #hb_unicode_funcs_t. + * + * HarfBuzz provides built-in default functions for each method in + * #hb_unicode_funcs_t. **/ @@ -133,6 +138,11 @@ hb_unicode_decompose_compatibility_nil (hb_unicode_funcs_t *ufuncs HB_UNUSED #include "hb-icu.h" #endif +/** + * + * + * + **/ hb_unicode_funcs_t * hb_unicode_funcs_get_default () { @@ -155,11 +165,11 @@ hb_unicode_funcs_get_default () /** * hb_unicode_funcs_create: (Xconstructor) - * @parent: (nullable): + * @parent: (nullable): Parent Unicode-functions structure * + * Creates a new #hb_unicode_funcs_t structure of Unicode functions. * - * - * Return value: (transfer full): + * Return value: (transfer full): The Unicode-functions structure * * Since: 0.9.2 **/ @@ -203,9 +213,9 @@ DEFINE_NULL_INSTANCE (hb_unicode_funcs_t) = /** * hb_unicode_funcs_get_empty: * + * Fetches the singleton empty Unicode-functions structure. * - * - * Return value: (transfer full): + * Return value: (transfer full): The empty Unicode-functions structure * * Since: 0.9.2 **/ @@ -217,11 +227,11 @@ hb_unicode_funcs_get_empty () /** * hb_unicode_funcs_reference: (skip) - * @ufuncs: Unicode functions. + * @ufuncs: The Unicode-functions structure * + * Increases the reference count on a Unicode-functions structure. * - * - * Return value: (transfer full): + * Return value: (transfer full): The Unicode-functions structure * * Since: 0.9.2 **/ @@ -233,9 +243,11 @@ hb_unicode_funcs_reference (hb_unicode_funcs_t *ufuncs) /** * hb_unicode_funcs_destroy: (skip) - * @ufuncs: Unicode functions. - * + * @ufuncs: The Unicode-functions structure * + * Decreases the reference count on a Unicode-functions structure. When + * the reference count reaches zero, the Unicode-functions structure is + * destroyed, freeing all memory. * * Since: 0.9.2 **/ @@ -256,15 +268,15 @@ hb_unicode_funcs_destroy (hb_unicode_funcs_t *ufuncs) /** * hb_unicode_funcs_set_user_data: (skip) - * @ufuncs: Unicode functions. - * @key: - * @data: - * @destroy: - * @replace: + * @ufuncs: The Unicode-functions structure + * @key: The user-data key + * @data: A pointer to the user data + * @destroy: A callback to call when @data is not needed anymore + * @replace: Whether to replace an existing data with the same key * + * Attaches a user-data key/data pair to the specified Unicode-functions structure. * - * - * Return value: + * Return value: %true if success, false otherwise * * Since: 0.9.2 **/ @@ -280,12 +292,13 @@ hb_unicode_funcs_set_user_data (hb_unicode_funcs_t *ufuncs, /** * hb_unicode_funcs_get_user_data: (skip) - * @ufuncs: Unicode functions. - * @key: + * @ufuncs: The Unicode-functions structure + * @key: The user-data key to query * + * Fetches the user-data associated with the specified key, + * attached to the specified Unicode-functions structure. * - * - * Return value: (transfer none): + * Return value: (transfer none): A pointer to the user data * * Since: 0.9.2 **/ @@ -299,9 +312,10 @@ hb_unicode_funcs_get_user_data (hb_unicode_funcs_t *ufuncs, /** * hb_unicode_funcs_make_immutable: - * @ufuncs: Unicode functions. - * + * @ufuncs: The Unicode-functions structure * + * Makes the specified Unicode-functions structure + * immutable. * * Since: 0.9.2 **/ @@ -316,11 +330,12 @@ hb_unicode_funcs_make_immutable (hb_unicode_funcs_t *ufuncs) /** * hb_unicode_funcs_is_immutable: - * @ufuncs: Unicode functions. + * @ufuncs: The Unicode-functions structure * + * Tests whether the specified Unicode-functions structure + * is immutable. * - * - * Return value: + * Return value: %true if @ufuncs is immutable, false otherwise * * Since: 0.9.2 **/ @@ -332,11 +347,12 @@ hb_unicode_funcs_is_immutable (hb_unicode_funcs_t *ufuncs) /** * hb_unicode_funcs_get_parent: - * @ufuncs: Unicode functions. + * @ufuncs: The Unicode-functions structure * + * Fetches the parent of the Unicode-functions structure + * @ufuncs. * - * - * Return value: + * Return value: The parent Unicode-functions structure * * Since: 0.9.2 **/ @@ -389,14 +405,18 @@ HB_UNICODE_FUNCS_IMPLEMENT_CALLBACKS_SIMPLE /** * hb_unicode_compose: - * @ufuncs: Unicode functions. - * @a: - * @b: - * @ab: (out): + * @ufuncs: The Unicode-functions structure + * @a: The first Unicode code point to compose + * @b: The second Unicode code point to compose + * @ab: (out): The composition of @a, @b * + * Fetches the composition of a sequence of two Unicode + * code points. * + * Calls the composition function of the specified + * Unicode-functions structure @ufuncs. * - * Return value: + * Return value: %true if @a and @b composed, false otherwise * * Since: 0.9.2 **/ @@ -411,14 +431,17 @@ hb_unicode_compose (hb_unicode_funcs_t *ufuncs, /** * hb_unicode_decompose: - * @ufuncs: Unicode functions. - * @ab: - * @a: (out): - * @b: (out): + * @ufuncs: The Unicode-functions structure + * @ab: Unicode code point to decompose + * @a: (out): The first code point of the decomposition of @ab + * @b: (out): The second code point of the decomposition of @ab * + * Fetches the decomposition of a Unicode code point. * + * Calls the decomposition function of the specified + * Unicode-functions structure @ufuncs. * - * Return value: + * Return value: %true if @ab was decomposed, false otherwise * * Since: 0.9.2 **/ @@ -434,11 +457,12 @@ hb_unicode_decompose (hb_unicode_funcs_t *ufuncs, #ifndef HB_DISABLE_DEPRECATED /** * hb_unicode_decompose_compatibility: - * @ufuncs: Unicode functions. - * @u: - * @decomposed: (out): - * + * @ufuncs: The Unicode-functions structure + * @u: Code point to decompose + * @decomposed: (out): Compatibility decomposition of @u * + * Fetches the compatibility decomposition of a Unicode + * code point. Deprecated. * * Return value: * diff --git a/src/hb-unicode.h b/src/hb-unicode.h index 61b1b0ba1..2353f0fbf 100644 --- a/src/hb-unicode.h +++ b/src/hb-unicode.h @@ -48,7 +48,42 @@ HB_BEGIN_DECLS #define HB_UNICODE_MAX 0x10FFFFu -/* hb_unicode_general_category_t */ +/** + * hb_unicode_general_category_t: + * @HB_UNICODE_GENERAL_CATEGORY_CONTROL: (Cc) + * @HB_UNICODE_GENERAL_CATEGORY_FORMAT: (Cf) + * @HB_UNICODE_GENERAL_CATEGORY_UNASSIGNED: (Cn) + * @HB_UNICODE_GENERAL_CATEGORY_PRIVATE_USE: (Co) + * @HB_UNICODE_GENERAL_CATEGORY_SURROGATE: (Cs) + * @HB_UNICODE_GENERAL_CATEGORY_LOWERCASE_LETTER: (Ll) + * @HB_UNICODE_GENERAL_CATEGORY_MODIFIER_LETTER: (Lm) + * @HB_UNICODE_GENERAL_CATEGORY_OTHER_LETTER: (Lo) + * @HB_UNICODE_GENERAL_CATEGORY_TITLECASE_LETTER: (Lt) + * @HB_UNICODE_GENERAL_CATEGORY_UPPERCASE_LETTER: (Lu) + * @HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK: (Mc) + * @HB_UNICODE_GENERAL_CATEGORY_ENCLOSING_MARK: (Me) + * @HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK: (Mn) + * @HB_UNICODE_GENERAL_CATEGORY_DECIMAL_NUMBER: (Nd) + * @HB_UNICODE_GENERAL_CATEGORY_LETTER_NUMBER: (Nl) + * @HB_UNICODE_GENERAL_CATEGORY_OTHER_NUMBER: (No) + * @HB_UNICODE_GENERAL_CATEGORY_CONNECT_PUNCTUATION: (Pc) + * @HB_UNICODE_GENERAL_CATEGORY_DASH_PUNCTUATION: (Pd) + * @HB_UNICODE_GENERAL_CATEGORY_CLOSE_PUNCTUATION: (Pe) + * @HB_UNICODE_GENERAL_CATEGORY_FINAL_PUNCTUATION: (Pf) + * @HB_UNICODE_GENERAL_CATEGORY_INITIAL_PUNCTUATION: (Pi) + * @HB_UNICODE_GENERAL_CATEGORY_OTHER_PUNCTUATION: (Po) + * @HB_UNICODE_GENERAL_CATEGORY_OPEN_PUNCTUATION: (Ps) + * @HB_UNICODE_GENERAL_CATEGORY_CURRENCY_SYMBOL: (Sc) + * @HB_UNICODE_GENERAL_CATEGORY_MODIFIER_SYMBOL: (Sk) + * @HB_UNICODE_GENERAL_CATEGORY_MATH_SYMBOL: (Sm) + * @HB_UNICODE_GENERAL_CATEGORY_OTHER_SYMBOL: (So) + * @HB_UNICODE_GENERAL_CATEGORY_LINE_SEPARATOR: (Zl) + * @HB_UNICODE_GENERAL_CATEGORY_PARAGRAPH_SEPARATOR: (Zp) + * @HB_UNICODE_GENERAL_CATEGORY_SPACE_SEPARATOR: (Zs) + * + * Data type for the "General_Category" (gc) property from + * the Unicode Character Database. + **/ /* Unicode Character Database property: General_Category (gc) */ typedef enum @@ -85,13 +120,72 @@ typedef enum HB_UNICODE_GENERAL_CATEGORY_SPACE_SEPARATOR /* Zs */ } hb_unicode_general_category_t; -/* hb_unicode_combining_class_t */ - -/* Note: newer versions of Unicode may add new values. Clients should be ready to handle - * any value in the 0..254 range being returned from hb_unicode_combining_class(). - */ - -/* Unicode Character Database property: Canonical_Combining_Class (ccc) */ +/** + * hb_unicode_combining_class_t: + * @HB_UNICODE_COMBINING_CLASS_NOT_REORDERED + * @HB_UNICODE_COMBINING_CLASS_OVERLAY + * @HB_UNICODE_COMBINING_CLASS_NUKTA + * @HB_UNICODE_COMBINING_CLASS_KANA_VOICING + * @HB_UNICODE_COMBINING_CLASS_VIRAMA + * @HB_UNICODE_COMBINING_CLASS_CCC11: (Hebrew) + * @HB_UNICODE_COMBINING_CLASS_CCC12: (Hebrew) + * @HB_UNICODE_COMBINING_CLASS_CCC13: (Hebrew) + * @HB_UNICODE_COMBINING_CLASS_CCC14: (Hebrew) + * @HB_UNICODE_COMBINING_CLASS_CCC15: (Hebrew) + * @HB_UNICODE_COMBINING_CLASS_CCC16: (Hebrew) + * @HB_UNICODE_COMBINING_CLASS_CCC17: (Hebrew) + * @HB_UNICODE_COMBINING_CLASS_CCC18: (Hebrew) + * @HB_UNICODE_COMBINING_CLASS_CCC19: (Hebrew) + * @HB_UNICODE_COMBINING_CLASS_CCC20: (Hebrew) + * @HB_UNICODE_COMBINING_CLASS_CCC21: (Hebrew) + * @HB_UNICODE_COMBINING_CLASS_CCC22: (Hebrew) + * @HB_UNICODE_COMBINING_CLASS_CCC23: (Hebrew) + * @HB_UNICODE_COMBINING_CLASS_CCC24: (Hebrew) + * @HB_UNICODE_COMBINING_CLASS_CCC25: (Hebrew) + * @HB_UNICODE_COMBINING_CLASS_CCC26: (Hebrew) + * @HB_UNICODE_COMBINING_CLASS_CCC28: (Arabic) + * @HB_UNICODE_COMBINING_CLASS_CCC29: (Arabic) + * @HB_UNICODE_COMBINING_CLASS_CCC30: (Arabic) + * @HB_UNICODE_COMBINING_CLASS_CCC31: (Arabic) + * @HB_UNICODE_COMBINING_CLASS_CCC32: (Arabic) + * @HB_UNICODE_COMBINING_CLASS_CCC33: (Arabic) + * @HB_UNICODE_COMBINING_CLASS_CCC34: (Arabic) + * @HB_UNICODE_COMBINING_CLASS_CCC35: (Arabic) + * @HB_UNICODE_COMBINING_CLASS_CCC36: (Syriac) + * @HB_UNICODE_COMBINING_CLASS_CCC84: (Telugu) + * @HB_UNICODE_COMBINING_CLASS_CCC91: (Telugu) + * @HB_UNICODE_COMBINING_CLASS_CCC103: (Thai) + * @HB_UNICODE_COMBINING_CLASS_CCC107: (Thai) + * @HB_UNICODE_COMBINING_CLASS_CCC118: (Lao) + * @HB_UNICODE_COMBINING_CLASS_CCC122: (Lao) + * @HB_UNICODE_COMBINING_CLASS_CCC129: (Tibetan) + * @HB_UNICODE_COMBINING_CLASS_CCC130: (Tibetan) + * @HB_UNICODE_COMBINING_CLASS_CCC133: (Tibetan) + * @HB_UNICODE_COMBINING_CLASS_ATTACHED_BELOW_LEFT + * @HB_UNICODE_COMBINING_CLASS_ATTACHED_BELOW + * @HB_UNICODE_COMBINING_CLASS_ATTACHED_ABOVE + * @HB_UNICODE_COMBINING_CLASS_ATTACHED_ABOVE_RIGHT + * @HB_UNICODE_COMBINING_CLASS_BELOW_LEFT + * @HB_UNICODE_COMBINING_CLASS_BELOW + * @HB_UNICODE_COMBINING_CLASS_BELOW_RIGHT + * @HB_UNICODE_COMBINING_CLASS_LEFT + * @HB_UNICODE_COMBINING_CLASS_RIGHT + * @HB_UNICODE_COMBINING_CLASS_ABOVE_LEFT + * @HB_UNICODE_COMBINING_CLASS_ABOVE + * @HB_UNICODE_COMBINING_CLASS_ABOVE_RIGHT + * @HB_UNICODE_COMBINING_CLASS_DOUBLE_BELOW + * @HB_UNICODE_COMBINING_CLASS_DOUBLE_ABOVE + * @HB_UNICODE_COMBINING_CLASS_IOTA_SUBSCRIPT + * @HB_UNICODE_COMBINING_CLASS_INVALID: 255 + * + * Data type for the Canonical_Combining_Class (ccc) property + * from the Unicode Character Database. + * + * Note: newer versions of Unicode may add new values. + * Client programs should be ready to handle any value in the 0..254 range + * being returned from hb_unicode_combining_class(). + * + **/ typedef enum { HB_UNICODE_COMBINING_CLASS_NOT_REORDERED = 0, @@ -176,6 +270,18 @@ typedef enum * hb_unicode_funcs_t */ +/** + * hb_unicode_funcs_t: + * + * Data type containing a set of virtual methods used for + * accessing various Unicode character properties. + * + * HarfBuzz provides a default function for each of the + * methods in #hb_unicode_funcs_t. Client programs can implement + * their own replacements for the individual Unicode functions, as + * needed, and replace the default by calling the setter for a + * method. + **/ typedef struct hb_unicode_funcs_t hb_unicode_funcs_t; @@ -227,40 +333,107 @@ hb_unicode_funcs_get_parent (hb_unicode_funcs_t *ufuncs); /* typedefs */ +/** + * hb_unicode_combining_class_func_t: + * + * A virtual method for the #hb_unicode_funcs_t structure. + * + * This method should retrieve the Canonical Combining Class (ccc) + * property for a specified Unicode code point. + * + **/ typedef hb_unicode_combining_class_t (*hb_unicode_combining_class_func_t) (hb_unicode_funcs_t *ufuncs, hb_codepoint_t unicode, void *user_data); + +/** + * hb_unicode_general_category_func_t: + * + * A virtual method for the #hb_unicode_funcs_t structure. + * + * This method should retrieve the General Category property for + * a specified Unicode code point. + * + **/ typedef hb_unicode_general_category_t (*hb_unicode_general_category_func_t) (hb_unicode_funcs_t *ufuncs, hb_codepoint_t unicode, void *user_data); + +/** + * hb_unicode_mirroring_func_t: + * + * A virtual method for the #hb_unicode_funcs_t structure. + * + * This method should retrieve the Bi-Directional Mirroring Glyph + * code point for a specified Unicode code point. + * + * Note: If a code point does not have a specified + * Bi-Directional Mirroring Glyph defined, the method should + * return the original code point. + * + **/ typedef hb_codepoint_t (*hb_unicode_mirroring_func_t) (hb_unicode_funcs_t *ufuncs, hb_codepoint_t unicode, void *user_data); + +/** + * hb_unicode_script_func_t: + * + * A virtual method for the #hb_unicode_funcs_t structure. + * + * This method should retrieve the Script property for a + * specified Unicode code point. + * + **/ typedef hb_script_t (*hb_unicode_script_func_t) (hb_unicode_funcs_t *ufuncs, hb_codepoint_t unicode, void *user_data); +/** + * hb_unicode_compose_func_t: + * + * A virtual method for the #hb_unicode_funcs_t structure. + * + * This method should compose a sequence of two input Unicode code + * points by canonical equivalence, returning the composed code + * point in a #hb_codepoint_t output parameter (if successful). + * The method must return an #hb_bool_t indicating the success + * of the composition. + * + **/ typedef hb_bool_t (*hb_unicode_compose_func_t) (hb_unicode_funcs_t *ufuncs, hb_codepoint_t a, hb_codepoint_t b, hb_codepoint_t *ab, void *user_data); + +/** + * hb_unicode_decompose_func_t: + * + * A virtual method for the #hb_unicode_funcs_t structure. + * + * This method should decompose an input Unicode code point, + * returning the two decomposed code points in #hb_codepoint_t + * output parameters (if successful). The method must return an + * #hb_bool_t indicating the success of the composition. + * + **/ typedef hb_bool_t (*hb_unicode_decompose_func_t) (hb_unicode_funcs_t *ufuncs, hb_codepoint_t ab, hb_codepoint_t *a, hb_codepoint_t *b, void *user_data); -/* setters */ +/* func setters */ /** * hb_unicode_funcs_set_combining_class_func: - * @ufuncs: a Unicode function structure - * @func: (closure user_data) (destroy destroy) (scope notified): - * @user_data: - * @destroy: - * + * @ufuncs: A Unicode-functions structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: The function to call when @user_data is not needed anymore * + * Sets the implementation function for #hb_unicode_combining_class_func_t. * * Since: 0.9.2 **/ @@ -271,12 +444,12 @@ hb_unicode_funcs_set_combining_class_func (hb_unicode_funcs_t *ufuncs, /** * hb_unicode_funcs_set_general_category_func: - * @ufuncs: a Unicode function structure - * @func: (closure user_data) (destroy destroy) (scope notified): - * @user_data: - * @destroy: - * + * @ufuncs: A Unicode-functions structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: The function to call when @user_data is not needed anymore * + * Sets the implementation function for #hb_unicode_general_category_func_t. * * Since: 0.9.2 **/ @@ -287,12 +460,12 @@ hb_unicode_funcs_set_general_category_func (hb_unicode_funcs_t *ufuncs, /** * hb_unicode_funcs_set_mirroring_func: - * @ufuncs: a Unicode function structure - * @func: (closure user_data) (destroy destroy) (scope notified): - * @user_data: - * @destroy: - * + * @ufuncs: A Unicode-functions structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: The function to call when @user_data is not needed anymore * + * Sets the implementation function for #hb_unicode_mirroring_func_t. * * Since: 0.9.2 **/ @@ -303,12 +476,12 @@ hb_unicode_funcs_set_mirroring_func (hb_unicode_funcs_t *ufuncs, /** * hb_unicode_funcs_set_script_func: - * @ufuncs: a Unicode function structure - * @func: (closure user_data) (destroy destroy) (scope notified): - * @user_data: - * @destroy: - * + * @ufuncs: A Unicode-functions structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: The function to call when @user_data is not needed anymore * + * Sets the implementation function for #hb_unicode_script_func_t. * * Since: 0.9.2 **/ @@ -319,12 +492,12 @@ hb_unicode_funcs_set_script_func (hb_unicode_funcs_t *ufuncs, /** * hb_unicode_funcs_set_compose_func: - * @ufuncs: a Unicode function structure - * @func: (closure user_data) (destroy destroy) (scope notified): - * @user_data: - * @destroy: - * + * @ufuncs: A Unicode-functions structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: The function to call when @user_data is not needed anymore * + * Sets the implementation function for #hb_unicode_compose_func_t. * * Since: 0.9.2 **/ @@ -335,12 +508,12 @@ hb_unicode_funcs_set_compose_func (hb_unicode_funcs_t *ufuncs, /** * hb_unicode_funcs_set_decompose_func: - * @ufuncs: a Unicode function structure - * @func: (closure user_data) (destroy destroy) (scope notified): - * @user_data: - * @destroy: - * + * @ufuncs: A Unicode-functions structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: The function to call when @user_data is not needed anymore * + * Sets the implementation function for #hb_unicode_decompose_func_t. * * Since: 0.9.2 **/ @@ -353,6 +526,13 @@ hb_unicode_funcs_set_decompose_func (hb_unicode_funcs_t *ufuncs, /** * hb_unicode_combining_class: + * @ufuncs: The Unicode-functions structure + * @unicode: The code point to query + * + * Retrieves the Canonical Combining Class (ccc) property + * of code point @unicode. + * + * Return value: The #hb_unicode_combining_class_t of @unicode * * Since: 0.9.2 **/ @@ -362,6 +542,13 @@ hb_unicode_combining_class (hb_unicode_funcs_t *ufuncs, /** * hb_unicode_general_category: + * @ufuncs: The Unicode-functions structure + * @unicode: The code point to query + * + * Retrieves the General Category (gc) property + * of code point @unicode. + * + * Return value: The #hb_unicode_general_category_t of @unicode * * Since: 0.9.2 **/ @@ -371,6 +558,13 @@ hb_unicode_general_category (hb_unicode_funcs_t *ufuncs, /** * hb_unicode_mirroring: + * @ufuncs: The Unicode-functions structure + * @unicode: The code point to query + * + * Retrieves the Bi-directional Mirroring Glyph code + * point defined for code point @unicode. + * + * Return value: The #hb_codepoint_t of the Mirroring Glyph for @unicode * * Since: 0.9.2 **/ @@ -380,6 +574,13 @@ hb_unicode_mirroring (hb_unicode_funcs_t *ufuncs, /** * hb_unicode_script: + * @ufuncs: The Unicode-functions structure + * @unicode: The code point to query + * + * Retrieves the #hb_script_t script to which code + * point @unicode belongs. + * + * Return value: The #hb_script_t of @unicode * * Since: 0.9.2 **/ @@ -387,12 +588,40 @@ HB_EXTERN hb_script_t hb_unicode_script (hb_unicode_funcs_t *ufuncs, hb_codepoint_t unicode); +/** + * hb_unicode_compose: + * @ufuncs: The Unicode-functions structure + * @a: The first code point to compose + * @b: The second code point to compose + * @ab: (out): The composed code point + * + * Composes the code point sequence @a,@b by canonical equivalence into + * code point @ab. + * + * Return value: True is @a,@b composed, false otherwise + * + * Since: 0.9.2 + **/ HB_EXTERN hb_bool_t hb_unicode_compose (hb_unicode_funcs_t *ufuncs, hb_codepoint_t a, hb_codepoint_t b, hb_codepoint_t *ab); +/** + * hb_unicode_decompose: + * @ufuncs: The Unicode-functions structure + * @ab: The code point to decompose + * @a: (out): The first decomposed code point + * @b: (out): The second decomposed code point + * + * Decomposes code point @ab by canonical equivalence, into code points + * @a and @b. + * + * Return value: True if @ab decomposed, false otherwise + * + * Since: 0.9.2 + **/ HB_EXTERN hb_bool_t hb_unicode_decompose (hb_unicode_funcs_t *ufuncs, hb_codepoint_t ab,