? x
Index: glib/Makefile.am
===================================================================
RCS file: /cvs/gnome/glib/glib/Makefile.am,v
retrieving revision 1.137
diff -u -p -r1.137 Makefile.am
--- glib/Makefile.am	7 Sep 2005 10:10:49 -0000	1.137
+++ glib/Makefile.am	3 Nov 2005 19:56:43 -0000
@@ -86,6 +86,7 @@ libglib_2_0_la_SOURCES = 	\
 	gmarkup.c		\
 	gmem.c			\
 	gmessages.c		\
+	gmirroringtable.h	\
 	gnode.c			\
 	goption.c		\
 	gpattern.c		\
Index: glib/gen-unicode-tables.pl
===================================================================
RCS file: /cvs/gnome/glib/glib/gen-unicode-tables.pl,v
retrieving revision 1.13
diff -u -p -r1.13 gen-unicode-tables.pl
--- glib/gen-unicode-tables.pl	1 Oct 2005 12:33:32 -0000	1.13
+++ glib/gen-unicode-tables.pl	3 Nov 2005 19:56:43 -0000
@@ -176,7 +176,7 @@ if (@ARGV != 2) {
     die "\nUsage: $0 [-decomp | -both] UNICODE-VERSION DIRECTORY\n\n       DIRECTORY should contain the following Unicode data files:\n       UnicodeData.txt, LineBreak.txt, SpecialCasing.txt, CaseFolding.txt,\n       CompositionExclusions.txt, BidiMirroring.txt\n\n";
 }
 
-my ($unicodedatatxt, $linebreaktxt, $specialcasingtxt, $casefoldingtxt, $compositionexclusionstxt, $bidimirroringtxt);
+my ($unicodedatatxt, $linebreaktxt, $specialcasingtxt, $casefoldingtxt, $compositionexclusionstxt);
 
 my $d = $ARGV[1];
 opendir (my $dir, $d) or die "Cannot open Unicode data dir $d: $!\n";
@@ -187,7 +187,6 @@ for my $f (readdir ($dir))
     $specialcasingtxt = "$d/$f" if ($f =~ /SpecialCasing.*\.txt/);
     $casefoldingtxt = "$d/$f" if ($f =~ /CaseFolding.*\.txt/);
     $compositionexclusionstxt = "$d/$f" if ($f =~ /CompositionExclusions.*\.txt/);
-    $bidimirroringtxt = "$d/$f" if ($f =~ /BidiMirroring.*\.txt/);
 }
 
 defined $unicodedatatxt or die "Did not find UnicodeData file";
@@ -195,7 +194,6 @@ defined $linebreaktxt or die "Did not fi
 defined $specialcasingtxt or die "Did not find SpecialCasing file";
 defined $casefoldingtxt or die "Did not find CaseFolding file";
 defined $compositionexclusionstxt or die "Did not find CompositionExclusions file";
-defined $bidimirroringtxt or die "Did not find BidiMirroring file";
 
 print "Creating decomp table\n" if ($do_decomp);
 print "Creating property table\n" if ($do_props);
@@ -486,23 +484,6 @@ while (<INPUT>)
 
 close INPUT;
 
-open (INPUT, "< $bidimirroringtxt") || exit 1;
-
-my @bidimirror;
-while (<INPUT>)
-{
-    chomp;
-
-    next if /^#/;
-    next if /^\s*$/;
-
-    s/\s*#.*//;
-
-    @fields = split ('\s*;\s*', $_, 30);
-
-    push @bidimirror, [hex ($fields[0]), hex ($fields[1])];
-}
- 
 if ($do_props) {
     &print_tables ($last_code)
 }
@@ -678,21 +659,6 @@ sub print_tables
     #
     &output_special_case_table (\*OUT);
     &output_casefold_table (\*OUT);
-
-    print OUT "static const struct {\n";
-    print OUT "    gunichar ch;\n";
-    print OUT "    gunichar mirrored_ch;\n";
-    print OUT "} bidi_mirroring_table[] =\n";
-    print OUT "{\n";
-    $first = 1;
-    foreach $item (@bidimirror)
-    {
-        print OUT ",\n" unless $first;
-        $first = 0;
-        printf OUT "  { 0x%04x, 0x%04x }", $item->[0], $item->[1];
-        $bytes_out += 8;
-    }
-    print OUT "\n};\n\n";
 
     print OUT "#endif /* CHARTABLES_H */\n";
 
Index: glib/glist.c
===================================================================
RCS file: /cvs/gnome/glib/glib/glist.c,v
retrieving revision 1.30
diff -u -p -r1.30 glist.c
--- glib/glist.c	14 Mar 2005 04:26:57 -0000	1.30
+++ glib/glist.c	3 Nov 2005 19:56:43 -0000
@@ -746,19 +746,16 @@ g_list_sort_merge (GList     *l1, 
       if (cmp <= 0)
         {
 	  l->next = l1;
-	  l = l->next;
-	  l->prev = lprev; 
-	  lprev = l;
 	  l1 = l1->next;
         } 
       else 
 	{
 	  l->next = l2;
-	  l = l->next;
-	  l->prev = lprev; 
-	  lprev = l;
 	  l2 = l2->next;
         }
+      l = l->next;
+      l->prev = lprev; 
+      lprev = l;
     }
   l->next = l1 ? l1 : l2;
   l->next->prev = l;
