Fixup max decomposition len guarantee

Unicode Technical Committee agreed to limit decomposition length to
18 in both cases.  Reflect that.
This commit is contained in:
Behdad Esfahbod 2011-08-17 12:13:17 +02:00
parent b5f1ea4bb1
commit e3219c8425
2 changed files with 7 additions and 4 deletions

View File

@ -696,9 +696,12 @@ g_unichar_compose (gunichar a,
* The decomposed sequence is placed in @result. Only up to
* @result_len characters are written into @result. The length
* of the full decomposition (irrespective of @result_len) is
* returned by the function. For canonical decomposition, a
* result buffer of length 4 is always enough, whereas for
* compatibility decomposition, a buffer of 18 is enough.
* returned by the function. For canonical decomposition,
* currently all decompositions are of length at most 4, but
* this may change in the future (very unlikely though).
* At any rate, Unicode does guarantee that a buffer of length
* 18 is always enough for both compatibility and canonical
* decompositions.
*
* See <ulink url="http://unicode.org/reports/tr15/">UAX#15</ulink>
* for details.

View File

@ -855,7 +855,7 @@ real_toupper (const gchar *str,
* which could simplify this considerably.
*/
gsize decomp_len, i;
gunichar decomp[4];
gunichar decomp[18];
decomp_len = g_unichar_fully_decompose (c, FALSE, decomp, 4);
for (i=0; i < decomp_len; i++)