[Docs] Add GTK-Dod comments to hb-unicode.

This commit is contained in:
Nathan Willis 2019-04-22 19:16:48 +01:00 committed by Khaled Hosny
parent 8c5d1332f1
commit 5b43eb5a4c
2 changed files with 339 additions and 86 deletions

View File

@ -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:
*

View File

@ -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>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().</note>
*
**/
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>Note: If a code point does not have a specified
* Bi-Directional Mirroring Glyph defined, the method should
* return the original code point.</note>
*
**/
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,