Index: glib/gmirroringtable.h
===================================================================
RCS file: glib/gmirroringtable.h
diff -N glib/gmirroringtable.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ glib/gmirroringtable.h	3 Nov 2005 19:56:43 -0000
@@ -0,0 +1,1094 @@
+/* gmirroringtable.h
+ * generated by gen-mirroring-tab 
+ * from the file BidiMirroring.txt of */
+
+#define PACKTAB_UINT8 guint8
+#define PACKTAB_UINT16 guint16
+#define PACKTAB_UINT32 guint32
+
+/*
+  generated by packtab.c version 3
+
+  use GLIB_GET_MIRRORING_DELTA(key) to access your table
+
+  assumed sizeof(gint16): 2
+  required memory: 1520
+  lookups: 3
+  partition shape: Mir[256][64][4]
+  different table entries: 1 11 38
+*/
+
+/* *INDENT-OFF* */
+
+static const gint16 MirLev2[4*38] = {
+#define MirLev2_0000 0x0
+  0,0,0,0,
+#define MirLev2_0028 0x4
+  1,-1,0,0,
+#define MirLev2_003C 0x8
+  2,0,-2,0,
+#define MirLev2_0058 0xC
+  0,0,0,2,
+#define MirLev2_005C 0x10
+  0,-2,0,0,
+#define MirLev2_00A8 0x14
+  0,0,0,16,
+#define MirLev2_00B8 0x18
+  0,0,0,-16,
+#define MirLev2_2038 0x1C
+  0,1,-1,0,
+#define MirLev2_2208 0x20
+  3,3,3,-3,
+#define MirLev2_220C 0x24
+  -3,-3,0,0,
+#define MirLev2_2214 0x28
+  0,2016,0,0,
+#define MirLev2_2240 0x2C
+  0,0,0,138,
+#define MirLev2_2250 0x30
+  0,0,1,-1,
+#define MirLev2_2264 0x34
+  1,-1,1,-1,
+#define MirLev2_228C 0x38
+  0,0,0,1,
+#define MirLev2_2290 0x3C
+  -1,1,-1,0,
+#define MirLev2_2298 0x40
+  1824,0,0,0,
+#define MirLev2_22A4 0x44
+  0,0,2104,0,
+#define MirLev2_22A8 0x48
+  2108,2106,0,2106,
+#define MirLev2_22C8 0x4C
+  0,1,-1,1,
+#define MirLev2_22CC 0x50
+  -1,-138,0,0,
+#define MirLev2_22F0 0x54
+  1,-1,8,8,
+#define MirLev2_22F4 0x58
+  8,0,7,7,
+#define MirLev2_22F8 0x5C
+  0,0,-8,-8,
+#define MirLev2_22FC 0x60
+  -8,-7,-7,0,
+#define MirLev2_2984 0x64
+  -1,1,-1,1,
+#define MirLev2_298C 0x68
+  -1,3,1,-1,
+#define MirLev2_2990 0x6C
+  -3,1,-1,1,
+#define MirLev2_2998 0x70
+  -1,0,0,0,
+#define MirLev2_29B8 0x74
+  -1824,0,0,0,
+#define MirLev2_29F4 0x78
+  0,-2016,0,0,
+#define MirLev2_2AAC 0x7C
+  1,-1,0,1,
+#define MirLev2_2AB0 0x80
+  -1,0,0,1,
+#define MirLev2_2ADC 0x84
+  0,0,-2104,0,
+#define MirLev2_2AE0 0x88
+  0,0,0,-2106,
+#define MirLev2_2AE4 0x8C
+  -2108,-2106,0,0,
+#define MirLev2_FF5C 0x90
+  0,-2,0,1,
+#define MirLev2_FF60 0x94
+  -1,0,1,-1,
+};
+
+static const PACKTAB_UINT8 MirLev1[64*11] = {
+#define MirLev1_0000 0x0
+  MirLev2_0000,  /* 0000..0003 */
+  MirLev2_0000,  /* 0004..0007 */
+  MirLev2_0000,  /* 0008..000B */
+  MirLev2_0000,  /* 000C..000F */
+  MirLev2_0000,  /* 0010..0013 */
+  MirLev2_0000,  /* 0014..0017 */
+  MirLev2_0000,  /* 0018..001B */
+  MirLev2_0000,  /* 001C..001F */
+  MirLev2_0000,  /* 0020..0023 */
+  MirLev2_0000,  /* 0024..0027 */
+  MirLev2_0028,  /* 0028..002B */
+  MirLev2_0000,  /* 002C..002F */
+  MirLev2_0000,  /* 0030..0033 */
+  MirLev2_0000,  /* 0034..0037 */
+  MirLev2_0000,  /* 0038..003B */
+  MirLev2_003C,  /* 003C..003F */
+  MirLev2_0000,  /* 0040..0043 */
+  MirLev2_0000,  /* 0044..0047 */
+  MirLev2_0000,  /* 0048..004B */
+  MirLev2_0000,  /* 004C..004F */
+  MirLev2_0000,  /* 0050..0053 */
+  MirLev2_0000,  /* 0054..0057 */
+  MirLev2_0058,  /* 0058..005B */
+  MirLev2_005C,  /* 005C..005F */
+  MirLev2_0000,  /* 0060..0063 */
+  MirLev2_0000,  /* 0064..0067 */
+  MirLev2_0000,  /* 0068..006B */
+  MirLev2_0000,  /* 006C..006F */
+  MirLev2_0000,  /* 0070..0073 */
+  MirLev2_0000,  /* 0074..0077 */
+  MirLev2_0058,  /* 0078..007B */
+  MirLev2_005C,  /* 007C..007F */
+  MirLev2_0000,  /* 0080..0083 */
+  MirLev2_0000,  /* 0084..0087 */
+  MirLev2_0000,  /* 0088..008B */
+  MirLev2_0000,  /* 008C..008F */
+  MirLev2_0000,  /* 0090..0093 */
+  MirLev2_0000,  /* 0094..0097 */
+  MirLev2_0000,  /* 0098..009B */
+  MirLev2_0000,  /* 009C..009F */
+  MirLev2_0000,  /* 00A0..00A3 */
+  MirLev2_0000,  /* 00A4..00A7 */
+  MirLev2_00A8,  /* 00A8..00AB */
+  MirLev2_0000,  /* 00AC..00AF */
+  MirLev2_0000,  /* 00B0..00B3 */
+  MirLev2_0000,  /* 00B4..00B7 */
+  MirLev2_00B8,  /* 00B8..00BB */
+  MirLev2_0000,  /* 00BC..00BF */
+  MirLev2_0000,  /* 00C0..00C3 */
+  MirLev2_0000,  /* 00C4..00C7 */
+  MirLev2_0000,  /* 00C8..00CB */
+  MirLev2_0000,  /* 00CC..00CF */
+  MirLev2_0000,  /* 00D0..00D3 */
+  MirLev2_0000,  /* 00D4..00D7 */
+  MirLev2_0000,  /* 00D8..00DB */
+  MirLev2_0000,  /* 00DC..00DF */
+  MirLev2_0000,  /* 00E0..00E3 */
+  MirLev2_0000,  /* 00E4..00E7 */
+  MirLev2_0000,  /* 00E8..00EB */
+  MirLev2_0000,  /* 00EC..00EF */
+  MirLev2_0000,  /* 00F0..00F3 */
+  MirLev2_0000,  /* 00F4..00F7 */
+  MirLev2_0000,  /* 00F8..00FB */
+  MirLev2_0000,  /* 00FC..00FF */
+#define MirLev1_0100 0x40
+  MirLev2_0000,  /* 0100..0103 */
+  MirLev2_0000,  /* 0104..0107 */
+  MirLev2_0000,  /* 0108..010B */
+  MirLev2_0000,  /* 010C..010F */
+  MirLev2_0000,  /* 0110..0113 */
+  MirLev2_0000,  /* 0114..0117 */
+  MirLev2_0000,  /* 0118..011B */
+  MirLev2_0000,  /* 011C..011F */
+  MirLev2_0000,  /* 0120..0123 */
+  MirLev2_0000,  /* 0124..0127 */
+  MirLev2_0000,  /* 0128..012B */
+  MirLev2_0000,  /* 012C..012F */
+  MirLev2_0000,  /* 0130..0133 */
+  MirLev2_0000,  /* 0134..0137 */
+  MirLev2_0000,  /* 0138..013B */
+  MirLev2_0000,  /* 013C..013F */
+  MirLev2_0000,  /* 0140..0143 */
+  MirLev2_0000,  /* 0144..0147 */
+  MirLev2_0000,  /* 0148..014B */
+  MirLev2_0000,  /* 014C..014F */
+  MirLev2_0000,  /* 0150..0153 */
+  MirLev2_0000,  /* 0154..0157 */
+  MirLev2_0000,  /* 0158..015B */
+  MirLev2_0000,  /* 015C..015F */
+  MirLev2_0000,  /* 0160..0163 */
+  MirLev2_0000,  /* 0164..0167 */
+  MirLev2_0000,  /* 0168..016B */
+  MirLev2_0000,  /* 016C..016F */
+  MirLev2_0000,  /* 0170..0173 */
+  MirLev2_0000,  /* 0174..0177 */
+  MirLev2_0000,  /* 0178..017B */
+  MirLev2_0000,  /* 017C..017F */
+  MirLev2_0000,  /* 0180..0183 */
+  MirLev2_0000,  /* 0184..0187 */
+  MirLev2_0000,  /* 0188..018B */
+  MirLev2_0000,  /* 018C..018F */
+  MirLev2_0000,  /* 0190..0193 */
+  MirLev2_0000,  /* 0194..0197 */
+  MirLev2_0000,  /* 0198..019B */
+  MirLev2_0000,  /* 019C..019F */
+  MirLev2_0000,  /* 01A0..01A3 */
+  MirLev2_0000,  /* 01A4..01A7 */
+  MirLev2_0000,  /* 01A8..01AB */
+  MirLev2_0000,  /* 01AC..01AF */
+  MirLev2_0000,  /* 01B0..01B3 */
+  MirLev2_0000,  /* 01B4..01B7 */
+  MirLev2_0000,  /* 01B8..01BB */
+  MirLev2_0000,  /* 01BC..01BF */
+  MirLev2_0000,  /* 01C0..01C3 */
+  MirLev2_0000,  /* 01C4..01C7 */
+  MirLev2_0000,  /* 01C8..01CB */
+  MirLev2_0000,  /* 01CC..01CF */
+  MirLev2_0000,  /* 01D0..01D3 */
+  MirLev2_0000,  /* 01D4..01D7 */
+  MirLev2_0000,  /* 01D8..01DB */
+  MirLev2_0000,  /* 01DC..01DF */
+  MirLev2_0000,  /* 01E0..01E3 */
+  MirLev2_0000,  /* 01E4..01E7 */
+  MirLev2_0000,  /* 01E8..01EB */
+  MirLev2_0000,  /* 01EC..01EF */
+  MirLev2_0000,  /* 01F0..01F3 */
+  MirLev2_0000,  /* 01F4..01F7 */
+  MirLev2_0000,  /* 01F8..01FB */
+  MirLev2_0000,  /* 01FC..01FF */
+#define MirLev1_2000 0x80
+  MirLev2_0000,  /* 2000..2003 */
+  MirLev2_0000,  /* 2004..2007 */
+  MirLev2_0000,  /* 2008..200B */
+  MirLev2_0000,  /* 200C..200F */
+  MirLev2_0000,  /* 2010..2013 */
+  MirLev2_0000,  /* 2014..2017 */
+  MirLev2_0000,  /* 2018..201B */
+  MirLev2_0000,  /* 201C..201F */
+  MirLev2_0000,  /* 2020..2023 */
+  MirLev2_0000,  /* 2024..2027 */
+  MirLev2_0000,  /* 2028..202B */
+  MirLev2_0000,  /* 202C..202F */
+  MirLev2_0000,  /* 2030..2033 */
+  MirLev2_0000,  /* 2034..2037 */
+  MirLev2_2038,  /* 2038..203B */
+  MirLev2_0000,  /* 203C..203F */
+  MirLev2_0000,  /* 2040..2043 */
+  MirLev2_2038,  /* 2044..2047 */
+  MirLev2_0000,  /* 2048..204B */
+  MirLev2_0000,  /* 204C..204F */
+  MirLev2_0000,  /* 2050..2053 */
+  MirLev2_0000,  /* 2054..2057 */
+  MirLev2_0000,  /* 2058..205B */
+  MirLev2_0000,  /* 205C..205F */
+  MirLev2_0000,  /* 2060..2063 */
+  MirLev2_0000,  /* 2064..2067 */
+  MirLev2_0000,  /* 2068..206B */
+  MirLev2_0000,  /* 206C..206F */
+  MirLev2_0000,  /* 2070..2073 */
+  MirLev2_0000,  /* 2074..2077 */
+  MirLev2_0000,  /* 2078..207B */
+  MirLev2_2038,  /* 207C..207F */
+  MirLev2_0000,  /* 2080..2083 */
+  MirLev2_0000,  /* 2084..2087 */
+  MirLev2_0000,  /* 2088..208B */
+  MirLev2_2038,  /* 208C..208F */
+  MirLev2_0000,  /* 2090..2093 */
+  MirLev2_0000,  /* 2094..2097 */
+  MirLev2_0000,  /* 2098..209B */
+  MirLev2_0000,  /* 209C..209F */
+  MirLev2_0000,  /* 20A0..20A3 */
+  MirLev2_0000,  /* 20A4..20A7 */
+  MirLev2_0000,  /* 20A8..20AB */
+  MirLev2_0000,  /* 20AC..20AF */
+  MirLev2_0000,  /* 20B0..20B3 */
+  MirLev2_0000,  /* 20B4..20B7 */
+  MirLev2_0000,  /* 20B8..20BB */
+  MirLev2_0000,  /* 20BC..20BF */
+  MirLev2_0000,  /* 20C0..20C3 */
+  MirLev2_0000,  /* 20C4..20C7 */
+  MirLev2_0000,  /* 20C8..20CB */
+  MirLev2_0000,  /* 20CC..20CF */
+  MirLev2_0000,  /* 20D0..20D3 */
+  MirLev2_0000,  /* 20D4..20D7 */
+  MirLev2_0000,  /* 20D8..20DB */
+  MirLev2_0000,  /* 20DC..20DF */
+  MirLev2_0000,  /* 20E0..20E3 */
+  MirLev2_0000,  /* 20E4..20E7 */
+  MirLev2_0000,  /* 20E8..20EB */
+  MirLev2_0000,  /* 20EC..20EF */
+  MirLev2_0000,  /* 20F0..20F3 */
+  MirLev2_0000,  /* 20F4..20F7 */
+  MirLev2_0000,  /* 20F8..20FB */
+  MirLev2_0000,  /* 20FC..20FF */
+#define MirLev1_2200 0xC0
+  MirLev2_0000,  /* 2200..2203 */
+  MirLev2_0000,  /* 2204..2207 */
+  MirLev2_2208,  /* 2208..220B */
+  MirLev2_220C,  /* 220C..220F */
+  MirLev2_0000,  /* 2210..2213 */
+  MirLev2_2214,  /* 2214..2217 */
+  MirLev2_0000,  /* 2218..221B */
+  MirLev2_0000,  /* 221C..221F */
+  MirLev2_0000,  /* 2220..2223 */
+  MirLev2_0000,  /* 2224..2227 */
+  MirLev2_0000,  /* 2228..222B */
+  MirLev2_0000,  /* 222C..222F */
+  MirLev2_0000,  /* 2230..2233 */
+  MirLev2_0000,  /* 2234..2237 */
+  MirLev2_0000,  /* 2238..223B */
+  MirLev2_0028,  /* 223C..223F */
+  MirLev2_2240,  /* 2240..2243 */
+  MirLev2_0000,  /* 2244..2247 */
+  MirLev2_0000,  /* 2248..224B */
+  MirLev2_0000,  /* 224C..224F */
+  MirLev2_2250,  /* 2250..2253 */
+  MirLev2_0028,  /* 2254..2257 */
+  MirLev2_0000,  /* 2258..225B */
+  MirLev2_0000,  /* 225C..225F */
+  MirLev2_0000,  /* 2260..2263 */
+  MirLev2_2264,  /* 2264..2267 */
+  MirLev2_2264,  /* 2268..226B */
+  MirLev2_2250,  /* 226C..226F */
+  MirLev2_2264,  /* 2270..2273 */
+  MirLev2_2264,  /* 2274..2277 */
+  MirLev2_2264,  /* 2278..227B */
+  MirLev2_2264,  /* 227C..227F */
+  MirLev2_2264,  /* 2280..2283 */
+  MirLev2_2264,  /* 2284..2287 */
+  MirLev2_2264,  /* 2288..228B */
+  MirLev2_228C,  /* 228C..228F */
+  MirLev2_2290,  /* 2290..2293 */
+  MirLev2_0000,  /* 2294..2297 */
+  MirLev2_2298,  /* 2298..229B */
+  MirLev2_0000,  /* 229C..229F */
+  MirLev2_2250,  /* 22A0..22A3 */
+  MirLev2_22A4,  /* 22A4..22A7 */
+  MirLev2_22A8,  /* 22A8..22AB */
+  MirLev2_0000,  /* 22AC..22AF */
+  MirLev2_2264,  /* 22B0..22B3 */
+  MirLev2_2264,  /* 22B4..22B7 */
+  MirLev2_0000,  /* 22B8..22BB */
+  MirLev2_0000,  /* 22BC..22BF */
+  MirLev2_0000,  /* 22C0..22C3 */
+  MirLev2_0000,  /* 22C4..22C7 */
+  MirLev2_22C8,  /* 22C8..22CB */
+  MirLev2_22CC,  /* 22CC..22CF */
+  MirLev2_0028,  /* 22D0..22D3 */
+  MirLev2_2250,  /* 22D4..22D7 */
+  MirLev2_2264,  /* 22D8..22DB */
+  MirLev2_2264,  /* 22DC..22DF */
+  MirLev2_2264,  /* 22E0..22E3 */
+  MirLev2_2264,  /* 22E4..22E7 */
+  MirLev2_2264,  /* 22E8..22EB */
+  MirLev2_0028,  /* 22EC..22EF */
+  MirLev2_22F0,  /* 22F0..22F3 */
+  MirLev2_22F4,  /* 22F4..22F7 */
+  MirLev2_22F8,  /* 22F8..22FB */
+  MirLev2_22FC,  /* 22FC..22FF */
+#define MirLev1_2300 0x100
+  MirLev2_0000,  /* 2300..2303 */
+  MirLev2_0000,  /* 2304..2307 */
+  MirLev2_2264,  /* 2308..230B */
+  MirLev2_0000,  /* 230C..230F */
+  MirLev2_0000,  /* 2310..2313 */
+  MirLev2_0000,  /* 2314..2317 */
+  MirLev2_0000,  /* 2318..231B */
+  MirLev2_0000,  /* 231C..231F */
+  MirLev2_0000,  /* 2320..2323 */
+  MirLev2_0000,  /* 2324..2327 */
+  MirLev2_2038,  /* 2328..232B */
+  MirLev2_0000,  /* 232C..232F */
+  MirLev2_0000,  /* 2330..2333 */
+  MirLev2_0000,  /* 2334..2337 */
+  MirLev2_0000,  /* 2338..233B */
+  MirLev2_0000,  /* 233C..233F */
+  MirLev2_0000,  /* 2340..2343 */
+  MirLev2_0000,  /* 2344..2347 */
+  MirLev2_0000,  /* 2348..234B */
+  MirLev2_0000,  /* 234C..234F */
+  MirLev2_0000,  /* 2350..2353 */
+  MirLev2_0000,  /* 2354..2357 */
+  MirLev2_0000,  /* 2358..235B */
+  MirLev2_0000,  /* 235C..235F */
+  MirLev2_0000,  /* 2360..2363 */
+  MirLev2_0000,  /* 2364..2367 */
+  MirLev2_0000,  /* 2368..236B */
+  MirLev2_0000,  /* 236C..236F */
+  MirLev2_0000,  /* 2370..2373 */
+  MirLev2_0000,  /* 2374..2377 */
+  MirLev2_0000,  /* 2378..237B */
+  MirLev2_0000,  /* 237C..237F */
+  MirLev2_0000,  /* 2380..2383 */
+  MirLev2_0000,  /* 2384..2387 */
+  MirLev2_0000,  /* 2388..238B */
+  MirLev2_0000,  /* 238C..238F */
+  MirLev2_0000,  /* 2390..2393 */
+  MirLev2_0000,  /* 2394..2397 */
+  MirLev2_0000,  /* 2398..239B */
+  MirLev2_0000,  /* 239C..239F */
+  MirLev2_0000,  /* 23A0..23A3 */
+  MirLev2_0000,  /* 23A4..23A7 */
+  MirLev2_0000,  /* 23A8..23AB */
+  MirLev2_0000,  /* 23AC..23AF */
+  MirLev2_0000,  /* 23B0..23B3 */
+  MirLev2_0000,  /* 23B4..23B7 */
+  MirLev2_0000,  /* 23B8..23BB */
+  MirLev2_0000,  /* 23BC..23BF */
+  MirLev2_0000,  /* 23C0..23C3 */
+  MirLev2_0000,  /* 23C4..23C7 */
+  MirLev2_0000,  /* 23C8..23CB */
+  MirLev2_0000,  /* 23CC..23CF */
+  MirLev2_0000,  /* 23D0..23D3 */
+  MirLev2_0000,  /* 23D4..23D7 */
+  MirLev2_0000,  /* 23D8..23DB */
+  MirLev2_0000,  /* 23DC..23DF */
+  MirLev2_0000,  /* 23E0..23E3 */
+  MirLev2_0000,  /* 23E4..23E7 */
+  MirLev2_0000,  /* 23E8..23EB */
+  MirLev2_0000,  /* 23EC..23EF */
+  MirLev2_0000,  /* 23F0..23F3 */
+  MirLev2_0000,  /* 23F4..23F7 */
+  MirLev2_0000,  /* 23F8..23FB */
+  MirLev2_0000,  /* 23FC..23FF */
+#define MirLev1_2700 0x140
+  MirLev2_0000,  /* 2700..2703 */
+  MirLev2_0000,  /* 2704..2707 */
+  MirLev2_0000,  /* 2708..270B */
+  MirLev2_0000,  /* 270C..270F */
+  MirLev2_0000,  /* 2710..2713 */
+  MirLev2_0000,  /* 2714..2717 */
+  MirLev2_0000,  /* 2718..271B */
+  MirLev2_0000,  /* 271C..271F */
+  MirLev2_0000,  /* 2720..2723 */
+  MirLev2_0000,  /* 2724..2727 */
+  MirLev2_0000,  /* 2728..272B */
+  MirLev2_0000,  /* 272C..272F */
+  MirLev2_0000,  /* 2730..2733 */
+  MirLev2_0000,  /* 2734..2737 */
+  MirLev2_0000,  /* 2738..273B */
+  MirLev2_0000,  /* 273C..273F */
+  MirLev2_0000,  /* 2740..2743 */
+  MirLev2_0000,  /* 2744..2747 */
+  MirLev2_0000,  /* 2748..274B */
+  MirLev2_0000,  /* 274C..274F */
+  MirLev2_0000,  /* 2750..2753 */
+  MirLev2_0000,  /* 2754..2757 */
+  MirLev2_0000,  /* 2758..275B */
+  MirLev2_0000,  /* 275C..275F */
+  MirLev2_0000,  /* 2760..2763 */
+  MirLev2_0000,  /* 2764..2767 */
+  MirLev2_2264,  /* 2768..276B */
+  MirLev2_2264,  /* 276C..276F */
+  MirLev2_2264,  /* 2770..2773 */
+  MirLev2_0028,  /* 2774..2777 */
+  MirLev2_0000,  /* 2778..277B */
+  MirLev2_0000,  /* 277C..277F */
+  MirLev2_0000,  /* 2780..2783 */
+  MirLev2_0000,  /* 2784..2787 */
+  MirLev2_0000,  /* 2788..278B */
+  MirLev2_0000,  /* 278C..278F */
+  MirLev2_0000,  /* 2790..2793 */
+  MirLev2_0000,  /* 2794..2797 */
+  MirLev2_0000,  /* 2798..279B */
+  MirLev2_0000,  /* 279C..279F */
+  MirLev2_0000,  /* 27A0..27A3 */
+  MirLev2_0000,  /* 27A4..27A7 */
+  MirLev2_0000,  /* 27A8..27AB */
+  MirLev2_0000,  /* 27AC..27AF */
+  MirLev2_0000,  /* 27B0..27B3 */
+  MirLev2_0000,  /* 27B4..27B7 */
+  MirLev2_0000,  /* 27B8..27BB */
+  MirLev2_0000,  /* 27BC..27BF */
+  MirLev2_228C,  /* 27C0..27C3 */
+  MirLev2_2290,  /* 27C4..27C7 */
+  MirLev2_0000,  /* 27C8..27CB */
+  MirLev2_0000,  /* 27CC..27CF */
+  MirLev2_0000,  /* 27D0..27D3 */
+  MirLev2_2038,  /* 27D4..27D7 */
+  MirLev2_0000,  /* 27D8..27DB */
+  MirLev2_2038,  /* 27DC..27DF */
+  MirLev2_2250,  /* 27E0..27E3 */
+  MirLev2_2264,  /* 27E4..27E7 */
+  MirLev2_2264,  /* 27E8..27EB */
+  MirLev2_0000,  /* 27EC..27EF */
+  MirLev2_0000,  /* 27F0..27F3 */
+  MirLev2_0000,  /* 27F4..27F7 */
+  MirLev2_0000,  /* 27F8..27FB */
+  MirLev2_0000,  /* 27FC..27FF */
+#define MirLev1_2900 0x180
+  MirLev2_0000,  /* 2900..2903 */
+  MirLev2_0000,  /* 2904..2907 */
+  MirLev2_0000,  /* 2908..290B */
+  MirLev2_0000,  /* 290C..290F */
+  MirLev2_0000,  /* 2910..2913 */
+  MirLev2_0000,  /* 2914..2917 */
+  MirLev2_0000,  /* 2918..291B */
+  MirLev2_0000,  /* 291C..291F */
+  MirLev2_0000,  /* 2920..2923 */
+  MirLev2_0000,  /* 2924..2927 */
+  MirLev2_0000,  /* 2928..292B */
+  MirLev2_0000,  /* 292C..292F */
+  MirLev2_0000,  /* 2930..2933 */
+  MirLev2_0000,  /* 2934..2937 */
+  MirLev2_0000,  /* 2938..293B */
+  MirLev2_0000,  /* 293C..293F */
+  MirLev2_0000,  /* 2940..2943 */
+  MirLev2_0000,  /* 2944..2947 */
+  MirLev2_0000,  /* 2948..294B */
+  MirLev2_0000,  /* 294C..294F */
+  MirLev2_0000,  /* 2950..2953 */
+  MirLev2_0000,  /* 2954..2957 */
+  MirLev2_0000,  /* 2958..295B */
+  MirLev2_0000,  /* 295C..295F */
+  MirLev2_0000,  /* 2960..2963 */
+  MirLev2_0000,  /* 2964..2967 */
+  MirLev2_0000,  /* 2968..296B */
+  MirLev2_0000,  /* 296C..296F */
+  MirLev2_0000,  /* 2970..2973 */
+  MirLev2_0000,  /* 2974..2977 */
+  MirLev2_0000,  /* 2978..297B */
+  MirLev2_0000,  /* 297C..297F */
+  MirLev2_228C,  /* 2980..2983 */
+  MirLev2_2984,  /* 2984..2987 */
+  MirLev2_2984,  /* 2988..298B */
+  MirLev2_298C,  /* 298C..298F */
+  MirLev2_2990,  /* 2990..2993 */
+  MirLev2_2984,  /* 2994..2997 */
+  MirLev2_2998,  /* 2998..299B */
+  MirLev2_0000,  /* 299C..299F */
+  MirLev2_0000,  /* 29A0..29A3 */
+  MirLev2_0000,  /* 29A4..29A7 */
+  MirLev2_0000,  /* 29A8..29AB */
+  MirLev2_0000,  /* 29AC..29AF */
+  MirLev2_0000,  /* 29B0..29B3 */
+  MirLev2_0000,  /* 29B4..29B7 */
+  MirLev2_29B8,  /* 29B8..29BB */
+  MirLev2_0000,  /* 29BC..29BF */
+  MirLev2_0028,  /* 29C0..29C3 */
+  MirLev2_0028,  /* 29C4..29C7 */
+  MirLev2_0000,  /* 29C8..29CB */
+  MirLev2_228C,  /* 29CC..29CF */
+  MirLev2_2290,  /* 29D0..29D3 */
+  MirLev2_0028,  /* 29D4..29D7 */
+  MirLev2_2264,  /* 29D8..29DB */
+  MirLev2_0000,  /* 29DC..29DF */
+  MirLev2_0000,  /* 29E0..29E3 */
+  MirLev2_0000,  /* 29E4..29E7 */
+  MirLev2_0000,  /* 29E8..29EB */
+  MirLev2_0000,  /* 29EC..29EF */
+  MirLev2_0000,  /* 29F0..29F3 */
+  MirLev2_29F4,  /* 29F4..29F7 */
+  MirLev2_0028,  /* 29F8..29FB */
+  MirLev2_0028,  /* 29FC..29FF */
+#define MirLev1_2A00 0x1C0
+  MirLev2_0000,  /* 2A00..2A03 */
+  MirLev2_0000,  /* 2A04..2A07 */
+  MirLev2_0000,  /* 2A08..2A0B */
+  MirLev2_0000,  /* 2A0C..2A0F */
+  MirLev2_0000,  /* 2A10..2A13 */
+  MirLev2_0000,  /* 2A14..2A17 */
+  MirLev2_0000,  /* 2A18..2A1B */
+  MirLev2_0000,  /* 2A1C..2A1F */
+  MirLev2_0000,  /* 2A20..2A23 */
+  MirLev2_0000,  /* 2A24..2A27 */
+  MirLev2_228C,  /* 2A28..2A2B */
+  MirLev2_2290,  /* 2A2C..2A2F */
+  MirLev2_0000,  /* 2A30..2A33 */
+  MirLev2_0028,  /* 2A34..2A37 */
+  MirLev2_0000,  /* 2A38..2A3B */
+  MirLev2_0028,  /* 2A3C..2A3F */
+  MirLev2_0000,  /* 2A40..2A43 */
+  MirLev2_0000,  /* 2A44..2A47 */
+  MirLev2_0000,  /* 2A48..2A4B */
+  MirLev2_0000,  /* 2A4C..2A4F */
+  MirLev2_0000,  /* 2A50..2A53 */
+  MirLev2_0000,  /* 2A54..2A57 */
+  MirLev2_0000,  /* 2A58..2A5B */
+  MirLev2_0000,  /* 2A5C..2A5F */
+  MirLev2_0000,  /* 2A60..2A63 */
+  MirLev2_0028,  /* 2A64..2A67 */
+  MirLev2_0000,  /* 2A68..2A6B */
+  MirLev2_0000,  /* 2A6C..2A6F */
+  MirLev2_0000,  /* 2A70..2A73 */
+  MirLev2_0000,  /* 2A74..2A77 */
+  MirLev2_2038,  /* 2A78..2A7B */
+  MirLev2_22C8,  /* 2A7C..2A7F */
+  MirLev2_2984,  /* 2A80..2A83 */
+  MirLev2_2998,  /* 2A84..2A87 */
+  MirLev2_228C,  /* 2A88..2A8B */
+  MirLev2_2998,  /* 2A8C..2A8F */
+  MirLev2_22C8,  /* 2A90..2A93 */
+  MirLev2_2984,  /* 2A94..2A97 */
+  MirLev2_2984,  /* 2A98..2A9B */
+  MirLev2_2998,  /* 2A9C..2A9F */
+  MirLev2_2038,  /* 2AA0..2AA3 */
+  MirLev2_2250,  /* 2AA4..2AA7 */
+  MirLev2_2264,  /* 2AA8..2AAB */
+  MirLev2_2AAC,  /* 2AAC..2AAF */
+  MirLev2_2AB0,  /* 2AB0..2AB3 */
+  MirLev2_2998,  /* 2AB4..2AB7 */
+  MirLev2_228C,  /* 2AB8..2ABB */
+  MirLev2_2984,  /* 2ABC..2ABF */
+  MirLev2_2984,  /* 2AC0..2AC3 */
+  MirLev2_2290,  /* 2AC4..2AC7 */
+  MirLev2_0000,  /* 2AC8..2ACB */
+  MirLev2_22C8,  /* 2ACC..2ACF */
+  MirLev2_2984,  /* 2AD0..2AD3 */
+  MirLev2_2290,  /* 2AD4..2AD7 */
+  MirLev2_0000,  /* 2AD8..2ADB */
+  MirLev2_2ADC,  /* 2ADC..2ADF */
+  MirLev2_2AE0,  /* 2AE0..2AE3 */
+  MirLev2_2AE4,  /* 2AE4..2AE7 */
+  MirLev2_0000,  /* 2AE8..2AEB */
+  MirLev2_0028,  /* 2AEC..2AEF */
+  MirLev2_0000,  /* 2AF0..2AF3 */
+  MirLev2_228C,  /* 2AF4..2AF7 */
+  MirLev2_2290,  /* 2AF8..2AFB */
+  MirLev2_0000,  /* 2AFC..2AFF */
+#define MirLev1_2E00 0x200
+  MirLev2_2250,  /* 2E00..2E03 */
+  MirLev2_0028,  /* 2E04..2E07 */
+  MirLev2_2038,  /* 2E08..2E0B */
+  MirLev2_0028,  /* 2E0C..2E0F */
+  MirLev2_0000,  /* 2E10..2E13 */
+  MirLev2_0000,  /* 2E14..2E17 */
+  MirLev2_0000,  /* 2E18..2E1B */
+  MirLev2_0028,  /* 2E1C..2E1F */
+  MirLev2_0000,  /* 2E20..2E23 */
+  MirLev2_0000,  /* 2E24..2E27 */
+  MirLev2_0000,  /* 2E28..2E2B */
+  MirLev2_0000,  /* 2E2C..2E2F */
+  MirLev2_0000,  /* 2E30..2E33 */
+  MirLev2_0000,  /* 2E34..2E37 */
+  MirLev2_0000,  /* 2E38..2E3B */
+  MirLev2_0000,  /* 2E3C..2E3F */
+  MirLev2_0000,  /* 2E40..2E43 */
+  MirLev2_0000,  /* 2E44..2E47 */
+  MirLev2_0000,  /* 2E48..2E4B */
+  MirLev2_0000,  /* 2E4C..2E4F */
+  MirLev2_0000,  /* 2E50..2E53 */
+  MirLev2_0000,  /* 2E54..2E57 */
+  MirLev2_0000,  /* 2E58..2E5B */
+  MirLev2_0000,  /* 2E5C..2E5F */
+  MirLev2_0000,  /* 2E60..2E63 */
+  MirLev2_0000,  /* 2E64..2E67 */
+  MirLev2_0000,  /* 2E68..2E6B */
+  MirLev2_0000,  /* 2E6C..2E6F */
+  MirLev2_0000,  /* 2E70..2E73 */
+  MirLev2_0000,  /* 2E74..2E77 */
+  MirLev2_0000,  /* 2E78..2E7B */
+  MirLev2_0000,  /* 2E7C..2E7F */
+  MirLev2_0000,  /* 2E80..2E83 */
+  MirLev2_0000,  /* 2E84..2E87 */
+  MirLev2_0000,  /* 2E88..2E8B */
+  MirLev2_0000,  /* 2E8C..2E8F */
+  MirLev2_0000,  /* 2E90..2E93 */
+  MirLev2_0000,  /* 2E94..2E97 */
+  MirLev2_0000,  /* 2E98..2E9B */
+  MirLev2_0000,  /* 2E9C..2E9F */
+  MirLev2_0000,  /* 2EA0..2EA3 */
+  MirLev2_0000,  /* 2EA4..2EA7 */
+  MirLev2_0000,  /* 2EA8..2EAB */
+  MirLev2_0000,  /* 2EAC..2EAF */
+  MirLev2_0000,  /* 2EB0..2EB3 */
+  MirLev2_0000,  /* 2EB4..2EB7 */
+  MirLev2_0000,  /* 2EB8..2EBB */
+  MirLev2_0000,  /* 2EBC..2EBF */
+  MirLev2_0000,  /* 2EC0..2EC3 */
+  MirLev2_0000,  /* 2EC4..2EC7 */
+  MirLev2_0000,  /* 2EC8..2ECB */
+  MirLev2_0000,  /* 2ECC..2ECF */
+  MirLev2_0000,  /* 2ED0..2ED3 */
+  MirLev2_0000,  /* 2ED4..2ED7 */
+  MirLev2_0000,  /* 2ED8..2EDB */
+  MirLev2_0000,  /* 2EDC..2EDF */
+  MirLev2_0000,  /* 2EE0..2EE3 */
+  MirLev2_0000,  /* 2EE4..2EE7 */
+  MirLev2_0000,  /* 2EE8..2EEB */
+  MirLev2_0000,  /* 2EEC..2EEF */
+  MirLev2_0000,  /* 2EF0..2EF3 */
+  MirLev2_0000,  /* 2EF4..2EF7 */
+  MirLev2_0000,  /* 2EF8..2EFB */
+  MirLev2_0000,  /* 2EFC..2EFF */
+#define MirLev1_3000 0x240
+  MirLev2_0000,  /* 3000..3003 */
+  MirLev2_0000,  /* 3004..3007 */
+  MirLev2_2264,  /* 3008..300B */
+  MirLev2_2264,  /* 300C..300F */
+  MirLev2_0028,  /* 3010..3013 */
+  MirLev2_2264,  /* 3014..3017 */
+  MirLev2_2264,  /* 3018..301B */
+  MirLev2_0000,  /* 301C..301F */
+  MirLev2_0000,  /* 3020..3023 */
+  MirLev2_0000,  /* 3024..3027 */
+  MirLev2_0000,  /* 3028..302B */
+  MirLev2_0000,  /* 302C..302F */
+  MirLev2_0000,  /* 3030..3033 */
+  MirLev2_0000,  /* 3034..3037 */
+  MirLev2_0000,  /* 3038..303B */
+  MirLev2_0000,  /* 303C..303F */
+  MirLev2_0000,  /* 3040..3043 */
+  MirLev2_0000,  /* 3044..3047 */
+  MirLev2_0000,  /* 3048..304B */
+  MirLev2_0000,  /* 304C..304F */
+  MirLev2_0000,  /* 3050..3053 */
+  MirLev2_0000,  /* 3054..3057 */
+  MirLev2_0000,  /* 3058..305B */
+  MirLev2_0000,  /* 305C..305F */
+  MirLev2_0000,  /* 3060..3063 */
+  MirLev2_0000,  /* 3064..3067 */
+  MirLev2_0000,  /* 3068..306B */
+  MirLev2_0000,  /* 306C..306F */
+  MirLev2_0000,  /* 3070..3073 */
+  MirLev2_0000,  /* 3074..3077 */
+  MirLev2_0000,  /* 3078..307B */
+  MirLev2_0000,  /* 307C..307F */
+  MirLev2_0000,  /* 3080..3083 */
+  MirLev2_0000,  /* 3084..3087 */
+  MirLev2_0000,  /* 3088..308B */
+  MirLev2_0000,  /* 308C..308F */
+  MirLev2_0000,  /* 3090..3093 */
+  MirLev2_0000,  /* 3094..3097 */
+  MirLev2_0000,  /* 3098..309B */
+  MirLev2_0000,  /* 309C..309F */
+  MirLev2_0000,  /* 30A0..30A3 */
+  MirLev2_0000,  /* 30A4..30A7 */
+  MirLev2_0000,  /* 30A8..30AB */
+  MirLev2_0000,  /* 30AC..30AF */
+  MirLev2_0000,  /* 30B0..30B3 */
+  MirLev2_0000,  /* 30B4..30B7 */
+  MirLev2_0000,  /* 30B8..30BB */
+  MirLev2_0000,  /* 30BC..30BF */
+  MirLev2_0000,  /* 30C0..30C3 */
+  MirLev2_0000,  /* 30C4..30C7 */
+  MirLev2_0000,  /* 30C8..30CB */
+  MirLev2_0000,  /* 30CC..30CF */
+  MirLev2_0000,  /* 30D0..30D3 */
+  MirLev2_0000,  /* 30D4..30D7 */
+  MirLev2_0000,  /* 30D8..30DB */
+  MirLev2_0000,  /* 30DC..30DF */
+  MirLev2_0000,  /* 30E0..30E3 */
+  MirLev2_0000,  /* 30E4..30E7 */
+  MirLev2_0000,  /* 30E8..30EB */
+  MirLev2_0000,  /* 30EC..30EF */
+  MirLev2_0000,  /* 30F0..30F3 */
+  MirLev2_0000,  /* 30F4..30F7 */
+  MirLev2_0000,  /* 30F8..30FB */
+  MirLev2_0000,  /* 30FC..30FF */
+#define MirLev1_FF00 0x280
+  MirLev2_0000,  /* FF00..FF03 */
+  MirLev2_0000,  /* FF04..FF07 */
+  MirLev2_0028,  /* FF08..FF0B */
+  MirLev2_0000,  /* FF0C..FF0F */
+  MirLev2_0000,  /* FF10..FF13 */
+  MirLev2_0000,  /* FF14..FF17 */
+  MirLev2_0000,  /* FF18..FF1B */
+  MirLev2_003C,  /* FF1C..FF1F */
+  MirLev2_0000,  /* FF20..FF23 */
+  MirLev2_0000,  /* FF24..FF27 */
+  MirLev2_0000,  /* FF28..FF2B */
+  MirLev2_0000,  /* FF2C..FF2F */
+  MirLev2_0000,  /* FF30..FF33 */
+  MirLev2_0000,  /* FF34..FF37 */
+  MirLev2_0058,  /* FF38..FF3B */
+  MirLev2_005C,  /* FF3C..FF3F */
+  MirLev2_0000,  /* FF40..FF43 */
+  MirLev2_0000,  /* FF44..FF47 */
+  MirLev2_0000,  /* FF48..FF4B */
+  MirLev2_0000,  /* FF4C..FF4F */
+  MirLev2_0000,  /* FF50..FF53 */
+  MirLev2_0000,  /* FF54..FF57 */
+  MirLev2_0058,  /* FF58..FF5B */
+  MirLev2_FF5C,  /* FF5C..FF5F */
+  MirLev2_FF60,  /* FF60..FF63 */
+  MirLev2_0000,  /* FF64..FF67 */
+  MirLev2_0000,  /* FF68..FF6B */
+  MirLev2_0000,  /* FF6C..FF6F */
+  MirLev2_0000,  /* FF70..FF73 */
+  MirLev2_0000,  /* FF74..FF77 */
+  MirLev2_0000,  /* FF78..FF7B */
+  MirLev2_0000,  /* FF7C..FF7F */
+  MirLev2_0000,  /* FF80..FF83 */
+  MirLev2_0000,  /* FF84..FF87 */
+  MirLev2_0000,  /* FF88..FF8B */
+  MirLev2_0000,  /* FF8C..FF8F */
+  MirLev2_0000,  /* FF90..FF93 */
+  MirLev2_0000,  /* FF94..FF97 */
+  MirLev2_0000,  /* FF98..FF9B */
+  MirLev2_0000,  /* FF9C..FF9F */
+  MirLev2_0000,  /* FFA0..FFA3 */
+  MirLev2_0000,  /* FFA4..FFA7 */
+  MirLev2_0000,  /* FFA8..FFAB */
+  MirLev2_0000,  /* FFAC..FFAF */
+  MirLev2_0000,  /* FFB0..FFB3 */
+  MirLev2_0000,  /* FFB4..FFB7 */
+  MirLev2_0000,  /* FFB8..FFBB */
+  MirLev2_0000,  /* FFBC..FFBF */
+  MirLev2_0000,  /* FFC0..FFC3 */
+  MirLev2_0000,  /* FFC4..FFC7 */
+  MirLev2_0000,  /* FFC8..FFCB */
+  MirLev2_0000,  /* FFCC..FFCF */
+  MirLev2_0000,  /* FFD0..FFD3 */
+  MirLev2_0000,  /* FFD4..FFD7 */
+  MirLev2_0000,  /* FFD8..FFDB */
+  MirLev2_0000,  /* FFDC..FFDF */
+  MirLev2_0000,  /* FFE0..FFE3 */
+  MirLev2_0000,  /* FFE4..FFE7 */
+  MirLev2_0000,  /* FFE8..FFEB */
+  MirLev2_0000,  /* FFEC..FFEF */
+  MirLev2_0000,  /* FFF0..FFF3 */
+  MirLev2_0000,  /* FFF4..FFF7 */
+  MirLev2_0000,  /* FFF8..FFFB */
+  MirLev2_0000,  /* FFFC..FFFF */
+};
+
+static const PACKTAB_UINT16 MirLev0[256*1] = {
+#define MirLev0_0000 0x0
+  MirLev1_0000,  /* 0000..00FF */
+  MirLev1_0100,  /* 0100..01FF */
+  MirLev1_0100,  /* 0200..02FF */
+  MirLev1_0100,  /* 0300..03FF */
+  MirLev1_0100,  /* 0400..04FF */
+  MirLev1_0100,  /* 0500..05FF */
+  MirLev1_0100,  /* 0600..06FF */
+  MirLev1_0100,  /* 0700..07FF */
+  MirLev1_0100,  /* 0800..08FF */
+  MirLev1_0100,  /* 0900..09FF */
+  MirLev1_0100,  /* 0A00..0AFF */
+  MirLev1_0100,  /* 0B00..0BFF */
+  MirLev1_0100,  /* 0C00..0CFF */
+  MirLev1_0100,  /* 0D00..0DFF */
+  MirLev1_0100,  /* 0E00..0EFF */
+  MirLev1_0100,  /* 0F00..0FFF */
+  MirLev1_0100,  /* 1000..10FF */
+  MirLev1_0100,  /* 1100..11FF */
+  MirLev1_0100,  /* 1200..12FF */
+  MirLev1_0100,  /* 1300..13FF */
+  MirLev1_0100,  /* 1400..14FF */
+  MirLev1_0100,  /* 1500..15FF */
+  MirLev1_0100,  /* 1600..16FF */
+  MirLev1_0100,  /* 1700..17FF */
+  MirLev1_0100,  /* 1800..18FF */
+  MirLev1_0100,  /* 1900..19FF */
+  MirLev1_0100,  /* 1A00..1AFF */
+  MirLev1_0100,  /* 1B00..1BFF */
+  MirLev1_0100,  /* 1C00..1CFF */
+  MirLev1_0100,  /* 1D00..1DFF */
+  MirLev1_0100,  /* 1E00..1EFF */
+  MirLev1_0100,  /* 1F00..1FFF */
+  MirLev1_2000,  /* 2000..20FF */
+  MirLev1_0100,  /* 2100..21FF */
+  MirLev1_2200,  /* 2200..22FF */
+  MirLev1_2300,  /* 2300..23FF */
+  MirLev1_0100,  /* 2400..24FF */
+  MirLev1_0100,  /* 2500..25FF */
+  MirLev1_0100,  /* 2600..26FF */
+  MirLev1_2700,  /* 2700..27FF */
+  MirLev1_0100,  /* 2800..28FF */
+  MirLev1_2900,  /* 2900..29FF */
+  MirLev1_2A00,  /* 2A00..2AFF */
+  MirLev1_0100,  /* 2B00..2BFF */
+  MirLev1_0100,  /* 2C00..2CFF */
+  MirLev1_0100,  /* 2D00..2DFF */
+  MirLev1_2E00,  /* 2E00..2EFF */
+  MirLev1_0100,  /* 2F00..2FFF */
+  MirLev1_3000,  /* 3000..30FF */
+  MirLev1_0100,  /* 3100..31FF */
+  MirLev1_0100,  /* 3200..32FF */
+  MirLev1_0100,  /* 3300..33FF */
+  MirLev1_0100,  /* 3400..34FF */
+  MirLev1_0100,  /* 3500..35FF */
+  MirLev1_0100,  /* 3600..36FF */
+  MirLev1_0100,  /* 3700..37FF */
+  MirLev1_0100,  /* 3800..38FF */
+  MirLev1_0100,  /* 3900..39FF */
+  MirLev1_0100,  /* 3A00..3AFF */
+  MirLev1_0100,  /* 3B00..3BFF */
+  MirLev1_0100,  /* 3C00..3CFF */
+  MirLev1_0100,  /* 3D00..3DFF */
+  MirLev1_0100,  /* 3E00..3EFF */
+  MirLev1_0100,  /* 3F00..3FFF */
+  MirLev1_0100,  /* 4000..40FF */
+  MirLev1_0100,  /* 4100..41FF */
+  MirLev1_0100,  /* 4200..42FF */
+  MirLev1_0100,  /* 4300..43FF */
+  MirLev1_0100,  /* 4400..44FF */
+  MirLev1_0100,  /* 4500..45FF */
+  MirLev1_0100,  /* 4600..46FF */
+  MirLev1_0100,  /* 4700..47FF */
+  MirLev1_0100,  /* 4800..48FF */
+  MirLev1_0100,  /* 4900..49FF */
+  MirLev1_0100,  /* 4A00..4AFF */
+  MirLev1_0100,  /* 4B00..4BFF */
+  MirLev1_0100,  /* 4C00..4CFF */
+  MirLev1_0100,  /* 4D00..4DFF */
+  MirLev1_0100,  /* 4E00..4EFF */
+  MirLev1_0100,  /* 4F00..4FFF */
+  MirLev1_0100,  /* 5000..50FF */
+  MirLev1_0100,  /* 5100..51FF */
+  MirLev1_0100,  /* 5200..52FF */
+  MirLev1_0100,  /* 5300..53FF */
+  MirLev1_0100,  /* 5400..54FF */
+  MirLev1_0100,  /* 5500..55FF */
+  MirLev1_0100,  /* 5600..56FF */
+  MirLev1_0100,  /* 5700..57FF */
+  MirLev1_0100,  /* 5800..58FF */
+  MirLev1_0100,  /* 5900..59FF */
+  MirLev1_0100,  /* 5A00..5AFF */
+  MirLev1_0100,  /* 5B00..5BFF */
+  MirLev1_0100,  /* 5C00..5CFF */
+  MirLev1_0100,  /* 5D00..5DFF */
+  MirLev1_0100,  /* 5E00..5EFF */
+  MirLev1_0100,  /* 5F00..5FFF */
+  MirLev1_0100,  /* 6000..60FF */
+  MirLev1_0100,  /* 6100..61FF */
+  MirLev1_0100,  /* 6200..62FF */
+  MirLev1_0100,  /* 6300..63FF */
+  MirLev1_0100,  /* 6400..64FF */
+  MirLev1_0100,  /* 6500..65FF */
+  MirLev1_0100,  /* 6600..66FF */
+  MirLev1_0100,  /* 6700..67FF */
+  MirLev1_0100,  /* 6800..68FF */
+  MirLev1_0100,  /* 6900..69FF */
+  MirLev1_0100,  /* 6A00..6AFF */
+  MirLev1_0100,  /* 6B00..6BFF */
+  MirLev1_0100,  /* 6C00..6CFF */
+  MirLev1_0100,  /* 6D00..6DFF */
+  MirLev1_0100,  /* 6E00..6EFF */
+  MirLev1_0100,  /* 6F00..6FFF */
+  MirLev1_0100,  /* 7000..70FF */
+  MirLev1_0100,  /* 7100..71FF */
+  MirLev1_0100,  /* 7200..72FF */
+  MirLev1_0100,  /* 7300..73FF */
+  MirLev1_0100,  /* 7400..74FF */
+  MirLev1_0100,  /* 7500..75FF */
+  MirLev1_0100,  /* 7600..76FF */
+  MirLev1_0100,  /* 7700..77FF */
+  MirLev1_0100,  /* 7800..78FF */
+  MirLev1_0100,  /* 7900..79FF */
+  MirLev1_0100,  /* 7A00..7AFF */
+  MirLev1_0100,  /* 7B00..7BFF */
+  MirLev1_0100,  /* 7C00..7CFF */
+  MirLev1_0100,  /* 7D00..7DFF */
+  MirLev1_0100,  /* 7E00..7EFF */
+  MirLev1_0100,  /* 7F00..7FFF */
+  MirLev1_0100,  /* 8000..80FF */
+  MirLev1_0100,  /* 8100..81FF */
+  MirLev1_0100,  /* 8200..82FF */
+  MirLev1_0100,  /* 8300..83FF */
+  MirLev1_0100,  /* 8400..84FF */
+  MirLev1_0100,  /* 8500..85FF */
+  MirLev1_0100,  /* 8600..86FF */
+  MirLev1_0100,  /* 8700..87FF */
+  MirLev1_0100,  /* 8800..88FF */
+  MirLev1_0100,  /* 8900..89FF */
+  MirLev1_0100,  /* 8A00..8AFF */
+  MirLev1_0100,  /* 8B00..8BFF */
+  MirLev1_0100,  /* 8C00..8CFF */
+  MirLev1_0100,  /* 8D00..8DFF */
+  MirLev1_0100,  /* 8E00..8EFF */
+  MirLev1_0100,  /* 8F00..8FFF */
+  MirLev1_0100,  /* 9000..90FF */
+  MirLev1_0100,  /* 9100..91FF */
+  MirLev1_0100,  /* 9200..92FF */
+  MirLev1_0100,  /* 9300..93FF */
+  MirLev1_0100,  /* 9400..94FF */
+  MirLev1_0100,  /* 9500..95FF */
+  MirLev1_0100,  /* 9600..96FF */
+  MirLev1_0100,  /* 9700..97FF */
+  MirLev1_0100,  /* 9800..98FF */
+  MirLev1_0100,  /* 9900..99FF */
+  MirLev1_0100,  /* 9A00..9AFF */
+  MirLev1_0100,  /* 9B00..9BFF */
+  MirLev1_0100,  /* 9C00..9CFF */
+  MirLev1_0100,  /* 9D00..9DFF */
+  MirLev1_0100,  /* 9E00..9EFF */
+  MirLev1_0100,  /* 9F00..9FFF */
+  MirLev1_0100,  /* A000..A0FF */
+  MirLev1_0100,  /* A100..A1FF */
+  MirLev1_0100,  /* A200..A2FF */
+  MirLev1_0100,  /* A300..A3FF */
+  MirLev1_0100,  /* A400..A4FF */
+  MirLev1_0100,  /* A500..A5FF */
+  MirLev1_0100,  /* A600..A6FF */
+  MirLev1_0100,  /* A700..A7FF */
+  MirLev1_0100,  /* A800..A8FF */
+  MirLev1_0100,  /* A900..A9FF */
+  MirLev1_0100,  /* AA00..AAFF */
+  MirLev1_0100,  /* AB00..ABFF */
+  MirLev1_0100,  /* AC00..ACFF */
+  MirLev1_0100,  /* AD00..ADFF */
+  MirLev1_0100,  /* AE00..AEFF */
+  MirLev1_0100,  /* AF00..AFFF */
+  MirLev1_0100,  /* B000..B0FF */
+  MirLev1_0100,  /* B100..B1FF */
+  MirLev1_0100,  /* B200..B2FF */
+  MirLev1_0100,  /* B300..B3FF */
+  MirLev1_0100,  /* B400..B4FF */
+  MirLev1_0100,  /* B500..B5FF */
+  MirLev1_0100,  /* B600..B6FF */
+  MirLev1_0100,  /* B700..B7FF */
+  MirLev1_0100,  /* B800..B8FF */
+  MirLev1_0100,  /* B900..B9FF */
+  MirLev1_0100,  /* BA00..BAFF */
+  MirLev1_0100,  /* BB00..BBFF */
+  MirLev1_0100,  /* BC00..BCFF */
+  MirLev1_0100,  /* BD00..BDFF */
+  MirLev1_0100,  /* BE00..BEFF */
+  MirLev1_0100,  /* BF00..BFFF */
+  MirLev1_0100,  /* C000..C0FF */
+  MirLev1_0100,  /* C100..C1FF */
+  MirLev1_0100,  /* C200..C2FF */
+  MirLev1_0100,  /* C300..C3FF */
+  MirLev1_0100,  /* C400..C4FF */
+  MirLev1_0100,  /* C500..C5FF */
+  MirLev1_0100,  /* C600..C6FF */
+  MirLev1_0100,  /* C700..C7FF */
+  MirLev1_0100,  /* C800..C8FF */
+  MirLev1_0100,  /* C900..C9FF */
+  MirLev1_0100,  /* CA00..CAFF */
+  MirLev1_0100,  /* CB00..CBFF */
+  MirLev1_0100,  /* CC00..CCFF */
+  MirLev1_0100,  /* CD00..CDFF */
+  MirLev1_0100,  /* CE00..CEFF */
+  MirLev1_0100,  /* CF00..CFFF */
+  MirLev1_0100,  /* D000..D0FF */
+  MirLev1_0100,  /* D100..D1FF */
+  MirLev1_0100,  /* D200..D2FF */
+  MirLev1_0100,  /* D300..D3FF */
+  MirLev1_0100,  /* D400..D4FF */
+  MirLev1_0100,  /* D500..D5FF */
+  MirLev1_0100,  /* D600..D6FF */
+  MirLev1_0100,  /* D700..D7FF */
+  MirLev1_0100,  /* D800..D8FF */
+  MirLev1_0100,  /* D900..D9FF */
+  MirLev1_0100,  /* DA00..DAFF */
+  MirLev1_0100,  /* DB00..DBFF */
+  MirLev1_0100,  /* DC00..DCFF */
+  MirLev1_0100,  /* DD00..DDFF */
+  MirLev1_0100,  /* DE00..DEFF */
+  MirLev1_0100,  /* DF00..DFFF */
+  MirLev1_0100,  /* E000..E0FF */
+  MirLev1_0100,  /* E100..E1FF */
+  MirLev1_0100,  /* E200..E2FF */
+  MirLev1_0100,  /* E300..E3FF */
+  MirLev1_0100,  /* E400..E4FF */
+  MirLev1_0100,  /* E500..E5FF */
+  MirLev1_0100,  /* E600..E6FF */
+  MirLev1_0100,  /* E700..E7FF */
+  MirLev1_0100,  /* E800..E8FF */
+  MirLev1_0100,  /* E900..E9FF */
+  MirLev1_0100,  /* EA00..EAFF */
+  MirLev1_0100,  /* EB00..EBFF */
+  MirLev1_0100,  /* EC00..ECFF */
+  MirLev1_0100,  /* ED00..EDFF */
+  MirLev1_0100,  /* EE00..EEFF */
+  MirLev1_0100,  /* EF00..EFFF */
+  MirLev1_0100,  /* F000..F0FF */
+  MirLev1_0100,  /* F100..F1FF */
+  MirLev1_0100,  /* F200..F2FF */
+  MirLev1_0100,  /* F300..F3FF */
+  MirLev1_0100,  /* F400..F4FF */
+  MirLev1_0100,  /* F500..F5FF */
+  MirLev1_0100,  /* F600..F6FF */
+  MirLev1_0100,  /* F700..F7FF */
+  MirLev1_0100,  /* F800..F8FF */
+  MirLev1_0100,  /* F900..F9FF */
+  MirLev1_0100,  /* FA00..FAFF */
+  MirLev1_0100,  /* FB00..FBFF */
+  MirLev1_0100,  /* FC00..FCFF */
+  MirLev1_0100,  /* FD00..FDFF */
+  MirLev1_0100,  /* FE00..FEFF */
+  MirLev1_FF00,  /* FF00..FFFF */
+};
+
+/* *INDENT-ON* */
+
+#define GLIB_GET_MIRRORING_DELTA(x) \
+	((x) >= 0x10000 ? 0 :  \
+	MirLev2[((x) & 0x03) + \
+	MirLev1[((x) >> 2 & 0x3f) + \
+	MirLev0[((x) >> 8)]]])
+
+#undef PACKTAB_UINT8
+#undef PACKTAB_UINT16
+#undef PACKTAB_UINT32
+
+#define GLIB_GET_MIRRORING(x) ((x) + GLIB_GET_MIRRORING_DELTA(x))
+
+/* End of generated gmirroringtable.h */
Index: glib/gunichartables.h
===================================================================
RCS file: /cvs/gnome/glib/glib/gunichartables.h,v
retrieving revision 1.10
diff -u -p -r1.10 gunichartables.h
--- glib/gunichartables.h	1 Oct 2005 12:33:32 -0000	1.10
+++ glib/gunichartables.h	3 Nov 2005 19:56:44 -0000
@@ -11759,343 +11759,4 @@ static const struct {
   { 0xfb17, "\xd5\xb4\xd5\xad" },
 };
 
