[glib] Fixup max decomposition len guarantee



commit e3219c8425e9417ee888dd2aa8b5c826da62edc1
Author: Behdad Esfahbod <behdad behdad org>
Date:   Wed Aug 17 12:13:17 2011 +0200

    Fixup max decomposition len guarantee
    
    Unicode Technical Committee agreed to limit decomposition length to
    18 in both cases.  Reflect that.

 glib/gunidecomp.c |    9 ++++++---
 glib/guniprop.c   |    2 +-
 2 files changed, 7 insertions(+), 4 deletions(-)
---
diff --git a/glib/gunidecomp.c b/glib/gunidecomp.c
index df5a627..fe76ec3 100644
--- a/glib/gunidecomp.c
+++ b/glib/gunidecomp.c
@@ -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.
diff --git a/glib/guniprop.c b/glib/guniprop.c
index c22035c..55170d4 100644
--- a/glib/guniprop.c
+++ b/glib/guniprop.c
@@ -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++)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]