gucharmap r1650 - trunk/gucharmap



Author: chpe
Date: Fri Mar 21 10:50:31 2008
New Revision: 1650
URL: http://svn.gnome.org/viewvc/gucharmap?rev=1650&view=rev

Log:
Move unicode block names to rodata.
We're now at 82 relocations, down from over 8700 before the last few patches.


Modified:
   trunk/gucharmap/gen-guch-unicode-tables.pl
   trunk/gucharmap/gucharmap-block-chapters-model.c
   trunk/gucharmap/unicode-blocks.h

Modified: trunk/gucharmap/gen-guch-unicode-tables.pl
==============================================================================
--- trunk/gucharmap/gen-guch-unicode-tables.pl	(original)
+++ trunk/gucharmap/gen-guch-unicode-tables.pl	Fri Mar 21 10:50:31 2008
@@ -693,20 +693,47 @@
     print $out "#include <glib/gunicode.h>\n";
     print $out "#include <glib/gi18n-lib.h>\n\n";
 
+    my @blocks;
+    my $offset = 0;
+
+    while (my $line = <$blocks>)
+    {
+        $line =~ /^([0-9A-F]+)\.\.([0-9A-F]+); (.+)$/ or next;
+        push @blocks, [$1, $2, $3, $offset];
+        $offset += length($3) + 1;
+    }
+
+    print $out "/* for extraction by intltool */\n";
+    print $out "#if 0\n";
+    foreach my $block (@blocks)
+    {
+        my ($start, $end, $name, $offset) = @{$block};
+        print $out qq/  N_("$name"),\n/;
+    }
+    print $out "#endif /* 0 */\n\n";
+
+    print $out "static const char unicode_blocks_strings[] =\n";
+    foreach my $block (@blocks)
+    {
+        my ($start, $end, $name, $offset) = @{$block};
+        print $out qq/  "$name\\0"\n/;
+    }
+    print $out "  ;\n\n";
+
     print $out "typedef struct _UnicodeBlock UnicodeBlock;\n";
     print $out "\n";
     print $out "static const struct _UnicodeBlock\n";
     print $out "{\n";
     print $out "  gunichar start;\n";
     print $out "  gunichar end;\n";
-    print $out "  const gchar *block_name;\n";
+    print $out "  guint16 block_name_index;\n";
     print $out "}\n";
     print $out "unicode_blocks[] =\n";
     print $out "{\n";
-    while (my $line = <$blocks>)
+    foreach my $block (@blocks)
     {
-        $line =~ /^([0-9A-F]+)\.\.([0-9A-F]+); (.+)$/ or next;
-        print $out qq/  { 0x$1, 0x$2, N_("$3") },\n/;
+        my ($start, $end, $name, $offset) = @{$block};
+        print $out qq/  { 0x$start, 0x$end, $offset },\n/;
     }
     print $out "};\n\n";
 

Modified: trunk/gucharmap/gucharmap-block-chapters-model.c
==============================================================================
--- trunk/gucharmap/gucharmap-block-chapters-model.c	(original)
+++ trunk/gucharmap/gucharmap-block-chapters-model.c	Fri Mar 21 10:50:31 2008
@@ -56,10 +56,14 @@
 
   for (i = 0;  i < G_N_ELEMENTS (unicode_blocks); i++)
     {
+      const char *block_name;
+
+      block_name = unicode_blocks_strings + unicode_blocks[i].block_name_index;
+
       gtk_list_store_append (store, &iter);
       gtk_list_store_set (store, &iter,
-                          BLOCK_CHAPTERS_MODEL_ID, unicode_blocks[i].block_name,
-                          BLOCK_CHAPTERS_MODEL_LABEL, _(unicode_blocks[i].block_name), 
+                          BLOCK_CHAPTERS_MODEL_ID, block_name,
+                          BLOCK_CHAPTERS_MODEL_LABEL, _(block_name),
                           BLOCK_CHAPTERS_MODEL_UNICODE_BLOCK_PTR, unicode_blocks + i,
                           -1);
     }

Modified: trunk/gucharmap/unicode-blocks.h
==============================================================================
--- trunk/gucharmap/unicode-blocks.h	(original)
+++ trunk/gucharmap/unicode-blocks.h	Fri Mar 21 10:50:31 2008
@@ -9,170 +9,485 @@
 #include <glib/gunicode.h>
 #include <glib/gi18n-lib.h>
 
