Merge pull request #2777 from harfbuzz/docs-unicode

[docs] Improve hb-unicode docs a bit
This commit is contained in:
Khaled Hosny 2020-12-26 01:17:27 +02:00 committed by GitHub
commit 010bd54040
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 122 additions and 86 deletions

View File

@ -50,36 +50,36 @@ HB_BEGIN_DECLS
/** /**
* hb_unicode_general_category_t: * hb_unicode_general_category_t:
* @HB_UNICODE_GENERAL_CATEGORY_CONTROL: (Cc) * @HB_UNICODE_GENERAL_CATEGORY_CONTROL: [Cc]
* @HB_UNICODE_GENERAL_CATEGORY_FORMAT: (Cf) * @HB_UNICODE_GENERAL_CATEGORY_FORMAT: [Cf]
* @HB_UNICODE_GENERAL_CATEGORY_UNASSIGNED: (Cn) * @HB_UNICODE_GENERAL_CATEGORY_UNASSIGNED: [Cn]
* @HB_UNICODE_GENERAL_CATEGORY_PRIVATE_USE: (Co) * @HB_UNICODE_GENERAL_CATEGORY_PRIVATE_USE: [Co]
* @HB_UNICODE_GENERAL_CATEGORY_SURROGATE: (Cs) * @HB_UNICODE_GENERAL_CATEGORY_SURROGATE: [Cs]
* @HB_UNICODE_GENERAL_CATEGORY_LOWERCASE_LETTER: (Ll) * @HB_UNICODE_GENERAL_CATEGORY_LOWERCASE_LETTER: [Ll]
* @HB_UNICODE_GENERAL_CATEGORY_MODIFIER_LETTER: (Lm) * @HB_UNICODE_GENERAL_CATEGORY_MODIFIER_LETTER: [Lm]
* @HB_UNICODE_GENERAL_CATEGORY_OTHER_LETTER: (Lo) * @HB_UNICODE_GENERAL_CATEGORY_OTHER_LETTER: [Lo]
* @HB_UNICODE_GENERAL_CATEGORY_TITLECASE_LETTER: (Lt) * @HB_UNICODE_GENERAL_CATEGORY_TITLECASE_LETTER: [Lt]
* @HB_UNICODE_GENERAL_CATEGORY_UPPERCASE_LETTER: (Lu) * @HB_UNICODE_GENERAL_CATEGORY_UPPERCASE_LETTER: [Lu]
* @HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK: (Mc) * @HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK: [Mc]
* @HB_UNICODE_GENERAL_CATEGORY_ENCLOSING_MARK: (Me) * @HB_UNICODE_GENERAL_CATEGORY_ENCLOSING_MARK: [Me]
* @HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK: (Mn) * @HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK: [Mn]
* @HB_UNICODE_GENERAL_CATEGORY_DECIMAL_NUMBER: (Nd) * @HB_UNICODE_GENERAL_CATEGORY_DECIMAL_NUMBER: [Nd]
* @HB_UNICODE_GENERAL_CATEGORY_LETTER_NUMBER: (Nl) * @HB_UNICODE_GENERAL_CATEGORY_LETTER_NUMBER: [Nl]
* @HB_UNICODE_GENERAL_CATEGORY_OTHER_NUMBER: (No) * @HB_UNICODE_GENERAL_CATEGORY_OTHER_NUMBER: [No]
* @HB_UNICODE_GENERAL_CATEGORY_CONNECT_PUNCTUATION: (Pc) * @HB_UNICODE_GENERAL_CATEGORY_CONNECT_PUNCTUATION: [Pc]
* @HB_UNICODE_GENERAL_CATEGORY_DASH_PUNCTUATION: (Pd) * @HB_UNICODE_GENERAL_CATEGORY_DASH_PUNCTUATION: [Pd]
* @HB_UNICODE_GENERAL_CATEGORY_CLOSE_PUNCTUATION: (Pe) * @HB_UNICODE_GENERAL_CATEGORY_CLOSE_PUNCTUATION: [Pe]
* @HB_UNICODE_GENERAL_CATEGORY_FINAL_PUNCTUATION: (Pf) * @HB_UNICODE_GENERAL_CATEGORY_FINAL_PUNCTUATION: [Pf]
* @HB_UNICODE_GENERAL_CATEGORY_INITIAL_PUNCTUATION: (Pi) * @HB_UNICODE_GENERAL_CATEGORY_INITIAL_PUNCTUATION: [Pi]
* @HB_UNICODE_GENERAL_CATEGORY_OTHER_PUNCTUATION: (Po) * @HB_UNICODE_GENERAL_CATEGORY_OTHER_PUNCTUATION: [Po]
* @HB_UNICODE_GENERAL_CATEGORY_OPEN_PUNCTUATION: (Ps) * @HB_UNICODE_GENERAL_CATEGORY_OPEN_PUNCTUATION: [Ps]
* @HB_UNICODE_GENERAL_CATEGORY_CURRENCY_SYMBOL: (Sc) * @HB_UNICODE_GENERAL_CATEGORY_CURRENCY_SYMBOL: [Sc]
* @HB_UNICODE_GENERAL_CATEGORY_MODIFIER_SYMBOL: (Sk) * @HB_UNICODE_GENERAL_CATEGORY_MODIFIER_SYMBOL: [Sk]
* @HB_UNICODE_GENERAL_CATEGORY_MATH_SYMBOL: (Sm) * @HB_UNICODE_GENERAL_CATEGORY_MATH_SYMBOL: [Sm]
* @HB_UNICODE_GENERAL_CATEGORY_OTHER_SYMBOL: (So) * @HB_UNICODE_GENERAL_CATEGORY_OTHER_SYMBOL: [So]
* @HB_UNICODE_GENERAL_CATEGORY_LINE_SEPARATOR: (Zl) * @HB_UNICODE_GENERAL_CATEGORY_LINE_SEPARATOR: [Zl]
* @HB_UNICODE_GENERAL_CATEGORY_PARAGRAPH_SEPARATOR: (Zp) * @HB_UNICODE_GENERAL_CATEGORY_PARAGRAPH_SEPARATOR: [Zp]
* @HB_UNICODE_GENERAL_CATEGORY_SPACE_SEPARATOR: (Zs) * @HB_UNICODE_GENERAL_CATEGORY_SPACE_SEPARATOR: [Zs]
* *
* Data type for the "General_Category" (gc) property from * Data type for the "General_Category" (gc) property from
* the Unicode Character Database. * the Unicode Character Database.
@ -122,61 +122,63 @@ typedef enum
/** /**
* hb_unicode_combining_class_t: * hb_unicode_combining_class_t:
* @HB_UNICODE_COMBINING_CLASS_NOT_REORDERED * @HB_UNICODE_COMBINING_CLASS_NOT_REORDERED: Spacing and enclosing marks; also many vowel and consonant signs, even if nonspacing
* @HB_UNICODE_COMBINING_CLASS_OVERLAY * @HB_UNICODE_COMBINING_CLASS_OVERLAY: Marks which overlay a base letter or symbol
* @HB_UNICODE_COMBINING_CLASS_NUKTA * @HB_UNICODE_COMBINING_CLASS_NUKTA: Diacritic nukta marks in Brahmi-derived scripts
* @HB_UNICODE_COMBINING_CLASS_KANA_VOICING * @HB_UNICODE_COMBINING_CLASS_KANA_VOICING: Hiragana/Katakana voicing marks
* @HB_UNICODE_COMBINING_CLASS_VIRAMA * @HB_UNICODE_COMBINING_CLASS_VIRAMA: Viramas
* @HB_UNICODE_COMBINING_CLASS_CCC11: (Hebrew) * @HB_UNICODE_COMBINING_CLASS_CCC10: [Hebrew]
* @HB_UNICODE_COMBINING_CLASS_CCC12: (Hebrew) * @HB_UNICODE_COMBINING_CLASS_CCC11: [Hebrew]
* @HB_UNICODE_COMBINING_CLASS_CCC13: (Hebrew) * @HB_UNICODE_COMBINING_CLASS_CCC12: [Hebrew]
* @HB_UNICODE_COMBINING_CLASS_CCC14: (Hebrew) * @HB_UNICODE_COMBINING_CLASS_CCC13: [Hebrew]
* @HB_UNICODE_COMBINING_CLASS_CCC15: (Hebrew) * @HB_UNICODE_COMBINING_CLASS_CCC14: [Hebrew]
* @HB_UNICODE_COMBINING_CLASS_CCC16: (Hebrew) * @HB_UNICODE_COMBINING_CLASS_CCC15: [Hebrew]
* @HB_UNICODE_COMBINING_CLASS_CCC17: (Hebrew) * @HB_UNICODE_COMBINING_CLASS_CCC16: [Hebrew]
* @HB_UNICODE_COMBINING_CLASS_CCC18: (Hebrew) * @HB_UNICODE_COMBINING_CLASS_CCC17: [Hebrew]
* @HB_UNICODE_COMBINING_CLASS_CCC19: (Hebrew) * @HB_UNICODE_COMBINING_CLASS_CCC18: [Hebrew]
* @HB_UNICODE_COMBINING_CLASS_CCC20: (Hebrew) * @HB_UNICODE_COMBINING_CLASS_CCC19: [Hebrew]
* @HB_UNICODE_COMBINING_CLASS_CCC21: (Hebrew) * @HB_UNICODE_COMBINING_CLASS_CCC20: [Hebrew]
* @HB_UNICODE_COMBINING_CLASS_CCC22: (Hebrew) * @HB_UNICODE_COMBINING_CLASS_CCC21: [Hebrew]
* @HB_UNICODE_COMBINING_CLASS_CCC23: (Hebrew) * @HB_UNICODE_COMBINING_CLASS_CCC22: [Hebrew]
* @HB_UNICODE_COMBINING_CLASS_CCC24: (Hebrew) * @HB_UNICODE_COMBINING_CLASS_CCC23: [Hebrew]
* @HB_UNICODE_COMBINING_CLASS_CCC25: (Hebrew) * @HB_UNICODE_COMBINING_CLASS_CCC24: [Hebrew]
* @HB_UNICODE_COMBINING_CLASS_CCC26: (Hebrew) * @HB_UNICODE_COMBINING_CLASS_CCC25: [Hebrew]
* @HB_UNICODE_COMBINING_CLASS_CCC28: (Arabic) * @HB_UNICODE_COMBINING_CLASS_CCC26: [Hebrew]
* @HB_UNICODE_COMBINING_CLASS_CCC29: (Arabic) * @HB_UNICODE_COMBINING_CLASS_CCC27: [Arabic]
* @HB_UNICODE_COMBINING_CLASS_CCC30: (Arabic) * @HB_UNICODE_COMBINING_CLASS_CCC28: [Arabic]
* @HB_UNICODE_COMBINING_CLASS_CCC31: (Arabic) * @HB_UNICODE_COMBINING_CLASS_CCC29: [Arabic]
* @HB_UNICODE_COMBINING_CLASS_CCC32: (Arabic) * @HB_UNICODE_COMBINING_CLASS_CCC30: [Arabic]
* @HB_UNICODE_COMBINING_CLASS_CCC33: (Arabic) * @HB_UNICODE_COMBINING_CLASS_CCC31: [Arabic]
* @HB_UNICODE_COMBINING_CLASS_CCC34: (Arabic) * @HB_UNICODE_COMBINING_CLASS_CCC32: [Arabic]
* @HB_UNICODE_COMBINING_CLASS_CCC35: (Arabic) * @HB_UNICODE_COMBINING_CLASS_CCC33: [Arabic]
* @HB_UNICODE_COMBINING_CLASS_CCC36: (Syriac) * @HB_UNICODE_COMBINING_CLASS_CCC34: [Arabic]
* @HB_UNICODE_COMBINING_CLASS_CCC84: (Telugu) * @HB_UNICODE_COMBINING_CLASS_CCC35: [Arabic]
* @HB_UNICODE_COMBINING_CLASS_CCC91: (Telugu) * @HB_UNICODE_COMBINING_CLASS_CCC36: [Syriac]
* @HB_UNICODE_COMBINING_CLASS_CCC103: (Thai) * @HB_UNICODE_COMBINING_CLASS_CCC84: [Telugu]
* @HB_UNICODE_COMBINING_CLASS_CCC107: (Thai) * @HB_UNICODE_COMBINING_CLASS_CCC91: [Telugu]
* @HB_UNICODE_COMBINING_CLASS_CCC118: (Lao) * @HB_UNICODE_COMBINING_CLASS_CCC103: [Thai]
* @HB_UNICODE_COMBINING_CLASS_CCC122: (Lao) * @HB_UNICODE_COMBINING_CLASS_CCC107: [Thai]
* @HB_UNICODE_COMBINING_CLASS_CCC129: (Tibetan) * @HB_UNICODE_COMBINING_CLASS_CCC118: [Lao]
* @HB_UNICODE_COMBINING_CLASS_CCC130: (Tibetan) * @HB_UNICODE_COMBINING_CLASS_CCC122: [Lao]
* @HB_UNICODE_COMBINING_CLASS_CCC133: (Tibetan) * @HB_UNICODE_COMBINING_CLASS_CCC129: [Tibetan]
* @HB_UNICODE_COMBINING_CLASS_ATTACHED_BELOW_LEFT * @HB_UNICODE_COMBINING_CLASS_CCC130: [Tibetan]
* @HB_UNICODE_COMBINING_CLASS_ATTACHED_BELOW * @HB_UNICODE_COMBINING_CLASS_CCC133: [Tibetan]
* @HB_UNICODE_COMBINING_CLASS_ATTACHED_ABOVE * @HB_UNICODE_COMBINING_CLASS_ATTACHED_BELOW_LEFT: Marks attached at the bottom left
* @HB_UNICODE_COMBINING_CLASS_ATTACHED_ABOVE_RIGHT * @HB_UNICODE_COMBINING_CLASS_ATTACHED_BELOW: Marks attached directly below
* @HB_UNICODE_COMBINING_CLASS_BELOW_LEFT * @HB_UNICODE_COMBINING_CLASS_ATTACHED_ABOVE: Marks attached directly above
* @HB_UNICODE_COMBINING_CLASS_BELOW * @HB_UNICODE_COMBINING_CLASS_ATTACHED_ABOVE_RIGHT: Marks attached at the top right
* @HB_UNICODE_COMBINING_CLASS_BELOW_RIGHT * @HB_UNICODE_COMBINING_CLASS_BELOW_LEFT: Distinct marks at the bottom left
* @HB_UNICODE_COMBINING_CLASS_LEFT * @HB_UNICODE_COMBINING_CLASS_BELOW: Distinct marks directly below
* @HB_UNICODE_COMBINING_CLASS_RIGHT * @HB_UNICODE_COMBINING_CLASS_BELOW_RIGHT: Distinct marks at the bottom right
* @HB_UNICODE_COMBINING_CLASS_ABOVE_LEFT * @HB_UNICODE_COMBINING_CLASS_LEFT: Distinct marks to the left
* @HB_UNICODE_COMBINING_CLASS_ABOVE * @HB_UNICODE_COMBINING_CLASS_RIGHT: Distinct marks to the right
* @HB_UNICODE_COMBINING_CLASS_ABOVE_RIGHT * @HB_UNICODE_COMBINING_CLASS_ABOVE_LEFT: Distinct marks at the top left
* @HB_UNICODE_COMBINING_CLASS_DOUBLE_BELOW * @HB_UNICODE_COMBINING_CLASS_ABOVE: Distinct marks directly above
* @HB_UNICODE_COMBINING_CLASS_DOUBLE_ABOVE * @HB_UNICODE_COMBINING_CLASS_ABOVE_RIGHT: Distinct marks at the top right
* @HB_UNICODE_COMBINING_CLASS_IOTA_SUBSCRIPT * @HB_UNICODE_COMBINING_CLASS_DOUBLE_BELOW: Distinct marks subtending two bases
* @HB_UNICODE_COMBINING_CLASS_INVALID: 255 * @HB_UNICODE_COMBINING_CLASS_DOUBLE_ABOVE: Distinct marks extending above two bases
* @HB_UNICODE_COMBINING_CLASS_IOTA_SUBSCRIPT: Greek iota subscript only
* @HB_UNICODE_COMBINING_CLASS_INVALID: Invalid combining class
* *
* Data type for the Canonical_Combining_Class (ccc) property * Data type for the Canonical_Combining_Class (ccc) property
* from the Unicode Character Database. * from the Unicode Character Database.
@ -335,12 +337,17 @@ hb_unicode_funcs_get_parent (hb_unicode_funcs_t *ufuncs);
/** /**
* hb_unicode_combining_class_func_t: * hb_unicode_combining_class_func_t:
* @ufuncs: A Unicode-functions structure
* @unicode: The code point to query
* @user_data: User data pointer passed by the caller
* *
* A virtual method for the #hb_unicode_funcs_t structure. * A virtual method for the #hb_unicode_funcs_t structure.
* *
* This method should retrieve the Canonical Combining Class (ccc) * This method should retrieve the Canonical Combining Class (ccc)
* property for a specified Unicode code point. * property for a specified Unicode code point.
* *
* Return value: The #hb_unicode_combining_class_t of @unicode
*
**/ **/
typedef hb_unicode_combining_class_t (*hb_unicode_combining_class_func_t) (hb_unicode_funcs_t *ufuncs, typedef hb_unicode_combining_class_t (*hb_unicode_combining_class_func_t) (hb_unicode_funcs_t *ufuncs,
hb_codepoint_t unicode, hb_codepoint_t unicode,
@ -348,12 +355,17 @@ typedef hb_unicode_combining_class_t (*hb_unicode_combining_class_func_t) (hb_un
/** /**
* hb_unicode_general_category_func_t: * hb_unicode_general_category_func_t:
* @ufuncs: A Unicode-functions structure
* @unicode: The code point to query
* @user_data: User data pointer passed by the caller
* *
* A virtual method for the #hb_unicode_funcs_t structure. * A virtual method for the #hb_unicode_funcs_t structure.
* *
* This method should retrieve the General Category property for * This method should retrieve the General Category property for
* a specified Unicode code point. * a specified Unicode code point.
* *
* Return value: The #hb_unicode_general_category_t of @unicode
*
**/ **/
typedef hb_unicode_general_category_t (*hb_unicode_general_category_func_t) (hb_unicode_funcs_t *ufuncs, typedef hb_unicode_general_category_t (*hb_unicode_general_category_func_t) (hb_unicode_funcs_t *ufuncs,
hb_codepoint_t unicode, hb_codepoint_t unicode,
@ -361,6 +373,9 @@ typedef hb_unicode_general_category_t (*hb_unicode_general_category_func_t) (hb_
/** /**
* hb_unicode_mirroring_func_t: * hb_unicode_mirroring_func_t:
* @ufuncs: A Unicode-functions structure
* @unicode: The code point to query
* @user_data: User data pointer passed by the caller
* *
* A virtual method for the #hb_unicode_funcs_t structure. * A virtual method for the #hb_unicode_funcs_t structure.
* *
@ -371,6 +386,8 @@ typedef hb_unicode_general_category_t (*hb_unicode_general_category_func_t) (hb_
* Bi-Directional Mirroring Glyph defined, the method should * Bi-Directional Mirroring Glyph defined, the method should
* return the original code point.</note> * return the original code point.</note>
* *
* Return value: The #hb_codepoint_t of the Mirroring Glyph for @unicode
*
**/ **/
typedef hb_codepoint_t (*hb_unicode_mirroring_func_t) (hb_unicode_funcs_t *ufuncs, typedef hb_codepoint_t (*hb_unicode_mirroring_func_t) (hb_unicode_funcs_t *ufuncs,
hb_codepoint_t unicode, hb_codepoint_t unicode,
@ -378,12 +395,17 @@ typedef hb_codepoint_t (*hb_unicode_mirroring_func_t) (hb_unicode_funcs_t *uf
/** /**
* hb_unicode_script_func_t: * hb_unicode_script_func_t:
* @ufuncs: A Unicode-functions structure
* @unicode: The code point to query
* @user_data: User data pointer passed by the caller
* *
* A virtual method for the #hb_unicode_funcs_t structure. * A virtual method for the #hb_unicode_funcs_t structure.
* *
* This method should retrieve the Script property for a * This method should retrieve the Script property for a
* specified Unicode code point. * specified Unicode code point.
* *
* Return value: The #hb_script_t of @unicode
*
**/ **/
typedef hb_script_t (*hb_unicode_script_func_t) (hb_unicode_funcs_t *ufuncs, typedef hb_script_t (*hb_unicode_script_func_t) (hb_unicode_funcs_t *ufuncs,
hb_codepoint_t unicode, hb_codepoint_t unicode,
@ -391,6 +413,11 @@ typedef hb_script_t (*hb_unicode_script_func_t) (hb_unicode_funcs_t *ufuncs,
/** /**
* hb_unicode_compose_func_t: * hb_unicode_compose_func_t:
* @ufuncs: A Unicode-functions structure
* @a: The first code point to compose
* @b: The second code point to compose
* @ab: (out): The composed code point
* @user_data: user data pointer passed by the caller
* *
* A virtual method for the #hb_unicode_funcs_t structure. * A virtual method for the #hb_unicode_funcs_t structure.
* *
@ -400,6 +427,8 @@ typedef hb_script_t (*hb_unicode_script_func_t) (hb_unicode_funcs_t *ufuncs,
* The method must return an #hb_bool_t indicating the success * The method must return an #hb_bool_t indicating the success
* of the composition. * of the composition.
* *
* Return value: True is @a,@b composed, false otherwise
*
**/ **/
typedef hb_bool_t (*hb_unicode_compose_func_t) (hb_unicode_funcs_t *ufuncs, typedef hb_bool_t (*hb_unicode_compose_func_t) (hb_unicode_funcs_t *ufuncs,
hb_codepoint_t a, hb_codepoint_t a,
@ -409,6 +438,11 @@ typedef hb_bool_t (*hb_unicode_compose_func_t) (hb_unicode_funcs_t *ufuncs,
/** /**
* hb_unicode_decompose_func_t: * hb_unicode_decompose_func_t:
* @ufuncs: A Unicode-functions structure
* @ab: The code point to decompose
* @a: (out): The first decomposed code point
* @b: (out): The second decomposed code point
* @user_data: user data pointer passed by the caller
* *
* A virtual method for the #hb_unicode_funcs_t structure. * A virtual method for the #hb_unicode_funcs_t structure.
* *
@ -417,6 +451,8 @@ typedef hb_bool_t (*hb_unicode_compose_func_t) (hb_unicode_funcs_t *ufuncs,
* output parameters (if successful). The method must return an * output parameters (if successful). The method must return an
* #hb_bool_t indicating the success of the composition. * #hb_bool_t indicating the success of the composition.
* *
* Return value: True if @ab decomposed, false otherwise
*
**/ **/
typedef hb_bool_t (*hb_unicode_decompose_func_t) (hb_unicode_funcs_t *ufuncs, typedef hb_bool_t (*hb_unicode_decompose_func_t) (hb_unicode_funcs_t *ufuncs,
hb_codepoint_t ab, hb_codepoint_t ab,