-static const struct {
-    gunichar ch;
-    gunichar mirrored_ch;
-} bidi_mirroring_table[] =
-{
-  { 0x0028, 0x0029 },
-  { 0x0029, 0x0028 },
-  { 0x003c, 0x003e },
-  { 0x003e, 0x003c },
-  { 0x005b, 0x005d },
-  { 0x005d, 0x005b },
-  { 0x007b, 0x007d },
-  { 0x007d, 0x007b },
-  { 0x00ab, 0x00bb },
-  { 0x00bb, 0x00ab },
-  { 0x2039, 0x203a },
-  { 0x203a, 0x2039 },
-  { 0x2045, 0x2046 },
-  { 0x2046, 0x2045 },
-  { 0x207d, 0x207e },
-  { 0x207e, 0x207d },
-  { 0x208d, 0x208e },
-  { 0x208e, 0x208d },
-  { 0x2208, 0x220b },
-  { 0x2209, 0x220c },
-  { 0x220a, 0x220d },
-  { 0x220b, 0x2208 },
-  { 0x220c, 0x2209 },
-  { 0x220d, 0x220a },
-  { 0x2215, 0x29f5 },
-  { 0x223c, 0x223d },
-  { 0x223d, 0x223c },
-  { 0x2243, 0x22cd },
-  { 0x2252, 0x2253 },
-  { 0x2253, 0x2252 },
-  { 0x2254, 0x2255 },
-  { 0x2255, 0x2254 },
-  { 0x2264, 0x2265 },
-  { 0x2265, 0x2264 },
-  { 0x2266, 0x2267 },
-  { 0x2267, 0x2266 },
-  { 0x2268, 0x2269 },
-  { 0x2269, 0x2268 },
-  { 0x226a, 0x226b },
-  { 0x226b, 0x226a },
-  { 0x226e, 0x226f },
-  { 0x226f, 0x226e },
-  { 0x2270, 0x2271 },
-  { 0x2271, 0x2270 },
-  { 0x2272, 0x2273 },
-  { 0x2273, 0x2272 },
-  { 0x2274, 0x2275 },
-  { 0x2275, 0x2274 },
-  { 0x2276, 0x2277 },
-  { 0x2277, 0x2276 },
-  { 0x2278, 0x2279 },
-  { 0x2279, 0x2278 },
-  { 0x227a, 0x227b },
-  { 0x227b, 0x227a },
-  { 0x227c, 0x227d },
-  { 0x227d, 0x227c },
-  { 0x227e, 0x227f },
-  { 0x227f, 0x227e },
-  { 0x2280, 0x2281 },
-  { 0x2281, 0x2280 },
-  { 0x2282, 0x2283 },
-  { 0x2283, 0x2282 },
-  { 0x2284, 0x2285 },
-  { 0x2285, 0x2284 },
-  { 0x2286, 0x2287 },
-  { 0x2287, 0x2286 },
-  { 0x2288, 0x2289 },
-  { 0x2289, 0x2288 },
-  { 0x228a, 0x228b },
-  { 0x228b, 0x228a },
-  { 0x228f, 0x2290 },
-  { 0x2290, 0x228f },
-  { 0x2291, 0x2292 },
-  { 0x2292, 0x2291 },
-  { 0x2298, 0x29b8 },
-  { 0x22a2, 0x22a3 },
-  { 0x22a3, 0x22a2 },
-  { 0x22a6, 0x2ade },
-  { 0x22a8, 0x2ae4 },
-  { 0x22a9, 0x2ae3 },
-  { 0x22ab, 0x2ae5 },
-  { 0x22b0, 0x22b1 },
-  { 0x22b1, 0x22b0 },
-  { 0x22b2, 0x22b3 },
-  { 0x22b3, 0x22b2 },
-  { 0x22b4, 0x22b5 },
-  { 0x22b5, 0x22b4 },
-  { 0x22b6, 0x22b7 },
-  { 0x22b7, 0x22b6 },
-  { 0x22c9, 0x22ca },
-  { 0x22ca, 0x22c9 },
-  { 0x22cb, 0x22cc },
-  { 0x22cc, 0x22cb },
-  { 0x22cd, 0x2243 },
-  { 0x22d0, 0x22d1 },
-  { 0x22d1, 0x22d0 },
-  { 0x22d6, 0x22d7 },
-  { 0x22d7, 0x22d6 },
-  { 0x22d8, 0x22d9 },
-  { 0x22d9, 0x22d8 },
-  { 0x22da, 0x22db },
-  { 0x22db, 0x22da },
-  { 0x22dc, 0x22dd },
-  { 0x22dd, 0x22dc },
-  { 0x22de, 0x22df },
-  { 0x22df, 0x22de },
-  { 0x22e0, 0x22e1 },
-  { 0x22e1, 0x22e0 },
-  { 0x22e2, 0x22e3 },
-  { 0x22e3, 0x22e2 },
-  { 0x22e4, 0x22e5 },
-  { 0x22e5, 0x22e4 },
-  { 0x22e6, 0x22e7 },
-  { 0x22e7, 0x22e6 },
-  { 0x22e8, 0x22e9 },
-  { 0x22e9, 0x22e8 },
-  { 0x22ea, 0x22eb },
-  { 0x22eb, 0x22ea },
-  { 0x22ec, 0x22ed },
-  { 0x22ed, 0x22ec },
-  { 0x22f0, 0x22f1 },
-  { 0x22f1, 0x22f0 },
-  { 0x22f2, 0x22fa },
-  { 0x22f3, 0x22fb },
-  { 0x22f4, 0x22fc },
-  { 0x22f6, 0x22fd },
-  { 0x22f7, 0x22fe },
-  { 0x22fa, 0x22f2 },
-  { 0x22fb, 0x22f3 },
-  { 0x22fc, 0x22f4 },
-  { 0x22fd, 0x22f6 },
-  { 0x22fe, 0x22f7 },
-  { 0x2308, 0x2309 },
-  { 0x2309, 0x2308 },
-  { 0x230a, 0x230b },
-  { 0x230b, 0x230a },
-  { 0x2329, 0x232a },
-  { 0x232a, 0x2329 },
-  { 0x2768, 0x2769 },
-  { 0x2769, 0x2768 },
-  { 0x276a, 0x276b },
-  { 0x276b, 0x276a },
-  { 0x276c, 0x276d },
-  { 0x276d, 0x276c },
-  { 0x276e, 0x276f },
-  { 0x276f, 0x276e },
-  { 0x2770, 0x2771 },
-  { 0x2771, 0x2770 },
-  { 0x2772, 0x2773 },
-  { 0x2773, 0x2772 },
-  { 0x2774, 0x2775 },
-  { 0x2775, 0x2774 },
-  { 0x27c3, 0x27c4 },
-  { 0x27c4, 0x27c3 },
-  { 0x27c5, 0x27c6 },
-  { 0x27c6, 0x27c5 },
-  { 0x27d5, 0x27d6 },
-  { 0x27d6, 0x27d5 },
-  { 0x27dd, 0x27de },
-  { 0x27de, 0x27dd },
-  { 0x27e2, 0x27e3 },
-  { 0x27e3, 0x27e2 },
-  { 0x27e4, 0x27e5 },
-  { 0x27e5, 0x27e4 },
-  { 0x27e6, 0x27e7 },
-  { 0x27e7, 0x27e6 },
-  { 0x27e8, 0x27e9 },
-  { 0x27e9, 0x27e8 },
-  { 0x27ea, 0x27eb },
-  { 0x27eb, 0x27ea },
-  { 0x2983, 0x2984 },
-  { 0x2984, 0x2983 },
-  { 0x2985, 0x2986 },
-  { 0x2986, 0x2985 },
-  { 0x2987, 0x2988 },
-  { 0x2988, 0x2987 },
-  { 0x2989, 0x298a },
-  { 0x298a, 0x2989 },
-  { 0x298b, 0x298c },
-  { 0x298c, 0x298b },
-  { 0x298d, 0x2990 },
-  { 0x298e, 0x298f },
-  { 0x298f, 0x298e },
-  { 0x2990, 0x298d },
-  { 0x2991, 0x2992 },
-  { 0x2992, 0x2991 },
-  { 0x2993, 0x2994 },
-  { 0x2994, 0x2993 },
-  { 0x2995, 0x2996 },
-  { 0x2996, 0x2995 },
-  { 0x2997, 0x2998 },
-  { 0x2998, 0x2997 },
-  { 0x29b8, 0x2298 },
-  { 0x29c0, 0x29c1 },
-  { 0x29c1, 0x29c0 },
-  { 0x29c4, 0x29c5 },
-  { 0x29c5, 0x29c4 },
-  { 0x29cf, 0x29d0 },
-  { 0x29d0, 0x29cf },
-  { 0x29d1, 0x29d2 },
-  { 0x29d2, 0x29d1 },
-  { 0x29d4, 0x29d5 },
-  { 0x29d5, 0x29d4 },
-  { 0x29d8, 0x29d9 },
-  { 0x29d9, 0x29d8 },
-  { 0x29da, 0x29db },
-  { 0x29db, 0x29da },
-  { 0x29f5, 0x2215 },
-  { 0x29f8, 0x29f9 },
-  { 0x29f9, 0x29f8 },
-  { 0x29fc, 0x29fd },
-  { 0x29fd, 0x29fc },
-  { 0x2a2b, 0x2a2c },
-  { 0x2a2c, 0x2a2b },
-  { 0x2a2d, 0x2a2e },
-  { 0x2a2e, 0x2a2d },
-  { 0x2a34, 0x2a35 },
-  { 0x2a35, 0x2a34 },
-  { 0x2a3c, 0x2a3d },
-  { 0x2a3d, 0x2a3c },
-  { 0x2a64, 0x2a65 },
-  { 0x2a65, 0x2a64 },
-  { 0x2a79, 0x2a7a },
-  { 0x2a7a, 0x2a79 },
-  { 0x2a7d, 0x2a7e },
-  { 0x2a7e, 0x2a7d },
-  { 0x2a7f, 0x2a80 },
-  { 0x2a80, 0x2a7f },
-  { 0x2a81, 0x2a82 },
-  { 0x2a82, 0x2a81 },
-  { 0x2a83, 0x2a84 },
-  { 0x2a84, 0x2a83 },
-  { 0x2a8b, 0x2a8c },
-  { 0x2a8c, 0x2a8b },
-  { 0x2a91, 0x2a92 },
-  { 0x2a92, 0x2a91 },
-  { 0x2a93, 0x2a94 },
-  { 0x2a94, 0x2a93 },
-  { 0x2a95, 0x2a96 },
-  { 0x2a96, 0x2a95 },
-  { 0x2a97, 0x2a98 },
-  { 0x2a98, 0x2a97 },
-  { 0x2a99, 0x2a9a },
-  { 0x2a9a, 0x2a99 },
-  { 0x2a9b, 0x2a9c },
-  { 0x2a9c, 0x2a9b },
-  { 0x2aa1, 0x2aa2 },
-  { 0x2aa2, 0x2aa1 },
-  { 0x2aa6, 0x2aa7 },
-  { 0x2aa7, 0x2aa6 },
-  { 0x2aa8, 0x2aa9 },
-  { 0x2aa9, 0x2aa8 },
-  { 0x2aaa, 0x2aab },
-  { 0x2aab, 0x2aaa },
-  { 0x2aac, 0x2aad },
-  { 0x2aad, 0x2aac },
-  { 0x2aaf, 0x2ab0 },
-  { 0x2ab0, 0x2aaf },
-  { 0x2ab3, 0x2ab4 },
-  { 0x2ab4, 0x2ab3 },
-  { 0x2abb, 0x2abc },
-  { 0x2abc, 0x2abb },
-  { 0x2abd, 0x2abe },
-  { 0x2abe, 0x2abd },
-  { 0x2abf, 0x2ac0 },
-  { 0x2ac0, 0x2abf },
-  { 0x2ac1, 0x2ac2 },
-  { 0x2ac2, 0x2ac1 },
-  { 0x2ac3, 0x2ac4 },
-  { 0x2ac4, 0x2ac3 },
-  { 0x2ac5, 0x2ac6 },
-  { 0x2ac6, 0x2ac5 },
-  { 0x2acd, 0x2ace },
-  { 0x2ace, 0x2acd },
-  { 0x2acf, 0x2ad0 },
-  { 0x2ad0, 0x2acf },
-  { 0x2ad1, 0x2ad2 },
-  { 0x2ad2, 0x2ad1 },
-  { 0x2ad3, 0x2ad4 },
-  { 0x2ad4, 0x2ad3 },
-  { 0x2ad5, 0x2ad6 },
-  { 0x2ad6, 0x2ad5 },
-  { 0x2ade, 0x22a6 },
-  { 0x2ae3, 0x22a9 },
-  { 0x2ae4, 0x22a8 },
-  { 0x2ae5, 0x22ab },
-  { 0x2aec, 0x2aed },
-  { 0x2aed, 0x2aec },
-  { 0x2af7, 0x2af8 },
-  { 0x2af8, 0x2af7 },
-  { 0x2af9, 0x2afa },
-  { 0x2afa, 0x2af9 },
-  { 0x2e02, 0x2e03 },
-  { 0x2e03, 0x2e02 },
-  { 0x2e04, 0x2e05 },
-  { 0x2e05, 0x2e04 },
-  { 0x2e09, 0x2e0a },
-  { 0x2e0a, 0x2e09 },
-  { 0x2e0c, 0x2e0d },
-  { 0x2e0d, 0x2e0c },
-  { 0x2e1c, 0x2e1d },
-  { 0x2e1d, 0x2e1c },
-  { 0x3008, 0x3009 },
-  { 0x3009, 0x3008 },
-  { 0x300a, 0x300b },
-  { 0x300b, 0x300a },
-  { 0x300c, 0x300d },
-  { 0x300d, 0x300c },
-  { 0x300e, 0x300f },
-  { 0x300f, 0x300e },
-  { 0x3010, 0x3011 },
-  { 0x3011, 0x3010 },
-  { 0x3014, 0x3015 },
-  { 0x3015, 0x3014 },
-  { 0x3016, 0x3017 },
-  { 0x3017, 0x3016 },
-  { 0x3018, 0x3019 },
-  { 0x3019, 0x3018 },
-  { 0x301a, 0x301b },
-  { 0x301b, 0x301a },
-  { 0xff08, 0xff09 },
-  { 0xff09, 0xff08 },
-  { 0xff1c, 0xff1e },
-  { 0xff1e, 0xff1c },
-  { 0xff3b, 0xff3d },
-  { 0xff3d, 0xff3b },
-  { 0xff5b, 0xff5d },
-  { 0xff5d, 0xff5b },
-  { 0xff5f, 0xff60 },
-  { 0xff60, 0xff5f },
-  { 0xff62, 0xff63 },
-  { 0xff63, 0xff62 }
-};
-
 #endif /* CHARTABLES_H */
