]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
New UnicodeMap.txt has >16bit multi-decomposition keys, support them.
authorTimo Sirainen <tss@iki.fi>
Thu, 1 Oct 2009 20:40:32 +0000 (16:40 -0400)
committerTimo Sirainen <tss@iki.fi>
Thu, 1 Oct 2009 20:40:32 +0000 (16:40 -0400)
--HG--
branch : HEAD

src/lib/unichar.c
src/lib/unicodemap.pl

index 856614bde4025bb4cdd806108a81838c0c4bf1ed..7a0a95f105e1446795527547363e231a5001f239 100644 (file)
@@ -250,7 +250,7 @@ static bool uni_ucs4_decompose_multi_utf8(unichar_t chr, buffer_t *output)
        if (chr > 0xffff)
                return FALSE;
 
-       if (!uint16_find(multidecomp_keys, N_ELEMENTS(multidecomp_keys),
+       if (!uint32_find(multidecomp_keys, N_ELEMENTS(multidecomp_keys),
                         chr, &idx))
                return FALSE;
 
index 35f91bbe714c4748f80d4bad9058e4851b50aa63..2918de4c3423aac4269a7e704cafb8e1a8f88ab6 100755 (executable)
@@ -32,7 +32,7 @@ while (<>) {
       # unicharacter decomposition. use separate lists for this
       my $value = eval("0x$1");
       if ($value > 0xffff) {
-       print STDERR "We've assumed decomposition codes are max. 16bit\n";
+       print STDERR "Error: We've assumed decomposition codes are max. 16bit\n";
        exit;
       }
       if ($code <= 0xffff) {
@@ -44,8 +44,8 @@ while (<>) {
       }
     } else {
       # multicharacter decomposition.
-      if ($code > 0xffff) {
-       print STDERR "We've assumed multi-decomposition key codes are max. 16bit\n";
+      if ($code > 0xffffffff) {
+       print STDERR "Error: We've assumed multi-decomposition key codes are max. 32bit\n";
        exit;
       }
       
@@ -55,7 +55,7 @@ while (<>) {
       foreach my $dcode (split(" ", $decomp_codes)) {
        my $value = eval("0x$dcode");
        if ($value > 0xffff) {
-         print STDERR "We've assumed decomposition codes are max. 16bit\n";
+         print STDERR "Error: We've assumed decomposition codes are max. 16bit\n";
          exit;
        }
        push @multidecomp_values, $value;
@@ -121,7 +121,7 @@ print "static const uint16_t uni32_decomp_values[] = {\n\t";
 print_list(\@uni32_decomp_values);
 print "\n};\n";
 
-print "static const uint16_t multidecomp_keys[] = {\n\t";
+print "static const uint32_t multidecomp_keys[] = {\n\t";
 print_list(\@multidecomp_keys);
 print "\n};\n";