mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-04 02:06:18 +01:00
Bug 665685 — Add a #define for the max length of a Unicode decomposition
Add G_UNICHAR_MAX_DECOMPOSITION_LEN for the maximum length of the decomposition of a single Unicode character. Closes: bgo#665685
This commit is contained in:
parent
990af4b372
commit
3ac7c35656
@ -551,6 +551,18 @@ gsize g_unichar_fully_decompose (gunichar ch,
|
|||||||
gunichar *result,
|
gunichar *result,
|
||||||
gsize result_len);
|
gsize result_len);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_UNICHAR_MAX_COMPAT_DECOMPOSITION_LEN:
|
||||||
|
*
|
||||||
|
* The maximum length (in codepoints) of a compatibility or canonical
|
||||||
|
* decomposition of a single Unicode character.
|
||||||
|
*
|
||||||
|
* This is as defined by Unicode 6.1.
|
||||||
|
*
|
||||||
|
* Since: 2.31.3
|
||||||
|
*/
|
||||||
|
#define G_UNICHAR_MAX_DECOMPOSITION_LEN 18 /* codepoints */
|
||||||
|
|
||||||
/* Compute canonical ordering of a string in-place. This rearranges
|
/* Compute canonical ordering of a string in-place. This rearranges
|
||||||
decomposed characters in the string according to their combining
|
decomposed characters in the string according to their combining
|
||||||
classes. See the Unicode manual for more information. */
|
classes. See the Unicode manual for more information. */
|
||||||
|
@ -700,8 +700,8 @@ g_unichar_compose (gunichar a,
|
|||||||
* currently all decompositions are of length at most 4, but
|
* currently all decompositions are of length at most 4, but
|
||||||
* this may change in the future (very unlikely though).
|
* this may change in the future (very unlikely though).
|
||||||
* At any rate, Unicode does guarantee that a buffer of length
|
* At any rate, Unicode does guarantee that a buffer of length
|
||||||
* 18 is always enough for both compatibility and canonical
|
* %G_UNICHAR_MAX_DECOMPOSITION_LEN is always enough for both compatibility and
|
||||||
* decompositions, so that is the size recommended.
|
* canonical decompositions, so that is the size recommended.
|
||||||
*
|
*
|
||||||
* See <ulink url="http://unicode.org/reports/tr15/">UAX#15</ulink>
|
* See <ulink url="http://unicode.org/reports/tr15/">UAX#15</ulink>
|
||||||
* for details.
|
* for details.
|
||||||
|
@ -855,9 +855,9 @@ real_toupper (const gchar *str,
|
|||||||
* which could simplify this considerably.
|
* which could simplify this considerably.
|
||||||
*/
|
*/
|
||||||
gsize decomp_len, i;
|
gsize decomp_len, i;
|
||||||
gunichar decomp[18];
|
gunichar decomp[G_UNICHAR_MAX_DECOMPOSITION_LEN];
|
||||||
|
|
||||||
decomp_len = g_unichar_fully_decompose (c, FALSE, decomp, 18);
|
decomp_len = g_unichar_fully_decompose (c, FALSE, decomp, G_N_ELEMENTS (decomp));
|
||||||
for (i=0; i < decomp_len; i++)
|
for (i=0; i < decomp_len; i++)
|
||||||
{
|
{
|
||||||
if (decomp[i] != 0x307 /* COMBINING DOT ABOVE */)
|
if (decomp[i] != 0x307 /* COMBINING DOT ABOVE */)
|
||||||
|
Loading…
Reference in New Issue
Block a user