+/* for extraction by intltool */
+#if 0
+  N_("Basic Latin"),
+  N_("Latin-1 Supplement"),
+  N_("Latin Extended-A"),
+  N_("Latin Extended-B"),
+  N_("IPA Extensions"),
+  N_("Spacing Modifier Letters"),
+  N_("Combining Diacritical Marks"),
+  N_("Greek and Coptic"),
+  N_("Cyrillic"),
+  N_("Cyrillic Supplement"),
+  N_("Armenian"),
+  N_("Hebrew"),
+  N_("Arabic"),
+  N_("Syriac"),
+  N_("Arabic Supplement"),
+  N_("Thaana"),
+  N_("NKo"),
+  N_("Devanagari"),
+  N_("Bengali"),
+  N_("Gurmukhi"),
+  N_("Gujarati"),
+  N_("Oriya"),
+  N_("Tamil"),
+  N_("Telugu"),
+  N_("Kannada"),
+  N_("Malayalam"),
+  N_("Sinhala"),
+  N_("Thai"),
+  N_("Lao"),
+  N_("Tibetan"),
+  N_("Myanmar"),
+  N_("Georgian"),
+  N_("Hangul Jamo"),
+  N_("Ethiopic"),
+  N_("Ethiopic Supplement"),
+  N_("Cherokee"),
+  N_("Unified Canadian Aboriginal Syllabics"),
+  N_("Ogham"),
+  N_("Runic"),
+  N_("Tagalog"),
+  N_("Hanunoo"),
+  N_("Buhid"),
+  N_("Tagbanwa"),
+  N_("Khmer"),
+  N_("Mongolian"),
+  N_("Limbu"),
+  N_("Tai Le"),
+  N_("New Tai Lue"),
+  N_("Khmer Symbols"),
+  N_("Buginese"),
+  N_("Balinese"),
+  N_("Phonetic Extensions"),
+  N_("Phonetic Extensions Supplement"),
+  N_("Combining Diacritical Marks Supplement"),
+  N_("Latin Extended Additional"),
+  N_("Greek Extended"),
+  N_("General Punctuation"),
+  N_("Superscripts and Subscripts"),
+  N_("Currency Symbols"),
+  N_("Combining Diacritical Marks for Symbols"),
+  N_("Letterlike Symbols"),
+  N_("Number Forms"),
+  N_("Arrows"),
+  N_("Mathematical Operators"),
+  N_("Miscellaneous Technical"),
+  N_("Control Pictures"),
+  N_("Optical Character Recognition"),
+  N_("Enclosed Alphanumerics"),
+  N_("Box Drawing"),
+  N_("Block Elements"),
+  N_("Geometric Shapes"),
+  N_("Miscellaneous Symbols"),
+  N_("Dingbats"),
+  N_("Miscellaneous Mathematical Symbols-A"),
+  N_("Supplemental Arrows-A"),
+  N_("Braille Patterns"),
+  N_("Supplemental Arrows-B"),
+  N_("Miscellaneous Mathematical Symbols-B"),
+  N_("Supplemental Mathematical Operators"),
+  N_("Miscellaneous Symbols and Arrows"),
+  N_("Glagolitic"),
+  N_("Latin Extended-C"),
+  N_("Coptic"),
+  N_("Georgian Supplement"),
+  N_("Tifinagh"),
+  N_("Ethiopic Extended"),
+  N_("Supplemental Punctuation"),
+  N_("CJK Radicals Supplement"),
+  N_("Kangxi Radicals"),
+  N_("Ideographic Description Characters"),
+  N_("CJK Symbols and Punctuation"),
+  N_("Hiragana"),
+  N_("Katakana"),
+  N_("Bopomofo"),
+  N_("Hangul Compatibility Jamo"),
+  N_("Kanbun"),
+  N_("Bopomofo Extended"),
+  N_("CJK Strokes"),
+  N_("Katakana Phonetic Extensions"),
+  N_("Enclosed CJK Letters and Months"),
+  N_("CJK Compatibility"),
+  N_("CJK Unified Ideographs Extension A"),
+  N_("Yijing Hexagram Symbols"),
+  N_("CJK Unified Ideographs"),
+  N_("Yi Syllables"),
+  N_("Yi Radicals"),
+  N_("Modifier Tone Letters"),
+  N_("Latin Extended-D"),
+  N_("Syloti Nagri"),
+  N_("Phags-pa"),
+  N_("Hangul Syllables"),
+  N_("High Surrogates"),
+  N_("High Private Use Surrogates"),
+  N_("Low Surrogates"),
+  N_("Private Use Area"),
+  N_("CJK Compatibility Ideographs"),
+  N_("Alphabetic Presentation Forms"),
+  N_("Arabic Presentation Forms-A"),
+  N_("Variation Selectors"),
+  N_("Vertical Forms"),
+  N_("Combining Half Marks"),
+  N_("CJK Compatibility Forms"),
+  N_("Small Form Variants"),
+  N_("Arabic Presentation Forms-B"),
+  N_("Halfwidth and Fullwidth Forms"),
+  N_("Specials"),
+  N_("Linear B Syllabary"),
+  N_("Linear B Ideograms"),
+  N_("Aegean Numbers"),
+  N_("Ancient Greek Numbers"),
+  N_("Old Italic"),
+  N_("Gothic"),
+  N_("Ugaritic"),
+  N_("Old Persian"),
+  N_("Deseret"),
+  N_("Shavian"),
+  N_("Osmanya"),
+  N_("Cypriot Syllabary"),
+  N_("Phoenician"),
+  N_("Kharoshthi"),
+  N_("Cuneiform"),
+  N_("Cuneiform Numbers and Punctuation"),
+  N_("Byzantine Musical Symbols"),
+  N_("Musical Symbols"),
+  N_("Ancient Greek Musical Notation"),
+  N_("Tai Xuan Jing Symbols"),
+  N_("Counting Rod Numerals"),
+  N_("Mathematical Alphanumeric Symbols"),
+  N_("CJK Unified Ideographs Extension B"),
+  N_("CJK Compatibility Ideographs Supplement"),
+  N_("Tags"),
+  N_("Variation Selectors Supplement"),
+  N_("Supplementary Private Use Area-A"),
+  N_("Supplementary Private Use Area-B"),
+#endif /* 0 */
+
+static const char unicode_blocks_strings[] =
+  "Basic Latin\0"
+  "Latin-1 Supplement\0"
+  "Latin Extended-A\0"
+  "Latin Extended-B\0"
+  "IPA Extensions\0"
+  "Spacing Modifier Letters\0"
+  "Combining Diacritical Marks\0"
+  "Greek and Coptic\0"
+  "Cyrillic\0"
+  "Cyrillic Supplement\0"
+  "Armenian\0"
+  "Hebrew\0"
+  "Arabic\0"
+  "Syriac\0"
+  "Arabic Supplement\0"
+  "Thaana\0"
+  "NKo\0"
+  "Devanagari\0"
+  "Bengali\0"
+  "Gurmukhi\0"
+  "Gujarati\0"
+  "Oriya\0"
+  "Tamil\0"
+  "Telugu\0"
+  "Kannada\0"
+  "Malayalam\0"
+  "Sinhala\0"
+  "Thai\0"
+  "Lao\0"
+  "Tibetan\0"
+  "Myanmar\0"
+  "Georgian\0"
+  "Hangul Jamo\0"
+  "Ethiopic\0"
+  "Ethiopic Supplement\0"
+  "Cherokee\0"
+  "Unified Canadian Aboriginal Syllabics\0"
+  "Ogham\0"
+  "Runic\0"
+  "Tagalog\0"
+  "Hanunoo\0"
+  "Buhid\0"
+  "Tagbanwa\0"
+  "Khmer\0"
+  "Mongolian\0"
+  "Limbu\0"
+  "Tai Le\0"
+  "New Tai Lue\0"
+  "Khmer Symbols\0"
+  "Buginese\0"
+  "Balinese\0"
+  "Phonetic Extensions\0"
+  "Phonetic Extensions Supplement\0"
+  "Combining Diacritical Marks Supplement\0"
+  "Latin Extended Additional\0"
+  "Greek Extended\0"
+  "General Punctuation\0"
+  "Superscripts and Subscripts\0"
+  "Currency Symbols\0"
+  "Combining Diacritical Marks for Symbols\0"
+  "Letterlike Symbols\0"
+  "Number Forms\0"
+  "Arrows\0"
+  "Mathematical Operators\0"
+  "Miscellaneous Technical\0"
+  "Control Pictures\0"
+  "Optical Character Recognition\0"
+  "Enclosed Alphanumerics\0"
+  "Box Drawing\0"
+  "Block Elements\0"
+  "Geometric Shapes\0"
+  "Miscellaneous Symbols\0"
+  "Dingbats\0"
+  "Miscellaneous Mathematical Symbols-A\0"
+  "Supplemental Arrows-A\0"
+  "Braille Patterns\0"
+  "Supplemental Arrows-B\0"
+  "Miscellaneous Mathematical Symbols-B\0"
+  "Supplemental Mathematical Operators\0"
+  "Miscellaneous Symbols and Arrows\0"
+  "Glagolitic\0"
+  "Latin Extended-C\0"
+  "Coptic\0"
+  "Georgian Supplement\0"
+  "Tifinagh\0"
+  "Ethiopic Extended\0"
+  "Supplemental Punctuation\0"
+  "CJK Radicals Supplement\0"
+  "Kangxi Radicals\0"
+  "Ideographic Description Characters\0"
+  "CJK Symbols and Punctuation\0"
+  "Hiragana\0"
+  "Katakana\0"
+  "Bopomofo\0"
+  "Hangul Compatibility Jamo\0"
+  "Kanbun\0"
+  "Bopomofo Extended\0"
+  "CJK Strokes\0"
+  "Katakana Phonetic Extensions\0"
+  "Enclosed CJK Letters and Months\0"
+  "CJK Compatibility\0"
+  "CJK Unified Ideographs Extension A\0"
+  "Yijing Hexagram Symbols\0"
+  "CJK Unified Ideographs\0"
+  "Yi Syllables\0"
+  "Yi Radicals\0"
+  "Modifier Tone Letters\0"
+  "Latin Extended-D\0"
+  "Syloti Nagri\0"
+  "Phags-pa\0"
+  "Hangul Syllables\0"
+  "High Surrogates\0"
+  "High Private Use Surrogates\0"
+  "Low Surrogates\0"
+  "Private Use Area\0"
+  "CJK Compatibility Ideographs\0"
+  "Alphabetic Presentation Forms\0"
+  "Arabic Presentation Forms-A\0"
+  "Variation Selectors\0"
+  "Vertical Forms\0"
+  "Combining Half Marks\0"
+  "CJK Compatibility Forms\0"
+  "Small Form Variants\0"
+  "Arabic Presentation Forms-B\0"
+  "Halfwidth and Fullwidth Forms\0"
+  "Specials\0"
+  "Linear B Syllabary\0"
+  "Linear B Ideograms\0"
+  "Aegean Numbers\0"
+  "Ancient Greek Numbers\0"
+  "Old Italic\0"
+  "Gothic\0"
+  "Ugaritic\0"
+  "Old Persian\0"
+  "Deseret\0"
+  "Shavian\0"
+  "Osmanya\0"
+  "Cypriot Syllabary\0"
+  "Phoenician\0"
+  "Kharoshthi\0"
+  "Cuneiform\0"
+  "Cuneiform Numbers and Punctuation\0"
+  "Byzantine Musical Symbols\0"
+  "Musical Symbols\0"
+  "Ancient Greek Musical Notation\0"
+  "Tai Xuan Jing Symbols\0"
+  "Counting Rod Numerals\0"
+  "Mathematical Alphanumeric Symbols\0"
+  "CJK Unified Ideographs Extension B\0"
+  "CJK Compatibility Ideographs Supplement\0"
+  "Tags\0"
+  "Variation Selectors Supplement\0"
+  "Supplementary Private Use Area-A\0"
+  "Supplementary Private Use Area-B\0"
+  ;
+
 typedef struct _UnicodeBlock UnicodeBlock;
 
 static const struct _UnicodeBlock
 {
   gunichar start;
   gunichar end;
-  const gchar *block_name;
+  guint16 block_name_index;
 }
 unicode_blocks[] =
 {
-  { 0x0000, 0x007F, N_("Basic Latin") },
-  { 0x0080, 0x00FF, N_("Latin-1 Supplement") },
-  { 0x0100, 0x017F, N_("Latin Extended-A") },
-  { 0x0180, 0x024F, N_("Latin Extended-B") },
-  { 0x0250, 0x02AF, N_("IPA Extensions") },
-  { 0x02B0, 0x02FF, N_("Spacing Modifier Letters") },
-  { 0x0300, 0x036F, N_("Combining Diacritical Marks") },
-  { 0x0370, 0x03FF, N_("Greek and Coptic") },
-  { 0x0400, 0x04FF, N_("Cyrillic") },
-  { 0x0500, 0x052F, N_("Cyrillic Supplement") },
-  { 0x0530, 0x058F, N_("Armenian") },
-  { 0x0590, 0x05FF, N_("Hebrew") },
-  { 0x0600, 0x06FF, N_("Arabic") },
-  { 0x0700, 0x074F, N_("Syriac") },
-  { 0x0750, 0x077F, N_("Arabic Supplement") },
-  { 0x0780, 0x07BF, N_("Thaana") },
-  { 0x07C0, 0x07FF, N_("NKo") },
-  { 0x0900, 0x097F, N_("Devanagari") },
-  { 0x0980, 0x09FF, N_("Bengali") },
-  { 0x0A00, 0x0A7F, N_("Gurmukhi") },
-  { 0x0A80, 0x0AFF, N_("Gujarati") },
-  { 0x0B00, 0x0B7F, N_("Oriya") },
-  { 0x0B80, 0x0BFF, N_("Tamil") },
-  { 0x0C00, 0x0C7F, N_("Telugu") },
-  { 0x0C80, 0x0CFF, N_("Kannada") },
-  { 0x0D00, 0x0D7F, N_("Malayalam") },
-  { 0x0D80, 0x0DFF, N_("Sinhala") },
-  { 0x0E00, 0x0E7F, N_("Thai") },
-  { 0x0E80, 0x0EFF, N_("Lao") },
-  { 0x0F00, 0x0FFF, N_("Tibetan") },
-  { 0x1000, 0x109F, N_("Myanmar") },
-  { 0x10A0, 0x10FF, N_("Georgian") },
-  { 0x1100, 0x11FF, N_("Hangul Jamo") },
-  { 0x1200, 0x137F, N_("Ethiopic") },
-  { 0x1380, 0x139F, N_("Ethiopic Supplement") },
-  { 0x13A0, 0x13FF, N_("Cherokee") },
-  { 0x1400, 0x167F, N_("Unified Canadian Aboriginal Syllabics") },
-  { 0x1680, 0x169F, N_("Ogham") },
-  { 0x16A0, 0x16FF, N_("Runic") },
-  { 0x1700, 0x171F, N_("Tagalog") },
-  { 0x1720, 0x173F, N_("Hanunoo") },
-  { 0x1740, 0x175F, N_("Buhid") },
-  { 0x1760, 0x177F, N_("Tagbanwa") },
-  { 0x1780, 0x17FF, N_("Khmer") },
-  { 0x1800, 0x18AF, N_("Mongolian") },
-  { 0x1900, 0x194F, N_("Limbu") },
-  { 0x1950, 0x197F, N_("Tai Le") },
-  { 0x1980, 0x19DF, N_("New Tai Lue") },
-  { 0x19E0, 0x19FF, N_("Khmer Symbols") },
-  { 0x1A00, 0x1A1F, N_("Buginese") },
-  { 0x1B00, 0x1B7F, N_("Balinese") },
-  { 0x1D00, 0x1D7F, N_("Phonetic Extensions") },
-  { 0x1D80, 0x1DBF, N_("Phonetic Extensions Supplement") },
-  { 0x1DC0, 0x1DFF, N_("Combining Diacritical Marks Supplement") },
-  { 0x1E00, 0x1EFF, N_("Latin Extended Additional") },
-  { 0x1F00, 0x1FFF, N_("Greek Extended") },
-  { 0x2000, 0x206F, N_("General Punctuation") },
-  { 0x2070, 0x209F, N_("Superscripts and Subscripts") },
-  { 0x20A0, 0x20CF, N_("Currency Symbols") },
-  { 0x20D0, 0x20FF, N_("Combining Diacritical Marks for Symbols") },
-  { 0x2100, 0x214F, N_("Letterlike Symbols") },
-  { 0x2150, 0x218F, N_("Number Forms") },
-  { 0x2190, 0x21FF, N_("Arrows") },
-  { 0x2200, 0x22FF, N_("Mathematical Operators") },
-  { 0x2300, 0x23FF, N_("Miscellaneous Technical") },
-  { 0x2400, 0x243F, N_("Control Pictures") },
-  { 0x2440, 0x245F, N_("Optical Character Recognition") },
-  { 0x2460, 0x24FF, N_("Enclosed Alphanumerics") },
-  { 0x2500, 0x257F, N_("Box Drawing") },
-  { 0x2580, 0x259F, N_("Block Elements") },
-  { 0x25A0, 0x25FF, N_("Geometric Shapes") },
-  { 0x2600, 0x26FF, N_("Miscellaneous Symbols") },
-  { 0x2700, 0x27BF, N_("Dingbats") },
-  { 0x27C0, 0x27EF, N_("Miscellaneous Mathematical Symbols-A") },
-  { 0x27F0, 0x27FF, N_("Supplemental Arrows-A") },
-  { 0x2800, 0x28FF, N_("Braille Patterns") },
-  { 0x2900, 0x297F, N_("Supplemental Arrows-B") },
-  { 0x2980, 0x29FF, N_("Miscellaneous Mathematical Symbols-B") },
-  { 0x2A00, 0x2AFF, N_("Supplemental Mathematical Operators") },
-  { 0x2B00, 0x2BFF, N_("Miscellaneous Symbols and Arrows") },
-  { 0x2C00, 0x2C5F, N_("Glagolitic") },
-  { 0x2C60, 0x2C7F, N_("Latin Extended-C") },
-  { 0x2C80, 0x2CFF, N_("Coptic") },
-  { 0x2D00, 0x2D2F, N_("Georgian Supplement") },
-  { 0x2D30, 0x2D7F, N_("Tifinagh") },
-  { 0x2D80, 0x2DDF, N_("Ethiopic Extended") },
-  { 0x2E00, 0x2E7F, N_("Supplemental Punctuation") },
-  { 0x2E80, 0x2EFF, N_("CJK Radicals Supplement") },
-  { 0x2F00, 0x2FDF, N_("Kangxi Radicals") },
-  { 0x2FF0, 0x2FFF, N_("Ideographic Description Characters") },
-  { 0x3000, 0x303F, N_("CJK Symbols and Punctuation") },
-  { 0x3040, 0x309F, N_("Hiragana") },
-  { 0x30A0, 0x30FF, N_("Katakana") },
-  { 0x3100, 0x312F, N_("Bopomofo") },
-  { 0x3130, 0x318F, N_("Hangul Compatibility Jamo") },
-  { 0x3190, 0x319F, N_("Kanbun") },
-  { 0x31A0, 0x31BF, N_("Bopomofo Extended") },
-  { 0x31C0, 0x31EF, N_("CJK Strokes") },
-  { 0x31F0, 0x31FF, N_("Katakana Phonetic Extensions") },
-  { 0x3200, 0x32FF, N_("Enclosed CJK Letters and Months") },
-  { 0x3300, 0x33FF, N_("CJK Compatibility") },
-  { 0x3400, 0x4DBF, N_("CJK Unified Ideographs Extension A") },
-  { 0x4DC0, 0x4DFF, N_("Yijing Hexagram Symbols") },
-  { 0x4E00, 0x9FFF, N_("CJK Unified Ideographs") },
-  { 0xA000, 0xA48F, N_("Yi Syllables") },
-  { 0xA490, 0xA4CF, N_("Yi Radicals") },
-  { 0xA700, 0xA71F, N_("Modifier Tone Letters") },
-  { 0xA720, 0xA7FF, N_("Latin Extended-D") },
-  { 0xA800, 0xA82F, N_("Syloti Nagri") },
-  { 0xA840, 0xA87F, N_("Phags-pa") },
-  { 0xAC00, 0xD7AF, N_("Hangul Syllables") },
-  { 0xD800, 0xDB7F, N_("High Surrogates") },
-  { 0xDB80, 0xDBFF, N_("High Private Use Surrogates") },
-  { 0xDC00, 0xDFFF, N_("Low Surrogates") },
-  { 0xE000, 0xF8FF, N_("Private Use Area") },
-  { 0xF900, 0xFAFF, N_("CJK Compatibility Ideographs") },
-  { 0xFB00, 0xFB4F, N_("Alphabetic Presentation Forms") },
-  { 0xFB50, 0xFDFF, N_("Arabic Presentation Forms-A") },
-  { 0xFE00, 0xFE0F, N_("Variation Selectors") },
-  { 0xFE10, 0xFE1F, N_("Vertical Forms") },
-  { 0xFE20, 0xFE2F, N_("Combining Half Marks") },
-  { 0xFE30, 0xFE4F, N_("CJK Compatibility Forms") },
-  { 0xFE50, 0xFE6F, N_("Small Form Variants") },
-  { 0xFE70, 0xFEFF, N_("Arabic Presentation Forms-B") },
-  { 0xFF00, 0xFFEF, N_("Halfwidth and Fullwidth Forms") },
-  { 0xFFF0, 0xFFFF, N_("Specials") },
-  { 0x10000, 0x1007F, N_("Linear B Syllabary") },
-  { 0x10080, 0x100FF, N_("Linear B Ideograms") },
-  { 0x10100, 0x1013F, N_("Aegean Numbers") },
-  { 0x10140, 0x1018F, N_("Ancient Greek Numbers") },
-  { 0x10300, 0x1032F, N_("Old Italic") },
-  { 0x10330, 0x1034F, N_("Gothic") },
-  { 0x10380, 0x1039F, N_("Ugaritic") },
-  { 0x103A0, 0x103DF, N_("Old Persian") },
-  { 0x10400, 0x1044F, N_("Deseret") },
-  { 0x10450, 0x1047F, N_("Shavian") },
-  { 0x10480, 0x104AF, N_("Osmanya") },
-  { 0x10800, 0x1083F, N_("Cypriot Syllabary") },
-  { 0x10900, 0x1091F, N_("Phoenician") },
-  { 0x10A00, 0x10A5F, N_("Kharoshthi") },
-  { 0x12000, 0x123FF, N_("Cuneiform") },
-  { 0x12400, 0x1247F, N_("Cuneiform Numbers and Punctuation") },
-  { 0x1D000, 0x1D0FF, N_("Byzantine Musical Symbols") },
-  { 0x1D100, 0x1D1FF, N_("Musical Symbols") },
-  { 0x1D200, 0x1D24F, N_("Ancient Greek Musical Notation") },
-  { 0x1D300, 0x1D35F, N_("Tai Xuan Jing Symbols") },
-  { 0x1D360, 0x1D37F, N_("Counting Rod Numerals") },
-  { 0x1D400, 0x1D7FF, N_("Mathematical Alphanumeric Symbols") },
-  { 0x20000, 0x2A6DF, N_("CJK Unified Ideographs Extension B") },
-  { 0x2F800, 0x2FA1F, N_("CJK Compatibility Ideographs Supplement") },
-  { 0xE0000, 0xE007F, N_("Tags") },
-  { 0xE0100, 0xE01EF, N_("Variation Selectors Supplement") },
-  { 0xF0000, 0xFFFFF, N_("Supplementary Private Use Area-A") },
-  { 0x100000, 0x10FFFF, N_("Supplementary Private Use Area-B") },
+  { 0x0000, 0x007F, 0 },
+  { 0x0080, 0x00FF, 12 },
+  { 0x0100, 0x017F, 31 },
+  { 0x0180, 0x024F, 48 },
+  { 0x0250, 0x02AF, 65 },
+  { 0x02B0, 0x02FF, 80 },
+  { 0x0300, 0x036F, 105 },
+  { 0x0370, 0x03FF, 133 },
+  { 0x0400, 0x04FF, 150 },
+  { 0x0500, 0x052F, 159 },
+  { 0x0530, 0x058F, 179 },
+  { 0x0590, 0x05FF, 188 },
+  { 0x0600, 0x06FF, 195 },
+  { 0x0700, 0x074F, 202 },
+  { 0x0750, 0x077F, 209 },
+  { 0x0780, 0x07BF, 227 },
+  { 0x07C0, 0x07FF, 234 },
+  { 0x0900, 0x097F, 238 },
+  { 0x0980, 0x09FF, 249 },
+  { 0x0A00, 0x0A7F, 257 },
+  { 0x0A80, 0x0AFF, 266 },
+  { 0x0B00, 0x0B7F, 275 },
+  { 0x0B80, 0x0BFF, 281 },
+  { 0x0C00, 0x0C7F, 287 },
+  { 0x0C80, 0x0CFF, 294 },
+  { 0x0D00, 0x0D7F, 302 },
+  { 0x0D80, 0x0DFF, 312 },
+  { 0x0E00, 0x0E7F, 320 },
+  { 0x0E80, 0x0EFF, 325 },
+  { 0x0F00, 0x0FFF, 329 },
+  { 0x1000, 0x109F, 337 },
+  { 0x10A0, 0x10FF, 345 },
+  { 0x1100, 0x11FF, 354 },
+  { 0x1200, 0x137F, 366 },
+  { 0x1380, 0x139F, 375 },
+  { 0x13A0, 0x13FF, 395 },
+  { 0x1400, 0x167F, 404 },
+  { 0x1680, 0x169F, 442 },
+  { 0x16A0, 0x16FF, 448 },
+  { 0x1700, 0x171F, 454 },
+  { 0x1720, 0x173F, 462 },
+  { 0x1740, 0x175F, 470 },
+  { 0x1760, 0x177F, 476 },
+  { 0x1780, 0x17FF, 485 },
+  { 0x1800, 0x18AF, 491 },
+  { 0x1900, 0x194F, 501 },
+  { 0x1950, 0x197F, 507 },
+  { 0x1980, 0x19DF, 514 },
+  { 0x19E0, 0x19FF, 526 },
+  { 0x1A00, 0x1A1F, 540 },
+  { 0x1B00, 0x1B7F, 549 },
+  { 0x1D00, 0x1D7F, 558 },
+  { 0x1D80, 0x1DBF, 578 },
+  { 0x1DC0, 0x1DFF, 609 },
+  { 0x1E00, 0x1EFF, 648 },
+  { 0x1F00, 0x1FFF, 674 },
+  { 0x2000, 0x206F, 689 },
+  { 0x2070, 0x209F, 709 },
+  { 0x20A0, 0x20CF, 737 },
+  { 0x20D0, 0x20FF, 754 },
+  { 0x2100, 0x214F, 794 },
+  { 0x2150, 0x218F, 813 },
+  { 0x2190, 0x21FF, 826 },
+  { 0x2200, 0x22FF, 833 },
+  { 0x2300, 0x23FF, 856 },
+  { 0x2400, 0x243F, 880 },
+  { 0x2440, 0x245F, 897 },
+  { 0x2460, 0x24FF, 927 },
+  { 0x2500, 0x257F, 950 },
+  { 0x2580, 0x259F, 962 },
+  { 0x25A0, 0x25FF, 977 },
+  { 0x2600, 0x26FF, 994 },
+  { 0x2700, 0x27BF, 1016 },
+  { 0x27C0, 0x27EF, 1025 },
+  { 0x27F0, 0x27FF, 1062 },
+  { 0x2800, 0x28FF, 1084 },
+  { 0x2900, 0x297F, 1101 },
+  { 0x2980, 0x29FF, 1123 },
+  { 0x2A00, 0x2AFF, 1160 },
+  { 0x2B00, 0x2BFF, 1196 },
+  { 0x2C00, 0x2C5F, 1229 },
+  { 0x2C60, 0x2C7F, 1240 },
+  { 0x2C80, 0x2CFF, 1257 },
+  { 0x2D00, 0x2D2F, 1264 },
+  { 0x2D30, 0x2D7F, 1284 },
+  { 0x2D80, 0x2DDF, 1293 },
+  { 0x2E00, 0x2E7F, 1311 },
+  { 0x2E80, 0x2EFF, 1336 },
+  { 0x2F00, 0x2FDF, 1360 },
+  { 0x2FF0, 0x2FFF, 1376 },
+  { 0x3000, 0x303F, 1411 },
+  { 0x3040, 0x309F, 1439 },
+  { 0x30A0, 0x30FF, 1448 },
+  { 0x3100, 0x312F, 1457 },
+  { 0x3130, 0x318F, 1466 },
+  { 0x3190, 0x319F, 1492 },
+  { 0x31A0, 0x31BF, 1499 },
+  { 0x31C0, 0x31EF, 1517 },
+  { 0x31F0, 0x31FF, 1529 },
+  { 0x3200, 0x32FF, 1558 },
+  { 0x3300, 0x33FF, 1590 },
+  { 0x3400, 0x4DBF, 1608 },
+  { 0x4DC0, 0x4DFF, 1643 },
+  { 0x4E00, 0x9FFF, 1667 },
+  { 0xA000, 0xA48F, 1690 },
+  { 0xA490, 0xA4CF, 1703 },
+  { 0xA700, 0xA71F, 1715 },
+  { 0xA720, 0xA7FF, 1737 },
+  { 0xA800, 0xA82F, 1754 },
+  { 0xA840, 0xA87F, 1767 },
+  { 0xAC00, 0xD7AF, 1776 },
+  { 0xD800, 0xDB7F, 1793 },
+  { 0xDB80, 0xDBFF, 1809 },
+  { 0xDC00, 0xDFFF, 1837 },
+  { 0xE000, 0xF8FF, 1852 },
+  { 0xF900, 0xFAFF, 1869 },
+  { 0xFB00, 0xFB4F, 1898 },
+  { 0xFB50, 0xFDFF, 1928 },
+  { 0xFE00, 0xFE0F, 1956 },
+  { 0xFE10, 0xFE1F, 1976 },
+  { 0xFE20, 0xFE2F, 1991 },
+  { 0xFE30, 0xFE4F, 2012 },
+  { 0xFE50, 0xFE6F, 2036 },
+  { 0xFE70, 0xFEFF, 2056 },
+  { 0xFF00, 0xFFEF, 2084 },
+  { 0xFFF0, 0xFFFF, 2114 },
+  { 0x10000, 0x1007F, 2123 },
+  { 0x10080, 0x100FF, 2142 },
+  { 0x10100, 0x1013F, 2161 },
+  { 0x10140, 0x1018F, 2176 },
+  { 0x10300, 0x1032F, 2198 },
+  { 0x10330, 0x1034F, 2209 },
+  { 0x10380, 0x1039F, 2216 },
+  { 0x103A0, 0x103DF, 2225 },
+  { 0x10400, 0x1044F, 2237 },
+  { 0x10450, 0x1047F, 2245 },
+  { 0x10480, 0x104AF, 2253 },
+  { 0x10800, 0x1083F, 2261 },
+  { 0x10900, 0x1091F, 2279 },
+  { 0x10A00, 0x10A5F, 2290 },
+  { 0x12000, 0x123FF, 2301 },
+  { 0x12400, 0x1247F, 2311 },
+  { 0x1D000, 0x1D0FF, 2345 },
+  { 0x1D100, 0x1D1FF, 2371 },
+  { 0x1D200, 0x1D24F, 2387 },
+  { 0x1D300, 0x1D35F, 2418 },
+  { 0x1D360, 0x1D37F, 2440 },
+  { 0x1D400, 0x1D7FF, 2462 },
+  { 0x20000, 0x2A6DF, 2496 },
+  { 0x2F800, 0x2FA1F, 2531 },
+  { 0xE0000, 0xE007F, 2571 },
+  { 0xE0100, 0xE01EF, 2576 },
+  { 0xF0000, 0xFFFFF, 2607 },
+  { 0x100000, 0x10FFFF, 2640 },
 };
 
 #endif  /* #ifndef UNICODE_BLOCKS_H */



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