Index: glib/guniprop.c
===================================================================
RCS file: /cvs/gnome/glib/glib/guniprop.c,v
retrieving revision 1.37
diff -u -p -r1.37 guniprop.c
--- glib/guniprop.c	14 Mar 2005 04:26:57 -0000	1.37
+++ glib/guniprop.c	3 Nov 2005 19:56:44 -0000
@@ -27,6 +27,7 @@
 
 #include "glib.h"
 #include "gunichartables.h"
+#include "gmirroringtable.h"
 #include "gunicodeprivate.h"
 #include "galias.h"
 
@@ -1007,50 +1008,26 @@ g_utf8_casefold (const gchar *str,
  *
  * If @ch has the Unicode mirrored property and there is another unicode
  * character that typically has a glyph that is the mirror image of @ch's
- * glyph, puts that character in the address pointed to by @mirrored_ch.
+ * glyph and @mirrored_ch is set, it puts that character in the address
+ * pointed to by @mirrored_ch.  Otherwise the original character is put.
  *
- * Return value: %TRUE if @ch has a mirrored character and @mirrored_ch is
- * filled in, %FALSE otherwise
+ * Return value: %TRUE if @ch has a mirrored character, %FALSE otherwise
  *
  * Since: 2.4
  **/
-/* This code is adapted from FriBidi (http://fribidi.sourceforge.net/). 
- * FriBidi is: Copyright (C) 1999,2000 Dov Grobgeld, and
- *             Copyright (C) 2001,2002 Behdad Esfahbod.
- */
 gboolean
 g_unichar_get_mirror_char (gunichar ch,
                            gunichar *mirrored_ch)
 {
   gint pos, step, size;
   gboolean found;
+  gunichar mirrored;
 
-  size = G_N_ELEMENTS (bidi_mirroring_table);
-  pos = step = (size / 2) + 1;
-
-  while (step > 1)
-    {
-      gunichar cmp_ch = bidi_mirroring_table[pos].ch;
-      step = (step + 1) / 2;
+  mirrored = GLIB_GET_MIRRORING(ch);
 
-      if (cmp_ch < ch)
-        {
-          pos += step;
-          if (pos > size - 1)
-            pos = size - 1;
-        }
-      else if (cmp_ch > ch)
-        {
-          pos -= step;
-          if (pos < 0)
-            pos = 0;
-        }
-      else
-        break;
-    }
-  found = bidi_mirroring_table[pos].ch == ch;
+  found = ch != mirrored;
   if (mirrored_ch)
-    *mirrored_ch = found ? bidi_mirroring_table[pos].mirrored_ch : ch;
+    *mirrored_ch = mirrored;
 
   return found;
 
