You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
|
Apr
(58) |
May
(28) |
Jun
(308) |
Jul
(11) |
Aug
(1) |
Sep
|
Oct
(3) |
Nov
(4) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(4) |
Feb
(8) |
Mar
(3) |
Apr
(3) |
May
(8) |
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
(1) |
2009 |
Jan
|
Feb
|
Mar
(4) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <kt...@us...> - 2008-02-15 12:48:26
|
Revision: 1588 http://tomoe.svn.sourceforge.net/tomoe/?rev=1588&view=rev Author: ktou Date: 2008-02-15 04:48:20 -0800 (Fri, 15 Feb 2008) Log Message: ----------- * test/tomoe-test-utils.rb: added benchmark related paths. * benchmark/evaluation.rb: used TomoeTestUtils::Path. Modified Paths: -------------- tomoe/trunk/ChangeLog tomoe/trunk/benchmark/evaluation.rb tomoe/trunk/test/tomoe-test-utils.rb Modified: tomoe/trunk/ChangeLog =================================================================== --- tomoe/trunk/ChangeLog 2008-02-15 11:54:31 UTC (rev 1587) +++ tomoe/trunk/ChangeLog 2008-02-15 12:48:20 UTC (rev 1588) @@ -1,19 +1,22 @@ 2008-02-15 Kouhei Sutou <ko...@co...> + * test/tomoe-test-utils.rb: added benchmark related paths. + * benchmark/evaluation.rb: - used tomoe-test-utils. - fixed strange method definition level. + - used TomoeTestUtils::Path. * benchmark/search-by-recognizer.rb: TomoeSpecUtils -> TomoeTestUtils. 2008-02-15 Mathieu Blondel <mbl...@ru...> - * benchmark/data/set[1|2]/*.xml: 50 kanji written by 2 different + * benchmark/data/set[1|2]/*.xml: 50 kanji written by 2 different people. This can be used as evaluation data. * benchmark/evaluation.rb: The evaluation script, using the Ruby bindings for tomoe. This evaluation should be used to measure the - accuracy of recognizers. + accuracy of recognizers. 2008-01-22 Kouhei Sutou <ko...@co...> Modified: tomoe/trunk/benchmark/evaluation.rb =================================================================== --- tomoe/trunk/benchmark/evaluation.rb 2008-02-15 11:54:31 UTC (rev 1587) +++ tomoe/trunk/benchmark/evaluation.rb 2008-02-15 12:48:20 UTC (rev 1588) @@ -10,20 +10,15 @@ require 'tomoe-test-utils' class Evaluation + include TomoeTestUtils::Path - BENCHMARK_DIR = File.expand_path(File.dirname(__FILE__)) - EVALUATION_DATA_DIR = File.join(BENCHMARK_DIR, "data") - TOP_DIR = File.expand_path(File.join(BENCHMARK_DIR, "..")) - DATA_DIR = File.join(TOP_DIR, "data") - JAPANESE_DICTIONARY = File.join(DATA_DIR, "handwriting-ja.xml") - def initialize(recognizer_class, set) - data_folder = File.join(EVALUATION_DATA_DIR, set) + data_folder = File.join(benchmark_data_dir, set) xml_files = Dir.glob(File.join(data_folder, "*.xml")) @n_files = xml_files.length - dict = Tomoe::DictXML.new("filename" => JAPANESE_DICTIONARY, + dict = Tomoe::DictXML.new("filename" => handwriting_dictionary("ja"), "editable" => false) recognizer = recognizer_class.new("dictionary" => dict) Modified: tomoe/trunk/test/tomoe-test-utils.rb =================================================================== --- tomoe/trunk/test/tomoe-test-utils.rb 2008-02-15 11:54:31 UTC (rev 1587) +++ tomoe/trunk/test/tomoe-test-utils.rb 2008-02-15 12:48:20 UTC (rev 1588) @@ -69,6 +69,14 @@ File.join(db_dir, "config.yml") end + def benchmark_dir + File.join(top_dir, "benchmark") + end + + def benchmark_data_dir + File.join(benchmark_dir, "data") + end + def test_data_files Dir.glob(File.join(test_data_dir, "*.data")) end @@ -76,6 +84,10 @@ def dictionary File.join(data_dir, "kanjidic2.xml") end + + def handwriting_dictionary(lang="ja") + File.join(data_dir, "handwriting-#{lang}.xml") + end end module Config This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kt...@us...> - 2008-02-15 11:54:42
|
Revision: 1587 http://tomoe.svn.sourceforge.net/tomoe/?rev=1587&view=rev Author: ktou Date: 2008-02-15 03:54:31 -0800 (Fri, 15 Feb 2008) Log Message: ----------- * benchmark/evaluation.rb: fixed strange method definition level. Modified Paths: -------------- tomoe/trunk/ChangeLog tomoe/trunk/benchmark/evaluation.rb Modified: tomoe/trunk/ChangeLog =================================================================== --- tomoe/trunk/ChangeLog 2008-02-15 11:52:51 UTC (rev 1586) +++ tomoe/trunk/ChangeLog 2008-02-15 11:54:31 UTC (rev 1587) @@ -1,6 +1,8 @@ 2008-02-15 Kouhei Sutou <ko...@co...> - * benchmark/evaluation.rb: used tomoe-test-utils. + * benchmark/evaluation.rb: + - used tomoe-test-utils. + - fixed strange method definition level. * benchmark/search-by-recognizer.rb: TomoeSpecUtils -> TomoeTestUtils. Modified: tomoe/trunk/benchmark/evaluation.rb =================================================================== --- tomoe/trunk/benchmark/evaluation.rb 2008-02-15 11:52:51 UTC (rev 1586) +++ tomoe/trunk/benchmark/evaluation.rb 2008-02-15 11:54:31 UTC (rev 1587) @@ -52,33 +52,32 @@ @match5 << char_utf8 if ten_candidates[0...5].include? char_utf8 @match10 << char_utf8 if ten_candidates.include? char_utf8 end + end - def first_match_accuracy - @match1.length.to_f / @n_files * 100 - end + def first_match_accuracy + @match1.length.to_f / @n_files * 100 + end - def fith_match_accuracy - @match5.length.to_f / @n_files * 100 - end + def fith_match_accuracy + @match5.length.to_f / @n_files * 100 + end - def tenth_match_accuracy - @match10.length.to_f / @n_files * 100 - end + def tenth_match_accuracy + @match10.length.to_f / @n_files * 100 + end - def character_details(char_utf8) - ret = char_utf8 + "\t" - ret << if i = @results[char_utf8].index(char_utf8) - "%d\t" % (i + 1) - else - "X\t" - end - ret << @results[char_utf8][0...5].join(", ") + def character_details(char_utf8) + ret = char_utf8 + "\t" + ret << if i = @results[char_utf8].index(char_utf8) + "%d\t" % (i + 1) + else + "X\t" end + ret << @results[char_utf8][0...5].join(", ") + end - def characters - @results.keys - end - + def characters + @results.keys end end This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kt...@us...> - 2008-02-15 11:52:54
|
Revision: 1586 http://tomoe.svn.sourceforge.net/tomoe/?rev=1586&view=rev Author: ktou Date: 2008-02-15 03:52:51 -0800 (Fri, 15 Feb 2008) Log Message: ----------- * benchmark/evaluation.rb: used tomoe-test-utils. Modified Paths: -------------- tomoe/trunk/ChangeLog tomoe/trunk/benchmark/evaluation.rb Modified: tomoe/trunk/ChangeLog =================================================================== --- tomoe/trunk/ChangeLog 2008-02-15 11:47:20 UTC (rev 1585) +++ tomoe/trunk/ChangeLog 2008-02-15 11:52:51 UTC (rev 1586) @@ -1,5 +1,7 @@ 2008-02-15 Kouhei Sutou <ko...@co...> + * benchmark/evaluation.rb: used tomoe-test-utils. + * benchmark/search-by-recognizer.rb: TomoeSpecUtils -> TomoeTestUtils. 2008-02-15 Mathieu Blondel <mbl...@ru...> Modified: tomoe/trunk/benchmark/evaluation.rb =================================================================== --- tomoe/trunk/benchmark/evaluation.rb 2008-02-15 11:47:20 UTC (rev 1585) +++ tomoe/trunk/benchmark/evaluation.rb 2008-02-15 11:52:51 UTC (rev 1586) @@ -1,5 +1,14 @@ -$KCODE="u" +#!/usr/bin/env ruby +benchmark_dir = File.expand_path(File.dirname(__FILE__)) +top_dir = File.expand_path(File.join(benchmark_dir, "..")) +test_dir = File.join(top_dir, "test") +$LOAD_PATH.unshift(File.join(top_dir, "bindings", "ruby", ".libs")) +$LOAD_PATH.unshift(File.join(top_dir, "bindings", "ruby")) +$LOAD_PATH.unshift(File.join(test_dir)) + +require 'tomoe-test-utils' + class Evaluation BENCHMARK_DIR = File.expand_path(File.dirname(__FILE__)) @@ -74,11 +83,6 @@ end -$LOAD_PATH.unshift(File.join(Evaluation::TOP_DIR, "bindings", "ruby", ".libs")) -$LOAD_PATH.unshift(File.join(Evaluation::TOP_DIR, "bindings", "ruby")) - -require "tomoe" - detailed = ARGV.length >= 1 and ARGV[0] == "-d" puts "Run with -d for a detailed report" unless detailed This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kt...@us...> - 2008-02-15 11:47:20
|
Revision: 1585 http://tomoe.svn.sourceforge.net/tomoe/?rev=1585&view=rev Author: ktou Date: 2008-02-15 03:47:20 -0800 (Fri, 15 Feb 2008) Log Message: ----------- * benchmark/search-by-recognizer.rb: TomoeSpecUtils -> TomoeTestUtils. Modified Paths: -------------- tomoe/trunk/ChangeLog tomoe/trunk/benchmark/search-by-recognizer.rb Modified: tomoe/trunk/ChangeLog =================================================================== --- tomoe/trunk/ChangeLog 2008-02-15 10:55:10 UTC (rev 1584) +++ tomoe/trunk/ChangeLog 2008-02-15 11:47:20 UTC (rev 1585) @@ -1,3 +1,7 @@ +2008-02-15 Kouhei Sutou <ko...@co...> + + * benchmark/search-by-recognizer.rb: TomoeSpecUtils -> TomoeTestUtils. + 2008-02-15 Mathieu Blondel <mbl...@ru...> * benchmark/data/set[1|2]/*.xml: 50 kanji written by 2 different Modified: tomoe/trunk/benchmark/search-by-recognizer.rb =================================================================== --- tomoe/trunk/benchmark/search-by-recognizer.rb 2008-02-15 10:55:10 UTC (rev 1584) +++ tomoe/trunk/benchmark/search-by-recognizer.rb 2008-02-15 11:47:20 UTC (rev 1585) @@ -21,13 +21,13 @@ end recognizer = Tomoe::RecognizerSimple.new("dictionary" => dict) context = Tomoe::Context.new("recognizer" => recognizer) -config_file = TomoeSpecUtils::Config.make_config_file +config_file = TomoeTestUtils::Config.make_config_file context.load_config(config_file.path) n = 10 Benchmark.bmbm do |x| - TomoeSpecUtils::Path.test_data_files.sort.each do |file| - expected, writing = TomoeSpecUtils::TestData.parse(file) + TomoeTestUtils::Path.test_data_files.sort.each do |file| + expected, writing = TomoeTestUtils::TestData.parse(file) query = Tomoe::Query.new query.writing = writing base = File.basename(file) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mbl...@us...> - 2008-02-15 10:55:21
|
Revision: 1584 http://tomoe.svn.sourceforge.net/tomoe/?rev=1584&view=rev Author: mblondel Date: 2008-02-15 02:55:10 -0800 (Fri, 15 Feb 2008) Log Message: ----------- * benchmark/data/set[1|2]/*.xml: 50 kanji written by 2 different people. This can be used as evaluation data. * benchmark/evaluation.rb: The evaluation script, using the Ruby bindings for tomoe. This evaluation should be used to measure the accuracy of recognizers. Modified Paths: -------------- tomoe/trunk/ChangeLog Added Paths: ----------- tomoe/trunk/benchmark/data/ tomoe/trunk/benchmark/data/set1/ tomoe/trunk/benchmark/data/set1/19968.xml tomoe/trunk/benchmark/data/set1/19977.xml tomoe/trunk/benchmark/data/set1/20108.xml tomoe/trunk/benchmark/data/set1/20195.xml tomoe/trunk/benchmark/data/set1/20351.xml tomoe/trunk/benchmark/data/set1/20415.xml tomoe/trunk/benchmark/data/set1/20840.xml tomoe/trunk/benchmark/data/set1/21021.xml tomoe/trunk/benchmark/data/set1/21103.xml tomoe/trunk/benchmark/data/set1/21270.xml tomoe/trunk/benchmark/data/set1/21271.xml tomoe/trunk/benchmark/data/set1/21453.xml tomoe/trunk/benchmark/data/set1/22338.xml tomoe/trunk/benchmark/data/set1/22346.xml tomoe/trunk/benchmark/data/set1/22830.xml tomoe/trunk/benchmark/data/set1/22899.xml tomoe/trunk/benchmark/data/set1/22916.xml tomoe/trunk/benchmark/data/set1/22952.xml tomoe/trunk/benchmark/data/set1/22987.xml tomoe/trunk/benchmark/data/set1/23433.xml tomoe/trunk/benchmark/data/set1/24536.xml tomoe/trunk/benchmark/data/set1/24819.xml tomoe/trunk/benchmark/data/set1/24863.xml tomoe/trunk/benchmark/data/set1/25731.xml tomoe/trunk/benchmark/data/set1/26053.xml tomoe/trunk/benchmark/data/set1/26063.xml tomoe/trunk/benchmark/data/set1/26495.xml tomoe/trunk/benchmark/data/set1/26989.xml tomoe/trunk/benchmark/data/set1/27503.xml tomoe/trunk/benchmark/data/set1/27700.xml tomoe/trunk/benchmark/data/set1/27703.xml tomoe/trunk/benchmark/data/set1/27770.xml tomoe/trunk/benchmark/data/set1/27875.xml tomoe/trunk/benchmark/data/set1/28201.xml tomoe/trunk/benchmark/data/set1/28450.xml tomoe/trunk/benchmark/data/set1/29256.xml tomoe/trunk/benchmark/data/set1/30330.xml tomoe/trunk/benchmark/data/set1/31070.xml tomoe/trunk/benchmark/data/set1/31119.xml tomoe/trunk/benchmark/data/set1/32244.xml tomoe/trunk/benchmark/data/set1/32722.xml tomoe/trunk/benchmark/data/set1/32946.xml tomoe/trunk/benchmark/data/set1/35370.xml tomoe/trunk/benchmark/data/set1/35937.xml tomoe/trunk/benchmark/data/set1/36817.xml tomoe/trunk/benchmark/data/set1/37329.xml tomoe/trunk/benchmark/data/set1/37676.xml tomoe/trunk/benchmark/data/set1/38450.xml tomoe/trunk/benchmark/data/set1/38598.xml tomoe/trunk/benchmark/data/set1/39365.xml tomoe/trunk/benchmark/data/set2/ tomoe/trunk/benchmark/data/set2/19968.xml tomoe/trunk/benchmark/data/set2/19977.xml tomoe/trunk/benchmark/data/set2/20108.xml tomoe/trunk/benchmark/data/set2/20195.xml tomoe/trunk/benchmark/data/set2/20351.xml tomoe/trunk/benchmark/data/set2/20415.xml tomoe/trunk/benchmark/data/set2/20840.xml tomoe/trunk/benchmark/data/set2/21021.xml tomoe/trunk/benchmark/data/set2/21103.xml tomoe/trunk/benchmark/data/set2/21270.xml tomoe/trunk/benchmark/data/set2/21271.xml tomoe/trunk/benchmark/data/set2/21453.xml tomoe/trunk/benchmark/data/set2/22338.xml tomoe/trunk/benchmark/data/set2/22346.xml tomoe/trunk/benchmark/data/set2/22830.xml tomoe/trunk/benchmark/data/set2/22899.xml tomoe/trunk/benchmark/data/set2/22916.xml tomoe/trunk/benchmark/data/set2/22952.xml tomoe/trunk/benchmark/data/set2/22987.xml tomoe/trunk/benchmark/data/set2/23433.xml tomoe/trunk/benchmark/data/set2/24536.xml tomoe/trunk/benchmark/data/set2/24819.xml tomoe/trunk/benchmark/data/set2/24863.xml tomoe/trunk/benchmark/data/set2/25731.xml tomoe/trunk/benchmark/data/set2/26053.xml tomoe/trunk/benchmark/data/set2/26063.xml tomoe/trunk/benchmark/data/set2/26495.xml tomoe/trunk/benchmark/data/set2/26989.xml tomoe/trunk/benchmark/data/set2/27503.xml tomoe/trunk/benchmark/data/set2/27700.xml tomoe/trunk/benchmark/data/set2/27703.xml tomoe/trunk/benchmark/data/set2/27770.xml tomoe/trunk/benchmark/data/set2/27875.xml tomoe/trunk/benchmark/data/set2/28201.xml tomoe/trunk/benchmark/data/set2/28450.xml tomoe/trunk/benchmark/data/set2/29256.xml tomoe/trunk/benchmark/data/set2/30330.xml tomoe/trunk/benchmark/data/set2/31070.xml tomoe/trunk/benchmark/data/set2/31119.xml tomoe/trunk/benchmark/data/set2/32244.xml tomoe/trunk/benchmark/data/set2/32722.xml tomoe/trunk/benchmark/data/set2/32946.xml tomoe/trunk/benchmark/data/set2/35370.xml tomoe/trunk/benchmark/data/set2/35937.xml tomoe/trunk/benchmark/data/set2/36817.xml tomoe/trunk/benchmark/data/set2/37329.xml tomoe/trunk/benchmark/data/set2/37676.xml tomoe/trunk/benchmark/data/set2/38450.xml tomoe/trunk/benchmark/data/set2/38598.xml tomoe/trunk/benchmark/data/set2/39365.xml tomoe/trunk/benchmark/evaluation.rb Modified: tomoe/trunk/ChangeLog =================================================================== --- tomoe/trunk/ChangeLog 2008-01-23 13:50:33 UTC (rev 1583) +++ tomoe/trunk/ChangeLog 2008-02-15 10:55:10 UTC (rev 1584) @@ -1,3 +1,12 @@ +2008-02-15 Mathieu Blondel <mbl...@ru...> + + * benchmark/data/set[1|2]/*.xml: 50 kanji written by 2 different + people. This can be used as evaluation data. + + * benchmark/evaluation.rb: The evaluation script, using the Ruby + bindings for tomoe. This evaluation should be used to measure the + accuracy of recognizers. + 2008-01-22 Kouhei Sutou <ko...@co...> * module/dict/tomoe-dict-xml.c, module/dict/tomoe-dict-binary.c: Added: tomoe/trunk/benchmark/data/set1/19968.xml =================================================================== --- tomoe/trunk/benchmark/data/set1/19968.xml (rev 0) +++ tomoe/trunk/benchmark/data/set1/19968.xml 2008-02-15 10:55:10 UTC (rev 1584) @@ -0,0 +1,177 @@ +<?xml version="1.0" encoding="UTF-8"?> + <character> + <utf8>一</utf8> + <strokes> + <stroke> + <point x="156" y="503"/> + <point x="160" y="503"/> + <point x="163" y="503"/> + <point x="166" y="503"/> + <point x="170" y="503"/> + <point x="173" y="503"/> + <point x="176" y="503"/> + <point x="180" y="503"/> + <point x="183" y="503"/> + <point x="186" y="503"/> + <point x="193" y="503"/> + <point x="196" y="503"/> + <point x="200" y="503"/> + <point x="203" y="503"/> + <point x="206" y="503"/> + <point x="210" y="503"/> + <point x="213" y="503"/> + <point x="216" y="503"/> + <point x="220" y="503"/> + <point x="223" y="503"/> + <point x="226" y="503"/> + <point x="230" y="503"/> + <point x="233" y="503"/> + <point x="236" y="503"/> + <point x="240" y="503"/> + <point x="243" y="503"/> + <point x="250" y="503"/> + <point x="253" y="503"/> + <point x="256" y="503"/> + <point x="260" y="503"/> + <point x="263" y="503"/> + <point x="266" y="503"/> + <point x="270" y="503"/> + <point x="273" y="503"/> + <point x="276" y="503"/> + <point x="283" y="503"/> + <point x="290" y="503"/> + <point x="293" y="503"/> + <point x="300" y="503"/> + <point x="303" y="503"/> + <point x="310" y="503"/> + <point x="313" y="503"/> + <point x="320" y="503"/> + <point x="323" y="503"/> + <point x="333" y="503"/> + <point x="340" y="503"/> + <point x="343" y="503"/> + <point x="353" y="503"/> + <point x="366" y="503"/> + <point x="376" y="503"/> + <point x="386" y="503"/> + <point x="393" y="503"/> + <point x="396" y="503"/> + <point x="406" y="503"/> + <point x="416" y="503"/> + <point x="423" y="503"/> + <point x="433" y="503"/> + <point x="443" y="503"/> + <point x="450" y="503"/> + <point x="460" y="503"/> + <point x="470" y="503"/> + <point x="476" y="503"/> + <point x="486" y="503"/> + <point x="486" y="503"/> + <point x="486" y="503"/> + <point x="490" y="503"/> + <point x="490" y="503"/> + <point x="490" y="503"/> + <point x="490" y="503"/> + <point x="490" y="503"/> + <point x="490" y="503"/> + <point x="490" y="503"/> + <point x="490" y="503"/> + <point x="496" y="503"/> + <point x="496" y="503"/> + <point x="496" y="503"/> + <point x="496" y="503"/> + <point x="496" y="503"/> + <point x="500" y="503"/> + <point x="506" y="503"/> + <point x="510" y="503"/> + <point x="516" y="503"/> + <point x="520" y="503"/> + <point x="523" y="503"/> + <point x="530" y="503"/> + <point x="533" y="503"/> + <point x="536" y="503"/> + <point x="540" y="503"/> + <point x="543" y="503"/> + <point x="546" y="503"/> + <point x="550" y="503"/> + <point x="553" y="503"/> + <point x="556" y="503"/> + <point x="560" y="503"/> + <point x="563" y="503"/> + <point x="566" y="503"/> + <point x="570" y="503"/> + <point x="573" y="503"/> + <point x="576" y="503"/> + <point x="580" y="503"/> + <point x="586" y="503"/> + <point x="590" y="503"/> + <point x="593" y="503"/> + <point x="600" y="503"/> + <point x="603" y="503"/> + <point x="606" y="503"/> + <point x="610" y="503"/> + <point x="613" y="503"/> + <point x="616" y="503"/> + <point x="620" y="503"/> + <point x="626" y="503"/> + <point x="633" y="503"/> + <point x="640" y="503"/> + <point x="643" y="503"/> + <point x="643" y="503"/> + <point x="646" y="503"/> + <point x="646" y="503"/> + <point x="650" y="503"/> + <point x="653" y="503"/> + <point x="663" y="503"/> + <point x="670" y="503"/> + <point x="680" y="503"/> + <point x="690" y="503"/> + <point x="693" y="503"/> + <point x="696" y="503"/> + <point x="700" y="503"/> + <point x="700" y="503"/> + <point x="700" y="503"/> + <point x="700" y="503"/> + <point x="703" y="503"/> + <point x="706" y="503"/> + <point x="710" y="503"/> + <point x="713" y="503"/> + <point x="716" y="503"/> + <point x="720" y="503"/> + <point x="723" y="503"/> + <point x="726" y="503"/> + <point x="730" y="503"/> + <point x="733" y="503"/> + <point x="736" y="503"/> + <point x="740" y="503"/> + <point x="743" y="503"/> + <point x="746" y="503"/> + <point x="750" y="503"/> + <point x="750" y="500"/> + <point x="753" y="500"/> + <point x="756" y="500"/> + <point x="760" y="500"/> + <point x="763" y="500"/> + <point x="766" y="500"/> + <point x="770" y="496"/> + <point x="773" y="496"/> + <point x="776" y="496"/> + <point x="780" y="496"/> + <point x="783" y="496"/> + <point x="786" y="496"/> + <point x="790" y="496"/> + <point x="793" y="496"/> + <point x="796" y="496"/> + <point x="800" y="496"/> + <point x="803" y="496"/> + <point x="806" y="496"/> + <point x="810" y="496"/> + <point x="813" y="496"/> + <point x="816" y="496"/> + <point x="820" y="496"/> + <point x="823" y="496"/> + <point x="826" y="496"/> + <point x="830" y="496"/> + </stroke> + </strokes> + </character> Added: tomoe/trunk/benchmark/data/set1/19977.xml =================================================================== --- tomoe/trunk/benchmark/data/set1/19977.xml (rev 0) +++ tomoe/trunk/benchmark/data/set1/19977.xml 2008-02-15 10:55:10 UTC (rev 1584) @@ -0,0 +1,220 @@ +<?xml version="1.0" encoding="UTF-8"?> + <character> + <utf8>三</utf8> + <strokes> + <stroke> + <point x="230" y="296"/> + <point x="233" y="296"/> + <point x="236" y="296"/> + <point x="240" y="296"/> + <point x="243" y="296"/> + <point x="246" y="296"/> + <point x="253" y="296"/> + <point x="256" y="296"/> + <point x="263" y="296"/> + <point x="266" y="296"/> + <point x="276" y="296"/> + <point x="283" y="296"/> + <point x="310" y="296"/> + <point x="316" y="296"/> + <point x="326" y="296"/> + <point x="353" y="296"/> + <point x="360" y="296"/> + <point x="386" y="296"/> + <point x="390" y="296"/> + <point x="400" y="296"/> + <point x="406" y="296"/> + <point x="413" y="296"/> + <point x="423" y="296"/> + <point x="426" y="296"/> + <point x="433" y="296"/> + <point x="436" y="296"/> + <point x="443" y="296"/> + <point x="446" y="296"/> + <point x="456" y="296"/> + <point x="463" y="296"/> + <point x="473" y="296"/> + <point x="483" y="296"/> + <point x="486" y="296"/> + <point x="496" y="296"/> + <point x="503" y="296"/> + <point x="510" y="296"/> + <point x="513" y="296"/> + <point x="523" y="296"/> + <point x="530" y="296"/> + <point x="533" y="296"/> + <point x="540" y="296"/> + <point x="543" y="296"/> + <point x="550" y="296"/> + <point x="553" y="296"/> + <point x="556" y="296"/> + <point x="560" y="296"/> + <point x="563" y="296"/> + <point x="570" y="296"/> + <point x="573" y="296"/> + <point x="580" y="296"/> + <point x="583" y="296"/> + <point x="590" y="296"/> + <point x="593" y="296"/> + <point x="603" y="296"/> + <point x="610" y="296"/> + <point x="616" y="296"/> + <point x="626" y="296"/> + <point x="630" y="296"/> + <point x="636" y="296"/> + <point x="643" y="296"/> + <point x="650" y="296"/> + <point x="653" y="296"/> + <point x="660" y="296"/> + <point x="666" y="296"/> + <point x="670" y="296"/> + <point x="673" y="296"/> + <point x="676" y="296"/> + <point x="680" y="296"/> + <point x="683" y="296"/> + <point x="686" y="296"/> + <point x="690" y="296"/> + <point x="693" y="296"/> + <point x="696" y="296"/> + <point x="700" y="296"/> + <point x="703" y="296"/> + <point x="706" y="296"/> + <point x="710" y="296"/> + <point x="713" y="296"/> + <point x="716" y="296"/> + <point x="720" y="296"/> + <point x="723" y="296"/> + <point x="726" y="296"/> + </stroke> + <stroke> + <point x="313" y="503"/> + <point x="316" y="503"/> + <point x="320" y="503"/> + <point x="323" y="503"/> + <point x="326" y="503"/> + <point x="330" y="503"/> + <point x="333" y="503"/> + <point x="343" y="503"/> + <point x="350" y="503"/> + <point x="360" y="503"/> + <point x="386" y="510"/> + <point x="390" y="510"/> + <point x="416" y="510"/> + <point x="423" y="510"/> + <point x="433" y="510"/> + <point x="440" y="510"/> + <point x="446" y="510"/> + <point x="450" y="510"/> + <point x="456" y="510"/> + <point x="463" y="510"/> + <point x="466" y="510"/> + <point x="470" y="510"/> + <point x="473" y="510"/> + <point x="476" y="506"/> + <point x="480" y="506"/> + <point x="483" y="506"/> + <point x="490" y="506"/> + <point x="493" y="506"/> + <point x="493" y="503"/> + <point x="496" y="503"/> + <point x="500" y="503"/> + <point x="503" y="503"/> + <point x="506" y="503"/> + <point x="510" y="503"/> + <point x="513" y="503"/> + <point x="516" y="503"/> + <point x="520" y="503"/> + <point x="530" y="503"/> + <point x="536" y="503"/> + <point x="543" y="503"/> + <point x="550" y="503"/> + <point x="553" y="503"/> + <point x="556" y="503"/> + <point x="560" y="503"/> + <point x="560" y="503"/> + <point x="563" y="503"/> + <point x="570" y="503"/> + <point x="573" y="503"/> + <point x="576" y="503"/> + <point x="576" y="503"/> + <point x="576" y="503"/> + <point x="576" y="503"/> + <point x="580" y="503"/> + <point x="583" y="503"/> + <point x="586" y="503"/> + <point x="590" y="503"/> + <point x="593" y="503"/> + <point x="596" y="503"/> + </stroke> + <stroke> + <point x="136" y="760"/> + <point x="140" y="760"/> + <point x="143" y="760"/> + <point x="146" y="760"/> + <point x="150" y="760"/> + <point x="153" y="760"/> + <point x="160" y="760"/> + <point x="166" y="756"/> + <point x="173" y="756"/> + <point x="200" y="756"/> + <point x="206" y="753"/> + <point x="246" y="753"/> + <point x="280" y="753"/> + <point x="290" y="753"/> + <point x="316" y="746"/> + <point x="323" y="746"/> + <point x="363" y="746"/> + <point x="366" y="746"/> + <point x="400" y="746"/> + <point x="426" y="746"/> + <point x="433" y="746"/> + <point x="443" y="746"/> + <point x="450" y="746"/> + <point x="456" y="746"/> + <point x="460" y="746"/> + <point x="466" y="746"/> + <point x="473" y="746"/> + <point x="476" y="746"/> + <point x="486" y="746"/> + <point x="490" y="746"/> + <point x="496" y="746"/> + <point x="503" y="750"/> + <point x="513" y="750"/> + <point x="520" y="750"/> + <point x="530" y="750"/> + <point x="550" y="756"/> + <point x="556" y="756"/> + <point x="566" y="756"/> + <point x="573" y="756"/> + <point x="583" y="756"/> + <point x="590" y="756"/> + <point x="600" y="756"/> + <point x="603" y="756"/> + <point x="630" y="756"/> + <point x="636" y="756"/> + <point x="643" y="756"/> + <point x="653" y="756"/> + <point x="660" y="756"/> + <point x="680" y="763"/> + <point x="683" y="763"/> + <point x="693" y="763"/> + <point x="713" y="770"/> + <point x="716" y="770"/> + <point x="723" y="770"/> + <point x="726" y="773"/> + <point x="736" y="773"/> + <point x="740" y="773"/> + <point x="760" y="780"/> + <point x="763" y="780"/> + <point x="766" y="780"/> + <point x="786" y="786"/> + <point x="790" y="786"/> + <point x="793" y="786"/> + <point x="796" y="786"/> + <point x="800" y="786"/> + <point x="803" y="786"/> + <point x="806" y="790"/> + <point x="810" y="790"/> + </stroke> + </strokes> + </character> Added: tomoe/trunk/benchmark/data/set1/20108.xml =================================================================== --- tomoe/trunk/benchmark/data/set1/20108.xml (rev 0) +++ tomoe/trunk/benchmark/data/set1/20108.xml 2008-02-15 10:55:10 UTC (rev 1584) @@ -0,0 +1,163 @@ +<?xml version="1.0" encoding="UTF-8"?> + <character> + <utf8>二</utf8> + <strokes> + <stroke> + <point x="273" y="356"/> + <point x="276" y="356"/> + <point x="280" y="356"/> + <point x="283" y="356"/> + <point x="286" y="356"/> + <point x="293" y="356"/> + <point x="296" y="356"/> + <point x="306" y="356"/> + <point x="313" y="356"/> + <point x="340" y="356"/> + <point x="366" y="356"/> + <point x="373" y="356"/> + <point x="400" y="356"/> + <point x="410" y="356"/> + <point x="420" y="356"/> + <point x="426" y="356"/> + <point x="453" y="356"/> + <point x="463" y="356"/> + <point x="470" y="356"/> + <point x="480" y="356"/> + <point x="483" y="356"/> + <point x="493" y="356"/> + <point x="496" y="356"/> + <point x="503" y="356"/> + <point x="506" y="356"/> + <point x="516" y="356"/> + <point x="523" y="356"/> + <point x="526" y="356"/> + <point x="530" y="356"/> + <point x="536" y="356"/> + <point x="540" y="356"/> + <point x="543" y="356"/> + <point x="550" y="356"/> + <point x="553" y="356"/> + <point x="560" y="356"/> + <point x="566" y="356"/> + <point x="570" y="356"/> + <point x="573" y="356"/> + <point x="576" y="356"/> + <point x="583" y="356"/> + <point x="586" y="356"/> + <point x="590" y="356"/> + <point x="593" y="356"/> + <point x="596" y="356"/> + <point x="603" y="356"/> + <point x="606" y="356"/> + <point x="610" y="356"/> + <point x="613" y="356"/> + <point x="616" y="356"/> + <point x="620" y="356"/> + <point x="623" y="356"/> + <point x="626" y="356"/> + <point x="630" y="356"/> + <point x="633" y="356"/> + <point x="636" y="353"/> + <point x="643" y="353"/> + <point x="646" y="353"/> + <point x="650" y="353"/> + <point x="653" y="350"/> + <point x="656" y="350"/> + </stroke> + <stroke> + <point x="133" y="666"/> + <point x="136" y="666"/> + <point x="140" y="666"/> + <point x="143" y="666"/> + <point x="146" y="666"/> + <point x="153" y="663"/> + <point x="156" y="663"/> + <point x="166" y="663"/> + <point x="186" y="656"/> + <point x="196" y="656"/> + <point x="206" y="656"/> + <point x="240" y="656"/> + <point x="250" y="656"/> + <point x="276" y="656"/> + <point x="310" y="656"/> + <point x="313" y="656"/> + <point x="346" y="656"/> + <point x="350" y="656"/> + <point x="376" y="656"/> + <point x="380" y="656"/> + <point x="390" y="656"/> + <point x="393" y="656"/> + <point x="403" y="656"/> + <point x="413" y="656"/> + <point x="416" y="656"/> + <point x="426" y="656"/> + <point x="430" y="656"/> + <point x="440" y="656"/> + <point x="443" y="656"/> + <point x="453" y="656"/> + <point x="463" y="656"/> + <point x="470" y="656"/> + <point x="476" y="656"/> + <point x="483" y="656"/> + <point x="493" y="656"/> + <point x="500" y="656"/> + <point x="510" y="656"/> + <point x="513" y="656"/> + <point x="523" y="656"/> + <point x="530" y="656"/> + <point x="533" y="656"/> + <point x="540" y="656"/> + <point x="546" y="656"/> + <point x="553" y="656"/> + <point x="556" y="656"/> + <point x="566" y="656"/> + <point x="570" y="656"/> + <point x="580" y="656"/> + <point x="590" y="656"/> + <point x="593" y="656"/> + <point x="603" y="656"/> + <point x="606" y="656"/> + <point x="616" y="656"/> + <point x="620" y="656"/> + <point x="630" y="656"/> + <point x="636" y="656"/> + <point x="640" y="656"/> + <point x="646" y="656"/> + <point x="650" y="656"/> + <point x="656" y="656"/> + <point x="660" y="656"/> + <point x="666" y="656"/> + <point x="670" y="656"/> + <point x="676" y="653"/> + <point x="683" y="653"/> + <point x="686" y="653"/> + <point x="693" y="653"/> + <point x="696" y="653"/> + <point x="703" y="653"/> + <point x="706" y="653"/> + <point x="716" y="653"/> + <point x="723" y="653"/> + <point x="726" y="653"/> + <point x="733" y="653"/> + <point x="736" y="653"/> + <point x="743" y="650"/> + <point x="746" y="650"/> + <point x="753" y="650"/> + <point x="756" y="650"/> + <point x="760" y="646"/> + <point x="763" y="646"/> + <point x="766" y="646"/> + <point x="770" y="646"/> + <point x="773" y="646"/> + <point x="776" y="646"/> + <point x="780" y="646"/> + <point x="783" y="646"/> + <point x="786" y="646"/> + <point x="790" y="646"/> + <point x="793" y="646"/> + <point x="796" y="646"/> + <point x="796" y="643"/> + <point x="800" y="643"/> + </stroke> + </strokes> + </character> Added: tomoe/trunk/benchmark/data/set1/20195.xml =================================================================== --- tomoe/trunk/benchmark/data/set1/20195.xml (rev 0) +++ tomoe/trunk/benchmark/data/set1/20195.xml 2008-02-15 10:55:10 UTC (rev 1584) @@ -0,0 +1,164 @@ +<?xml version="1.0" encoding="UTF-8"?> + <character> + <utf8>代</utf8> + <strokes> + <stroke> + <point x="315" y="220"/> + <point x="312" y="226"/> + <point x="309" y="233"/> + <point x="305" y="240"/> + <point x="305" y="243"/> + <point x="299" y="246"/> + <point x="299" y="250"/> + <point x="292" y="270"/> + <point x="289" y="273"/> + <point x="282" y="293"/> + <point x="276" y="313"/> + <point x="273" y="316"/> + <point x="253" y="336"/> + <point x="249" y="340"/> + <point x="236" y="360"/> + <point x="233" y="363"/> + <point x="220" y="383"/> + <point x="213" y="386"/> + <point x="210" y="390"/> + <point x="197" y="403"/> + <point x="194" y="403"/> + <point x="180" y="416"/> + <point x="177" y="416"/> + <point x="164" y="430"/> + <point x="161" y="430"/> + <point x="157" y="433"/> + <point x="154" y="433"/> + </stroke> + <stroke> + <point x="256" y="340"/> + <point x="256" y="346"/> + <point x="256" y="350"/> + <point x="256" y="376"/> + <point x="256" y="380"/> + <point x="256" y="406"/> + <point x="256" y="433"/> + <point x="256" y="440"/> + <point x="256" y="466"/> + <point x="256" y="473"/> + <point x="256" y="506"/> + <point x="256" y="516"/> + <point x="256" y="556"/> + <point x="256" y="563"/> + <point x="256" y="603"/> + <point x="256" y="636"/> + <point x="256" y="643"/> + <point x="256" y="676"/> + <point x="256" y="680"/> + <point x="256" y="713"/> + <point x="256" y="720"/> + <point x="256" y="746"/> + <point x="256" y="756"/> + <point x="256" y="763"/> + <point x="256" y="770"/> + <point x="253" y="773"/> + <point x="253" y="780"/> + <point x="253" y="783"/> + <point x="253" y="786"/> + <point x="249" y="786"/> + <point x="249" y="790"/> + <point x="253" y="786"/> + <point x="253" y="783"/> + <point x="256" y="780"/> + <point x="259" y="776"/> + </stroke> + <stroke> + <point x="394" y="396"/> + <point x="398" y="396"/> + <point x="404" y="396"/> + <point x="411" y="396"/> + <point x="437" y="396"/> + <point x="470" y="396"/> + <point x="480" y="396"/> + <point x="559" y="396"/> + <point x="624" y="390"/> + <point x="677" y="390"/> + <point x="720" y="390"/> + <point x="733" y="386"/> + <point x="733" y="386"/> + <point x="733" y="386"/> + <point x="733" y="386"/> + </stroke> + <stroke> + <point x="490" y="150"/> + <point x="493" y="153"/> + <point x="499" y="173"/> + <point x="506" y="200"/> + <point x="509" y="203"/> + <point x="516" y="230"/> + <point x="523" y="250"/> + <point x="536" y="276"/> + <point x="536" y="283"/> + <point x="549" y="310"/> + <point x="562" y="336"/> + <point x="562" y="343"/> + <point x="575" y="376"/> + <point x="575" y="383"/> + <point x="582" y="410"/> + <point x="582" y="420"/> + <point x="588" y="453"/> + <point x="595" y="473"/> + <point x="608" y="506"/> + <point x="621" y="540"/> + <point x="621" y="546"/> + <point x="634" y="573"/> + <point x="634" y="580"/> + <point x="648" y="606"/> + <point x="651" y="613"/> + <point x="657" y="633"/> + <point x="671" y="660"/> + <point x="671" y="663"/> + <point x="684" y="690"/> + <point x="684" y="693"/> + <point x="690" y="713"/> + <point x="694" y="716"/> + <point x="707" y="736"/> + <point x="710" y="743"/> + <point x="710" y="746"/> + <point x="717" y="766"/> + <point x="717" y="770"/> + <point x="720" y="773"/> + <point x="723" y="776"/> + <point x="726" y="783"/> + <point x="730" y="783"/> + <point x="733" y="783"/> + <point x="733" y="780"/> + <point x="746" y="766"/> + <point x="749" y="763"/> + <point x="763" y="743"/> + <point x="766" y="736"/> + <point x="773" y="710"/> + <point x="786" y="690"/> + <point x="789" y="683"/> + <point x="796" y="663"/> + <point x="796" y="660"/> + <point x="796" y="653"/> + <point x="799" y="653"/> + <point x="799" y="656"/> + </stroke> + <stroke> + <point x="694" y="213"/> + <point x="694" y="216"/> + <point x="694" y="220"/> + <point x="697" y="223"/> + <point x="700" y="226"/> + <point x="700" y="230"/> + <point x="707" y="233"/> + <point x="713" y="253"/> + <point x="717" y="256"/> + <point x="730" y="270"/> + <point x="730" y="273"/> + <point x="733" y="276"/> + <point x="736" y="280"/> + <point x="740" y="286"/> + <point x="743" y="286"/> + <point x="743" y="290"/> + </stroke> + </strokes> + </character> Added: tomoe/trunk/benchmark/data/set1/20351.xml =================================================================== --- tomoe/trunk/benchmark/data/set1/20351.xml (rev 0) +++ tomoe/trunk/benchmark/data/set1/20351.xml 2008-02-15 10:55:10 UTC (rev 1584) @@ -0,0 +1,724 @@ +<?xml version="1.0" encoding="UTF-8"?> + <character> + <utf8>使</utf8> + <strokes> + <stroke> + <point x="310" y="250"/> + <point x="310" y="253"/> + <point x="310" y="256"/> + <point x="306" y="263"/> + <point x="303" y="263"/> + <point x="303" y="266"/> + <point x="300" y="270"/> + <point x="300" y="273"/> + <point x="300" y="276"/> + <point x="296" y="276"/> + <point x="296" y="280"/> + <point x="293" y="280"/> + <point x="293" y="283"/> + <point x="293" y="286"/> + <point x="290" y="286"/> + <point x="290" y="290"/> + <point x="286" y="293"/> + <point x="283" y="296"/> + <point x="283" y="300"/> + <point x="280" y="303"/> + <point x="276" y="306"/> + <point x="273" y="313"/> + <point x="270" y="316"/> + <point x="270" y="320"/> + <point x="270" y="323"/> + <point x="263" y="326"/> + <point x="260" y="333"/> + <point x="256" y="333"/> + <point x="256" y="340"/> + <point x="256" y="343"/> + <point x="253" y="346"/> + <point x="253" y="350"/> + <point x="250" y="353"/> + <point x="250" y="356"/> + <point x="246" y="360"/> + <point x="246" y="363"/> + <point x="243" y="366"/> + <point x="240" y="370"/> + <point x="240" y="373"/> + <point x="236" y="376"/> + <point x="233" y="380"/> + <point x="230" y="386"/> + <point x="226" y="390"/> + <point x="223" y="393"/> + <point x="220" y="396"/> + <point x="216" y="400"/> + <point x="213" y="403"/> + <point x="213" y="406"/> + <point x="210" y="410"/> + <point x="206" y="410"/> + <point x="203" y="413"/> + <point x="200" y="416"/> + <point x="200" y="420"/> + <point x="196" y="423"/> + <point x="196" y="430"/> + <point x="193" y="430"/> + <point x="193" y="433"/> + <point x="186" y="436"/> + <point x="183" y="443"/> + <point x="180" y="446"/> + <point x="176" y="450"/> + <point x="173" y="450"/> + <point x="170" y="453"/> + <point x="166" y="456"/> + <point x="163" y="456"/> + <point x="163" y="460"/> + <point x="156" y="463"/> + <point x="153" y="463"/> + <point x="153" y="466"/> + <point x="150" y="466"/> + <point x="150" y="470"/> + <point x="143" y="473"/> + <point x="140" y="473"/> + <point x="140" y="476"/> + <point x="136" y="476"/> + <point x="136" y="480"/> + <point x="133" y="480"/> + <point x="130" y="483"/> + <point x="126" y="483"/> + <point x="126" y="486"/> + <point x="123" y="486"/> + <point x="120" y="490"/> + <point x="116" y="490"/> + <point x="113" y="490"/> + <point x="113" y="493"/> + <point x="110" y="493"/> + <point x="106" y="493"/> + <point x="106" y="496"/> + <point x="103" y="496"/> + </stroke> + <stroke> + <point x="216" y="406"/> + <point x="216" y="410"/> + <point x="216" y="413"/> + <point x="216" y="416"/> + <point x="220" y="423"/> + <point x="220" y="440"/> + <point x="226" y="470"/> + <point x="226" y="473"/> + <point x="226" y="483"/> + <point x="226" y="483"/> + <point x="226" y="483"/> + <point x="226" y="493"/> + <point x="226" y="500"/> + <point x="233" y="520"/> + <point x="233" y="526"/> + <point x="240" y="546"/> + <point x="240" y="553"/> + <point x="240" y="563"/> + <point x="243" y="566"/> + <point x="250" y="586"/> + <point x="250" y="596"/> + <point x="250" y="603"/> + <point x="256" y="623"/> + <point x="256" y="626"/> + <point x="256" y="636"/> + <point x="256" y="640"/> + <point x="256" y="666"/> + <point x="256" y="676"/> + <point x="256" y="680"/> + <point x="256" y="690"/> + <point x="256" y="696"/> + <point x="256" y="703"/> + <point x="256" y="710"/> + <point x="256" y="720"/> + <point x="256" y="723"/> + <point x="256" y="730"/> + <point x="256" y="736"/> + <point x="256" y="740"/> + <point x="256" y="746"/> + <point x="256" y="750"/> + <point x="256" y="760"/> + <point x="256" y="763"/> + <point x="256" y="770"/> + <point x="256" y="780"/> + <point x="256" y="783"/> + <point x="256" y="793"/> + <point x="256" y="796"/> + <point x="256" y="816"/> + <point x="250" y="843"/> + <point x="250" y="846"/> + <point x="250" y="850"/> + <point x="250" y="856"/> + <point x="250" y="863"/> + <point x="250" y="870"/> + <point x="250" y="873"/> + <point x="250" y="876"/> + <point x="250" y="876"/> + <point x="250" y="876"/> + <point x="250" y="876"/> + <point x="253" y="876"/> + <point x="253" y="873"/> + <point x="256" y="870"/> + <point x="260" y="863"/> + <point x="260" y="860"/> + <point x="266" y="833"/> + </stroke> + <stroke> + <point x="393" y="316"/> + <point x="396" y="316"/> + <point x="400" y="320"/> + <point x="403" y="320"/> + <point x="410" y="320"/> + <point x="413" y="320"/> + <point x="423" y="320"/> + <point x="426" y="320"/> + <point x="436" y="320"/> + <point x="443" y="320"/> + <point x="453" y="320"/> + <point x="480" y="320"/> + <point x="486" y="320"/> + <point x="513" y="320"/> + <point x="520" y="320"/> + <point x="530" y="320"/> + <point x="536" y="320"/> + <point x="563" y="320"/> + <point x="573" y="320"/> + <point x="580" y="320"/> + <point x="590" y="320"/> + <point x="596" y="320"/> + <point x="606" y="320"/> + <point x="610" y="320"/> + <point x="620" y="320"/> + <point x="623" y="320"/> + <point x="633" y="320"/> + <point x="640" y="320"/> + <point x="643" y="323"/> + <point x="650" y="323"/> + <point x="656" y="323"/> + <point x="663" y="323"/> + <point x="666" y="323"/> + <point x="676" y="323"/> + <point x="683" y="323"/> + <point x="686" y="323"/> + <point x="696" y="323"/> + <point x="700" y="323"/> + <point x="706" y="323"/> + <point x="710" y="323"/> + <point x="716" y="323"/> + <point x="720" y="323"/> + <point x="726" y="323"/> + <point x="730" y="323"/> + <point x="733" y="323"/> + <point x="736" y="323"/> + <point x="740" y="323"/> + <point x="743" y="323"/> + <point x="746" y="323"/> + <point x="746" y="320"/> + <point x="750" y="320"/> + <point x="753" y="320"/> + <point x="756" y="320"/> + </stroke> + <stroke> + <point x="373" y="406"/> + <point x="373" y="410"/> + <point x="373" y="413"/> + <point x="373" y="416"/> + <point x="376" y="423"/> + <point x="376" y="430"/> + <point x="376" y="433"/> + <point x="380" y="436"/> + <point x="380" y="443"/> + <point x="380" y="450"/> + <point x="383" y="456"/> + <point x="383" y="460"/> + <point x="383" y="470"/> + <point x="383" y="476"/> + <point x="386" y="480"/> + <point x="386" y="486"/> + <point x="386" y="490"/> + <point x="386" y="496"/> + <point x="386" y="500"/> + <point x="386" y="503"/> + <point x="386" y="506"/> + <point x="386" y="510"/> + <point x="390" y="520"/> + <point x="390" y="526"/> + <point x="390" y="533"/> + <point x="390" y="536"/> + <point x="390" y="540"/> + <point x="393" y="540"/> + <point x="393" y="540"/> + <point x="393" y="543"/> + <point x="393" y="546"/> + <point x="393" y="546"/> + <point x="396" y="546"/> + <point x="396" y="543"/> + <point x="396" y="540"/> + <point x="396" y="536"/> + </stroke> + <stroke> + <point x="373" y="413"/> + <point x="376" y="413"/> + <point x="380" y="413"/> + <point x="383" y="413"/> + <point x="390" y="413"/> + <point x="400" y="413"/> + <point x="406" y="413"/> + <point x="416" y="413"/> + <point x="423" y="413"/> + <point x="450" y="413"/> + <point x="453" y="413"/> + <point x="480" y="413"/> + <point x="490" y="413"/> + <point x="496" y="416"/> + <point x="516" y="423"/> + <point x="526" y="423"/> + <point x="533" y="423"/> + <point x="540" y="426"/> + <point x="546" y="426"/> + <point x="550" y="426"/> + <point x="553" y="426"/> + <point x="556" y="426"/> + <point x="560" y="426"/> + <point x="566" y="426"/> + <point x="570" y="426"/> + <point x="576" y="426"/> + <point x="580" y="426"/> + <point x="583" y="426"/> + <point x="593" y="426"/> + <point x="596" y="426"/> + <point x="600" y="426"/> + <point x="603" y="426"/> + <point x="613" y="426"/> + <point x="616" y="426"/> + <point x="620" y="426"/> + <point x="623" y="426"/> + <point x="633" y="426"/> + <point x="636" y="426"/> + <point x="640" y="426"/> + <point x="646" y="426"/> + <point x="650" y="426"/> + <point x="656" y="426"/> + <point x="660" y="426"/> + <point x="666" y="426"/> + <point x="676" y="426"/> + <point x="680" y="426"/> + <point x="686" y="426"/> + <point x="690" y="426"/> + <point x="696" y="426"/> + <point x="703" y="426"/> + <point x="710" y="426"/> + <point x="713" y="426"/> + <point x="720" y="430"/> + <point x="726" y="430"/> + <point x="730" y="430"/> + <point x="733" y="430"/> + <point x="736" y="430"/> + <point x="740" y="430"/> + <point x="743" y="430"/> + <point x="750" y="430"/> + <point x="753" y="430"/> + <point x="756" y="430"/> + <point x="790" y="430"/> + <point x="793" y="430"/> + <point x="796" y="430"/> + <point x="796" y="433"/> + <point x="796" y="436"/> + <point x="796" y="440"/> + <point x="796" y="443"/> + <point x="796" y="446"/> + <point x="793" y="450"/> + <point x="793" y="453"/> + <point x="793" y="456"/> + <point x="790" y="456"/> + <point x="790" y="463"/> + <point x="786" y="466"/> + <point x="786" y="470"/> + <point x="783" y="473"/> + <point x="783" y="476"/> + <point x="783" y="480"/> + <point x="780" y="483"/> + <point x="780" y="486"/> + <point x="780" y="490"/> + <point x="776" y="493"/> + <point x="776" y="496"/> + <point x="776" y="500"/> + <point x="773" y="500"/> + <point x="773" y="503"/> + <point x="770" y="503"/> + <point x="770" y="506"/> + <point x="770" y="510"/> + <point x="766" y="510"/> + <point x="766" y="513"/> + <point x="763" y="513"/> + <point x="763" y="516"/> + <point x="763" y="520"/> + <point x="760" y="520"/> + <point x="760" y="523"/> + <point x="760" y="526"/> + <point x="760" y="530"/> + <point x="756" y="533"/> + <point x="756" y="536"/> + <point x="756" y="540"/> + <point x="753" y="540"/> + <point x="753" y="543"/> + <point x="753" y="540"/> + </stroke> + <stroke> + <point x="380" y="536"/> + <point x="383" y="536"/> + <point x="386" y="536"/> + <point x="390" y="536"/> + <point x="396" y="536"/> + <point x="406" y="536"/> + <point x="413" y="536"/> + <point x="423" y="536"/> + <point x="433" y="536"/> + <point x="456" y="530"/> + <point x="460" y="530"/> + <point x="470" y="530"/> + <point x="483" y="526"/> + <point x="493" y="523"/> + <point x="503" y="520"/> + <point x="510" y="520"/> + <point x="523" y="520"/> + <point x="533" y="516"/> + <point x="540" y="516"/> + <point x="543" y="516"/> + <point x="543" y="516"/> + <point x="546" y="516"/> + <point x="546" y="516"/> + <point x="546" y="516"/> + <point x="546" y="516"/> + <point x="546" y="516"/> + <point x="553" y="516"/> + <point x="553" y="516"/> + <point x="553" y="516"/> + <point x="553" y="516"/> + <point x="553" y="516"/> + <point x="553" y="516"/> + <point x="560" y="516"/> + <point x="560" y="516"/> + <point x="560" y="516"/> + <point x="560" y="516"/> + <point x="560" y="516"/> + <point x="563" y="516"/> + <point x="566" y="516"/> + <point x="570" y="516"/> + <point x="576" y="516"/> + <point x="580" y="516"/> + <point x="583" y="516"/> + <point x="586" y="516"/> + <point x="590" y="516"/> + <point x="593" y="516"/> + <point x="596" y="516"/> + <point x="603" y="516"/> + <point x="606" y="516"/> + <point x="610" y="516"/> + <point x="613" y="516"/> + <point x="616" y="516"/> + <point x="620" y="516"/> + <point x="623" y="516"/> + <point x="626" y="516"/> + <point x="630" y="516"/> + <point x="633" y="520"/> + <point x="636" y="520"/> + <point x="640" y="520"/> + <point x="643" y="520"/> + <point x="646" y="523"/> + <point x="650" y="523"/> + <point x="653" y="523"/> + <point x="656" y="526"/> + <point x="663" y="530"/> + <point x="670" y="530"/> + <point x="670" y="530"/> + <point x="673" y="530"/> + <point x="676" y="533"/> + <point x="683" y="536"/> + <point x="686" y="540"/> + <point x="690" y="540"/> + <point x="693" y="543"/> + <point x="696" y="543"/> + <point x="700" y="543"/> + <point x="703" y="543"/> + <point x="706" y="543"/> + <point x="710" y="546"/> + <point x="713" y="546"/> + <point x="716" y="546"/> + <point x="720" y="546"/> + <point x="723" y="546"/> + <point x="726" y="550"/> + <point x="730" y="550"/> + <point x="733" y="550"/> + <point x="736" y="550"/> + <point x="740" y="550"/> + <point x="743" y="550"/> + <point x="746" y="550"/> + <point x="750" y="550"/> + <point x="753" y="550"/> + <point x="756" y="550"/> + </stroke> + <stroke> + <point x="543" y="206"/> + <point x="543" y="210"/> + <point x="543" y="213"/> + <point x="543" y="216"/> + <point x="543" y="220"/> + <point x="543" y="223"/> + <point x="543" y="226"/> + <point x="543" y="230"/> + <point x="543" y="236"/> + <point x="543" y="246"/> + <point x="543" y="250"/> + <point x="543" y="260"/> + <point x="543" y="263"/> + <point x="543" y="273"/> + <point x="543" y="276"/> + <point x="543" y="283"/> + <point x="543" y="290"/> + <point x="543" y="293"/> + <point x="543" y="300"/> + <point x="543" y="303"/> + <point x="543" y="306"/> + <point x="543" y="310"/> + <point x="543" y="313"/> + <point x="543" y="316"/> + <point x="543" y="320"/> + <point x="543" y="323"/> + <point x="543" y="326"/> + <point x="543" y="330"/> + <point x="543" y="333"/> + <point x="543" y="336"/> + <point x="543" y="340"/> + <point x="543" y="343"/> + <point x="543" y="350"/> + <point x="543" y="353"/> + <point x="543" y="356"/> + <point x="543" y="360"/> + <point x="543" y="363"/> + <point x="543" y="366"/> + <point x="543" y="370"/> + <point x="543" y="373"/> + <point x="543" y="376"/> + <point x="543" y="380"/> + <point x="543" y="383"/> + <point x="543" y="386"/> + <point x="543" y="390"/> + <point x="543" y="396"/> + <point x="543" y="400"/> + <point x="543" y="406"/> + <point x="543" y="410"/> + <point x="543" y="413"/> + <point x="543" y="423"/> + <point x="543" y="426"/> + <point x="543" y="433"/> + <point x="543" y="436"/> + <point x="543" y="443"/> + <point x="543" y="446"/> + <point x="543" y="453"/> + <point x="543" y="456"/> + <point x="543" y="460"/> + <point x="543" y="470"/> + <point x="543" y="473"/> + <point x="543" y="480"/> + <point x="543" y="483"/> + <point x="543" y="490"/> + <point x="543" y="493"/> + <point x="543" y="496"/> + <point x="543" y="503"/> + <point x="543" y="506"/> + <point x="543" y="510"/> + <point x="543" y="513"/> + <point x="543" y="516"/> + <point x="543" y="520"/> + <point x="543" y="523"/> + <point x="543" y="526"/> + <point x="543" y="530"/> + <point x="543" y="536"/> + <point x="543" y="540"/> + <point x="540" y="546"/> + <point x="540" y="550"/> + <point x="540" y="556"/> + <point x="536" y="560"/> + <point x="536" y="563"/> + <point x="536" y="570"/> + <point x="533" y="570"/> + <point x="533" y="576"/> + <point x="530" y="580"/> + <point x="530" y="583"/> + <point x="530" y="586"/> + <point x="526" y="593"/> + <point x="526" y="596"/> + <point x="523" y="600"/> + <point x="523" y="606"/> + <point x="520" y="610"/> + <point x="520" y="613"/> + <point x="520" y="616"/> + <point x="516" y="623"/> + <point x="516" y="626"/> + <point x="513" y="633"/> + <point x="510" y="640"/> + <point x="510" y="643"/> + <point x="510" y="650"/> + <point x="510" y="653"/> + <point x="506" y="660"/> + <point x="506" y="663"/> + <point x="503" y="666"/> + <point x="503" y="670"/> + <point x="500" y="673"/> + <point x="500" y="680"/> + <point x="496" y="683"/> + <point x="496" y="690"/> + <point x="493" y="690"/> + <point x="490" y="696"/> + <point x="490" y="700"/> + <point x="486" y="703"/> + <point x="483" y="706"/> + <point x="483" y="710"/> + <point x="480" y="713"/> + <point x="476" y="713"/> + <point x="473" y="720"/> + <point x="473" y="723"/> + <point x="470" y="726"/> + <point x="470" y="730"/> + <point x="466" y="733"/> + <point x="463" y="736"/> + <point x="460" y="736"/> + <point x="456" y="740"/> + <point x="453" y="740"/> + <point x="450" y="743"/> + <point x="450" y="746"/> + <point x="443" y="750"/> + <point x="440" y="753"/> + <point x="436" y="753"/> + <point x="430" y="756"/> + <point x="430" y="760"/> + <point x="426" y="763"/> + <point x="423" y="766"/> + <point x="420" y="766"/> + <point x="416" y="770"/> + <point x="413" y="770"/> + <point x="413" y="773"/> + <point x="410" y="773"/> + <point x="410" y="776"/> + <point x="406" y="776"/> + <point x="403" y="780"/> + <point x="400" y="780"/> + <point x="396" y="783"/> + <point x="393" y="783"/> + <point x="393" y="786"/> + <point x="390" y="786"/> + <point x="390" y="790"/> + <point x="386" y="790"/> + <point x="383" y="790"/> + <point x="383" y="793"/> + <point x="380" y="793"/> + <point x="376" y="793"/> + <point x="373" y="793"/> + </stroke> + <stroke> + <point x="380" y="610"/> + <point x="380" y="613"/> + <point x="380" y="616"/> + <point x="383" y="620"/> + <point x="386" y="623"/> + <point x="386" y="626"/> + <point x="390" y="630"/> + <point x="393" y="633"/> + <point x="396" y="636"/> + <point x="400" y="640"/> + <point x="403" y="643"/> + <point x="416" y="656"/> + <point x="420" y="656"/> + <point x="433" y="670"/> + <point x="440" y="673"/> + <point x="443" y="676"/> + <point x="450" y="680"/> + <point x="453" y="683"/> + <point x="456" y="686"/> + <point x="460" y="690"/> + <point x="463" y="690"/> + <point x="466" y="693"/> + <point x="470" y="693"/> + <point x="483" y="706"/> + <point x="486" y="706"/> + <point x="490" y="710"/> + <point x="493" y="710"/> + <point x="496" y="713"/> + <point x="500" y="716"/> + <point x="506" y="720"/> + <point x="510" y="723"/> + <point x="516" y="726"/> + <point x="520" y="730"/> + <point x="523" y="733"/> + <point x="533" y="740"/> + <point x="543" y="743"/> + <point x="550" y="750"/> + <point x="556" y="753"/> + <point x="566" y="756"/> + <point x="573" y="760"/> + <point x="576" y="763"/> + <point x="576" y="763"/> + <point x="576" y="763"/> + <point x="576" y="763"/> + <point x="580" y="763"/> + <point x="580" y="763"/> + <point x="580" y="763"/> + <point x="580" y="763"/> + <point x="580" y="763"/> + <point x="580" y="763"/> + <point x="586" y="766"/> + <point x="586" y="766"/> + <point x="590" y="766"/> + <point x="593" y="770"/> + <point x="600" y="770"/> + <point x="603" y="773"/> + <point x="610" y="776"/> + <point x="613" y="776"/> + <point x="620" y="780"/> + <point x="626" y="783"/> + <point x="630" y="783"/> + <point x="636" y="786"/> + <point x="640" y="786"/> + <point x="643" y="790"/> + <point x="646" y="790"/> + <point x="650" y="790"/> + <point x="653" y="793"/> + <point x="660" y="796"/> + <point x="663" y="796"/> + <point x="666" y="796"/> + <point x="673" y="800"/> + <point x="676" y="803"/> + <point x="683" y="803"/> + <point x="686" y="803"/> + <point x="693" y="806"/> + <point x="696" y="810"/> + <point x="700" y="810"/> + <point x="703" y="810"/> + <point x="706" y="810"/> + <point x="713" y="810"/> + <point x="716" y="810"/> + <point x="720" y="810"/> + <point x="723" y="813"/> + <point x="726" y="813"/> + <point x="733" y="813"/> + <point x="736" y="813"/> + <point x="740" y="816"/> + <point x="743" y="816"/> + <point x="746" y="816"/> + <point x="750" y="816"/> + <point x="756" y="816"/> + <point x="760" y="820"/> + <point x="766" y="820"/> + <point x="773" y="820"/> + <point x="776" y="820"/> + <point x="780" y="820"/> + <point x="783" y="820"/> + <point x="786" y="820"/> + <point x="790" y="820"/> + <point x="793" y="820"/> + <point x="796" y="820"/> + <point x="800" y="823"/> + <point x="803" y="823"/> + <point x="806" y="823"/> + <point x="806" y="820"/> + </stroke> + </strokes> + </character> Added: tomoe/trunk/benchmark/data/set1/20415.xml =================================================================== --- tomoe/trunk/benchmark/data/set1/20415.xml (rev 0) +++ tomoe/trunk/benchmark/data/set1/20415.xml 2008-02-15 10:55:10 UTC (rev 1584) @@ -0,0 +1,652 @@ +<?xml version="1.0" encoding="UTF-8"?> + <character> + <utf8>便</utf8> + <strokes> + <stroke> + <point x="330" y="226"/> + <point x="326" y="226"/> + <point x="326" y="230"/> + <point x="323" y="230"/> + <point x="323" y="236"/> + <point x="320" y="236"/> + <point x="320" y="246"/> + <point x="316" y="253"/> + <point x="310" y="273"/> + <point x="306" y="276"/> + <point x="306" y="286"/> + <point x="303" y="290"/> + <point x="290" y="303"/> + <point x="290" y="313"/> + <point x="286" y="316"/> + <point x="283" y="320"/> + <point x="283" y="323"/> + <point x="283" y="330"/> + <point x="280" y="330"/> + <point x="280" y="336"/> + <point x="276" y="340"/> + <point x="276" y="346"/> + <point x="273" y="350"/> + <point x="270" y="353"/> + <point x="270" y="363"/> + <point x="266" y="366"/> + <point x="263" y="373"/> + <point x="260" y="373"/> + <point x="256" y="380"/> + <point x="253" y="383"/> + <point x="246" y="383"/> + <point x="243" y="386"/> + <point x="240" y="390"/> + <point x="236" y="393"/> + <point x="233" y="393"/> + <point x="230" y="396"/> + <point x="226" y="400"/> + <point x="220" y="403"/> + <point x="213" y="403"/> + <point x="213" y="406"/> + <point x="206" y="410"/> + <point x="203" y="413"/> + <point x="196" y="416"/> + <point x="196" y="420"/> + <point x="190" y="423"/> + <point x="183" y="426"/> + <point x="183" y="430"/> + <point x="180" y="433"/> + <point x="173" y="433"/> + <point x="170" y="436"/> + <point x="166" y="440"/> + <point x="156" y="440"/> + <point x="156" y="443"/> + <point x="150" y="446"/> + <point x="146" y="446"/> + <point x="146" y="450"/> + <point x="140" y="453"/> + <point x="136" y="456"/> + <point x="133" y="456"/> + <point x="133" y="460"/> + <point x="130" y="460"/> + <point x="126" y="463"/> + <point x="126" y="466"/> + <point x="123" y="466"/> + <point x="120" y="466"/> + <point x="120" y="470"/> + <point x="116" y="470"/> + <point x="113" y="470"/> + <point x="113" y="473"/> + <point x="110" y="473"/> + <point x="106" y="473"/> + <point x="106" y="476"/> + <point x="103" y="476"/> + </stroke> + <stroke> + <point x="250" y="383"/> + <point x="250" y="386"/> + <point x="250" y="390"/> + <point x="250" y="393"/> + <point x="250" y="396"/> + <point x="250" y="400"/> + <point x="250" y="403"/> + <point x="250" y="406"/> + <point x="250" y="410"/> + <point x="250" y="416"/> + <point x="250" y="423"/> + <point x="250" y="426"/> + <point x="250" y="433"/> + <point x="250" y="443"/> + <point x="250" y="446"/> + <point x="253" y="450"/> + <point x="253" y="453"/> + <point x="253" y="460"/> + <point x="253" y="463"/> + <point x="253" y="466"/> + <point x="253" y="470"/> + <point x="253" y="476"/> + <point x="253" y="483"/> + <point x="253" y="486"/> + <point x="253" y="493"/> + <point x="253" y="496"/> + <point x="253" y="506"/> + <point x="253" y="510"/> + <point x="253" y="513"/> + <point x="253" y="516"/> + <point x="256" y="523"/> + <point x="256" y="526"/> + <point x="260" y="530"/> + <point x="260" y="533"/> + <point x="260" y="536"/> + <point x="260" y="540"/> + <point x="260" y="543"/> + <point x="260" y="550"/> + <point x="260" y="553"/> + <point x="263" y="560"/> + <point x="263" y="566"/> + <point x="263" y="570"/> + <point x="263" y="573"/> + <point x="263" y="576"/> + <point x="266" y="580"/> + <point x="266" y="583"/> + <point x="266" y="586"/> + <point x="270" y="593"/> + <point x="270" y="600"/> + <point x="270" y="603"/> + <point x="270" y="606"/> + <point x="270" y="610"/> + <point x="270" y="613"/> + <point x="270" y="620"/> + <point x="270" y="626"/> + <point x="270" y="630"/> + <point x="270" y="636"/> + <point x="270" y="640"/> + <point x="270" y="646"/> + <point x="270" y="650"/> + <point x="270" y="656"/> + <point x="270" y="660"/> + <point x="270" y="663"/> + <point... [truncated message content] |
From: <kt...@us...> - 2008-01-23 13:51:07
|
Revision: 1583 http://tomoe.svn.sourceforge.net/tomoe/?rev=1583&view=rev Author: ktou Date: 2008-01-23 05:50:33 -0800 (Wed, 23 Jan 2008) Log Message: ----------- * src/Makefile.am: fixed dependencies. Modified Paths: -------------- tomoe-gtk/trunk/ChangeLog tomoe-gtk/trunk/src/Makefile.am Modified: tomoe-gtk/trunk/ChangeLog =================================================================== --- tomoe-gtk/trunk/ChangeLog 2008-01-22 12:16:34 UTC (rev 1582) +++ tomoe-gtk/trunk/ChangeLog 2008-01-23 13:50:33 UTC (rev 1583) @@ -1,3 +1,7 @@ +2008-01-23 Kouhei Sutou <ko...@co...> + + * src/Makefile.am: fixed dependencies. + 2007-08-08 Mathieu Blondel <mbl...@ru...> * src/tomoe-canvas.c: "Looking up characters" didn't get displayed in Modified: tomoe-gtk/trunk/src/Makefile.am =================================================================== --- tomoe-gtk/trunk/src/Makefile.am 2008-01-22 12:16:34 UTC (rev 1582) +++ tomoe-gtk/trunk/src/Makefile.am 2008-01-23 13:50:33 UTC (rev 1583) @@ -43,7 +43,7 @@ tomoe-gtk-enum-types.c tomoe-gtk-enum-types.h enum_sources_h = \ - $(pkginclude_HEADERS) + $(tomoe_gtk_public_h_sources) BUILT_SOURCES = \ $(enum_sources) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kt...@us...> - 2008-01-22 12:16:42
|
Revision: 1582 http://tomoe.svn.sourceforge.net/tomoe/?rev=1582&view=rev Author: ktou Date: 2008-01-22 04:16:34 -0800 (Tue, 22 Jan 2008) Log Message: ----------- * module/dict/tomoe-dict-xml.c, module/dict/tomoe-dict-binary.c: used exported symbols. * lib/tomoe-dict-ptr-array.[ch], lib/tomoe-xml-parser.[ch]: exported symbols. * module/dict/Makefile.am: supported cross compile with MinGW on GNU/Linux. Modified Paths: -------------- tomoe/trunk/ChangeLog tomoe/trunk/lib/Makefile.am tomoe/trunk/lib/tomoe-char.c tomoe/trunk/lib/tomoe-dict-ptr-array.c tomoe/trunk/lib/tomoe-dict-ptr-array.h tomoe/trunk/lib/tomoe-xml-parser.c tomoe/trunk/lib/tomoe-xml-parser.h tomoe/trunk/module/dict/tomoe-dict-binary.c tomoe/trunk/module/dict/tomoe-dict-unihan.c tomoe/trunk/module/dict/tomoe-dict-xml.c tomoe/trunk/module/recognizer/Makefile.am Modified: tomoe/trunk/ChangeLog =================================================================== --- tomoe/trunk/ChangeLog 2008-01-22 11:56:54 UTC (rev 1581) +++ tomoe/trunk/ChangeLog 2008-01-22 12:16:34 UTC (rev 1582) @@ -1,8 +1,15 @@ 2008-01-22 Kouhei Sutou <ko...@co...> - * configure.ac, lib/Makefile.am, module/recognizer/Makefile.am: - supported cross compile with MinGW on GNU/Linux. + * module/dict/tomoe-dict-xml.c, module/dict/tomoe-dict-binary.c: + used exported symbols. + * lib/tomoe-dict-ptr-array.[ch], lib/tomoe-xml-parser.[ch]: + exported symbols. + + * configure.ac, lib/Makefile.am, module/recognizer/Makefile.am, + module/dict/Makefile.am: supported cross compile with MinGW on + GNU/Linux. + 2007-11-14 Kouhei Sutou <ko...@co...> * po/POTFILES.in: removed needless entries. Modified: tomoe/trunk/lib/Makefile.am =================================================================== --- tomoe/trunk/lib/Makefile.am 2008-01-22 11:56:54 UTC (rev 1581) +++ tomoe/trunk/lib/Makefile.am 2008-01-22 12:16:34 UTC (rev 1582) @@ -30,13 +30,15 @@ tomoe-context.h \ tomoe-config.h \ tomoe-dict.h \ + tomoe-dict-ptr-array.h \ tomoe-module.h \ tomoe-module-impl.h \ tomoe-query.h \ tomoe-reading.h \ tomoe-recognizer.h \ tomoe-shelf.h \ - tomoe-writing.h + tomoe-writing.h \ + tomoe-xml-parser.h enum_source_prefix = tomoe-enum-types @@ -103,15 +105,13 @@ tomoe-config.c \ tomoe-dict.c \ tomoe-dict-ptr-array.c \ - tomoe-dict-ptr-array.h \ tomoe-module.c \ tomoe-query.c \ tomoe-reading.c \ tomoe-recognizer.c \ tomoe-shelf.c \ tomoe-writing.c \ - tomoe-xml-parser.c \ - tomoe-xml-parser.h + tomoe-xml-parser.c libtomoe_la_LDFLAGS = \ -version-info $(LT_VERSION_INFO) \ Modified: tomoe/trunk/lib/tomoe-char.c =================================================================== --- tomoe/trunk/lib/tomoe-char.c 2008-01-22 11:56:54 UTC (rev 1581) +++ tomoe/trunk/lib/tomoe-char.c 2008-01-22 12:16:34 UTC (rev 1582) @@ -143,7 +143,7 @@ TomoeChar* tomoe_char_new_from_xml_data (const gchar *data, gssize len) { - return _tomoe_xml_parser_parse_char_data (data, len); + return tomoe_xml_parser_parse_char_data (data, len); } static void Modified: tomoe/trunk/lib/tomoe-dict-ptr-array.c =================================================================== --- tomoe/trunk/lib/tomoe-dict-ptr-array.c 2008-01-22 11:56:54 UTC (rev 1581) +++ tomoe/trunk/lib/tomoe-dict-ptr-array.c 2008-01-22 12:16:34 UTC (rev 1582) @@ -50,7 +50,7 @@ static TomoeDictClass *parent_class; -G_DEFINE_ABSTRACT_TYPE (TomoeDictPtrArray, _tomoe_dict_ptr_array, TOMOE_TYPE_DICT) +G_DEFINE_ABSTRACT_TYPE (TomoeDictPtrArray, tomoe_dict_ptr_array, TOMOE_TYPE_DICT) static void dispose (GObject *object); static void set_property (GObject *object, @@ -75,7 +75,7 @@ static gchar *get_available_private_utf8 (TomoeDict *dict); static void -_tomoe_dict_ptr_array_class_init (TomoeDictPtrArrayClass *klass) +tomoe_dict_ptr_array_class_init (TomoeDictPtrArrayClass *klass) { GObjectClass *gobject_class; TomoeDictClass *dict_class; @@ -123,7 +123,7 @@ } static void -_tomoe_dict_ptr_array_init (TomoeDictPtrArray *dict) +tomoe_dict_ptr_array_init (TomoeDictPtrArray *dict) { TomoeDictPtrArrayPrivate *priv = TOMOE_DICT_PTR_ARRAY_GET_PRIVATE (dict); priv->chars = g_ptr_array_new(); @@ -196,7 +196,7 @@ } void -_tomoe_dict_ptr_array_sort (TomoeDictPtrArray *dict) +tomoe_dict_ptr_array_sort (TomoeDictPtrArray *dict) { TomoeDictPtrArrayPrivate *priv; @@ -219,7 +219,7 @@ unregister_char (dict, tomoe_char_get_utf8 (chr)); g_ptr_array_add (priv->chars, g_object_ref (G_OBJECT (chr))); - _tomoe_dict_ptr_array_sort (TOMOE_DICT_PTR_ARRAY (dict)); + tomoe_dict_ptr_array_sort (TOMOE_DICT_PTR_ARRAY (dict)); priv->modified = TRUE; @@ -449,7 +449,7 @@ g_ptr_array_add (*dest_chars, tomoe_char_dup (chr)); } -gboolean +static gboolean copy (TomoeDict *src_dict, TomoeDict *dest_dict) { TomoeDictPtrArrayPrivate *src_priv, *dest_priv; @@ -487,7 +487,7 @@ return TOMOE_DICT_PTR_ARRAY_GET_PRIVATE (dict)->editable; } -gchar * +static gchar * get_available_private_utf8 (TomoeDict *dict) { TomoeDictPtrArrayPrivate *priv; @@ -523,7 +523,7 @@ } GPtrArray * -_tomoe_dict_ptr_array_get_array (TomoeDictPtrArray *dict) +tomoe_dict_ptr_array_get_array (TomoeDictPtrArray *dict) { g_return_val_if_fail (TOMOE_IS_DICT_PTR_ARRAY (dict), NULL); Modified: tomoe/trunk/lib/tomoe-dict-ptr-array.h =================================================================== --- tomoe/trunk/lib/tomoe-dict-ptr-array.h 2008-01-22 11:56:54 UTC (rev 1581) +++ tomoe/trunk/lib/tomoe-dict-ptr-array.h 2008-01-22 12:16:34 UTC (rev 1582) @@ -29,7 +29,7 @@ #include "tomoe-dict.h" -#define TOMOE_TYPE_DICT_PTR_ARRAY (_tomoe_dict_ptr_array_get_type ()) +#define TOMOE_TYPE_DICT_PTR_ARRAY (tomoe_dict_ptr_array_get_type ()) #define TOMOE_DICT_PTR_ARRAY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TOMOE_TYPE_DICT_PTR_ARRAY, TomoeDictPtrArray)) #define TOMOE_DICT_PTR_ARRAY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TOMOE_TYPE_DICT_PTR_ARRAY, TomoeDictPtrArrayClass)) #define TOMOE_IS_DICT_PTR_ARRAY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TOMOE_TYPE_DICT_PTR_ARRAY)) @@ -49,9 +49,9 @@ TomoeDictClass parent_class; }; -GType _tomoe_dict_ptr_array_get_type (void) G_GNUC_CONST; -void _tomoe_dict_ptr_array_sort (TomoeDictPtrArray *dict); -GPtrArray *_tomoe_dict_ptr_array_get_array (TomoeDictPtrArray *dict); +GType tomoe_dict_ptr_array_get_type (void) G_GNUC_CONST; +void tomoe_dict_ptr_array_sort (TomoeDictPtrArray *dict); +GPtrArray *tomoe_dict_ptr_array_get_array (TomoeDictPtrArray *dict); G_END_DECLS Modified: tomoe/trunk/lib/tomoe-xml-parser.c =================================================================== --- tomoe/trunk/lib/tomoe-xml-parser.c 2008-01-22 11:56:54 UTC (rev 1581) +++ tomoe/trunk/lib/tomoe-xml-parser.c 2008-01-22 12:16:34 UTC (rev 1582) @@ -428,8 +428,8 @@ } gboolean -_tomoe_xml_parser_parse_dictionary_file (const gchar *filename, - TomoeXMLParsedData *result) +tomoe_xml_parser_parse_dictionary_file (const gchar *filename, + TomoeXMLParsedData *result) { GMarkupParseContext *context; FILE *f; @@ -469,7 +469,7 @@ } TomoeChar * -_tomoe_xml_parser_parse_char_data (const gchar *xml, gssize len) +tomoe_xml_parser_parse_char_data (const gchar *xml, gssize len) { GMarkupParseContext *context; TomoeXMLParsedData result; Modified: tomoe/trunk/lib/tomoe-xml-parser.h =================================================================== --- tomoe/trunk/lib/tomoe-xml-parser.h 2008-01-22 11:56:54 UTC (rev 1581) +++ tomoe/trunk/lib/tomoe-xml-parser.h 2008-01-22 12:16:34 UTC (rev 1582) @@ -37,10 +37,10 @@ GPtrArray *chars; }; -gboolean _tomoe_xml_parser_parse_dictionary_file (const gchar *filename, - TomoeXMLParsedData *result); -TomoeChar *_tomoe_xml_parser_parse_char_data (const gchar *xml, - gssize len); +gboolean tomoe_xml_parser_parse_dictionary_file (const gchar *filename, + TomoeXMLParsedData *result); +TomoeChar *tomoe_xml_parser_parse_char_data (const gchar *xml, + gssize len); G_END_DECLS Modified: tomoe/trunk/module/dict/tomoe-dict-binary.c =================================================================== --- tomoe/trunk/module/dict/tomoe-dict-binary.c 2008-01-22 11:56:54 UTC (rev 1581) +++ tomoe/trunk/module/dict/tomoe-dict-binary.c 2008-01-22 12:16:34 UTC (rev 1582) @@ -29,6 +29,7 @@ #include <string.h> #include <errno.h> #include <glib.h> +#include <glib/gstdio.h> #include <glib/gi18n-lib.h> #include <gmodule.h> @@ -337,7 +338,7 @@ return success; name = NULL; - chars = _tomoe_dict_ptr_array_get_array (TOMOE_DICT_PTR_ARRAY (dict)); + chars = tomoe_dict_ptr_array_get_array (TOMOE_DICT_PTR_ARRAY (dict)); /* Binary file format structure @@ -397,7 +398,7 @@ g_mapped_file_free (file); - _tomoe_dict_ptr_array_sort (TOMOE_DICT_PTR_ARRAY (dict)); + tomoe_dict_ptr_array_sort (TOMOE_DICT_PTR_ARRAY (dict)); return success; } @@ -453,7 +454,7 @@ put_ushort (file, 0); } - chars = _tomoe_dict_ptr_array_get_array (TOMOE_DICT_PTR_ARRAY (dict)); + chars = tomoe_dict_ptr_array_get_array (TOMOE_DICT_PTR_ARRAY (dict)); put_ulong (file, chars->len); for (i = 0; i < chars->len; i++) { Modified: tomoe/trunk/module/dict/tomoe-dict-unihan.c =================================================================== --- tomoe/trunk/module/dict/tomoe-dict-unihan.c 2008-01-22 11:56:54 UTC (rev 1581) +++ tomoe/trunk/module/dict/tomoe-dict-unihan.c 2008-01-22 12:16:34 UTC (rev 1582) @@ -193,7 +193,7 @@ object = klass->constructor (type, n_props, props); the_singleton = TOMOE_DICT_UNIHAN (object); - chars = _tomoe_dict_ptr_array_get_array (TOMOE_DICT_PTR_ARRAY (object)); + chars = tomoe_dict_ptr_array_get_array (TOMOE_DICT_PTR_ARRAY (object)); _tomoe_unihan_create (chars); } else { object = g_object_ref (G_OBJECT (the_singleton)); Modified: tomoe/trunk/module/dict/tomoe-dict-xml.c =================================================================== --- tomoe/trunk/module/dict/tomoe-dict-xml.c 2008-01-22 11:56:54 UTC (rev 1581) +++ tomoe/trunk/module/dict/tomoe-dict-xml.c 2008-01-22 12:16:34 UTC (rev 1582) @@ -303,14 +303,14 @@ return success; result.name = NULL; - result.chars = _tomoe_dict_ptr_array_get_array (TOMOE_DICT_PTR_ARRAY (dict)); - success = _tomoe_xml_parser_parse_dictionary_file (dict->filename, &result); + result.chars = tomoe_dict_ptr_array_get_array (TOMOE_DICT_PTR_ARRAY (dict)); + success = tomoe_xml_parser_parse_dictionary_file (dict->filename, &result); if (result.name) { g_free (dict->name); dict->name = g_strdup (result.name); g_free (result.name); } - _tomoe_dict_ptr_array_sort (TOMOE_DICT_PTR_ARRAY (dict)); + tomoe_dict_ptr_array_sort (TOMOE_DICT_PTR_ARRAY (dict)); return success; } @@ -343,7 +343,7 @@ else g_string_append (xml, "<dictionary>\n"); - chars = _tomoe_dict_ptr_array_get_array (TOMOE_DICT_PTR_ARRAY (dict)); + chars = tomoe_dict_ptr_array_get_array (TOMOE_DICT_PTR_ARRAY (dict)); for (i = 0; i < chars->len; i++) { gchar *chr_xml; TomoeChar *chr = g_ptr_array_index (chars, i); Modified: tomoe/trunk/module/recognizer/Makefile.am =================================================================== --- tomoe/trunk/module/recognizer/Makefile.am 2008-01-22 11:56:54 UTC (rev 1581) +++ tomoe/trunk/module/recognizer/Makefile.am 2008-01-22 12:16:34 UTC (rev 1582) @@ -23,9 +23,15 @@ AM_CPPFLAGS = INCLUDES = $(TOMOE_CFLAGS) +if OS_WIN32 +export_symbols = -export-symbols $(top_srcdir)/lib/libtomoe-module.def +else +export_symbols = $(LIBTOOL_EXPORT_OPTIONS) +endif + LDFLAGS = \ -rpath $(recognizer_moduledir) -avoid-version -module \ - -export-dynamic $(no_undefined) $(LIBTOOL_EXPORT_OPTIONS) + -no-undefined $(export_symbols) recognizer_module_LTLIBRARIES = simple.la @@ -37,4 +43,4 @@ simple_la_LD_ADD = -lm -simple_la_LIBADD = $(TOMOE_LIBS) +simple_la_LIBADD = $(TOMOE_LIBS) $(top_builddir)/lib/libtomoe.la This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kt...@us...> - 2008-01-22 11:57:03
|
Revision: 1581 http://tomoe.svn.sourceforge.net/tomoe/?rev=1581&view=rev Author: ktou Date: 2008-01-22 03:56:54 -0800 (Tue, 22 Jan 2008) Log Message: ----------- * lib/Makefile.am, module/recognizer/Makefile.am: supported cross compile with MinGW on GNU/Linux. Modified Paths: -------------- tomoe/trunk/ChangeLog tomoe/trunk/lib/Makefile.am tomoe/trunk/module/dict/Makefile.am Property Changed: ---------------- tomoe/trunk/lib/ Modified: tomoe/trunk/ChangeLog =================================================================== --- tomoe/trunk/ChangeLog 2008-01-22 11:36:05 UTC (rev 1580) +++ tomoe/trunk/ChangeLog 2008-01-22 11:56:54 UTC (rev 1581) @@ -1,7 +1,7 @@ 2008-01-22 Kouhei Sutou <ko...@co...> - * configure.ac, lib/Makefile.am: supported cross compile with - MinGW on GNU/Linux. + * configure.ac, lib/Makefile.am, module/recognizer/Makefile.am: + supported cross compile with MinGW on GNU/Linux. 2007-11-14 Kouhei Sutou <ko...@co...> Property changes on: tomoe/trunk/lib ___________________________________________________________________ Name: svn:ignore - Makefile Makefile.in .deps .libs *.o *.lo *.la *.bak *~ *.rej *.orig stamp-tomoe-enum-types-h stamp-tomoe-enum-types-c tomoe-enum-types.h tomoe-enum-types.c libtomoe.def + Makefile Makefile.in .deps .libs *.o *.lo *.la *.bak *~ *.rej *.orig stamp-tomoe-enum-types-h stamp-tomoe-enum-types-c tomoe-enum-types.h tomoe-enum-types.c libtomoe.def libtomoe-module.def Modified: tomoe/trunk/lib/Makefile.am =================================================================== --- tomoe/trunk/lib/Makefile.am 2008-01-22 11:36:05 UTC (rev 1580) +++ tomoe/trunk/lib/Makefile.am 2008-01-22 11:56:54 UTC (rev 1581) @@ -55,13 +55,16 @@ if OS_WIN32 libtomoe_def = libtomoe.def +libtomoe_module_def = libtomoe-module.def export_symbols = -export-symbols $(libtomoe_def) -def_sources = $(tomoe_public_h_sources) -BUILT_SOURCES += $(libtomoe_def) -CLEANFILES += $(libtomoe_def) -libtomoe.def: $(def_sources) +libtomoe_def_sources = $(tomoe_public_h_sources) +libtomoe_module_def_sources = tomoe-module-impl.h +BUILT_SOURCES += $(libtomoe_def) $(libtomoe_module_def) +CLEANFILES += $(libtomoe_def) $(libtomoe_module_def) + +libtomoe.def: $(libtomoe_def_sources) ((cd $(srcdir); \ - cat $(def_sources) || echo 'tomoe_ERROR ()') | \ + cat $(libtomoe_def_sources) || echo 'tomoe_ERROR ()') | \ grep -v -E '^# *include' | \ ($(CC) $(CPPFLAGS) -E - || echo 'tomoe_ERROR ()') | \ grep -E 'tomoe_.*[ ]\(' | \ @@ -71,6 +74,17 @@ echo LIBRARY libtomoe-$(LT_CURRENT_MINUS_AGE).dll; \ ) >$@ ! grep -q tomoe_ERROR $@ || ($(RM) $@; false) + +libtomoe-module.def: $(libtomoe_module_def_sources) + ((cd $(srcdir); \ + cat $(libtomoe_module_def_sources) || echo 'tomoe_ERROR ()') |\ + grep -v -E '^# *include' | \ + ($(CC) $(CPPFLAGS) -E - || echo 'tomoe_ERROR ()') | \ + grep -E 'tomoe_.*[ ]\(' | \ + sed -e 's/^.*[* ]\(tomoe_[^ ]\+\).*/\1/' | \ + sort; \ + ) >$@ + ! grep -q tomoe_ERROR $@ || ($(RM) $@; false) else export_symbols = $(LIBTOOL_EXPORT_OPTIONS) libtomoe_def = Modified: tomoe/trunk/module/dict/Makefile.am =================================================================== --- tomoe/trunk/module/dict/Makefile.am 2008-01-22 11:36:05 UTC (rev 1580) +++ tomoe/trunk/module/dict/Makefile.am 2008-01-22 11:56:54 UTC (rev 1581) @@ -34,9 +34,16 @@ LIBADD = $(TOMOE_LIBS) \ $(top_builddir)/lib/libtomoe.la + +if OS_WIN32 +export_symbols = -export-symbols $(top_srcdir)/lib/libtomoe-module.def +else +export_symbols = $(LIBTOOL_EXPORT_OPTIONS) +endif + LDFLAGS = \ - -rpath $(dict_moduledir) -avoid-version -module \ - -export-dynamic $(no_undefined) $(LIBTOOL_EXPORT_OPTIONS) + -rpath $(dict_moduledir) -avoid-version -module \ + -export-dynamic -no-undefined $(export_symbols) dict_module_LTLIBRARIES = xml.la This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kt...@us...> - 2008-01-22 11:36:13
|
Revision: 1580 http://tomoe.svn.sourceforge.net/tomoe/?rev=1580&view=rev Author: ktou Date: 2008-01-22 03:36:05 -0800 (Tue, 22 Jan 2008) Log Message: ----------- * configure.ac, lib/Makefile.am: supported cross compile with MinGW on GNU/Linux. Modified Paths: -------------- tomoe/trunk/ChangeLog tomoe/trunk/configure.ac tomoe/trunk/lib/Makefile.am tomoe/trunk/lib/tomoe-context.h Property Changed: ---------------- tomoe/trunk/lib/ Modified: tomoe/trunk/ChangeLog =================================================================== --- tomoe/trunk/ChangeLog 2007-11-14 01:36:24 UTC (rev 1579) +++ tomoe/trunk/ChangeLog 2008-01-22 11:36:05 UTC (rev 1580) @@ -1,3 +1,8 @@ +2008-01-22 Kouhei Sutou <ko...@co...> + + * configure.ac, lib/Makefile.am: supported cross compile with + MinGW on GNU/Linux. + 2007-11-14 Kouhei Sutou <ko...@co...> * po/POTFILES.in: removed needless entries. Modified: tomoe/trunk/configure.ac =================================================================== --- tomoe/trunk/configure.ac 2007-11-14 01:36:24 UTC (rev 1579) +++ tomoe/trunk/configure.ac 2008-01-22 11:36:05 UTC (rev 1580) @@ -11,16 +11,55 @@ AM_INIT_AUTOMAKE(tomoe, [tomoe_version]) AM_CONFIG_HEADER(config.h) +AC_CANONICAL_HOST + +AC_MSG_CHECKING([for native Win32]) +case "$host" in + *-*-mingw*) + os_win32=yes + ;; + *) + os_win32=no + ;; +esac +AC_MSG_RESULT([$os_win32]) + +AC_MSG_CHECKING([for some Win32 platform]) +case "$host" in + *-*-mingw*|*-*-cygwin*) + platform_win32=yes + ;; + *) + platform_win32=no + ;; +esac +AC_MSG_RESULT([$platform_win32]) + +AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes") +AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes") + AC_ENABLE_SHARED(yes) AC_ENABLE_STATIC(yes) + +AC_LIBTOOL_WIN32_DLL AM_PROG_LIBTOOL TOMOE_VERSION=tomoe_version AC_SUBST(TOMOE_VERSION) -LT_VERSION_INFO="1:0:1" +LT_CURRENT=1 +LT_REVISION=0 +LT_AGE=1 +LT_VERSION_INFO="$LT_CURRENT:$LT_REVISION:$LT_AGE" +AC_SUBST(LT_CURRENT) +AC_SUBST(LT_REVISION) +AC_SUBST(LT_AGE) +AC_SUBST(LT_VERSION_INFO) + +LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE` +AC_SUBST(LT_CURRENT_MINUS_AGE) + LIBTOOL_EXPORT_OPTIONS='-export-symbols-regex "^[[^_]].*"' -AC_SUBST(LT_VERSION_INFO) AC_SUBST(LIBTOOL_EXPORT_OPTIONS) @@ -143,7 +182,26 @@ dnl ************************************************************** AC_CHECK_FUNCS([setlocale strchr strtol uname memmove strerror]) + dnl ************************************************************** +dnl Check for MinGW +dnl ************************************************************** + +AC_ARG_ENABLE([mingw-debug], + AS_HELP_STRING([--enable-mingw-debug], + [Enable MinGW debug])) +case $host_os in +mingw*) + if test "x$enable_mingw_debug" != "xno"; then + LDFLAGS="$LDFLAGS -mwindows" + fi + AC_CHECK_TOOL(WINDRES, windres) + ;; +esac +AM_CONDITIONAL([HAVE_WINDRES], [test x"$WINDRES" != x]) + + +dnl ************************************************************** dnl Check for GLib. dnl ************************************************************** GLIB_REQUIRED=2.8.0 Property changes on: tomoe/trunk/lib ___________________________________________________________________ Name: svn:ignore - Makefile Makefile.in .deps .libs *.o *.lo *.la *.bak *~ *.rej *.orig stamp-tomoe-enum-types-h stamp-tomoe-enum-types-c tomoe-enum-types.h tomoe-enum-types.c + Makefile Makefile.in .deps .libs *.o *.lo *.la *.bak *~ *.rej *.orig stamp-tomoe-enum-types-h stamp-tomoe-enum-types-c tomoe-enum-types.h tomoe-enum-types.c libtomoe.def Modified: tomoe/trunk/lib/Makefile.am =================================================================== --- tomoe/trunk/lib/Makefile.am 2007-11-14 01:36:24 UTC (rev 1579) +++ tomoe/trunk/lib/Makefile.am 2008-01-22 11:36:05 UTC (rev 1580) @@ -53,6 +53,29 @@ $(tomoe_public_h_sources) \ $(enum_source_prefix).h +if OS_WIN32 +libtomoe_def = libtomoe.def +export_symbols = -export-symbols $(libtomoe_def) +def_sources = $(tomoe_public_h_sources) +BUILT_SOURCES += $(libtomoe_def) +CLEANFILES += $(libtomoe_def) +libtomoe.def: $(def_sources) + ((cd $(srcdir); \ + cat $(def_sources) || echo 'tomoe_ERROR ()') | \ + grep -v -E '^# *include' | \ + ($(CC) $(CPPFLAGS) -E - || echo 'tomoe_ERROR ()') | \ + grep -E 'tomoe_.*[ ]\(' | \ + sed -e 's/^.*[* ]\(tomoe_[^ ]\+\).*/\1/' | \ + grep -v -E '^tomoe_module_impl_' | \ + sort; \ + echo LIBRARY libtomoe-$(LT_CURRENT_MINUS_AGE).dll; \ + ) >$@ + ! grep -q tomoe_ERROR $@ || ($(RM) $@; false) +else +export_symbols = $(LIBTOOL_EXPORT_OPTIONS) +libtomoe_def = +endif + lib_LTLIBRARIES = libtomoe.la libtomoe_la_SOURCES = \ @@ -76,16 +99,18 @@ tomoe-xml-parser.c \ tomoe-xml-parser.h -libtomoe_la_LDFLAGS = \ - -version-info $(LT_VERSION_INFO) \ - -export-dynamic $(no_undefined) $(LIBTOOL_EXPORT_OPTIONS) +libtomoe_la_LDFLAGS = \ + -version-info $(LT_VERSION_INFO) \ + -no-undefined $(export_symbols) libtomoe_la_LD_ADD = \ -lm libtomoe_la_LIBADD = $(TOMOE_LIBS) +libtomoe_la_DEPENDENCIES = $(libtomoe_def) + MAINTAINERCLEANFILES = \ stamp-$(enum_source_prefix)-c \ stamp-$(enum_source_prefix)-h Modified: tomoe/trunk/lib/tomoe-context.h =================================================================== --- tomoe/trunk/lib/tomoe-context.h 2007-11-14 01:36:24 UTC (rev 1579) +++ tomoe/trunk/lib/tomoe-context.h 2008-01-22 11:36:05 UTC (rev 1580) @@ -60,8 +60,10 @@ GList *tomoe_context_search (TomoeContext *ctx, TomoeQuery *query); +/* GList *tomoe_context_multi_search (TomoeContext *ctx, GList *queries); +*/ TomoeChar *tomoe_context_get_char (TomoeContext *ctx, const gchar *utf8); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kt...@us...> - 2007-11-14 01:36:19
|
Revision: 1579 http://tomoe.svn.sourceforge.net/tomoe/?rev=1579&view=rev Author: ktou Date: 2007-11-13 17:36:24 -0800 (Tue, 13 Nov 2007) Log Message: ----------- * po/POTFILES.in: removed needless entries. Modified Paths: -------------- tomoe/trunk/ChangeLog tomoe/trunk/po/POTFILES.in Modified: tomoe/trunk/ChangeLog =================================================================== --- tomoe/trunk/ChangeLog 2007-11-09 03:58:06 UTC (rev 1578) +++ tomoe/trunk/ChangeLog 2007-11-14 01:36:24 UTC (rev 1579) @@ -1,3 +1,7 @@ +2007-11-14 Kouhei Sutou <ko...@co...> + + * po/POTFILES.in: removed needless entries. + 2007-11-09 Hiroyuki Ikezoe <poi...@ik...> * configure.ac: Requirement glib-2.8.0. Modified: tomoe/trunk/po/POTFILES.in =================================================================== --- tomoe/trunk/po/POTFILES.in 2007-11-09 03:58:06 UTC (rev 1578) +++ tomoe/trunk/po/POTFILES.in 2007-11-14 01:36:24 UTC (rev 1579) @@ -1,6 +1,4 @@ lib/glib-utils.c -lib/glib-compat-file-utilities.c -lib/glib-compat-key-file.c lib/tomoe-candidate.c lib/tomoe-char.c lib/tomoe-config.c This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ik...@us...> - 2007-11-09 03:58:02
|
Revision: 1578 http://tomoe.svn.sourceforge.net/tomoe/?rev=1578&view=rev Author: ikezoe Date: 2007-11-08 19:58:06 -0800 (Thu, 08 Nov 2007) Log Message: ----------- 2007-11-09 Hiroyuki Ikezoe <poi...@ik...> * configure.ac: Requirement glib-2.8.0. * lib/glib-compat-key-file.[c|h], lib/glib-compat-file-utilities.[c|h]: Removed. * lib/glib-utils.h: Cleanup. Modified Paths: -------------- tomoe/trunk/ChangeLog tomoe/trunk/configure.ac tomoe/trunk/lib/Makefile.am tomoe/trunk/lib/glib-utils.h tomoe/trunk/lib/tomoe-context.c Removed Paths: ------------- tomoe/trunk/lib/glib-compat-file-utilities.c tomoe/trunk/lib/glib-compat-file-utilities.h tomoe/trunk/lib/glib-compat-key-file.c tomoe/trunk/lib/glib-compat-key-file.h Modified: tomoe/trunk/ChangeLog =================================================================== --- tomoe/trunk/ChangeLog 2007-11-09 03:41:02 UTC (rev 1577) +++ tomoe/trunk/ChangeLog 2007-11-09 03:58:06 UTC (rev 1578) @@ -1,5 +1,12 @@ 2007-11-09 Hiroyuki Ikezoe <poi...@ik...> + * configure.ac: Requirement glib-2.8.0. + * lib/glib-compat-key-file.[c|h], lib/glib-compat-file-utilities.[c|h]: + Removed. + * lib/glib-utils.h: Cleanup. + +2007-11-09 Hiroyuki Ikezoe <poi...@ik...> + * configure.ac: Define GLIB_REQUIRED. * tomoe.pc.in: Use GLIB_REQUIRED. Modified: tomoe/trunk/configure.ac =================================================================== --- tomoe/trunk/configure.ac 2007-11-09 03:41:02 UTC (rev 1577) +++ tomoe/trunk/configure.ac 2007-11-09 03:58:06 UTC (rev 1578) @@ -146,7 +146,7 @@ dnl ************************************************************** dnl Check for GLib. dnl ************************************************************** -GLIB_REQUIRED=2.4.0 +GLIB_REQUIRED=2.8.0 AC_SUBST(GLIB_REQUIRED) AM_PATH_GLIB_2_0($GLIB_REQUIRED, [], [], [gmodule gobject]) Modified: tomoe/trunk/lib/Makefile.am =================================================================== --- tomoe/trunk/lib/Makefile.am 2007-11-09 03:41:02 UTC (rev 1577) +++ tomoe/trunk/lib/Makefile.am 2007-11-09 03:58:06 UTC (rev 1578) @@ -58,10 +58,6 @@ libtomoe_la_SOURCES = \ glib-utils.c \ glib-utils.h \ - glib-compat-file-utilities.c \ - glib-compat-file-utilities.h \ - glib-compat-key-file.c \ - glib-compat-key-file.h \ tomoe-enum-types.c \ tomoe.c \ tomoe-candidate.c \ Deleted: tomoe/trunk/lib/glib-compat-file-utilities.c =================================================================== --- tomoe/trunk/lib/glib-compat-file-utilities.c 2007-11-09 03:41:02 UTC (rev 1577) +++ tomoe/trunk/lib/glib-compat-file-utilities.c 2007-11-09 03:58:06 UTC (rev 1578) @@ -1,323 +0,0 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * Copyright (C) 2006 Kouhei Sutou <ko...@co...> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307 USA - * - * $Id$ - */ - -#include <stdio.h> -#include <string.h> -#include <errno.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <fcntl.h> -#include <unistd.h> - -#include <glib.h> -#include "glib-utils.h" - -#if !GLIB_CHECK_VERSION(2, 8, 0) -/* copied from GLib. */ - -/* - * create_temp_file based on the mkstemp implementation from the GNU C library. - * Copyright (C) 1991,92,93,94,95,96,97,98,99 Free Software Foundation, Inc. - */ -static gint -create_temp_file (gchar *tmpl, - int permissions) -{ - char *XXXXXX; - int count, fd; - static const char letters[] = - "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; - static const int NLETTERS = sizeof (letters) - 1; - glong value; - GTimeVal tv; - static int counter = 0; - - /* find the last occurrence of "XXXXXX" */ - XXXXXX = g_strrstr (tmpl, "XXXXXX"); - - if (!XXXXXX || strncmp (XXXXXX, "XXXXXX", 6)) - { - errno = EINVAL; - return -1; - } - - /* Get some more or less random data. */ - g_get_current_time (&tv); - value = (tv.tv_usec ^ tv.tv_sec) + counter++; - - for (count = 0; count < 100; value += 7777, ++count) - { - glong v = value; - - /* Fill in the random bits. */ - XXXXXX[0] = letters[v % NLETTERS]; - v /= NLETTERS; - XXXXXX[1] = letters[v % NLETTERS]; - v /= NLETTERS; - XXXXXX[2] = letters[v % NLETTERS]; - v /= NLETTERS; - XXXXXX[3] = letters[v % NLETTERS]; - v /= NLETTERS; - XXXXXX[4] = letters[v % NLETTERS]; - v /= NLETTERS; - XXXXXX[5] = letters[v % NLETTERS]; - - /* tmpl is in UTF-8 on Windows, thus use g_open() */ - fd = g_open (tmpl, O_RDWR | O_CREAT | O_EXCL | O_BINARY, permissions); - - if (fd >= 0) - return fd; - else if (errno != EEXIST) - /* Any other error will apply also to other names we might - * try, and there are 2^32 or so of them, so give up now. - */ - return -1; - } - - /* We got out of the loop because we ran out of combinations to try. */ - errno = EEXIST; - return -1; -} - -static gchar * -write_to_temp_file (const gchar *contents, - gssize length, - const gchar *template, - GError **err) -{ - gchar *tmp_name; - gchar *display_name; - gchar *retval; - FILE *file; - gint fd; - int save_errno; - - retval = NULL; - - tmp_name = g_strdup_printf ("%s.XXXXXX", template); - - errno = 0; - fd = create_temp_file (tmp_name, 0666); - display_name = g_filename_display_name (tmp_name); - - if (fd == -1) - { - save_errno = errno; - g_set_error (err, - G_FILE_ERROR, - g_file_error_from_errno (save_errno), - _("Failed to create file '%s': %s"), - display_name, g_strerror (save_errno)); - - goto out; - } - - errno = 0; - file = fdopen (fd, "wb"); - if (!file) - { - save_errno = errno; - g_set_error (err, - G_FILE_ERROR, - g_file_error_from_errno (save_errno), - _("Failed to open file '%s' for writing: fdopen() failed: %s"), - display_name, - g_strerror (save_errno)); - - close (fd); - g_unlink (tmp_name); - - goto out; - } - - if (length > 0) - { - size_t n_written; - - errno = 0; - - n_written = fwrite (contents, 1, length, file); - - if (n_written < length) - { - save_errno = errno; - - g_set_error (err, - G_FILE_ERROR, - g_file_error_from_errno (save_errno), - _("Failed to write file '%s': fwrite() failed: %s"), - display_name, - g_strerror (save_errno)); - - fclose (file); - g_unlink (tmp_name); - - goto out; - } - } - - errno = 0; - if (fclose (file) == EOF) - { - save_errno = 0; - - g_set_error (err, - G_FILE_ERROR, - g_file_error_from_errno (save_errno), - _("Failed to close file '%s': fclose() failed: %s"), - display_name, - g_strerror (save_errno)); - - g_unlink (tmp_name); - - goto out; - } - - retval = g_strdup (tmp_name); - - out: - g_free (tmp_name); - g_free (display_name); - - return retval; -} - -static gboolean -rename_file (const char *old_name, - const char *new_name, - GError **err) -{ - errno = 0; - if (g_rename (old_name, new_name) == -1) - { - int save_errno = errno; - gchar *display_old_name = g_filename_display_name (old_name); - gchar *display_new_name = g_filename_display_name (new_name); - - g_set_error (err, - G_FILE_ERROR, - g_file_error_from_errno (save_errno), - _("Failed to rename file '%s' to '%s': g_rename() failed: %s"), - display_old_name, - display_new_name, - g_strerror (save_errno)); - - g_free (display_old_name); - g_free (display_new_name); - - return FALSE; - } - - return TRUE; -} - -gboolean -g_file_set_contents (const gchar *filename, - const gchar *contents, - gssize length, - GError **error) -{ - gchar *tmp_filename; - gboolean retval; - GError *rename_error = NULL; - - g_return_val_if_fail (filename != NULL, FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - g_return_val_if_fail (contents != NULL || length == 0, FALSE); - g_return_val_if_fail (length >= -1, FALSE); - - if (length == -1) - length = strlen (contents); - - tmp_filename = write_to_temp_file (contents, length, filename, error); - - if (!tmp_filename) - { - retval = FALSE; - goto out; - } - - if (!rename_file (tmp_filename, filename, &rename_error)) - { -#ifndef G_OS_WIN32 - - g_unlink (tmp_filename); - g_propagate_error (error, rename_error); - retval = FALSE; - goto out; - -#else /* G_OS_WIN32 */ - - /* Renaming failed, but on Windows this may just mean - * the file already exists. So if the target file - * exists, try deleting it and do the rename again. - */ - if (!g_file_test (filename, G_FILE_TEST_EXISTS)) - { - g_unlink (tmp_filename); - g_propagate_error (error, rename_error); - retval = FALSE; - goto out; - } - - g_error_free (rename_error); - - if (g_unlink (filename) == -1) - { - gchar *display_filename = g_filename_display_name (filename); - - int save_errno = errno; - - g_set_error (error, - G_FILE_ERROR, - g_file_error_from_errno (save_errno), - _("Existing file '%s' could not be removed: g_unlink() failed: %s"), - display_filename, - g_strerror (save_errno)); - - g_free (display_filename); - g_unlink (tmp_filename); - retval = FALSE; - goto out; - } - - if (!rename_file (tmp_filename, filename, error)) - { - g_unlink (tmp_filename); - retval = FALSE; - goto out; - } - -#endif - } - - retval = TRUE; - - out: - g_free (tmp_filename); - return retval; -} -#endif - -/* -vi:ts=4:nowrap:ai:expandtab -*/ Deleted: tomoe/trunk/lib/glib-compat-file-utilities.h =================================================================== --- tomoe/trunk/lib/glib-compat-file-utilities.h 2007-11-09 03:41:02 UTC (rev 1577) +++ tomoe/trunk/lib/glib-compat-file-utilities.h 2007-11-09 03:58:06 UTC (rev 1578) @@ -1,59 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * Copyright (C) 2006 Kouhei Sutou <ko...@co...> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307 USA - * - * $Id$ - */ - -#ifndef __GLIB_COMPAT_FILE_UTILITIES_H__ -#define __GLIB_COMPAT_FILE_UTILITIES_H__ - -#include <glib.h> - -#if GLIB_CHECK_VERSION(2, 6, 0) -# include <glib/gstdio.h> -#else -# include "config.h" -# include <stdio.h> -# ifdef HAVE_SYS_STAT_H -# include <sys/stat.h> -# endif -# ifdef HAVE_SYS_TYPES_H -# include <sys/types.h> -# endif -# define g_open(filename, flags, mode) open (filename, flags, mode) -# define g_filename_display_name(name) g_strdup (name) -# define g_unlink(filename) unlink (filename) -# define g_mkdir(filename, mode) mkdir (filename, mode) -# define g_rename(old_filename, new_filename) \ - rename (old_filename, new_filename) -#endif - -#ifndef O_BINARY -# define O_BINARY 0 -#endif - -G_BEGIN_DECLS - -G_END_DECLS - -#endif /* __GLIB_COMPAT_FILE_UTILITIES_H__ */ - -/* -vi:ts=4:nowrap:ai:expandtab -*/ Deleted: tomoe/trunk/lib/glib-compat-key-file.c =================================================================== --- tomoe/trunk/lib/glib-compat-key-file.c 2007-11-09 03:41:02 UTC (rev 1577) +++ tomoe/trunk/lib/glib-compat-key-file.c 2007-11-09 03:58:06 UTC (rev 1578) @@ -1,3348 +0,0 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * Copyright (C) 2006 Kouhei Sutou <ko...@co...> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307 USA - * - * $Id$ - */ - -#include "glib-utils.h" - -#if !GLIB_CHECK_VERSION(2, 6, 0) -/* gkeyfile.c - key file parser - * - * Copyright 2004 Red Hat, Inc. - * - * Written by Ray Strode <rs...@re...> - * Matthias Clasen <mc...@re...> - * - * GLib is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * GLib is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with GLib; see the file COPYING.LIB. If not, - * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include "config.h" - -#include <errno.h> -#include <fcntl.h> -#include <locale.h> -#include <string.h> -#include <stdio.h> -#include <stdlib.h> -#include <sys/types.h> -#include <sys/stat.h> -#ifdef HAVE_UNISTD_H -#include <unistd.h> -#endif -#ifdef G_OS_WIN32 -#include <io.h> - -#ifndef S_ISREG -#define S_ISREG(mode) ((mode)&_S_IFREG) -#endif - -#endif /* G_OS_WIN23 */ - -typedef struct _GKeyFileGroup GKeyFileGroup; - -struct _GKeyFile -{ - GList *groups; - - GKeyFileGroup *start_group; - GKeyFileGroup *current_group; - - GString *parse_buffer; /* Holds up to one line of not-yet-parsed data */ - - /* Used for sizing the output buffer during serialization - */ - gsize approximate_size; - - gchar list_separator; - - GKeyFileFlags flags; -}; - -typedef struct _GKeyFileKeyValuePair GKeyFileKeyValuePair; - -struct _GKeyFileGroup -{ - const gchar *name; /* NULL for above first group (which will be comments) */ - - GKeyFileKeyValuePair *comment; /* Special comment that is stuck to the top of a group */ - - GList *key_value_pairs; - - /* Used in parallel with key_value_pairs for - * increased lookup performance - */ - GHashTable *lookup_map; -}; - -struct _GKeyFileKeyValuePair -{ - gchar *key; /* NULL for comments */ - gchar *value; -}; - -static gboolean g_key_file_load_from_fd (GKeyFile *key_file, - gint fd, - GKeyFileFlags flags, - GError **error); -static GList *g_key_file_lookup_group_node (GKeyFile *key_file, - const gchar *group_name); -static GKeyFileGroup *g_key_file_lookup_group (GKeyFile *key_file, - const gchar *group_name); - -static GList *g_key_file_lookup_key_value_pair_node (GKeyFile *key_file, - GKeyFileGroup *group, - const gchar *key); -static GKeyFileKeyValuePair *g_key_file_lookup_key_value_pair (GKeyFile *key_file, - GKeyFileGroup *group, - const gchar *key); - -static void g_key_file_remove_group_node (GKeyFile *key_file, - GList *group_node); -static void g_key_file_remove_key_value_pair_node (GKeyFile *key_file, - GKeyFileGroup *group, - GList *pair_node); - -static void g_key_file_add_key (GKeyFile *key_file, - GKeyFileGroup *group, - const gchar *key, - const gchar *value); -static void g_key_file_add_group (GKeyFile *key_file, - const gchar *group_name); -static gboolean g_key_file_is_group_name (const gchar *name); -static gboolean g_key_file_is_key_name (const gchar *name); -static void g_key_file_key_value_pair_free (GKeyFileKeyValuePair *pair); -static gboolean g_key_file_line_is_comment (const gchar *line); -static gboolean g_key_file_line_is_group (const gchar *line); -static gboolean g_key_file_line_is_key_value_pair (const gchar *line); -static gchar *g_key_file_parse_value_as_string (GKeyFile *key_file, - const gchar *value, - GSList **separators, - GError **error); -static gchar *g_key_file_parse_string_as_value (GKeyFile *key_file, - const gchar *string, - gboolean escape_separator); -static gint g_key_file_parse_value_as_integer (GKeyFile *key_file, - const gchar *value, - GError **error); -static gchar *g_key_file_parse_integer_as_value (GKeyFile *key_file, - gint value); -static gdouble g_key_file_parse_value_as_double (GKeyFile *key_file, - const gchar *value, - GError **error); -static gboolean g_key_file_parse_value_as_boolean (GKeyFile *key_file, - const gchar *value, - GError **error); -static gchar *g_key_file_parse_boolean_as_value (GKeyFile *key_file, - gboolean value); -static gchar *g_key_file_parse_value_as_comment (GKeyFile *key_file, - const gchar *value); -static gchar *g_key_file_parse_comment_as_value (GKeyFile *key_file, - const gchar *comment); -static void g_key_file_parse_key_value_pair (GKeyFile *key_file, - const gchar *line, - gsize length, - GError **error); -static void g_key_file_parse_comment (GKeyFile *key_file, - const gchar *line, - gsize length, - GError **error); -static void g_key_file_parse_group (GKeyFile *key_file, - const gchar *line, - gsize length, - GError **error); -static gchar *key_get_locale (const gchar *key); -static void g_key_file_parse_data (GKeyFile *key_file, - const gchar *data, - gsize length, - GError **error); -static void g_key_file_flush_parse_buffer (GKeyFile *key_file, - GError **error); - - -GQuark -g_key_file_error_quark (void) -{ - return g_quark_from_static_string ("g-key-file-error-quark"); -} - -static void -g_key_file_init (GKeyFile *key_file) -{ - key_file->current_group = g_new0 (GKeyFileGroup, 1); - key_file->groups = g_list_prepend (NULL, key_file->current_group); - key_file->start_group = NULL; - key_file->parse_buffer = g_string_sized_new (128); - key_file->approximate_size = 0; - key_file->list_separator = ';'; - key_file->flags = 0; -} - -static void -g_key_file_clear (GKeyFile *key_file) -{ - GList *tmp, *group_node; - - if (key_file->parse_buffer) - g_string_free (key_file->parse_buffer, TRUE); - - tmp = key_file->groups; - while (tmp != NULL) - { - group_node = tmp; - tmp = tmp->next; - g_key_file_remove_group_node (key_file, group_node); - } - - g_assert (key_file->groups == NULL); -} - - -/** - * g_key_file_new: - * - * Creates a new empty #GKeyFile object. Use g_key_file_load_from_file(), - * g_key_file_load_from_data() or g_key_file_load_from_data_dirs() to - * read an existing key file. - * - * Return value: an empty #GKeyFile. - * - * Since: 2.6 - **/ -GKeyFile * -g_key_file_new (void) -{ - GKeyFile *key_file; - - key_file = g_new0 (GKeyFile, 1); - g_key_file_init (key_file); - - return key_file; -} - -/** - * g_key_file_set_list_separator: - * @key_file: a #GKeyFile - * @separator: the separator - * - * Sets the character which is used to separate - * values in lists. Typically ';' or ',' are used - * as separators. The default list separator is ';'. - * - * Since: 2.6 - */ -void -g_key_file_set_list_separator (GKeyFile *key_file, - gchar separator) -{ - g_return_if_fail (key_file != NULL); - - key_file->list_separator = separator; -} - - -static gboolean -g_key_file_load_from_fd (GKeyFile *key_file, - gint fd, - GKeyFileFlags flags, - GError **error) -{ - GError *key_file_error = NULL; - gssize bytes_read; - struct stat stat_buf; - gchar read_buf[4096]; - - if (fstat (fd, &stat_buf) < 0) - { - g_set_error (error, G_FILE_ERROR, - g_file_error_from_errno (errno), - "%s", g_strerror (errno)); - return FALSE; - } - - if (!S_ISREG (stat_buf.st_mode)) - { - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_PARSE, - _("Not a regular file")); - return FALSE; - } - - if (stat_buf.st_size == 0) - { - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_PARSE, - _("File is empty")); - return FALSE; - } - - if (key_file->approximate_size > 0) - { - g_key_file_clear (key_file); - g_key_file_init (key_file); - } - key_file->flags = flags; - - bytes_read = 0; - do - { - bytes_read = read (fd, read_buf, 4096); - - if (bytes_read == 0) /* End of File */ - break; - - if (bytes_read < 0) - { - if (errno == EINTR || errno == EAGAIN) - continue; - - g_set_error (error, G_FILE_ERROR, - g_file_error_from_errno (errno), - "%s", g_strerror (errno)); - return FALSE; - } - - g_key_file_parse_data (key_file, - read_buf, bytes_read, - &key_file_error); - } - while (!key_file_error); - - if (key_file_error) - { - g_propagate_error (error, key_file_error); - return FALSE; - } - - g_key_file_flush_parse_buffer (key_file, &key_file_error); - - if (key_file_error) - { - g_propagate_error (error, key_file_error); - return FALSE; - } - - return TRUE; -} - -/** - * g_key_file_load_from_file: - * @key_file: an empty #GKeyFile struct - * @file: the path of a filename to load, in the GLib file name encoding - * @flags: flags from #GKeyFileFlags - * @error: return location for a #GError, or %NULL - * - * Loads a key file into an empty #GKeyFile structure. - * If the file could not be loaded then %error is set to - * either a #GFileError or #GKeyFileError. - * - * Return value: %TRUE if a key file could be loaded, %FALSE othewise - * Since: 2.6 - **/ -gboolean -g_key_file_load_from_file (GKeyFile *key_file, - const gchar *file, - GKeyFileFlags flags, - GError **error) -{ - GError *key_file_error = NULL; - gint fd; - - g_return_val_if_fail (key_file != NULL, FALSE); - g_return_val_if_fail (file != NULL, FALSE); - - fd = g_open (file, O_RDONLY, 0); - - if (fd < 0) - { - g_set_error (error, G_FILE_ERROR, - g_file_error_from_errno (errno), - "%s", g_strerror (errno)); - return FALSE; - } - - g_key_file_load_from_fd (key_file, fd, flags, &key_file_error); - close (fd); - - if (key_file_error) - { - g_propagate_error (error, key_file_error); - return FALSE; - } - - return TRUE; -} - -/** - * g_key_file_load_from_data: - * @key_file: an empty #GKeyFile struct - * @data: key file loaded in memory. - * @length: the length of @data in bytes - * @flags: flags from #GKeyFileFlags - * @error: return location for a #GError, or %NULL - * - * Loads a key file from memory into an empty #GKeyFile structure. If - * the object cannot be created then %error is set to a - * #GKeyFileError. - * - * Return value: %TRUE if a key file could be loaded, %FALSE othewise - * Since: 2.6 - **/ -gboolean -g_key_file_load_from_data (GKeyFile *key_file, - const gchar *data, - gsize length, - GKeyFileFlags flags, - GError **error) -{ - GError *key_file_error = NULL; - - g_return_val_if_fail (key_file != NULL, FALSE); - g_return_val_if_fail (data != NULL, FALSE); - g_return_val_if_fail (length != 0, FALSE); - - if (length == (gsize)-1) - length = strlen (data); - - if (key_file->approximate_size > 0) - { - g_key_file_clear (key_file); - g_key_file_init (key_file); - } - key_file->flags = flags; - - g_key_file_parse_data (key_file, data, length, &key_file_error); - - if (key_file_error) - { - g_propagate_error (error, key_file_error); - return FALSE; - } - - g_key_file_flush_parse_buffer (key_file, &key_file_error); - - if (key_file_error) - { - g_propagate_error (error, key_file_error); - return FALSE; - } - - return TRUE; -} - -/** - * g_key_file_free: - * @key_file: a #GKeyFile - * - * Frees a #GKeyFile. - * - * Since: 2.6 - **/ -void -g_key_file_free (GKeyFile *key_file) -{ - g_return_if_fail (key_file != NULL); - - g_key_file_clear (key_file); - g_free (key_file); -} - -/* If G_KEY_FILE_KEEP_TRANSLATIONS is not set, only returns - * true for locales that match those in g_get_language_names(). - */ -static gboolean -g_key_file_locale_is_interesting (GKeyFile *key_file, - const gchar *locale) -{ - if (key_file->flags & G_KEY_FILE_KEEP_TRANSLATIONS) - return TRUE; - - return FALSE; -} - -static gchar * -_g_utf8_make_valid (const gchar *name) -{ - GString *string; - const gchar *remainder, *invalid; - gint remaining_bytes, valid_bytes; - - string = NULL; - remainder = name; - remaining_bytes = strlen (name); - - while (remaining_bytes != 0) - { - if (g_utf8_validate (remainder, remaining_bytes, &invalid)) - break; - valid_bytes = invalid - remainder; - - if (string == NULL) - string = g_string_sized_new (remaining_bytes); - - g_string_append_len (string, remainder, valid_bytes); - /* append U+FFFD REPLACEMENT CHARACTER */ - g_string_append (string, "\357\277\275"); - - remaining_bytes -= valid_bytes + 1; - remainder = invalid + 1; - } - - if (string == NULL) - return g_strdup (name); - - g_string_append (string, remainder); - - g_assert (g_utf8_validate (string->str, -1, NULL)); - - return g_string_free (string, FALSE); -} - -static void -g_key_file_parse_line (GKeyFile *key_file, - const gchar *line, - gsize length, - GError **error) -{ - GError *parse_error = NULL; - gchar *line_start; - - g_return_if_fail (key_file != NULL); - g_return_if_fail (line != NULL); - - line_start = (gchar *) line; - while (g_ascii_isspace (*line_start)) - line_start++; - - if (g_key_file_line_is_comment (line_start)) - g_key_file_parse_comment (key_file, line, length, &parse_error); - else if (g_key_file_line_is_group (line_start)) - g_key_file_parse_group (key_file, line_start, - length - (line_start - line), - &parse_error); - else if (g_key_file_line_is_key_value_pair (line_start)) - g_key_file_parse_key_value_pair (key_file, line_start, - length - (line_start - line), - &parse_error); - else - { - gchar *line_utf8 = _g_utf8_make_valid (line); - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_PARSE, - _("Key file contains line '%s' which is not " - "a key-value pair, group, or comment"), - line_utf8); - g_free (line_utf8); - - return; - } - - if (parse_error) - g_propagate_error (error, parse_error); -} - -static void -g_key_file_parse_comment (GKeyFile *key_file, - const gchar *line, - gsize length, - GError **error) -{ - GKeyFileKeyValuePair *pair; - - if (!(key_file->flags & G_KEY_FILE_KEEP_COMMENTS)) - return; - - g_assert (key_file->current_group != NULL); - - pair = g_new0 (GKeyFileKeyValuePair, 1); - - pair->key = NULL; - pair->value = g_strndup (line, length); - - key_file->current_group->key_value_pairs = - g_list_prepend (key_file->current_group->key_value_pairs, pair); -} - -static void -g_key_file_parse_group (GKeyFile *key_file, - const gchar *line, - gsize length, - GError **error) -{ - gchar *group_name; - const gchar *group_name_start, *group_name_end; - - /* advance past opening '[' - */ - group_name_start = line + 1; - group_name_end = line + length - 1; - - while (*group_name_end != ']') - group_name_end--; - - group_name = g_strndup (group_name_start, - group_name_end - group_name_start); - - if (!g_key_file_is_group_name (group_name)) - { - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_PARSE, - _("Invalid group name: %s"), group_name); - g_free (group_name); - return; - } - - g_key_file_add_group (key_file, group_name); - g_free (group_name); -} - -static void -g_key_file_parse_key_value_pair (GKeyFile *key_file, - const gchar *line, - gsize length, - GError **error) -{ - gchar *key, *value, *key_end, *value_start, *locale; - gsize key_len, value_len; - - if (key_file->current_group == NULL || key_file->current_group->name == NULL) - { - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_GROUP_NOT_FOUND, - _("Key file does not start with a group")); - return; - } - - key_end = value_start = strchr (line, '='); - - g_assert (key_end != NULL); - - key_end--; - value_start++; - - /* Pull the key name from the line (chomping trailing whitespace) - */ - while (g_ascii_isspace (*key_end)) - key_end--; - - key_len = key_end - line + 2; - - g_assert (key_len <= length); - - key = g_strndup (line, key_len - 1); - - if (!g_key_file_is_key_name (key)) - { - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_PARSE, - _("Invalid key name: %s"), key); - g_free (key); - return; - } - - /* Pull the value from the line (chugging leading whitespace) - */ - while (g_ascii_isspace (*value_start)) - value_start++; - - value_len = line + length - value_start + 1; - - value = g_strndup (value_start, value_len); - - g_assert (key_file->start_group != NULL); - - if (key_file->current_group - && key_file->current_group->name - && strcmp (key_file->start_group->name, - key_file->current_group->name) == 0 - && strcmp (key, "Encoding") == 0) - { - if (g_ascii_strcasecmp (value, "UTF-8") != 0) - { - gchar *value_utf8 = _g_utf8_make_valid (value); - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_UNKNOWN_ENCODING, - _("Key file contains unsupported " - "encoding '%s'"), value_utf8); - g_free (value_utf8); - - g_free (key); - g_free (value); - return; - } - } - - /* Is this key a translation? If so, is it one that we care about? - */ - locale = key_get_locale (key); - - if (locale == NULL || g_key_file_locale_is_interesting (key_file, locale)) - g_key_file_add_key (key_file, key_file->current_group, key, value); - - g_free (locale); - g_free (key); - g_free (value); -} - -static gchar * -key_get_locale (const gchar *key) -{ - gchar *locale; - - locale = g_strrstr (key, "["); - - if (locale && strlen (locale) <= 2) - locale = NULL; - - if (locale) - locale = g_strndup (locale + 1, strlen (locale) - 2); - - return locale; -} - -static void -g_key_file_parse_data (GKeyFile *key_file, - const gchar *data, - gsize length, - GError **error) -{ - GError *parse_error; - gsize i; - - g_return_if_fail (key_file != NULL); - g_return_if_fail (data != NULL); - - parse_error = NULL; - - for (i = 0; i < length; i++) - { - if (data[i] == '\n') - { - if (i > 0 && data[i - 1] == '\r') - g_string_erase (key_file->parse_buffer, - key_file->parse_buffer->len - 1, - 1); - - /* When a newline is encountered flush the parse buffer so that the - * line can be parsed. Note that completely blank lines won't show - * up in the parse buffer, so they get parsed directly. - */ - if (key_file->parse_buffer->len > 0) - g_key_file_flush_parse_buffer (key_file, &parse_error); - else - g_key_file_parse_comment (key_file, "", 1, &parse_error); - - if (parse_error) - { - g_propagate_error (error, parse_error); - return; - } - } - else - g_string_append_c (key_file->parse_buffer, data[i]); - } - - key_file->approximate_size += length; -} - -static void -g_key_file_flush_parse_buffer (GKeyFile *key_file, - GError **error) -{ - GError *file_error = NULL; - - g_return_if_fail (key_file != NULL); - - file_error = NULL; - - if (key_file->parse_buffer->len > 0) - { - g_key_file_parse_line (key_file, key_file->parse_buffer->str, - key_file->parse_buffer->len, - &file_error); - g_string_erase (key_file->parse_buffer, 0, -1); - - if (file_error) - { - g_propagate_error (error, file_error); - return; - } - } -} - -/** - * g_key_file_to_data: - * @key_file: a #GKeyFile - * @length: return location for the length of the - * returned string, or %NULL - * @error: return location for a #GError, or %NULL - * - * This function outputs @key_file as a string. - * - * Return value: a newly allocated string holding - * the contents of the #GKeyFile - * - * Since: 2.6 - **/ -gchar * -g_key_file_to_data (GKeyFile *key_file, - gsize *length, - GError **error) -{ - GString *data_string; - GList *group_node, *key_file_node; - - g_return_val_if_fail (key_file != NULL, NULL); - - data_string = g_string_sized_new (2 * key_file->approximate_size); - - for (group_node = g_list_last (key_file->groups); - group_node != NULL; - group_node = group_node->prev) - { - GKeyFileGroup *group; - - group = (GKeyFileGroup *) group_node->data; - - if (group->comment != NULL) - g_string_append_printf (data_string, "%s\n", group->comment->value); - else if (group_node->next) /* separate groups by at least an empty line */ - g_string_append_c (data_string, '\n'); - - if (group->name != NULL) - g_string_append_printf (data_string, "[%s]\n", group->name); - - for (key_file_node = g_list_last (group->key_value_pairs); - key_file_node != NULL; - key_file_node = key_file_node->prev) - { - GKeyFileKeyValuePair *pair; - - pair = (GKeyFileKeyValuePair *) key_file_node->data; - - if (pair->key != NULL) - g_string_append_printf (data_string, "%s=%s\n", pair->key, pair->value); - else - g_string_append_printf (data_string, "%s\n", pair->value); - } - } - - if (length) - *length = data_string->len; - - return g_string_free (data_string, FALSE); -} - -/** - * g_key_file_get_keys: - * @key_file: a #GKeyFile - * @group_name: a group name - * @length: return location for the number of keys returned, or %NULL - * @error: return location for a #GError, or %NULL - * - * Returns all keys for the group name @group_name. The array of - * returned keys will be %NULL-terminated, so @length may - * optionally be %NULL. In the event that the @group_name cannot - * be found, %NULL is returned and @error is set to - * #G_KEY_FILE_ERROR_GROUP_NOT_FOUND. - * - * Return value: a newly-allocated %NULL-terminated array of - * strings. Use g_strfreev() to free it. - * - * Since: 2.6 - **/ -gchar ** -g_key_file_get_keys (GKeyFile *key_file, - const gchar *group_name, - gsize *length, - GError **error) -{ - GKeyFileGroup *group; - GList *tmp; - gchar **keys; - gsize i, num_keys; - - g_return_val_if_fail (key_file != NULL, NULL); - g_return_val_if_fail (group_name != NULL, NULL); - - group = g_key_file_lookup_group (key_file, group_name); - - if (!group) - { - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_GROUP_NOT_FOUND, - _("Key file does not have group '%s'"), - group_name ? group_name : "(null)"); - return NULL; - } - - num_keys = 0; - for (tmp = group->key_value_pairs; tmp; tmp = tmp->next) - { - GKeyFileKeyValuePair *pair; - - pair = (GKeyFileKeyValuePair *) tmp->data; - - if (pair->key) - num_keys++; - } - - keys = g_new0 (gchar *, num_keys + 1); - - i = num_keys - 1; - for (tmp = group->key_value_pairs; tmp; tmp = tmp->next) - { - GKeyFileKeyValuePair *pair; - - pair = (GKeyFileKeyValuePair *) tmp->data; - - if (pair->key) - { - keys[i] = g_strdup (pair->key); - i--; - } - } - - keys[num_keys] = NULL; - - if (length) - *length = num_keys; - - return keys; -} - -/** - * g_key_file_get_start_group: - * @key_file: a #GKeyFile - * - * Returns the name of the start group of the file. - * - * Return value: The start group of the key file. - * - * Since: 2.6 - **/ -gchar * -g_key_file_get_start_group (GKeyFile *key_file) -{ - g_return_val_if_fail (key_file != NULL, NULL); - - if (key_file->start_group) - return g_strdup (key_file->start_group->name); - - return NULL; -} - -/** - * g_key_file_get_groups: - * @key_file: a #GKeyFile - * @length: return location for the number of returned groups, or %NULL - * - * Returns all groups in the key file loaded with @key_file. The - * array of returned groups will be %NULL-terminated, so @length may - * optionally be %NULL. - * - * Return value: a newly-allocated %NULL-terminated array of strings. - * Use g_strfreev() to free it. - * Since: 2.6 - **/ -gchar ** -g_key_file_get_groups (GKeyFile *key_file, - gsize *length) -{ - GList *group_node; - gchar **groups; - gsize i, num_groups; - - g_return_val_if_fail (key_file != NULL, NULL); - - num_groups = g_list_length (key_file->groups); - - g_assert (num_groups > 0); - - /* Only need num_groups instead of num_groups + 1 - * because the first group of the file (last in the - * list) is always the comment group at the top, - * which we skip - */ - groups = g_new0 (gchar *, num_groups); - - group_node = g_list_last (key_file->groups); - - g_assert (((GKeyFileGroup *) group_node->data)->name == NULL); - - i = 0; - for (group_node = group_node->prev; - group_node != NULL; - group_node = group_node->prev) - { - GKeyFileGroup *group; - - group = (GKeyFileGroup *) group_node->data; - - g_assert (group->name != NULL); - - groups[i++] = g_strdup (group->name); - } - groups[i] = NULL; - - if (length) - *length = i; - - return groups; -} - -/** - * g_key_file_get_value: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @error: return location for a #GError, or %NULL - * - * Returns the value associated with @key under @group_name. - * - * In the event the key cannot be found, %NULL is returned and - * @error is set to #G_KEY_FILE_ERROR_KEY_NOT_FOUND. In the - * event that the @group_name cannot be found, %NULL is returned - * and @error is set to #G_KEY_FILE_ERROR_GROUP_NOT_FOUND. - * - * Return value: a newly allocated string or %NULL if the specified - * key cannot be found. - * - * Since: 2.6 - **/ -gchar * -g_key_file_get_value (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - GError **error) -{ - GKeyFileGroup *group; - GKeyFileKeyValuePair *pair; - gchar *value = NULL; - - g_return_val_if_fail (key_file != NULL, NULL); - g_return_val_if_fail (group_name != NULL, NULL); - g_return_val_if_fail (key != NULL, NULL); - - group = g_key_file_lookup_group (key_file, group_name); - - if (!group) - { - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_GROUP_NOT_FOUND, - _("Key file does not have group '%s'"), - group_name ? group_name : "(null)"); - return NULL; - } - - pair = g_key_file_lookup_key_value_pair (key_file, group, key); - - if (pair) - value = g_strdup (pair->value); - else - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_KEY_NOT_FOUND, - _("Key file does not have key '%s'"), key); - - return value; -} - -/** - * g_key_file_set_value: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @value: a string - * - * Associates a new value with @key under @group_name. If @key - * cannot be found then it is created. If @group_name cannot be - * found then it is created. - * - * Since: 2.6 - **/ -void -g_key_file_set_value (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - const gchar *value) -{ - GKeyFileGroup *group; - GKeyFileKeyValuePair *pair; - - g_return_if_fail (key_file != NULL); - g_return_if_fail (g_key_file_is_group_name (group_name)); - g_return_if_fail (g_key_file_is_key_name (key)); - g_return_if_fail (value != NULL); - - group = g_key_file_lookup_group (key_file, group_name); - - if (!group) - { - g_key_file_add_group (key_file, group_name); - group = (GKeyFileGroup *) key_file->groups->data; - - g_key_file_add_key (key_file, group, key, value); - } - else - { - pair = g_key_file_lookup_key_value_pair (key_file, group, key); - - if (!pair) - g_key_file_add_key (key_file, group, key, value); - else - { - g_free (pair->value); - pair->value = g_strdup (value); - } - } -} - -/** - * g_key_file_get_string: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @error: return location for a #GError, or %NULL - * - * Returns the value associated with @key under @group_name. - * - * In the event the key cannot be found, %NULL is returned and - * @error is set to #G_KEY_FILE_ERROR_KEY_NOT_FOUND. In the - * event that the @group_name cannot be found, %NULL is returned - * and @error is set to #G_KEY_FILE_ERROR_GROUP_NOT_FOUND. - * - * Return value: a newly allocated string or %NULL if the specified - * key cannot be found. - * - * Since: 2.6 - **/ -gchar * -g_key_file_get_string (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - GError **error) -{ - gchar *value, *string_value; - GError *key_file_error; - - g_return_val_if_fail (key_file != NULL, NULL); - g_return_val_if_fail (group_name != NULL, NULL); - g_return_val_if_fail (key != NULL, NULL); - - key_file_error = NULL; - - value = g_key_file_get_value (key_file, group_name, key, &key_file_error); - - if (key_file_error) - { - g_propagate_error (error, key_file_error); - return NULL; - } - - if (!g_utf8_validate (value, -1, NULL)) - { - gchar *value_utf8 = _g_utf8_make_valid (value); - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_UNKNOWN_ENCODING, - _("Key file contains key '%s' with value '%s' " - "which is not UTF-8"), key, value_utf8); - g_free (value_utf8); - g_free (value); - - return NULL; - } - - string_value = g_key_file_parse_value_as_string (key_file, value, NULL, - &key_file_error); - g_free (value); - - if (key_file_error) - { - if (g_error_matches (key_file_error, - G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_INVALID_VALUE)) - { - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_INVALID_VALUE, - _("Key file contains key '%s' " - "which has value that cannot be interpreted."), - key); - g_error_free (key_file_error); - } - else - g_propagate_error (error, key_file_error); - } - - return string_value; -} - -/** - * g_key_file_set_string: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @string: a string - * - * Associates a new string value with @key under @group_name. If - * @key cannot be found then it is created. If @group_name - * cannot be found then it is created. - * - * Since: 2.6 - **/ -void -g_key_file_set_string (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - const gchar *string) -{ - gchar *value; - - g_return_if_fail (key_file != NULL); - g_return_if_fail (string != NULL); - - value = g_key_file_parse_string_as_value (key_file, string, FALSE); - g_key_file_set_value (key_file, group_name, key, value); - g_free (value); -} - -/** - * g_key_file_get_string_list: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @length: return location for the number of returned strings, or %NULL - * @error: return location for a #GError, or %NULL - * - * Returns the values associated with @key under @group_name. - * - * In the event the key cannot be found, %NULL is returned and - * @error is set to #G_KEY_FILE_ERROR_KEY_NOT_FOUND. In the - * event that the @group_name cannot be found, %NULL is returned - * and @error is set to #G_KEY_FILE_ERROR_GROUP_NOT_FOUND. - * - * Return value: a %NULL-terminated string array or %NULL if the specified - * key cannot be found. The array should be freed with g_strfreev(). - * - * Since: 2.6 - **/ -gchar ** -g_key_file_get_string_list (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - gsize *length, - GError **error) -{ - GError *key_file_error = NULL; - gchar *value, *string_value, **values; - gint i, len; - GSList *p, *pieces = NULL; - - g_return_val_if_fail (key_file != NULL, NULL); - g_return_val_if_fail (group_name != NULL, NULL); - g_return_val_if_fail (key != NULL, NULL); - - value = g_key_file_get_value (key_file, group_name, key, &key_file_error); - - if (key_file_error) - { - g_propagate_error (error, key_file_error); - return NULL; - } - - if (!g_utf8_validate (value, -1, NULL)) - { - gchar *value_utf8 = _g_utf8_make_valid (value); - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_UNKNOWN_ENCODING, - _("Key file contains key '%s' with value '%s' " - "which is not UTF-8"), key, value_utf8); - g_free (value_utf8); - g_free (value); - - return NULL; - } - - string_value = g_key_file_parse_value_as_string (key_file, value, &pieces, &key_file_error); - g_free (value); - g_free (string_value); - - if (key_file_error) - { - if (g_error_matches (key_file_error, - G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_INVALID_VALUE)) - { - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_INVALID_VALUE, - _("Key file contains key '%s' " - "which has value that cannot be interpreted."), - key); - g_error_free (key_file_error); - } - else - g_propagate_error (error, key_file_error); - } - - len = g_slist_length (pieces); - values = g_new0 (gchar *, len + 1); - for (p = pieces, i = 0; p; p = p->next) - values[i++] = p->data; - values[len] = NULL; - - g_slist_free (pieces); - - if (length) - *length = len; - - return values; -} - -/** - * g_key_file_set_string_list: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @list: an array of locale string values - * @length: number of locale string values in @list - * - * Associates a list of string values for @key under @group_name. - * If @key cannot be found then it is created. If @group_name - * cannot be found then it is created. - * - * Since: 2.6 - **/ -void -g_key_file_set_string_list (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - const gchar * const list[], - gsize length) -{ - GString *value_list; - gsize i; - - g_return_if_fail (key_file != NULL); - g_return_if_fail (list != NULL); - - value_list = g_string_sized_new (length * 128); - for (i = 0; i < length && list[i] != NULL; i++) - { - gchar *value; - - value = g_key_file_parse_string_as_value (key_file, list[i], TRUE); - g_string_append (value_list, value); - g_string_append_c (value_list, key_file->list_separator); - - g_free (value); - } - - g_key_file_set_value (key_file, group_name, key, value_list->str); - g_string_free (value_list, TRUE); -} - -/** - * g_key_file_set_locale_string: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @locale: a locale - * @string: a string - * - * Associates a string value for @key and @locale under - * @group_name. If the translation for @key cannot be found - * then it is created. - * - * Since: 2.6 - **/ -void -g_key_file_set_locale_string (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - const gchar *locale, - const gchar *string) -{ - gchar *full_key, *value; - - g_return_if_fail (key_file != NULL); - g_return_if_fail (key != NULL); - g_return_if_fail (locale != NULL); - g_return_if_fail (string != NULL); - - value = g_key_file_parse_string_as_value (key_file, string, FALSE); - full_key = g_strdup_printf ("%s[%s]", key, locale); - g_key_file_set_value (key_file, group_name, full_key, value); - g_free (full_key); - g_free (value); -} - -extern GSList *_g_compute_locale_variants (const gchar *locale); - -/** - * g_key_file_set_locale_string_list: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @locale: a locale - * @list: a %NULL-terminated array of locale string values - * @length: the length of @list - * - * Associates a list of string values for @key and @locale under - * @group_name. If the translation for @key cannot be found then - * it is created. - * - * Since: 2.6 - **/ -void -g_key_file_set_locale_string_list (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - const gchar *locale, - const gchar * const list[], - gsize length) -{ - GString *value_list; - gchar *full_key; - gsize i; - - g_return_if_fail (key_file != NULL); - g_return_if_fail (key != NULL); - g_return_if_fail (locale != NULL); - g_return_if_fail (length != 0); - - value_list = g_string_sized_new (length * 128); - for (i = 0; i < length && list[i] != NULL; i++) - { - gchar *value; - - value = g_key_file_parse_string_as_value (key_file, list[i], TRUE); - - g_string_append (value_list, value); - g_string_append_c (value_list, ';'); - - g_free (value); - } - - full_key = g_strdup_printf ("%s[%s]", key, locale); - g_key_file_set_value (key_file, group_name, full_key, value_list->str); - g_free (full_key); - g_string_free (value_list, TRUE); -} - -/** - * g_key_file_get_boolean: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @error: return location for a #GError - * - * Returns the value associated with @key under @group_name as a - * boolean. - * - * If @key cannot be found then the return value is undefined and - * @error is set to #G_KEY_FILE_ERROR_KEY_NOT_FOUND. Likewise, if - * the value associated with @key cannot be interpreted as a boolean - * then the return value is also undefined and @error is set to - * #G_KEY_FILE_ERROR_INVALID_VALUE. - * - * Return value: the value associated with the key as a boolean - * Since: 2.6 - **/ -gboolean -g_key_file_get_boolean (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - GError **error) -{ - GError *key_file_error = NULL; - gchar *value; - gboolean bool_value; - - g_return_val_if_fail (key_file != NULL, FALSE); - g_return_val_if_fail (group_name != NULL, FALSE); - g_return_val_if_fail (key != NULL, FALSE); - - value = g_key_file_get_value (key_file, group_name, key, &key_file_error); - - if (!value) - { - g_propagate_error (error, key_file_error); - return FALSE; - } - - bool_value = g_key_file_parse_value_as_boolean (key_file, value, - &key_file_error); - g_free (value); - - if (key_file_error) - { - if (g_error_matches (key_file_error, - G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_INVALID_VALUE)) - { - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_INVALID_VALUE, - _("Key file contains key '%s' " - "which has value that cannot be interpreted."), - key); - g_error_free (key_file_error); - } - else - g_propagate_error (error, key_file_error); - } - - return bool_value; -} - -/** - * g_key_file_set_boolean: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @value: %TRUE or %FALSE - * - * Associates a new boolean value with @key under @group_name. - * If @key cannot be found then it is created. - * - * Since: 2.6 - **/ -void -g_key_file_set_boolean (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - gboolean value) -{ - gchar *result; - - g_return_if_fail (key_file != NULL); - - result = g_key_file_parse_boolean_as_value (key_file, value); - g_key_file_set_value (key_file, group_name, key, result); - g_free (result); -} - -/** - * g_key_file_get_boolean_list: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @length: the number of booleans returned - * @error: return location for a #GError - * - * Returns the values associated with @key under @group_name as - * booleans. If @group_name is %NULL, the start_group is used. - * - * If @key cannot be found then the return value is undefined and - * @error is set to #G_KEY_FILE_ERROR_KEY_NOT_FOUND. Likewise, if - * the values associated with @key cannot be interpreted as booleans - * then the return value is also undefined and @error is set to - * #G_KEY_FILE_ERROR_INVALID_VALUE. - * - * Return value: the values associated with the key as a boolean - * - * Since: 2.6 - **/ -gboolean * -g_key_file_get_boolean_list (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - gsize *length, - GError **error) -{ - GError *key_file_error; - gchar **values; - gboolean *bool_values; - gsize i, num_bools; - - g_return_val_if_fail (key_file != NULL, NULL); - g_return_val_if_fail (group_name != NULL, NULL); - g_return_val_if_fail (key != NULL, NULL); - - key_file_error = NULL; - - values = g_key_file_get_string_list (key_file, group_name, key, - &num_bools, &key_file_error); - - if (key_file_error) - g_propagate_error (error, key_file_error); - - if (!values) - return NULL; - - bool_values = g_new0 (gboolean, num_bools); - - for (i = 0; i < num_bools; i++) - { - bool_values[i] = g_key_file_parse_value_as_boolean (key_file, - values[i], - &key_file_error); - - if (key_file_error) - { - g_propagate_error (error, key_file_error); - g_strfreev (values); - g_free (bool_values); - - return NULL; - } - } - g_strfreev (values); - - if (length) - *length = num_bools; - - return bool_values; -} - -/** - * g_key_file_set_boolean_list: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @list: an array of boolean values - * @length: length of @list - * - * Associates a list of boolean values with @key under - * @group_name. If @key cannot be found then it is created. - * If @group_name is %NULL, the start_group is used. - * - * Since: 2.6 - **/ -void -g_key_file_set_boolean_list (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - gboolean list[], - gsize length) -{ - GString *value_list; - gsize i; - - g_return_if_fail (key_file != NULL); - g_return_if_fail (list != NULL); - - value_list = g_string_sized_new (length * 8); - for (i = 0; i < length; i++) - { - gchar *value; - - value = g_key_file_parse_boolean_as_value (key_file, list[i]); - - g_string_append (value_list, value); - g_string_append_c (value_list, key_file->list_separator); - - g_free (value); - } - - g_key_file_set_value (key_file, group_name, key, value_list->str); - g_string_free (value_list, TRUE); -} - -/** - * g_key_file_get_integer: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @error: return location for a #GError - * - * Returns the value associated with @key under @group_name as an - * integer. If @group_name is %NULL, the start_group is used. - * - * If @key cannot be found then the return value is undefined and - * @error is set to #G_KEY_FILE_ERROR_KEY_NOT_FOUND. Likewise, if - * the value associated with @key cannot be interpreted as an integer - * then the return value is also undefined and @error is set to - * #G_KEY_FILE_ERROR_INVALID_VALUE. - * - * Return value: the value associated with the key as an integer. - * - * Since: 2.6 - **/ -gint -g_key_file_get_integer (GKeyFile *key_file, - const gchar *group_name, - const gchar ... [truncated message content] |
From: <ik...@us...> - 2007-11-09 03:40:58
|
Revision: 1577 http://tomoe.svn.sourceforge.net/tomoe/?rev=1577&view=rev Author: ikezoe Date: 2007-11-08 19:41:02 -0800 (Thu, 08 Nov 2007) Log Message: ----------- 2007-11-09 Hiroyuki Ikezoe <poi...@ik...> * configure.ac: Define GLIB_REQUIRED. * tomoe.pc.in: Use GLIB_REQUIRED. Modified Paths: -------------- tomoe/trunk/ChangeLog tomoe/trunk/configure.ac tomoe/trunk/tomoe.pc.in Modified: tomoe/trunk/ChangeLog =================================================================== --- tomoe/trunk/ChangeLog 2007-11-01 00:17:44 UTC (rev 1576) +++ tomoe/trunk/ChangeLog 2007-11-09 03:41:02 UTC (rev 1577) @@ -1,3 +1,8 @@ +2007-11-09 Hiroyuki Ikezoe <poi...@ik...> + + * configure.ac: Define GLIB_REQUIRED. + * tomoe.pc.in: Use GLIB_REQUIRED. + 2007-10-18 Kouhei Sutou <ko...@co...> * module/dict/Makefile.am, module/dict/unihan-compiler.rb, Modified: tomoe/trunk/configure.ac =================================================================== --- tomoe/trunk/configure.ac 2007-11-01 00:17:44 UTC (rev 1576) +++ tomoe/trunk/configure.ac 2007-11-09 03:41:02 UTC (rev 1577) @@ -146,7 +146,9 @@ dnl ************************************************************** dnl Check for GLib. dnl ************************************************************** -AM_PATH_GLIB_2_0(2.4.0, [], [], [gmodule gobject]) +GLIB_REQUIRED=2.4.0 +AC_SUBST(GLIB_REQUIRED) +AM_PATH_GLIB_2_0($GLIB_REQUIRED, [], [], [gmodule gobject]) dnl ************************************************************** dnl Check for Hyper Estraier. Modified: tomoe/trunk/tomoe.pc.in =================================================================== --- tomoe/trunk/tomoe.pc.in 2007-11-01 00:17:44 UTC (rev 1576) +++ tomoe/trunk/tomoe.pc.in 2007-11-09 03:41:02 UTC (rev 1577) @@ -8,6 +8,6 @@ Name: Tomoe Description: Tegaki Online MOji-ninshiki Engine Version: @VERSION@ -Requires: glib-2.0 >= 2.4 +Requires: glib-2.0 >= @GLIB_REQUIRED@ Libs: -L${libdir} -ltomoe Cflags: -I${includedir}/tomoe This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ik...@us...> - 2007-11-01 00:17:44
|
Revision: 1576 http://tomoe.svn.sourceforge.net/tomoe/?rev=1576&view=rev Author: ikezoe Date: 2007-10-31 17:17:44 -0700 (Wed, 31 Oct 2007) Log Message: ----------- cosmetic fix. Modified Paths: -------------- tomoe/trunk/lib/tomoe-config.c Modified: tomoe/trunk/lib/tomoe-config.c =================================================================== --- tomoe/trunk/lib/tomoe-config.c 2007-10-18 12:36:46 UTC (rev 1575) +++ tomoe/trunk/lib/tomoe-config.c 2007-11-01 00:17:44 UTC (rev 1576) @@ -124,7 +124,6 @@ static GObject * constructor (GType type, guint n_props, GObjectConstructParam *props) { - GObject *object; GObjectClass *klass = G_OBJECT_CLASS (tomoe_config_parent_class); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kt...@us...> - 2007-10-18 12:36:42
|
Revision: 1575 http://tomoe.svn.sourceforge.net/tomoe/?rev=1575&view=rev Author: ktou Date: 2007-10-18 05:36:46 -0700 (Thu, 18 Oct 2007) Log Message: ----------- * included tomoe-unihan-data-stamp to distributed files. Modified Paths: -------------- tomoe/trunk/module/dict/Makefile.am Modified: tomoe/trunk/module/dict/Makefile.am =================================================================== --- tomoe/trunk/module/dict/Makefile.am 2007-10-18 12:33:59 UTC (rev 1574) +++ tomoe/trunk/module/dict/Makefile.am 2007-10-18 12:36:46 UTC (rev 1575) @@ -87,7 +87,8 @@ DISTCLEANFILES = Unihan.zip BUILT_SOURCES = $(unihan_built_sources) -EXTRA_DIST = unihan-compiler.rb download.rb $(BUILT_SOURCES) Unihan.stamp +EXTRA_DIST = unihan-compiler.rb download.rb $(BUILT_SOURCES) \ + Unihan.stamp tomoe-unihan-data-stamp unihan_la_CPPFLAGS = -DG_LOG_DOMAIN=\"Tomoe/Dict:Unihan\" $(AM_CPPFLAGS) unihan_la_SOURCES = \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kt...@us...> - 2007-10-18 12:34:05
|
Revision: 1574 http://tomoe.svn.sourceforge.net/tomoe/?rev=1574&view=rev Author: ktou Date: 2007-10-18 05:33:59 -0700 (Thu, 18 Oct 2007) Log Message: ----------- * module/dict/Makefile.am, module/dict/unihan-compiler.rb, module/dict/tomoe-unihan.c: supported divided unihan dictionary backend compile. Modified Paths: -------------- tomoe/trunk/ChangeLog tomoe/trunk/module/dict/Makefile.am tomoe/trunk/module/dict/tomoe-unihan-data.h tomoe/trunk/module/dict/tomoe-unihan.c tomoe/trunk/module/dict/unihan-compiler.rb Property Changed: ---------------- tomoe/trunk/module/dict/ Modified: tomoe/trunk/ChangeLog =================================================================== --- tomoe/trunk/ChangeLog 2007-10-16 14:18:51 UTC (rev 1573) +++ tomoe/trunk/ChangeLog 2007-10-18 12:33:59 UTC (rev 1574) @@ -1,3 +1,9 @@ +2007-10-18 Kouhei Sutou <ko...@co...> + + * module/dict/Makefile.am, module/dict/unihan-compiler.rb, + module/dict/tomoe-unihan.c: supported divided unihan dictionary + backend compile. + 2007-10-16 Kouhei Sutou <ko...@co...> * configure.ac, data/kanjidic2xml.rb, data/Makefile.am: added Property changes on: tomoe/trunk/module/dict ___________________________________________________________________ Name: svn:ignore - .deps .libs Makefile Makefile.in *.lo *.la tomoe-unihan-data.h Unihan.stamp Unihan.txt Unihan.txt.cache Unihan.zip + .deps .libs Makefile Makefile.in *.lo *.la tomoe-unihan-data-stamp tomoe-unihan-data*.c Unihan.stamp Unihan.txt Unihan.txt.cache Unihan.zip Modified: tomoe/trunk/module/dict/Makefile.am =================================================================== --- tomoe/trunk/module/dict/Makefile.am 2007-10-16 14:18:51 UTC (rev 1573) +++ tomoe/trunk/module/dict/Makefile.am 2007-10-18 12:33:59 UTC (rev 1574) @@ -70,10 +70,20 @@ if USE_UNIHAN dict_module_LTLIBRARIES += unihan.la -unihan_built_sources = tomoe-unihan-data.h +unihan_built_sources = \ + tomoe-unihan-data0.c \ + tomoe-unihan-data1.c \ + tomoe-unihan-data2.c \ + tomoe-unihan-data3.c \ + tomoe-unihan-data4.c \ + tomoe-unihan-data5.c \ + tomoe-unihan-data6.c \ + tomoe-unihan-data7.c \ + tomoe-unihan-data8.c \ + tomoe-unihan-data9.c CLEANFILES += Unihan.txt.cache -MAINTAINERCLEANFILES = Unihan.stamp Unihan.txt +MAINTAINERCLEANFILES = Unihan.stamp Unihan.txt tomoe-unihan-data-stamp DISTCLEANFILES = Unihan.zip BUILT_SOURCES = $(unihan_built_sources) @@ -84,20 +94,33 @@ tomoe-dict-unihan.c \ tomoe-unihan.c \ tomoe-unihan.h \ + tomoe-unihan-data.h \ $(unihan_built_sources) -unihan_la_LIBADD = $(LIBADD) +unihan_la_LIBADD = $(LIBADD) unihan-compiler.rb: xml.la $(top_builddir)/data/kanjidic2.xml: cd $(top_builddir)/data && $(MAKE) $(AM_MAKEFLAGS) kanjidic2.xml -tomoe-unihan-data.h: unihan-compiler.rb Unihan.stamp $(top_builddir)/data/kanjidic2.xml +tomoe-unihan-data-stamp: unihan-compiler.rb Unihan.stamp $(top_builddir)/data/kanjidic2.xml $(RUBY) -I$(top_srcdir)/bindings/ruby -I$(top_builddir)/bindings/ruby/.libs \ -I$(top_srcdir)/test unihan-compiler.rb \ - Unihan.txt $(top_builddir)/data/kanjidic2.xml > $@.tmp || exit 1; - mv $@.tmp $@ + Unihan.txt $(top_builddir)/data/kanjidic2.xml \ + tomoe-unihan-data%d.c 10 && \ + touch $@ +tomoe-unihan-data0.c: tomoe-unihan-data-stamp +tomoe-unihan-data1.c: tomoe-unihan-data-stamp +tomoe-unihan-data2.c: tomoe-unihan-data-stamp +tomoe-unihan-data3.c: tomoe-unihan-data-stamp +tomoe-unihan-data4.c: tomoe-unihan-data-stamp +tomoe-unihan-data5.c: tomoe-unihan-data-stamp +tomoe-unihan-data6.c: tomoe-unihan-data-stamp +tomoe-unihan-data7.c: tomoe-unihan-data-stamp +tomoe-unihan-data8.c: tomoe-unihan-data-stamp +tomoe-unihan-data9.c: tomoe-unihan-data-stamp + Unihan_URL = ftp://ftp.unicode.org/Public/UNIDATA/Unihan.zip Unihan.stamp: if test ! -f Unihan.txt; then \ Modified: tomoe/trunk/module/dict/tomoe-unihan-data.h =================================================================== --- tomoe/trunk/module/dict/tomoe-unihan-data.h 2007-10-16 14:18:51 UTC (rev 1573) +++ tomoe/trunk/module/dict/tomoe-unihan-data.h 2007-10-18 12:33:59 UTC (rev 1574) @@ -1,15 +1,34 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* - DO NOT EDIT! - THIS FILE IS GENERATED FROM Unihan.txt: - ftp://ftp.unicode.org/Public/UNIDATA/Unihan.zip -*/ + * Copyright (C) 2007 Kouhei Sutou <ko...@co...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA + * + * $Id: tomoe-unihan.h 1490 2007-06-16 10:21:33Z ikezoe $ + */ +#ifndef __TOMOE_UNIHAN_DATA_H__ +#define __TOMOE_UNIHAN_DATA_H__ #include "tomoe-unihan.h" #include <tomoe-char.h> +G_BEGIN_DECLS + typedef struct _TomoeUnihanReading TomoeUnihanReading; typedef struct _TomoeUnihanMetaData TomoeUnihanMetaData; typedef struct _TomoeUnihanInfo TomoeUnihanInfo; @@ -37,362967 +56,31 @@ gint meta_data_size; }; -static TomoeUnihanReading tomoe_unihan_readings_2000B[] = { - {TOMOE_READING_JA_ON, "ジョウ"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2000B[] = { - {"jis213", "1-14-2"}, - {"ucs", "2000B"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_20089[] = { - {"jis213", "2-1-1"}, - {"ucs", "20089"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_200A2[] = { - {"jis213", "2-1-11"}, - {"ucs", "200A2"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_200A4[] = { - {"jis213", "2-1-14"}, - {"ucs", "200A4"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_201A2[] = { - {"jis213", "2-1-22"}, - {"ucs", "201A2"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_20213[] = { - {"jis213", "2-1-38"}, - {"ucs", "20213"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2032B[] = { - {"jis213", "2-1-80"}, - {"ucs", "2032B"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_20371[] = { - {"jis213", "2-1-89"}, - {"ucs", "20371"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_20381[] = { - {"jis213", "2-1-87"}, - {"ucs", "20381"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_203F9[] = { - {"jis213", "2-3-2"}, - {"ucs", "203F9"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2044A[] = { - {"jis213", "2-3-5"}, - {"ucs", "2044A"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_20509[] = { - {"jis213", "2-3-7"}, - {"ucs", "20509"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_205D6[] = { - {"jis213", "2-3-17"}, - {"ucs", "205D6"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_20628[] = { - {"jis213", "2-3-18"}, - {"ucs", "20628"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2074F[] = { - {"jis213", "2-3-24"}, - {"ucs", "2074F"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_20807[] = { - {"jis213", "2-3-31"}, - {"ucs", "20807"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2083A[] = { - {"jis213", "2-3-33"}, - {"ucs", "2083A"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_208B9[] = { - {"jis213", "2-3-42"}, - {"ucs", "208B9"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2097C[] = { - {"jis213", "2-3-50"}, - {"ucs", "2097C"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2099D[] = { - {"jis213", "2-3-51"}, - {"ucs", "2099D"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_20AD3[] = { - {"jis213", "2-3-57"}, - {"ucs", "20AD3"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_20B1D[] = { - {"jis213", "2-3-60"}, - {"ucs", "20B1D"}, -}; -static TomoeUnihanReading tomoe_unihan_readings_20BEE[] = { - {TOMOE_READING_JA_KUN, "しな"}, - {TOMOE_READING_JA_ON, "ヒン"}, - {TOMOE_READING_JA_ON, "ホン"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_20D45[] = { - {"jis213", "2-3-87"}, - {"ucs", "20D45"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_20DE1[] = { - {"jis213", "2-4-10"}, - {"ucs", "20DE1"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_20E64[] = { - {"jis213", "2-4-26"}, - {"ucs", "20E64"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_20E6D[] = { - {"jis213", "2-4-18"}, - {"ucs", "20E6D"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_20E95[] = { - {"jis213", "2-4-17"}, - {"ucs", "20E95"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_20F5F[] = { - {"jis213", "2-4-29"}, - {"ucs", "20F5F"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_21201[] = { - {"jis213", "2-4-57"}, - {"ucs", "21201"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2123D[] = { - {"jis213", "1-15-34"}, - {"ucs", "2123D"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_21255[] = { - {"jis213", "2-4-60"}, - {"ucs", "21255"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_21274[] = { - {"jis213", "2-4-67"}, - {"ucs", "21274"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2127B[] = { - {"jis213", "2-4-62"}, - {"ucs", "2127B"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_212D7[] = { - {"jis213", "2-4-75"}, - {"ucs", "212D7"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_212E4[] = { - {"jis213", "2-4-74"}, - {"ucs", "212E4"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_212FD[] = { - {"jis213", "2-4-82"}, - {"ucs", "212FD"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2131B[] = { - {"jis213", "1-15-44"}, - {"ucs", "2131B"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_21336[] = { - {"jis213", "2-4-84"}, - {"ucs", "21336"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_21344[] = { - {"jis213", "2-4-85"}, - {"ucs", "21344"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_213C4[] = { - {"jis213", "2-5-5"}, - {"ucs", "213C4"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2146D[] = { - {"jis213", "2-5-18"}, - {"ucs", "2146D"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2146E[] = { - {"jis213", "1-15-64"}, - {"ucs", "2146E"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_215D7[] = { - {"jis213", "2-5-30"}, - {"ucs", "215D7"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_21647[] = { - {"jis213", "2-5-39"}, - {"ucs", "21647"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_216B4[] = { - {"jis213", "1-47-67"}, - {"ucs", "216B4"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_21706[] = { - {"jis213", "2-5-53"}, - {"ucs", "21706"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_21742[] = { - {"jis213", "2-5-54"}, - {"ucs", "21742"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_218BD[] = { - {"jis213", "1-15-91"}, - {"ucs", "218BD"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_219C3[] = { - {"jis213", "2-5-94"}, - {"ucs", "219C3"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_21C56[] = { - {"jis213", "2-8-16"}, - {"ucs", "21C56"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_21D2D[] = { - {"jis213", "2-8-23"}, - {"ucs", "21D2D"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_21D45[] = { - {"jis213", "2-8-24"}, - {"ucs", "21D45"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_21D62[] = { - {"jis213", "2-8-27"}, - {"ucs", "21D62"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_21D78[] = { - {"jis213", "2-8-26"}, - {"ucs", "21D78"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_21D92[] = { - {"jis213", "2-8-37"}, - {"ucs", "21D92"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_21D9C[] = { - {"jis213", "2-8-32"}, - {"ucs", "21D9C"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_21DA1[] = { - {"jis213", "2-8-31"}, - {"ucs", "21DA1"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_21DB7[] = { - {"jis213", "2-8-40"}, - {"ucs", "21DB7"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_21DE0[] = { - {"jis213", "2-8-42"}, - {"ucs", "21DE0"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_21E33[] = { - {"jis213", "2-8-43"}, - {"ucs", "21E33"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_21E34[] = { - {"jis213", "1-47-78"}, - {"ucs", "21E34"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_21F1E[] = { - {"jis213", "2-8-59"}, - {"ucs", "21F1E"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_21F76[] = { - {"jis213", "2-8-70"}, - {"ucs", "21F76"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_21FFA[] = { - {"jis213", "2-8-76"}, - {"ucs", "21FFA"}, -}; -static TomoeUnihanReading tomoe_unihan_readings_22165[] = { - {TOMOE_READING_JA_ON, "ジュ"}, - {TOMOE_READING_JA_ON, "チュ"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2217B[] = { - {"jis213", "2-12-2"}, - {"ucs", "2217B"}, -}; -static TomoeUnihanReading tomoe_unihan_readings_22218[] = { - {TOMOE_READING_JA_KUN, "しか"}, - {TOMOE_READING_JA_KUN, "か"}, - {TOMOE_READING_JA_ON, "ロク"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_22218[] = { - {"jis213", "2-94-51"}, - {"ucs", "22218"}, -}; -static TomoeUnihanReading tomoe_unihan_readings_2228D[] = { - {TOMOE_READING_JA_KUN, "くりや"}, - {TOMOE_READING_JA_ON, "ズ"}, - {TOMOE_READING_JA_ON, "チュウ"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2231E[] = { - {"jis213", "2-12-11"}, - {"ucs", "2231E"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_223AD[] = { - {"jis213", "2-12-16"}, - {"ucs", "223AD"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_226F3[] = { - {"jis213", "2-12-48"}, - {"ucs", "226F3"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2285B[] = { - {"jis213", "2-12-69"}, - {"ucs", "2285B"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_228AB[] = { - {"jis213", "2-12-77"}, - {"ucs", "228AB"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2298F[] = { - {"meaning", "to cut, wound, hurt"}, - {"jis213", "2-12-82"}, - {"ucs", "2298F"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_22AB8[] = { - {"jis213", "2-13-4"}, - {"ucs", "22AB8"}, -}; -static TomoeUnihanReading tomoe_unihan_readings_22AE6[] = { - {TOMOE_READING_JA_KUN, "うつ"}, - {TOMOE_READING_JA_ON, "ハク"}, - {TOMOE_READING_JA_ON, "ヒョウ"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_22B46[] = { - {"jis213", "2-13-18"}, - {"ucs", "22B46"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_22B4F[] = { - {"jis213", "2-13-9"}, - {"ucs", "22B4F"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_22B50[] = { - {"jis213", "2-13-10"}, - {"ucs", "22B50"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_22BA6[] = { - {"jis213", "2-13-21"}, - {"ucs", "22BA6"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_22C1D[] = { - {"jis213", "2-13-20"}, - {"ucs", "22C1D"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_22C24[] = { - {"jis213", "2-13-25"}, - {"ucs", "22C24"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_22DE1[] = { - {"jis213", "2-13-54"}, - {"ucs", "22DE1"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_231B6[] = { - {"jis213", "2-14-4"}, - {"ucs", "231B6"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_231C3[] = { - {"jis213", "2-13-93"}, - {"ucs", "231C3"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_231C4[] = { - {"jis213", "1-85-26"}, - {"ucs", "231C4"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_231F5[] = { - {"jis213", "2-14-3"}, - {"ucs", "231F5"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_23372[] = { - {"jis213", "2-14-26"}, - {"ucs", "23372"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_233D0[] = { - {"jis213", "2-14-34"}, - {"ucs", "233D0"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_233D2[] = { - {"jis213", "2-14-29"}, - {"ucs", "233D2"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_233D3[] = { - {"jis213", "2-14-28"}, - {"ucs", "233D3"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_233D5[] = { - {"jis213", "2-14-36"}, - {"ucs", "233D5"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_233DA[] = { - {"jis213", "2-14-39"}, - {"ucs", "233DA"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_233DF[] = { - {"jis213", "2-14-41"}, - {"ucs", "233DF"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_233E4[] = { - {"jis213", "2-14-35"}, - {"ucs", "233E4"}, -}; -static TomoeUnihanReading tomoe_unihan_readings_233FE[] = { - {TOMOE_READING_JA_KUN, "まるた"}, - {TOMOE_READING_JA_ON, "ザイ"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2344A[] = { - {"jis213", "2-14-53"}, - {"ucs", "2344A"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2344B[] = { - {"jis213", "2-14-55"}, - {"ucs", "2344B"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_23451[] = { - {"jis213", "2-14-54"}, - {"ucs", "23451"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_23465[] = { - {"jis213", "2-14-59"}, - {"ucs", "23465"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_234E4[] = { - {"jis213", "2-14-87"}, - {"ucs", "234E4"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2355A[] = { - {"jis213", "2-14-88"}, - {"ucs", "2355A"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_23594[] = { - {"jis213", "2-15-10"}, - {"ucs", "23594"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_235C4[] = { - {"jis213", "1-85-82"}, - {"ucs", "235C4"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_23638[] = { - {"jis213", "2-15-34"}, - {"ucs", "23638"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_23639[] = { - {"jis213", "2-15-31"}, - {"ucs", "23639"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2363A[] = { - {"jis213", "2-15-35"}, - {"ucs", "2363A"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_23647[] = { - {"jis213", "2-15-32"}, - {"ucs", "23647"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2370C[] = { - {"jis213", "2-15-57"}, - {"ucs", "2370C"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2371C[] = { - {"jis213", "2-15-46"}, - {"ucs", "2371C"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2373F[] = { - {"jis213", "1-86-9"}, - {"ucs", "2373F"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_23763[] = { - {"jis213", "1-86-18"}, - {"ucs", "23763"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_23764[] = { - {"jis213", "2-15-65"}, - {"ucs", "23764"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_237E7[] = { - {"jis213", "2-15-74"}, - {"ucs", "237E7"}, -}; -static TomoeUnihanReading tomoe_unihan_readings_237EC[] = { - {TOMOE_READING_JA_KUN, "てすり"}, - {TOMOE_READING_JA_ON, "ラン"}, -}; -static TomoeUnihanReading tomoe_unihan_readings_237F1[] = { - {TOMOE_READING_JA_KUN, "けやき"}, - {TOMOE_READING_JA_ON, "キョ"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_237FF[] = { - {"jis213", "2-15-73"}, - {"ucs", "237FF"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_23824[] = { - {"jis213", "2-15-80"}, - {"ucs", "23824"}, -}; -static TomoeUnihanReading tomoe_unihan_readings_2383D[] = { - {TOMOE_READING_JA_KUN, "つか"}, - {TOMOE_READING_JA_ON, "ハ"}, - {TOMOE_READING_JA_ON, "ヘ"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2383D[] = { - {"jis213", "2-15-85"}, - {"ucs", "2383D"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_23A98[] = { - {"jis213", "2-78-3"}, - {"ucs", "23A98"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_23C7F[] = { - {"jis213", "2-78-20"}, - {"ucs", "23C7F"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_23CFE[] = { - {"jis213", "1-86-64"}, - {"ucs", "23CFE"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_23D00[] = { - {"jis213", "2-78-41"}, - {"ucs", "23D00"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_23D0E[] = { - {"jis213", "2-84-85"}, - {"ucs", "23D0E"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_23D40[] = { - {"jis213", "2-78-60"}, - {"ucs", "23D40"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_23DD3[] = { - {"jis213", "2-78-64"}, - {"ucs", "23DD3"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_23DF9[] = { - {"jis213", "2-78-63"}, - {"ucs", "23DF9"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_23DFA[] = { - {"jis213", "2-78-62"}, - {"ucs", "23DFA"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_23F7E[] = { - {"jis213", "2-79-18"}, - {"ucs", "23F7E"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_24096[] = { - {"jis213", "2-79-39"}, - {"ucs", "24096"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_24103[] = { - {"jis213", "2-79-45"}, - {"ucs", "24103"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_241C6[] = { - {"jis213", "2-79-65"}, - {"ucs", "241C6"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_241FE[] = { - {"jis213", "2-79-68"}, - {"ucs", "241FE"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_243BC[] = { - {"jis213", "2-80-2"}, - {"ucs", "243BC"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_24629[] = { - {"jis213", "2-80-19"}, - {"ucs", "24629"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_246A5[] = { - {"jis213", "2-80-25"}, - {"ucs", "246A5"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_247F1[] = { - {"jis213", "1-87-76"}, - {"ucs", "247F1"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_24896[] = { - {"jis213", "2-80-51"}, - {"ucs", "24896"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_24A4D[] = { - {"jis213", "2-80-91"}, - {"ucs", "24A4D"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_24B56[] = { - {"jis213", "2-81-14"}, - {"ucs", "24B56"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_24B6F[] = { - {"jis213", "2-81-16"}, - {"ucs", "24B6F"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_24C16[] = { - {"jis213", "2-81-21"}, - {"ucs", "24C16"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_24D14[] = { - {"jis213", "2-81-36"}, - {"ucs", "24D14"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_24E0E[] = { - {"jis213", "2-81-61"}, - {"ucs", "24E0E"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_24E37[] = { - {"jis213", "2-81-65"}, - {"ucs", "24E37"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_24E6A[] = { - {"jis213", "2-81-70"}, - {"ucs", "24E6A"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_24E8B[] = { - {"jis213", "2-81-73"}, - {"ucs", "24E8B"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2504A[] = { - {"jis213", "2-81-85"}, - {"ucs", "2504A"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_25055[] = { - {"jis213", "2-81-87"}, - {"ucs", "25055"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_25122[] = { - {"jis213", "2-81-90"}, - {"ucs", "25122"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_251A9[] = { - {"jis213", "2-82-1"}, - {"ucs", "251A9"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_251CD[] = { - {"jis213", "2-82-4"}, - {"ucs", "251CD"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_251E5[] = { - {"jis213", "2-82-3"}, - {"ucs", "251E5"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2521E[] = { - {"jis213", "2-82-8"}, - {"ucs", "2521E"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2524C[] = { - {"jis213", "2-82-12"}, - {"ucs", "2524C"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2542E[] = { - {"jis213", "2-82-29"}, - {"ucs", "2542E"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2548E[] = { - {"jis213", "1-88-94"}, - {"ucs", "2548E"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_254D9[] = { - {"jis213", "2-82-40"}, - {"ucs", "254D9"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2550E[] = { - {"jis213", "1-89-9"}, - {"ucs", "2550E"}, -}; -static TomoeUnihanReading tomoe_unihan_readings_25535[] = { - {TOMOE_READING_JA_KUN, "じしゃく"}, - {TOMOE_READING_JA_KUN, "やきもの"}, - {TOMOE_READING_JA_ON, "ジ"}, - {TOMOE_READING_JA_ON, "シ"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_255A7[] = { - {"jis213", "2-82-59"}, - {"ucs", "255A7"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_25771[] = { - {"jis213", "1-89-39"}, - {"ucs", "25771"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_257A9[] = { - {"jis213", "2-82-85"}, - {"ucs", "257A9"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_257B4[] = { - {"jis213", "2-82-86"}, - {"ucs", "257B4"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_259C4[] = { - {"jis213", "1-89-52"}, - {"ucs", "259C4"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_259D4[] = { - {"jis213", "2-83-18"}, - {"ucs", "259D4"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_25AE3[] = { - {"jis213", "2-83-30"}, - {"ucs", "25AE3"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_25AE4[] = { - {"jis213", "2-83-29"}, - {"ucs", "25AE4"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_25AF1[] = { - {"jis213", "2-83-32"}, - {"ucs", "25AF1"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_25BB2[] = { - {"jis213", "2-83-50"}, - {"ucs", "25BB2"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_25C4B[] = { - {"jis213", "2-83-61"}, - {"ucs", "25C4B"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_25C64[] = { - {"jis213", "2-83-62"}, - {"ucs", "25C64"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_25DA1[] = { - {"jis213", "1-89-78"}, - {"ucs", "25DA1"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_25E2E[] = { - {"jis213", "2-83-83"}, - {"ucs", "25E2E"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_25E56[] = { - {"jis213", "2-83-84"}, - {"ucs", "25E56"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_25E62[] = { - {"jis213", "2-83-87"}, - {"ucs", "25E62"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_25E65[] = { - {"jis213", "2-83-85"}, - {"ucs", "25E65"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_25EC2[] = { - {"jis213", "2-83-93"}, - {"ucs", "25EC2"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_25ED8[] = { - {"jis213", "2-83-91"}, - {"ucs", "25ED8"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_25EE8[] = { - {"jis213", "2-84-2"}, - {"ucs", "25EE8"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_25F23[] = { - {"jis213", "2-84-4"}, - {"ucs", "25F23"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_25F5C[] = { - {"jis213", "2-84-7"}, - {"ucs", "25F5C"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_25FD4[] = { - {"jis213", "2-84-15"}, - {"ucs", "25FD4"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_25FE0[] = { - {"jis213", "2-84-14"}, - {"ucs", "25FE0"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_25FFB[] = { - {"jis213", "2-84-21"}, - {"ucs", "25FFB"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2600C[] = { - {"jis213", "2-84-20"}, - {"ucs", "2600C"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_26017[] = { - {"jis213", "2-84-29"}, - {"ucs", "26017"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_26060[] = { - {"jis213", "2-84-34"}, - {"ucs", "26060"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_260ED[] = { - {"jis213", "2-84-47"}, - {"ucs", "260ED"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_26270[] = { - {"jis213", "2-84-73"}, - {"ucs", "26270"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_26286[] = { - {"jis213", "2-84-75"}, - {"ucs", "26286"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2634C[] = { - {"jis213", "2-84-82"}, - {"ucs", "2634C"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_26402[] = { - {"jis213", "2-84-89"}, - {"ucs", "26402"}, -}; -static TomoeUnihanReading tomoe_unihan_readings_264B7[] = { - {TOMOE_READING_JA_ON, "ボウ"}, - {TOMOE_READING_JA_ON, "モウ"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2667E[] = { - {"jis213", "2-85-21"}, - {"ucs", "2667E"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_266B0[] = { - {"jis213", "2-85-26"}, - {"ucs", "266B0"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2671D[] = { - {"jis213", "2-85-38"}, - {"ucs", "2671D"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_268DD[] = { - {"jis213", "2-85-54"}, - {"ucs", "268DD"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_268EA[] = { - {"jis213", "2-85-56"}, - {"ucs", "268EA"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_26951[] = { - {"jis213", "2-85-58"}, - {"ucs", "26951"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2696F[] = { - {"jis213", "2-85-61"}, - {"ucs", "2696F"}, -}; -static TomoeUnihanReading tomoe_unihan_readings_26999[] = { - {TOMOE_READING_JA_KUN, "あげる"}, - {TOMOE_READING_JA_KUN, "あがる"}, - {TOMOE_READING_JA_KUN, "こぞる"}, - {TOMOE_READING_JA_ON, "キョ"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_269DD[] = { - {"jis213", "2-85-63"}, - {"ucs", "269DD"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_26A1E[] = { - {"jis213", "2-85-67"}, - {"ucs", "26A1E"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_26A58[] = { - {"jis213", "2-85-74"}, - {"ucs", "26A58"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_26A8C[] = { - {"jis213", "2-85-80"}, - {"ucs", "26A8C"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_26AB7[] = { - {"jis213", "2-85-83"}, - {"ucs", "26AB7"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_26AFF[] = { - {"jis213", "1-90-61"}, - {"ucs", "26AFF"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_26C29[] = { - {"jis213", "2-5-36"}, - {"ucs", "26C29"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_26C73[] = { - {"jis213", "2-86-36"}, - {"ucs", "26C73"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_26CDD[] = { - {"jis213", "2-86-46"}, - {"ucs", "26CDD"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_26E40[] = { - {"jis213", "1-91-19"}, - {"ucs", "26E40"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_26E65[] = { - {"jis213", "2-86-61"}, - {"ucs", "26E65"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_26F94[] = { - {"jis213", "2-86-85"}, - {"ucs", "26F94"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_26FF6[] = { - {"jis213", "2-87-1"}, - {"ucs", "26FF6"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_26FF7[] = { - {"jis213", "2-87-2"}, - {"ucs", "26FF7"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_26FF8[] = { - {"jis213", "2-86-94"}, - {"ucs", "26FF8"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_270F4[] = { - {"jis213", "1-91-41"}, - {"ucs", "270F4"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2710D[] = { - {"jis213", "2-87-19"}, - {"ucs", "2710D"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_27139[] = { - {"jis213", "2-87-22"}, - {"ucs", "27139"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_273DA[] = { - {"jis213", "2-87-69"}, - {"ucs", "273DA"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_273DB[] = { - {"jis213", "2-87-68"}, - {"ucs", "273DB"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_273FE[] = { - {"jis213", "2-87-75"}, - {"ucs", "273FE"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_27410[] = { - {"jis213", "2-87-78"}, - {"ucs", "27410"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_27449[] = { - {"jis213", "2-87-83"}, - {"ucs", "27449"}, -}; -static TomoeUnihanReading tomoe_unihan_readings_275D7[] = { - {TOMOE_READING_JA_KUN, "はなじ"}, - {TOMOE_READING_JA_ON, "ジク"}, -}; -static TomoeUnihanReading tomoe_unihan_readings_275F7[] = { - {TOMOE_READING_JA_KUN, "みち"}, - {TOMOE_READING_JA_KUN, "すべ"}, - {TOMOE_READING_JA_KUN, "わざ"}, - {TOMOE_READING_JA_ON, "ジュツ"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_27614[] = { - {"jis213", "2-88-10"}, - {"ucs", "27614"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_27615[] = { - {"jis213", "2-88-9"}, - {"ucs", "27615"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_27631[] = { - {"jis213", "2-88-12"}, - {"ucs", "27631"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_27684[] = { - {"jis213", "1-91-76"}, - {"ucs", "27684"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_27693[] = { - {"jis213", "2-88-20"}, - {"ucs", "27693"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2770E[] = { - {"jis213", "2-88-28"}, - {"ucs", "2770E"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_27723[] = { - {"jis213", "2-88-30"}, - {"ucs", "27723"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_27752[] = { - {"jis213", "2-88-34"}, - {"ucs", "27752"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_27985[] = { - {"jis213", "2-88-54"}, - {"ucs", "27985"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_27A84[] = { - {"jis213", "2-88-67"}, - {"ucs", "27A84"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_27BB3[] = { - {"jis213", "2-88-87"}, - {"ucs", "27BB3"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_27BBE[] = { - {"jis213", "2-88-89"}, - {"ucs", "27BBE"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_27BC7[] = { - {"jis213", "2-88-90"}, - {"ucs", "27BC7"}, -}; -static TomoeUnihanReading tomoe_unihan_readings_27C27[] = { - {TOMOE_READING_JA_ON, "シュウ"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_27CB8[] = { - {"jis213", "2-89-5"}, - {"ucs", "27CB8"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_27DA0[] = { - {"jis213", "2-89-15"}, - {"ucs", "27DA0"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_27E10[] = { - {"jis213", "2-89-18"}, - {"ucs", "27E10"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_27FB7[] = { - {"jis213", "2-89-25"}, - {"ucs", "27FB7"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2808A[] = { - {"jis213", "2-89-34"}, - {"ucs", "2808A"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_280BB[] = { - {"jis213", "2-89-40"}, - {"ucs", "280BB"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_28277[] = { - {"jis213", "1-92-41"}, - {"ucs", "28277"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_28282[] = { - {"jis213", "2-89-57"}, - {"ucs", "28282"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_282F3[] = { - {"jis213", "2-89-62"}, - {"ucs", "282F3"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_283CD[] = { - {"jis213", "1-92-49"}, - {"ucs", "283CD"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2840C[] = { - {"jis213", "2-89-70"}, - {"ucs", "2840C"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_28455[] = { - {"jis213", "2-89-75"}, - {"ucs", "28455"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2856B[] = { - {"jis213", "2-89-90"}, - {"ucs", "2856B"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_285C8[] = { - {"jis213", "2-89-94"}, - {"ucs", "285C8"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_285C9[] = { - {"jis213", "2-90-1"}, - {"ucs", "285C9"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_286D7[] = { - {"jis213", "2-90-12"}, - {"ucs", "286D7"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_286FA[] = { - {"jis213", "2-90-15"}, - {"ucs", "286FA"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_28946[] = { - {"jis213", "2-90-48"}, - {"ucs", "28946"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_28949[] = { - {"jis213", "2-90-47"}, - {"ucs", "28949"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2896B[] = { - {"jis213", "2-90-55"}, - {"ucs", "2896B"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_28987[] = { - {"jis213", "2-90-69"}, - {"ucs", "28987"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_28988[] = { - {"jis213", "2-90-70"}, - {"ucs", "28988"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_289BA[] = { - {"jis213", "2-90-81"}, - {"ucs", "289BA"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_289BB[] = { - {"jis213", "2-90-82"}, - {"ucs", "289BB"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_28A1E[] = { - {"jis213", "2-90-94"}, - {"ucs", "28A1E"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_28A29[] = { - {"jis213", "2-91-1"}, - {"ucs", "28A29"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_28A43[] = { - {"jis213", "2-91-13"}, - {"ucs", "28A43"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_28A71[] = { - {"jis213", "2-91-12"}, - {"ucs", "28A71"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_28A99[] = { - {"jis213", "2-91-22"}, - {"ucs", "28A99"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_28ACD[] = { - {"jis213", "2-91-23"}, - {"ucs", "28ACD"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_28ADD[] = { - {"jis213", "2-91-30"}, - {"ucs", "28ADD"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_28AE4[] = { - {"jis213", "2-91-29"}, - {"ucs", "28AE4"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_28BC1[] = { - {"jis213", "2-91-46"}, - {"ucs", "28BC1"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_28BEF[] = { - {"jis213", "2-91-47"}, - {"ucs", "28BEF"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_28D10[] = { - {"jis213", "2-91-55"}, - {"ucs", "28D10"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_28D71[] = { - {"jis213", "2-91-58"}, - {"ucs", "28D71"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_28DFB[] = { - {"jis213", "2-91-60"}, - {"ucs", "28DFB"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_28E1F[] = { - {"jis213", "2-91-61"}, - {"ucs", "28E1F"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_28E36[] = { - {"jis213", "2-91-65"}, - {"ucs", "28E36"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_28E89[] = { - {"jis213", "2-91-69"}, - {"ucs", "28E89"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_28EEB[] = { - {"jis213", "2-91-71"}, - {"ucs", "28EEB"}, -}; -static TomoeUnihanReading tomoe_unihan_readings_28EF6[] = { - {TOMOE_READING_JA_KUN, "すかす"}, - {TOMOE_READING_JA_KUN, "ひま"}, - {TOMOE_READING_JA_ON, "ゲキ"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_28F32[] = { - {"jis213", "2-91-73"}, - {"ucs", "28F32"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_28FF8[] = { - {"jis213", "2-91-81"}, - {"ucs", "28FF8"}, -}; -static TomoeUnihanReading tomoe_unihan_readings_290B3[] = { - {TOMOE_READING_JA_KUN, "たま"}, - {TOMOE_READING_JA_ON, "レイ"}, - {TOMOE_READING_JA_ON, "リョウ"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_292A0[] = { - {"jis213", "2-92-2"}, - {"ucs", "292A0"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_292B1[] = { - {"jis213", "2-92-3"}, - {"ucs", "292B1"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_29490[] = { - {"jis213", "2-92-24"}, - {"ucs", "29490"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_295CF[] = { - {"jis213", "2-92-34"}, - {"ucs", "295CF"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2967F[] = { - {"jis213", "2-92-44"}, - {"ucs", "2967F"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_296F0[] = { - {"jis213", "2-92-54"}, - {"ucs", "296F0"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_29719[] = { - {"jis213", "2-92-57"}, - {"ucs", "29719"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_29750[] = { - {"jis213", "2-92-61"}, - {"ucs", "29750"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_298C6[] = { - {"jis213", "2-92-86"}, - {"ucs", "298C6"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_29A72[] = { - {"jis213", "2-93-12"}, - {"ucs", "29A72"}, -}; -static TomoeUnihanReading tomoe_unihan_readings_29D4B[] = { - {TOMOE_READING_JA_KUN, "うお"}, - {TOMOE_READING_JA_KUN, "さかな"}, - {TOMOE_READING_JA_KUN, "すなどる"}, - {TOMOE_READING_JA_ON, "ギョ"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_29DDB[] = { - {"jis213", "2-93-43"}, - {"ucs", "29DDB"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_29E15[] = { - {"jis213", "2-93-57"}, - {"ucs", "29E15"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_29E3D[] = { - {"jis213", "2-93-44"}, - {"ucs", "29E3D"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_29E49[] = { - {"jis213", "2-93-61"}, - {"ucs", "29E49"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_29E8A[] = { - {"jis213", "2-93-59"}, - {"ucs", "29E8A"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_29EC4[] = { - {"jis213", "2-93-71"}, - {"ucs", "29EC4"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_29EDB[] = { - {"jis213", "2-93-80"}, - {"ucs", "29EDB"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_29EE9[] = { - {"jis213", "2-93-77"}, - {"ucs", "29EE9"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_29FCE[] = { - {"jis213", "2-94-5"}, - {"ucs", "29FCE"}, -}; -static TomoeUnihanReading tomoe_unihan_readings_2A012[] = { - {TOMOE_READING_JA_KUN, "とび"}, - {TOMOE_READING_JA_ON, "シ"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2A01A[] = { - {"jis213", "2-94-11"}, - {"ucs", "2A01A"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2A02F[] = { - {"jis213", "2-94-9"}, - {"ucs", "2A02F"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2A082[] = { - {"jis213", "2-94-21"}, - {"ucs", "2A082"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2A0F9[] = { - {"jis213", "2-94-18"}, - {"ucs", "2A0F9"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2A190[] = { - {"jis213", "1-94-70"}, - {"ucs", "2A190"}, -}; -static TomoeUnihanReading tomoe_unihan_readings_2A269[] = { - {TOMOE_READING_JA_KUN, "しお"}, - {TOMOE_READING_JA_ON, "エン"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2A38C[] = { - {"jis213", "2-94-56"}, - {"ucs", "2A38C"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2A437[] = { - {"jis213", "2-94-58"}, - {"ucs", "2A437"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2A5F1[] = { - {"jis213", "2-94-78"}, - {"ucs", "2A5F1"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2A602[] = { - {"jis213", "2-94-80"}, - {"ucs", "2A602"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2A61A[] = { - {"jis213", "2-94-82"}, - {"ucs", "2A61A"}, -}; -static TomoeUnihanMetaData tomoe_unihan_meta_data_2A6B2[] = { - {"jis213", "2-94-86"}, - {"ucs", "2A6B2"}, -}; -static gchar *tomoe_unihan_variants_2F800[] = { - "丽", -}; -static gchar *tomoe_unihan_variants_2F801[] = { - "丸", -}; -static gchar *tomoe_unihan_variants_2F802[] = { - "乁", -}; -static gchar *tomoe_unihan_variants_2F803[] = { - "Ģ", -}; -static gchar *tomoe_unihan_variants_2F804[] = { - "你", -}; -static gchar *tomoe_unihan_variants_2F805[] = { - "侮", -}; -static gchar *tomoe_unihan_variants_2F806[] = { - "侻", -}; -static gchar *tomoe_unihan_variants_2F807[] = { - "倂", -}; -static gchar *tomoe_unihan_variants_2F808[] = { - "偺", -}; -static gchar *tomoe_unihan_variants_2F809[] = { - "備", -}; -static gchar *tomoe_unihan_variants_2F80A[] = { - "僧", -}; -static gchar *tomoe_unihan_variants_2F80B[] = { - "像", -}; -static gchar *tomoe_unihan_variants_2F80C[] = { - "㒞", -}; -static gchar *tomoe_unihan_variants_2F80D[] = { - "غ", -}; -static gchar *tomoe_unihan_variants_2F80E[] = { - "免", -}; -static gchar *tomoe_unihan_variants_2F80F[] = { - "兔", -}; -static gchar *tomoe_unihan_variants_2F810[] = { - "兤", -}; -static gchar *tomoe_unihan_variants_2F811[] = { - "具", -}; -static gchar *tomoe_unihan_variants_2F812[] = { - "Ԝ", -}; -static gchar *tomoe_unihan_variants_2F813[] = { - "㒹", -}; -static gchar *tomoe_unihan_variants_2F814[] = { - "內", -}; -static gchar *tomoe_unihan_variants_2F815[] = { - "再", -}; -static gchar *tomoe_unihan_variants_2F816[] = { - "Ջ", -}; -static gchar *tomoe_unihan_variants_2F817[] = { - "冗", -}; -static gchar *tomoe_unihan_variants_2F818[] = { - "冤", -}; -static gchar *tomoe_unihan_variants_2F819[] = { - "仌", -}; -static gchar *tomoe_unihan_variants_2F81A[] = { - "冬", -}; -static gchar *tomoe_unihan_variants_2F81B[] = { - "况", -}; -static gchar *tomoe_unihan_variants_2F81C[] = { - "釟", -}; -static gchar *tomoe_unihan_variants_2F81D[] = { - "凵", -}; -static gchar *tomoe_unihan_variants_2F81E[] = { - "刃", -}; -static gchar *tomoe_unihan_variants_2F81F[] = { - "㓟", -}; -static gchar *tomoe_unihan_variants_2F820[] = { - "刻", -}; -static gchar *tomoe_unihan_variants_2F821[] = { - "剆", -}; -static gchar *tomoe_unihan_variants_2F822[] = { - "割", -}; -static gchar *tomoe_unihan_variants_2F823[] = { - "剷", -}; -static gchar *tomoe_unihan_variants_2F824[] = { - "㔕", -}; -static gchar *tomoe_unihan_variants_2F825[] = { - "勇", -}; -static gchar *tomoe_unihan_variants_2F826[] = { - "勉", -}; -static gchar *tomoe_unihan_variants_2F827[] = { - "勤", -}; -static gchar *tomoe_unihan_variants_2F828[] = { - "勺", -}; -static gchar *tomoe_unihan_variants_2F829[] = { - "包", -}; -static gchar *tomoe_unihan_variants_2F82A[] = { - "匆", -}; -static gchar *tomoe_unihan_variants_2F82B[] = { - "北", -}; -static gchar *tomoe_unihan_variants_2F82C[] = { - "卉", -}; -static gchar *tomoe_unihan_variants_2F82D[] = { - "卑", -}; -static gchar *tomoe_unihan_variants_2F82E[] = { - "博", -}; -static gchar *tomoe_unihan_variants_2F82F[] = { - "即", -}; -static gchar *tomoe_unihan_variants_2F830[] = { - "卽", -}; -static gchar *tomoe_unihan_variants_2F831[] = { - "卿", -}; -static gchar *tomoe_unihan_variants_2F832[] = { - "卿", -}; -static gchar *tomoe_unihan_variants_2F833[] = { - "卿", -}; -static gchar *tomoe_unihan_variants_2F834[] = { - "ਬ", -}; -static gchar *tomoe_unihan_variants_2F835[] = { - "灰", -}; -static gchar *tomoe_unihan_variants_2F836[] = { - "及", -}; -static gchar *tomoe_unihan_variants_2F837[] = { - "叟", -}; -static gchar *tomoe_unihan_variants_2F838[] = { - "ୣ", -}; -static gchar *tomoe_unihan_variants_2F839[] = { - "叫", -}; -static gchar *tomoe_unihan_variants_2F83A[] = { - "叱", -}; -static gchar *tomoe_unihan_variants_2F83B[] = { - "吆", -}; -static gchar *tomoe_unihan_variants_2F83C[] = { - "咞", -}; -static gchar *tomoe_unihan_variants_2F83D[] = { - "吸", -}; -static gchar *tomoe_unihan_variants_2F83E[] = { - "呈", -}; -static gchar *tomoe_unihan_variants_2F83F[] = { - "周", -}; -static gchar *tomoe_unihan_variants_2F840[] = { - "咢", -}; -static gchar *tomoe_unihan_variants_2F841[] = { - "哶", -}; -static gchar *tomoe_unihan_variants_2F842[] = { - "唐", -}; -static gchar *tomoe_unihan_variants_2F843[] = { - "啓", -}; -static gchar *tomoe_unihan_variants_2F844[] = { - "啣", -}; -static gchar *tomoe_unihan_variants_2F845[] = { - "善", -}; -static gchar *tomoe_unihan_variants_2F846[] = { - "善", -}; -static gchar *tomoe_unihan_variants_2F847[] = { - "喙", -}; -static gchar *tomoe_unihan_variants_2F848[] = { - "喫", -}; -static gchar *tomoe_unihan_variants_2F849[] = { - "喳", -}; -static gchar *tomoe_unihan_variants_2F84A[] = { - "嗂", -}; -static gchar *tomoe_unihan_variants_2F84B[] = { - "圖", -}; -static gchar *tomoe_unihan_variants_2F84C[] = { - "嘆", -}; -static gchar *tomoe_unihan_variants_2F84D[] = { - "圗", -}; -static gchar *tomoe_unihan_variants_2F84E[] = { - "噑", -}; -static gchar *tomoe_unihan_variants_2F84F[] = { - "噴", -}; -static gchar *tomoe_unihan_variants_2F850[] = { - "切", -}; -static gchar *tomoe_unihan_variants_2F851[] = { - "壮", -}; -static gchar *tomoe_unihan_variants_2F852[] = { - "城", -}; -static gchar *tomoe_unihan_variants_2F853[] = { - "埴", -}; -static gchar *tomoe_unihan_variants_2F854[] = { - "堍", -}; -static gchar *tomoe_unihan_variants_2F855[] = { - "型", -}; -static gchar *tomoe_unihan_variants_2F856[] = { - "堲", -}; -static gchar *tomoe_unihan_variants_2F857[] = { - "報", -}; -static gchar *tomoe_unihan_variants_2F858[] = { - "墬", -}; -static gchar *tomoe_unihan_variants_2F859[] = { - "ᓤ", -}; -static gchar *tomoe_unihan_variants_2F85A[] = { - "売", -}; -static gchar *tomoe_unihan_variants_2F85B[] = { - "壷", -}; -static gchar *tomoe_unihan_variants_2F85C[] = { - "夆", -}; -static gchar *tomoe_unihan_variants_2F85D[] = { - "多", -}; -static gchar *tomoe_unihan_variants_2F85E[] = { - "夢", -}; -static gchar *tomoe_unihan_variants_2F85F[] = { - "奢", -}; -static gchar *tomoe_unihan_variants_2F860[] = { - "ᚨ", -}; -static gchar *tomoe_unihan_variants_2F861[] = { - "ᛪ", -}; -static gchar *tomoe_unihan_variants_2F862[] = { - "姬", -}; -static gchar *tomoe_unihan_variants_2F863[] = { - "娛", -}; -static gchar *tomoe_unihan_variants_2F864[] = { - "娧", -}; -static gchar *tomoe_unihan_variants_2F865[] = { - "姘", -}; -static gchar *tomoe_unihan_variants_2F866[] = { - "婦", -}; -static gchar *tomoe_unihan_variants_2F867[] = { - "㛮", -}; -static gchar *tomoe_unihan_variants_2F868[] = { - "㛼", -}; -static gchar *tomoe_unihan_variants_2F869[] = { - "嬈", -}; -static gchar *tomoe_unihan_variants_2F86A[] = { - "嬾", -}; -static gchar *tomoe_unihan_variants_2F86B[] = { - "嬾", -}; -static gchar *tomoe_unihan_variants_2F86C[] = { - "ᧈ", -}; -static gchar *tomoe_unihan_variants_2F86D[] = { - "寃", -}; -static gchar *tomoe_unihan_variants_2F86E[] = { - "寘", -}; -static gchar *tomoe_unihan_variants_2F86F[] = { - "寧", -}; -static gchar *tomoe_unihan_variants_2F870[] = { - "寳", -}; -static gchar *tomoe_unihan_variants_2F871[] = { - "ᬘ", -}; -static gchar *tomoe_unihan_variants_2F872[] = { - "寿", -}; -static gchar *tomoe_unihan_variants_2F873[] = { - "将", -}; -static gchar *tomoe_unihan_variants_2F874[] = { - "当", -}; -static gchar *tomoe_unihan_variants_2F875[] = { - "尢", -}; -static gchar *tomoe_unihan_variants_2F876[] = { - "㞁", -}; -static gchar *tomoe_unihan_variants_2F877[] = { - "屠", -}; -static gchar *tomoe_unihan_variants_2F878[] = { - "屮", -}; -static gchar *tomoe_unihan_variants_2F879[] = { - "峀", -}; -static gchar *tomoe_unihan_variants_2F87A[] = { - "岍", -}; -static gchar *tomoe_unihan_variants_2F87B[] = { - "ᷤ", -}; -static gchar *tomoe_unihan_variants_2F87C[] = { - "嵃", -}; -static gchar *tomoe_unihan_variants_2F87D[] = { - "ᷦ", -}; -static gchar *tomoe_unihan_variants_2F87E[] = { - "嵮", -}; -static gchar *tomoe_unihan_variants_2F87F[] = { - "嵫", -}; -static gchar *tomoe_unihan_variants_2F880[] = { - "嵼", -}; -static gchar *tomoe_unihan_variants_2F881[] = { - "巡", -}; -static gchar *tomoe_unihan_variants_2F882[] = { - "巢", -}; -static gchar *tomoe_unihan_variants_2F883[] = { - "㠯", -}; -static gchar *tomoe_unihan_variants_2F884[] = { - "巽", -}; -static gchar *tomoe_unihan_variants_2F885[] = { - "帨", -}; -static gchar *tomoe_unihan_variants_2F886[] = { - "帽", -}; -static gchar *tomoe_unihan_variants_2F887[] = { - "幩", -}; -static gchar *tomoe_unihan_variants_2F888[] = { - "㡢", -}; -static gchar *tomoe_unihan_variants_2F889[] = { - "Ↄ", -}; -static gchar *tomoe_unihan_variants_2F88A[] = { - "㡼", -}; -static gchar *tomoe_unihan_variants_2F88B[] = { - "庰", -}; -static gchar *tomoe_unihan_variants_2F88C[] = { - "庳", -}; -static gchar *tomoe_unihan_variants_2F88D[] = { - "庶", -}; -static gchar *tomoe_unihan_variants_2F88E[] = { - "廊", -}; -static gchar *tomoe_unihan_variants_2F88F[] = { - "ꎒ", -}; -static gchar *tomoe_unihan_variants_2F890[] = { - "廾", -}; -static gchar *tomoe_unihan_variants_2F891[] = { - "⌱", -}; -static gchar *tomoe_unihan_variants_2F892[] = { - "⌱", -}; -static gchar *tomoe_unihan_variants_2F893[] = { - "舁", -}; -static gchar *tomoe_unihan_variants_2F894[] = { - "弢", -}; -static gchar *tomoe_unihan_variants_2F895[] = { - "弢", -}; -static gchar *tomoe_unihan_variants_2F896[] = { - "㣇", -}; -static gchar *tomoe_unihan_variants_2F897[] = { - "㊸", -}; -static gchar *tomoe_unihan_variants_2F898[] = { - "懚", -}; -static gchar *tomoe_unihan_variants_2F899[] = { - "形", -}; -static gchar *tomoe_unihan_variants_2F89A[] = { - "彫", -}; -static gchar *tomoe_unihan_variants_2F89B[] = { - "㣣", -}; -static gchar *tomoe_unihan_variants_2F89C[] = { - "徚", -}; -static gchar *tomoe_unihan_variants_2F89D[] = { - "忍", -}; -static gchar *tomoe_unihan_variants_2F89E[] = { - "志", -}; -static gchar *tomoe_unihan_variants_2F89F[] = { - "忹", -}; -static gchar *tomoe_unihan_variants_2F8A0[] = { - "悁", -}; -static gchar *tomoe_unihan_variants_2F8A1[] = { - "㤺", -}; -static gchar *tomoe_unihan_variants_2F8A2[] = { - "㤜", -}; -static gchar *tomoe_unihan_variants_2F8A3[] = { - "悔", -}; -static gchar *tomoe_unihan_variants_2F8A4[] = { - "⛔", -}; -static gchar *tomoe_unihan_variants_2F8A5[] = { - "惇", -}; -static gchar *tomoe_unihan_variants_2F8A6[] = { - "慈", -}; -static gchar *tomoe_unihan_variants_2F8A7[] = { - "慌", -}; -static gchar *tomoe_unihan_variants_2F8A8[] = { - "慎", -}; -static gchar *tomoe_unihan_variants_2F8A9[] = { - "慌", -}; -static gchar *tomoe_unihan_variants_2F8AA[] = { - "慺", -}; -static gchar *tomoe_unihan_variants_2F8AB[] = { - "憎", -}; -static gchar *tomoe_unihan_variants_2F8AC[] = { - "憲", -}; -static gchar *tomoe_unihan_variants_2F8AD[] = { - "憤", -}; -static gchar *tomoe_unihan_variants_2F8AE[] = { - "憯", -}; -static gchar *tomoe_unihan_variants_2F8AF[] = { - "懞", -}; -static gchar *tomoe_unihan_variants_2F8B0[] = { - "懲", -}; -static gchar *tomoe_unihan_variants_2F8B1[] = { - "懶", -}; -static gchar *tomoe_unihan_variants_2F8B2[] = { - "成", -}; -static gchar *tomoe_unihan_variants_2F8B3[] = { - "戛", -}; -static gchar *tomoe_unihan_variants_2F8B4[] = { - "扝", -}; -static gchar *tomoe_unihan_variants_2F8B5[] = { - "抱", -}; -static gchar *tomoe_unihan_variants_2F8B6[] = { - "拔", -}; -static gchar *tomoe_unihan_variants_2F8B7[] = { - "捐", -}; -static gchar *tomoe_unihan_variants_2F8B8[] = { - "⬌", -}; -static gchar *tomoe_unihan_variants_2F8B9[] = { - "挽", -}; -static gchar *tomoe_unihan_variants_2F8BA[] = { - "拼", -}; -static gchar *tomoe_unihan_variants_2F8BB[] = { - "捨", -}; -static gchar *tomoe_unihan_variants_2F8BC[] = { - "掃", -}; -static gchar *tomoe_unihan_variants_2F8BD[] = { - "揤", -}; -static gchar *tomoe_unihan_variants_2F8BE[] = { - "⯱", -}; -static gchar *tomoe_unihan_variants_2F8BF[] = { - "搢", -}; -static gchar *tomoe_unihan_variants_2F8C0[] = { - "揅", -}; -static gchar *tomoe_unihan_variants_2F8C1[] = { - "掩", -}; -static gchar *tomoe_unihan_variants_2F8C2[] = { - "㨮", -}; -static gchar *tomoe_unihan_variants_2F8C3[] = { - "摩", -}; -static gchar *tomoe_unihan_variants_2F8C4[] = { - "摾", -}; -static gchar *tomoe_unihan_variants_2F8C5[] = { - "撝", -}; -static gchar *tomoe_unihan_variants_2F8C6[] = { - "摷", -}; -static gchar *tomoe_unihan_variants_2F8C7[] = { - "㩬", -}; -static gchar *tomoe_unihan_variants_2F8C8[] = { - "敏", -}; -static gchar *tomoe_unihan_variants_2F8C9[] = { - "敬", -}; -static gchar *tomoe_unihan_variants_2F8CA[] = { - "《", -}; -static gchar *tomoe_unihan_variants_2F8CB[] = { - "旣", -}; -static gchar *tomoe_unihan_variants_2F8CC[] = { - "書", -}; -static gchar *tomoe_unihan_variants_2F8CD[] = { - "晉", -}; -static gchar *tomoe_unihan_variants_2F8CE[] = { - "㬙", -}; -static gchar *tomoe_unihan_variants_2F8CF[] = { - "暑", -}; -static gchar *tomoe_unihan_variants_2F8D0[] = { - "㬈", -}; -static gchar *tomoe_unihan_variants_2F8D1[] = { - "㫤", -}; -static gchar *tomoe_unihan_variants_2F8D2[] = { - "冒", -}; -static gchar *tomoe_unihan_variants_2F8D3[] = { - "冕", -}; -static gchar *tomoe_unihan_variants_2F8D4[] = { - "最", -}; -static gchar *tomoe_unihan_variants_2F8D5[] = { - "暜", -}; -static gchar *tomoe_unihan_variants_2F8D6[] = { - "肭", -}; -static gchar *tomoe_unihan_variants_2F8D7[] = { - "䏙", -}; -static gchar *tomoe_unihan_variants_2F8D8[] = { - "朗", -}; -static gchar *tomoe_unihan_variants_2F8D9[] = { - "望", -}; -static gchar *tomoe_unihan_variants_2F8DA[] = { - "朡", -}; -static gchar *tomoe_unihan_variants_2F8DB[] = { - "杞", -}; -static gchar *tomoe_unihan_variants_2F8DC[] = { - "杓", -}; -static gchar *tomoe_unihan_variants_2F8DD[] = { - "㏃", -}; -static gchar *tomoe_unihan_variants_2F8DE[] = { - "㭉", -}; -static gchar *tomoe_unihan_variants_2F8DF[] = { - "柺", -}; -static gchar *tomoe_unihan_variants_2F8E0[] = { - "枅", -}; -static gchar *tomoe_unihan_variants_2F8E1[] = { - "桒", -}; -static gchar *tomoe_unihan_variants_2F8E2[] = { - "梅", -}; -static gchar *tomoe_unihan_variants_2F8E3[] = { - "㑭", -}; -static gchar *tomoe_unihan_variants_2F8E4[] = { - "梎", -}; -static gchar *tomoe_unihan_variants_2F8E5[] = { - "栟", -}; -static gchar *tomoe_unihan_variants_2F8E6[] = { - "椔", -}; -static gchar *tomoe_unihan_variants_2F8E7[] = { - "㮝", -}; -static gchar *tomoe_unihan_variants_2F8E8[] = { - "楂", -}; -static gchar *tomoe_unihan_variants_2F8E9[] = { - "榣", -}; -static gchar *tomoe_unihan_variants_2F8EA[] = { - "槪", -}; -static gchar *tomoe_unihan_variants_2F8EB[] = { - "檨", -}; -static gchar *tomoe_unihan_variants_2F8EC[] = { - "㚣", -}; -static gchar *tomoe_unihan_variants_2F8ED[] = { - "櫛", -}; -static gchar *tomoe_unihan_variants_2F8EE[] = { - "㰘", -}; -static gchar *tomoe_unihan_variants_2F8EF[] = { - "次", -}; -static gchar *tomoe_unihan_variants_2F8F0[] = { - "㢧", -}; -static gchar *tomoe_unihan_variants_2F8F1[] = { - "歔", -}; -static gchar *tomoe_unihan_variants_2F8F2[] = { - "㱎", -}; -static gchar *tomoe_unihan_variants_2F8F3[] = { - "歲", -}; -static gchar *tomoe_unihan_variants_2F8F4[] = { - "殟", -}; -static gchar *tomoe_unihan_variants_2F8F5[] = { - "殺", -}; -static gchar *tomoe_unihan_variants_2F8F6[] = { - "殻", -}; -static gchar *tomoe_unihan_variants_2F8F7[] = { - "㪍", -}; -static gchar *tomoe_unihan_variants_2F8F8[] = { - "ᴋ", -}; -static gchar *tomoe_unihan_variants_2F8F9[] = { - "㫺", -}; -static gchar *tomoe_unihan_variants_2F8FA[] = { - "汎", -}; -static gchar *tomoe_unihan_variants_2F8FB[] = { - "㲼", -}; -static gchar *tomoe_unihan_variants_2F8FC[] = { - "沿", -}; -static gchar *tomoe_unihan_variants_2F8FD[] = { - "泍", -}; -static gchar *tomoe_unihan_variants_2F8FE[] = { - "汧", -}; -static gchar *tomoe_unihan_variants_2F8FF[] = { - "洖", -}; -static gchar *tomoe_unihan_variants_2F900[] = { - "派", -};... [truncated message content] |
From: <kt...@us...> - 2007-10-16 14:18:49
|
Revision: 1573 http://tomoe.svn.sourceforge.net/tomoe/?rev=1573&view=rev Author: ktou Date: 2007-10-16 07:18:51 -0700 (Tue, 16 Oct 2007) Log Message: ----------- * configure.ac, data/kanjidic2xml.rb, data/Makefile.am: added --with-kanjidic option to support kanjidic data. (not kanjidic2) Modified Paths: -------------- tomoe/trunk/ChangeLog tomoe/trunk/configure.ac tomoe/trunk/data/Makefile.am Added Paths: ----------- tomoe/trunk/data/kanjidic2xml.rb Modified: tomoe/trunk/ChangeLog =================================================================== --- tomoe/trunk/ChangeLog 2007-08-07 23:01:10 UTC (rev 1572) +++ tomoe/trunk/ChangeLog 2007-10-16 14:18:51 UTC (rev 1573) @@ -1,3 +1,8 @@ +2007-10-16 Kouhei Sutou <ko...@co...> + + * configure.ac, data/kanjidic2xml.rb, data/Makefile.am: added + --with-kanjidic option to support kanjidic data. (not kanjidic2) + 2007-07-18 Takuro Ashie <as...@ho...> * module/dict/tomoe-dict-binary.c: Replace sizeof() with strlen(). Modified: tomoe/trunk/configure.ac =================================================================== --- tomoe/trunk/configure.ac 2007-08-07 23:01:10 UTC (rev 1572) +++ tomoe/trunk/configure.ac 2007-10-16 14:18:51 UTC (rev 1573) @@ -257,7 +257,28 @@ fi AM_CONDITIONAL(USE_DICT_RUBY, [test x"$use_dict_ruby" = "xyes"]) +dnl ************************************************************** +dnl Configure for KanjiDic. +dnl ************************************************************** +kanjidic_result="bundled" +AC_ARG_WITH([kanjidic], + AS_HELP_STRING([--with-kanjidic=PATH], + [Use specified kanjidic instead of including kanjidic2]), + [use_kanjidic=yes; KANJIDIC="$withval"]) + +AC_SUBST(KANJIDIC) + +if test x"$ruby_available" != "xyes"; then + use_kanjidic=no +fi +if test x"$use_kanjidic" = "xyes"; then + kanjidic_result=$KANJIDIC +fi + +AM_CONDITIONAL(USE_KANJIDIC, [test x"$use_kanjidic" = "xyes"]) + + dnl ************************************************************** dnl Configure for Tomoe. dnl ************************************************************** @@ -330,4 +351,5 @@ echo " * Other Features" echo echo " gtk-doc : ${enable_gtk_doc}" +echo " KanjiDic : ${kanjidic_result}" echo Modified: tomoe/trunk/data/Makefile.am =================================================================== --- tomoe/trunk/data/Makefile.am 2007-08-07 23:01:10 UTC (rev 1572) +++ tomoe/trunk/data/Makefile.am 2007-10-16 14:18:51 UTC (rev 1573) @@ -20,7 +20,7 @@ CLEANFILES = *~ *.bak *.valid -pkgdata_DATA = dict.dtd xml2est.rb +pkgdata_DATA = dict.dtd xml2est.rb kanjidic2xml.rb dict_data_DATA = recognizer_data_DATA = handwriting-zh_CN.xml handwriting-ja.xml conf_DATA = config @@ -35,8 +35,13 @@ $(recognizer_data_DATA) \ $(conf_DATA) +if USE_KANJIDIC +kanjidic2.xml: $(KANJIDIC) + $(RUBY) $(srcdir)/kanjidic2xml.rb $(KANJIDIC) > $@ +else kanjidic2.xml: kanjidic2-original.xsl kanjidic2-original.xml $(XSLTPROC) kanjidic2-original.xsl kanjidic2-original.xml > $@ +endif SUFFIXES: .xml .valid Added: tomoe/trunk/data/kanjidic2xml.rb =================================================================== --- tomoe/trunk/data/kanjidic2xml.rb (rev 0) +++ tomoe/trunk/data/kanjidic2xml.rb 2007-10-16 14:18:51 UTC (rev 1573) @@ -0,0 +1,98 @@ +#!/usr/bin/env ruby + +require 'nkf' +require 'erb' +require 'ostruct' +require 'English' + +def parse_line(line) + info = OpenStruct.new + info.utf8, jis_code, rest = line.split(/ /u, 3) + ku, ten = jis_code.scan(/(..)/u).flatten.collect {|x| x.hex - 0x20} + info.n_strokes = [] + info.meta = {:jis208 => "#{ku}-#{ten}"} + info.readings = {:on => [], :kun => []} + meanings = [] + nanori = radical = false + until rest.empty? + case rest + when /\A\{/u + _, meaning, rest = rest.split(/[{}]/u, 3) + meanings << meaning + when /\A(MN|MP|[A-Z])/u + key = $1 + value, rest = $POSTMATCH.split(/ /u, 2) + case key + when "U" + info.meta[:ucs] = value + when "G" + info.meta[:jouyou] = value + when "S" + info.n_strokes << value + when "T" + case value + when "1" + nanori = true + when "2" + radical = true + end + end + else + reading, rest = rest.split(/ /u, 2) + unless nanori + if /-/ =~ reading or reading == NKF.nkf("-Ww --hiragana", reading) + info.readings[:kun] << reading + else + info.readings[:on] << reading + end + end + end + rest = rest.lstrip + end + info.meta[:meaning] = meanings.join(", ") unless meanings.empty? + info +end + +def output_character(info) + puts <<-EOC + <character> + <utf8>#{info.utf8}</utf8> +EOC + info.n_strokes.each do |n| + puts " <number-of-strokes>#{n}</number-of-strokes>" + end +puts <<-EOC + <readings> +EOC + [:on, :kun].each do |key| + info.readings[key].each do |value| + puts " <reading type=\"ja_#{key}\">#{value}</reading>" + end + end + puts <<-EOC + </readings> + <meta> +EOC + [:jis208, :ucs, :jouyou, :meaning].each do |key| + value = info.meta[key] + puts " <#{key}>#{ERB::Util.h(value)}</#{key}>" if value + end + puts <<-EOC + </meta> + </character> +EOC +end + + +puts <<-EOH +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE dictionary SYSTEM "dict.dtd"> +<dictionary name="Jim Breen's KanjiDic"> +EOH + +ARGF.each_line do |line| + next if /^#/ =~ line + output_character(parse_line(NKF.nkf("-Ew", line.rstrip))) +end + +puts "</dictionary>" Property changes on: tomoe/trunk/data/kanjidic2xml.rb ___________________________________________________________________ Name: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mbl...@us...> - 2007-08-07 23:01:09
|
Revision: 1572 http://tomoe.svn.sourceforge.net/tomoe/?rev=1572&view=rev Author: mblondel Date: 2007-08-07 16:01:10 -0700 (Tue, 07 Aug 2007) Log Message: ----------- "Looking up characters" didn't get displayed in the status bar. Modified Paths: -------------- tomoe-gtk/trunk/ChangeLog tomoe-gtk/trunk/src/tomoe-canvas.c tomoe-gtk/trunk/src/tomoe-reading-search.c Modified: tomoe-gtk/trunk/ChangeLog =================================================================== --- tomoe-gtk/trunk/ChangeLog 2007-07-18 07:14:17 UTC (rev 1571) +++ tomoe-gtk/trunk/ChangeLog 2007-08-07 23:01:10 UTC (rev 1572) @@ -1,3 +1,9 @@ +2007-08-08 Mathieu Blondel <mbl...@ru...> + + * src/tomoe-canvas.c: "Looking up characters" didn't get displayed in + the status bar. + * src/tomoe-reading-search.c: Ditto. + 2007-07-12 Mathieu Blondel <mbl...@ru...> * src/tomoe-canvas.c: Don't trigger "find" signal if writing empty. Modified: tomoe-gtk/trunk/src/tomoe-canvas.c =================================================================== --- tomoe-gtk/trunk/src/tomoe-canvas.c 2007-07-18 07:14:17 UTC (rev 1571) +++ tomoe-gtk/trunk/src/tomoe-canvas.c 2007-08-07 23:01:10 UTC (rev 1572) @@ -705,6 +705,11 @@ (gdouble) TOMOE_WRITING_WIDTH / priv->width, (gdouble) TOMOE_WRITING_HEIGHT / priv->height); + /* Waits for any UI events pending like e.g. messages for the statusbar. + This can be removed one day if tomoe gets multi-threaded. */ + while (gtk_events_pending ()) + gtk_main_iteration (); + query = tomoe_query_new (); tomoe_query_set_writing (query, writing); priv->candidates = tomoe_context_search (priv->context, query); Modified: tomoe-gtk/trunk/src/tomoe-reading-search.c =================================================================== --- tomoe-gtk/trunk/src/tomoe-reading-search.c 2007-07-18 07:14:17 UTC (rev 1571) +++ tomoe-gtk/trunk/src/tomoe-reading-search.c 2007-08-07 23:01:10 UTC (rev 1572) @@ -464,8 +464,12 @@ priv->query = query; + /* Waits for any UI events pending like e.g. messages for the statusbar. + This can be removed one day if tomoe gets multi-threaded. */ + while (gtk_events_pending ()) + gtk_main_iteration (); + /* search for characters and add them to the list store */ - result = tomoe_context_search (priv->context, query); priv->n_characters = g_list_length (result); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2007-07-18 07:14:17
|
Revision: 1571 http://tomoe.svn.sourceforge.net/tomoe/?rev=1571&view=rev Author: makeinu Date: 2007-07-18 00:14:17 -0700 (Wed, 18 Jul 2007) Log Message: ----------- Replace sizeof() with strlen(). Modified Paths: -------------- tomoe/trunk/ChangeLog tomoe/trunk/module/dict/tomoe-dict-binary.c Modified: tomoe/trunk/ChangeLog =================================================================== --- tomoe/trunk/ChangeLog 2007-07-18 05:25:19 UTC (rev 1570) +++ tomoe/trunk/ChangeLog 2007-07-18 07:14:17 UTC (rev 1571) @@ -1,5 +1,10 @@ 2007-07-18 Takuro Ashie <as...@ho...> + * module/dict/tomoe-dict-binary.c: Replace sizeof() with strlen(). + sizeof(utf8) is size of a pointer variable! + +2007-07-18 Takuro Ashie <as...@ho...> + * module/dict/tomoe-dict-binary.c: Remove needless freeing. 2007-07-16 Mathieu Blondel <mbl...@ru...> Modified: tomoe/trunk/module/dict/tomoe-dict-binary.c =================================================================== --- tomoe/trunk/module/dict/tomoe-dict-binary.c 2007-07-18 05:25:19 UTC (rev 1570) +++ tomoe/trunk/module/dict/tomoe-dict-binary.c 2007-07-18 07:14:17 UTC (rev 1571) @@ -446,7 +446,7 @@ file = g_fopen (dict->filename, "w"); if (dict->name) { - length = sizeof (dict->name); + length = strlen (dict->name); put_ushort (file, length); fwrite (dict->name, 1, length, file); } else { @@ -460,7 +460,7 @@ chr = g_ptr_array_index (chars, i); utf8 = tomoe_char_get_utf8 (chr); - length = sizeof (utf8); + length = strlen (utf8); put_ushort (file, length); fwrite (utf8, 1, length, file); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2007-07-18 05:25:20
|
Revision: 1570 http://tomoe.svn.sourceforge.net/tomoe/?rev=1570&view=rev Author: makeinu Date: 2007-07-17 22:25:19 -0700 (Tue, 17 Jul 2007) Log Message: ----------- Remove needless freeing. Modified Paths: -------------- tomoe/trunk/ChangeLog tomoe/trunk/module/dict/tomoe-dict-binary.c Modified: tomoe/trunk/ChangeLog =================================================================== --- tomoe/trunk/ChangeLog 2007-07-16 14:16:18 UTC (rev 1569) +++ tomoe/trunk/ChangeLog 2007-07-18 05:25:19 UTC (rev 1570) @@ -1,3 +1,7 @@ +2007-07-18 Takuro Ashie <as...@ho...> + + * module/dict/tomoe-dict-binary.c: Remove needless freeing. + 2007-07-16 Mathieu Blondel <mbl...@ru...> * module/dict/tomoe-dict-binary.c: update to fit project's coding Modified: tomoe/trunk/module/dict/tomoe-dict-binary.c =================================================================== --- tomoe/trunk/module/dict/tomoe-dict-binary.c 2007-07-16 14:16:18 UTC (rev 1569) +++ tomoe/trunk/module/dict/tomoe-dict-binary.c 2007-07-18 05:25:19 UTC (rev 1570) @@ -463,7 +463,6 @@ length = sizeof (utf8); put_ushort (file, length); fwrite (utf8, 1, length, file); - g_free (utf8); writing = tomoe_char_get_writing (chr); n_strokes = tomoe_writing_get_n_strokes (writing); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mbl...@us...> - 2007-07-16 14:16:20
|
Revision: 1569 http://tomoe.svn.sourceforge.net/tomoe/?rev=1569&view=rev Author: mblondel Date: 2007-07-16 07:16:18 -0700 (Mon, 16 Jul 2007) Log Message: ----------- * module/dict/tomoe-dict-binary.c: update to fit project's coding style. Modified Paths: -------------- tomoe/trunk/ChangeLog tomoe/trunk/module/dict/tomoe-dict-binary.c Modified: tomoe/trunk/ChangeLog =================================================================== --- tomoe/trunk/ChangeLog 2007-07-13 12:29:11 UTC (rev 1568) +++ tomoe/trunk/ChangeLog 2007-07-16 14:16:18 UTC (rev 1569) @@ -1,3 +1,8 @@ +2007-07-16 Mathieu Blondel <mbl...@ru...> + + * module/dict/tomoe-dict-binary.c: update to fit project's coding + style. + 2007-07-12 Kouhei Sutou <ko...@co...> * benchmark/load-dict.rb: used Tomoe::Dict.exist?. Modified: tomoe/trunk/module/dict/tomoe-dict-binary.c =================================================================== --- tomoe/trunk/module/dict/tomoe-dict-binary.c 2007-07-13 12:29:11 UTC (rev 1568) +++ tomoe/trunk/module/dict/tomoe-dict-binary.c 2007-07-16 14:16:18 UTC (rev 1569) @@ -367,8 +367,7 @@ dict->name = read_string (data, length, &cursor); n_chars = read_ulong (data, &cursor); - for (i=0; i < n_chars; i++) - { + for (i=0; i < n_chars; i++) { chr = tomoe_char_new (); length = read_ushort (data, &cursor); @@ -378,12 +377,10 @@ n_strokes = read_ushort (data, &cursor); writing = tomoe_writing_new (); - for (j=0; j < n_strokes; j++) - { + for (j=0; j < n_strokes; j++) { n_pairs = read_ushort (data, &cursor); - for (k=0; k < n_pairs; k++) - { + for (k=0; k < n_pairs; k++) { x = read_ushort (data, &cursor); y = read_ushort (data, &cursor); if (k == 0) @@ -448,22 +445,18 @@ file = g_fopen (dict->filename, "w"); - if (dict->name) - { + if (dict->name) { length = sizeof (dict->name); put_ushort (file, length); fwrite (dict->name, 1, length, file); - } - else - { + } else { put_ushort (file, 0); } chars = _tomoe_dict_ptr_array_get_array (TOMOE_DICT_PTR_ARRAY (dict)); put_ulong (file, chars->len); - for (i = 0; i < chars->len; i++) - { + for (i = 0; i < chars->len; i++) { chr = g_ptr_array_index (chars, i); utf8 = tomoe_char_get_utf8 (chr); @@ -477,20 +470,16 @@ put_ushort (file, n_strokes); stroke_list = tomoe_writing_get_strokes (writing); - for (; stroke_list; stroke_list = g_list_next (stroke_list)) - { + for (; stroke_list; stroke_list = g_list_next (stroke_list)) { point_list = stroke_list->data; - if (!point_list) - { + if (!point_list) { put_ushort (file, 0); } - else - { + else { put_ushort (file, g_list_length (point_list)); - for (; point_list; point_list = g_list_next (point_list)) - { + for (; point_list; point_list = g_list_next (point_list)) { p = point_list->data; put_ushort (file, p->x); put_ushort (file, p->y); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mbl...@us...> - 2007-07-13 12:29:10
|
Revision: 1568 http://tomoe.svn.sourceforge.net/tomoe/?rev=1568&view=rev Author: mblondel Date: 2007-07-13 05:29:11 -0700 (Fri, 13 Jul 2007) Log Message: ----------- fixed indent Modified Paths: -------------- tomoe-gtk/trunk/ChangeLog Modified: tomoe-gtk/trunk/ChangeLog =================================================================== --- tomoe-gtk/trunk/ChangeLog 2007-07-13 08:28:09 UTC (rev 1567) +++ tomoe-gtk/trunk/ChangeLog 2007-07-13 12:29:11 UTC (rev 1568) @@ -1,13 +1,13 @@ 2007-07-12 Mathieu Blondel <mbl...@ru...> - * src/tomoe-canvas.c: Don't trigger "find" signal if writing empty. - * src/tomoe-reading-search.[ch]: Added "find" and "clear" signals. Added - tomoe_reading_search_get_n_characters and tomoe_reading_search_get_query - functions. - * src/tomoe-window.c: Added status bar. - * src/tomoe-window.h: Added constants TOMOE_WINDOW_HANDWRITING_PAGE, - TOMOE_WINDOW_READING_SEARCH_PAGE, TOMOE_WINDOW_GUCHARMAP_PAGE and - function tomoe_window_get_statusbar. + * src/tomoe-canvas.c: Don't trigger "find" signal if writing empty. + * src/tomoe-reading-search.[ch]: Added "find" and "clear" signals. Added + tomoe_reading_search_get_n_characters and tomoe_reading_search_get_query + functions. + * src/tomoe-window.c: Added status bar. + * src/tomoe-window.h: Added constants TOMOE_WINDOW_HANDWRITING_PAGE, + TOMOE_WINDOW_READING_SEARCH_PAGE, TOMOE_WINDOW_GUCHARMAP_PAGE and + function tomoe_window_get_statusbar. 2007-06-29 Takuro Ashie <as...@ho...> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mbl...@us...> - 2007-07-13 08:28:17
|
Revision: 1567 http://tomoe.svn.sourceforge.net/tomoe/?rev=1567&view=rev Author: mblondel Date: 2007-07-13 01:28:09 -0700 (Fri, 13 Jul 2007) Log Message: ----------- * src/tomoe-canvas.c: Don't trigger "find" signal if writing empty. * src/tomoe-reading-search.[ch]: Added "find" and "clear" signals. Added tomoe_reading_search_get_n_characters and tomoe_reading_search_get_query functions. * src/tomoe-window.c: Added status bar. * src/tomoe-window.h: Added constants TOMOE_WINDOW_HANDWRITING_PAGE, TOMOE_WINDOW_READING_SEARCH_PAGE, TOMOE_WINDOW_GUCHARMAP_PAGE and function tomoe_window_get_statusbar. Modified Paths: -------------- tomoe-gtk/trunk/ChangeLog tomoe-gtk/trunk/src/tomoe-canvas.c tomoe-gtk/trunk/src/tomoe-reading-search.c tomoe-gtk/trunk/src/tomoe-reading-search.h tomoe-gtk/trunk/src/tomoe-window.c tomoe-gtk/trunk/src/tomoe-window.h Modified: tomoe-gtk/trunk/ChangeLog =================================================================== --- tomoe-gtk/trunk/ChangeLog 2007-07-12 12:34:12 UTC (rev 1566) +++ tomoe-gtk/trunk/ChangeLog 2007-07-13 08:28:09 UTC (rev 1567) @@ -1,3 +1,14 @@ +2007-07-12 Mathieu Blondel <mbl...@ru...> + + * src/tomoe-canvas.c: Don't trigger "find" signal if writing empty. + * src/tomoe-reading-search.[ch]: Added "find" and "clear" signals. Added + tomoe_reading_search_get_n_characters and tomoe_reading_search_get_query + functions. + * src/tomoe-window.c: Added status bar. + * src/tomoe-window.h: Added constants TOMOE_WINDOW_HANDWRITING_PAGE, + TOMOE_WINDOW_READING_SEARCH_PAGE, TOMOE_WINDOW_GUCHARMAP_PAGE and + function tomoe_window_get_statusbar. + 2007-06-29 Takuro Ashie <as...@ho...> * configure.ac: Version 0.6.0. Modified: tomoe-gtk/trunk/src/tomoe-canvas.c =================================================================== --- tomoe-gtk/trunk/src/tomoe-canvas.c 2007-07-12 12:34:12 UTC (rev 1566) +++ tomoe-gtk/trunk/src/tomoe-canvas.c 2007-07-13 08:28:09 UTC (rev 1567) @@ -684,8 +684,6 @@ g_return_if_fail (TOMOE_IS_CANVAS (canvas)); priv = TOMOE_CANVAS_GET_PRIVATE (canvas); - if (tomoe_writing_get_n_strokes (priv->writing) == 0) - return; _init_gc (canvas); @@ -718,7 +716,6 @@ 0, 0, 0, 0, widget->allocation.width, widget->allocation.height); - } static void @@ -1048,8 +1045,12 @@ void tomoe_canvas_find (TomoeCanvas *canvas) { + TomoeCanvasPriv *priv; g_return_if_fail (TOMOE_IS_CANVAS (canvas)); - g_signal_emit (G_OBJECT (canvas), canvas_signals[FIND_SIGNAL], 0); + priv = TOMOE_CANVAS_GET_PRIVATE (canvas); + + if (tomoe_writing_get_n_strokes (priv->writing) > 0) + g_signal_emit (G_OBJECT (canvas), canvas_signals[FIND_SIGNAL], 0); } guint Modified: tomoe-gtk/trunk/src/tomoe-reading-search.c =================================================================== --- tomoe-gtk/trunk/src/tomoe-reading-search.c 2007-07-12 12:34:12 UTC (rev 1566) +++ tomoe-gtk/trunk/src/tomoe-reading-search.c 2007-07-13 08:28:09 UTC (rev 1567) @@ -30,12 +30,15 @@ enum { SELECTED_SIGNAL, + FIND_SIGNAL, + CLEAR_SIGNAL, LAST_SIGNAL }; enum { PROP_0, - PROP_TOMOE_CONTEXT + PROP_TOMOE_CONTEXT, + PROP_TOMOE_QUERY }; enum { @@ -54,7 +57,9 @@ { TomoeContext *context; GtkListStore *result_store; + guint n_characters; GtkWidget *input; + TomoeQuery *query; GtkWidget *min_strokes_label; GtkWidget *max_strokes_label; GtkWidget *min_strokes_spin; @@ -93,14 +98,18 @@ static void on_result_view_button_release_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data); +static void tomoe_reading_search_start_search_real + (TomoeReadingSearch *page); static guint reading_search_signals[LAST_SIGNAL] = { 0 }; GtkWidget * tomoe_reading_search_new (TomoeContext *context) { + return GTK_WIDGET(g_object_new (TOMOE_TYPE_READING_SEARCH, "tomoe-context", context, + "tomoe-query", NULL, NULL)); } @@ -114,6 +123,8 @@ gobject_class->set_property = set_property; gobject_class->get_property = get_property; klass->selected = NULL; + klass->find = tomoe_reading_search_start_search_real; + klass->clear = NULL; reading_search_signals[SELECTED_SIGNAL] = g_signal_new ("selected", @@ -124,6 +135,24 @@ g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); + reading_search_signals[FIND_SIGNAL] = + g_signal_new ("find", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (TomoeReadingSearchClass, find), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + + reading_search_signals[CLEAR_SIGNAL] = + g_signal_new ("clear", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (TomoeReadingSearchClass, clear), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + spec = g_param_spec_object ( "tomoe-context", N_("Tomoe context"), @@ -131,6 +160,13 @@ TOMOE_TYPE_CONTEXT, G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY); g_object_class_install_property (gobject_class, PROP_TOMOE_CONTEXT, spec); + spec = g_param_spec_object ( + "tomoe-query", + N_("Tomoe query"), + N_("A TomoeQuery which stores the current query."), + TOMOE_TYPE_QUERY, G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY); + g_object_class_install_property (gobject_class, PROP_TOMOE_QUERY, spec); + g_type_class_add_private (gobject_class, sizeof (TomoeReadingSearchPrivate)); } @@ -314,7 +350,12 @@ g_object_unref (priv->context); priv->context = NULL; } + if (priv->query) { + g_object_unref (priv->query); + priv->query = NULL; + } + if (G_OBJECT_CLASS(tomoe_reading_search_parent_class)->dispose) G_OBJECT_CLASS(tomoe_reading_search_parent_class)->dispose(object); } @@ -339,6 +380,16 @@ priv->context = ctx; break; } + case PROP_TOMOE_QUERY: + { + TomoeQuery *q = TOMOE_QUERY (g_value_get_object (value)); + if (priv->query) + g_object_unref (priv->query); + if (q) + g_object_ref (q); + priv->query = q; + break; + } default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); break; @@ -358,6 +409,9 @@ case PROP_TOMOE_CONTEXT: g_value_set_object (value, G_OBJECT (priv->context)); break; + case PROP_TOMOE_QUERY: + g_value_set_object (value, G_OBJECT (priv->query)); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); break; @@ -365,7 +419,7 @@ } static void -tomoe_reading_search_start_search (TomoeReadingSearch *page) +tomoe_reading_search_start_search_real (TomoeReadingSearch *page) { GList *result, *list; const gchar *reading_text; @@ -381,7 +435,8 @@ gtk_tree_view_set_model (GTK_TREE_VIEW (priv->treeview), NULL); gtk_list_store_clear (priv->result_store); - query = tomoe_query_new (); + /* building query */ + query = tomoe_query_new (); reading_text = gtk_entry_get_text (GTK_ENTRY (priv->input)); if (reading_text && *reading_text) { @@ -407,14 +462,14 @@ tomoe_query_set_max_n_strokes (query, max); } - if ((!reading_text || !*reading_text) && !min && !max) { - g_object_unref (G_OBJECT (query)); - return; - } + priv->query = query; - result = tomoe_context_search (priv->context, query); - g_object_unref (query); + /* search for characters and add them to the list store */ + result = tomoe_context_search (priv->context, query); + + priv->n_characters = g_list_length (result); + for (list = result; list; list = g_list_next (list)) { TomoeCandidate *cand = TOMOE_CANDIDATE (list->data); TomoeChar *c = tomoe_candidate_get_char (cand); @@ -492,6 +547,21 @@ } static void +tomoe_reading_search_start_search (TomoeReadingSearch *page) +{ + const gchar *reading_text; + TomoeReadingSearchPrivate *priv = TOMOE_READING_SEARCH_GET_PRIVATE (page); + reading_text = gtk_entry_get_text (GTK_ENTRY (priv->input)); + + if ((reading_text && *reading_text) || + gtk_expander_get_expanded (GTK_EXPANDER (priv->expander))) + g_signal_emit (G_OBJECT (page), + reading_search_signals[FIND_SIGNAL], 0); + +} + + +static void tomoe_reading_search_clear (TomoeReadingSearch *page) { @@ -505,6 +575,16 @@ gtk_list_store_clear (priv->result_store); gtk_tree_view_set_model (GTK_TREE_VIEW (priv->treeview), GTK_TREE_MODEL (priv->result_store)); + + if (priv->query) { + g_object_unref (priv->query); + priv->query = NULL; + } + + priv->n_characters = 0; + + g_signal_emit (G_OBJECT (page), + reading_search_signals[CLEAR_SIGNAL], 0); } const gchar * @@ -554,6 +634,24 @@ return c; } +guint +tomoe_reading_search_get_n_characters (TomoeReadingSearch *page) +{ + TomoeReadingSearchPrivate *priv; + g_return_val_if_fail (TOMOE_IS_READING_SEARCH (page), 0); + priv = TOMOE_READING_SEARCH_GET_PRIVATE (page); + return priv->n_characters; +} + +TomoeQuery * +tomoe_reading_search_get_query (TomoeReadingSearch *page) +{ + TomoeReadingSearchPrivate *priv; + g_return_val_if_fail (TOMOE_IS_READING_SEARCH (page), NULL); + priv = TOMOE_READING_SEARCH_GET_PRIVATE (page); + return priv->query; +} + static void on_input_entry_activate (GtkEntry *entry, gpointer *user_data) { Modified: tomoe-gtk/trunk/src/tomoe-reading-search.h =================================================================== --- tomoe-gtk/trunk/src/tomoe-reading-search.h 2007-07-12 12:34:12 UTC (rev 1566) +++ tomoe-gtk/trunk/src/tomoe-reading-search.h 2007-07-13 08:28:09 UTC (rev 1567) @@ -47,7 +47,9 @@ { GtkTableClass parent_class; /* -- signals -- */ - void (*selected) (TomoeReadingSearch *search); + void (*selected) (TomoeReadingSearch *search); + void (*find) (TomoeReadingSearch *search); + void (*clear) (TomoeReadingSearch *search); }; @@ -58,6 +60,9 @@ TomoeChar *tomoe_reading_search_get_selected_tomoe_char (TomoeReadingSearch *page); +guint tomoe_reading_search_get_n_characters (TomoeReadingSearch *page); +TomoeQuery * tomoe_reading_search_get_query (TomoeReadingSearch *page); + G_END_DECLS #endif /* __TOMOE_READING_SEARCH_H__ */ Modified: tomoe-gtk/trunk/src/tomoe-window.c =================================================================== --- tomoe-gtk/trunk/src/tomoe-window.c 2007-07-12 12:34:12 UTC (rev 1566) +++ tomoe-gtk/trunk/src/tomoe-window.c 2007-07-13 08:28:09 UTC (rev 1567) @@ -60,7 +60,9 @@ TomoeContext *context; GtkWidget *notebook; + GtkWidget *statusbar; + /* child pages */ GtkWidget *handwriting; GtkWidget *reading; @@ -82,6 +84,24 @@ GValue *value, GParamSpec *pspec); +static void on_canvas_find (TomoeCanvas *canvas, + gpointer user_data); + +static void on_canvas_find_after (TomoeCanvas *canvas, + gpointer user_data); + +static void on_canvas_clear (TomoeCanvas *canvas, + gpointer user_data); + +static void on_reading_search_find (TomoeReadingSearch *reading, + gpointer user_data); + +static void on_reading_search_find_after (TomoeReadingSearch *reading, + gpointer user_data); + +static void on_reading_search_clear (TomoeReadingSearch *reading, + gpointer user_data); + static void on_notebook_switch_page (GtkNotebook *notebook, GtkNotebookPage *page, guint page_num, @@ -147,7 +167,7 @@ tomoe_window_init (TomoeWindow *window) { TomoeHandwriting *handwriting_page; - GtkWidget *widget, *notebook, *vbox; + GtkWidget *widget, *notebook, *vbox, *statusbar, *canvas; TomoeWindowPrivate *priv = TOMOE_WINDOW_GET_PRIVATE (window); /* for backward compatibility */ @@ -206,8 +226,8 @@ gtk_image_new_from_file (TOMOE_SEARCHING_ICON), _("Search with reading")); -#ifdef TOMOE_GTK_HAS_GUCHARMAP /* gucharmap page */ +#ifdef TOMOE_GTK_HAS_GUCHARMAP widget = tomoe_gucharmap_new (); priv->gucharmap = widget; g_signal_connect (G_OBJECT (widget), "selected", @@ -220,6 +240,36 @@ #else /* TOMOE_GTK_HAS_GUCHARMAP */ priv->gucharmap = NULL; #endif /* TOMOE_GTK_HAS_GUCHARMAP */ + + /* status bar */ + + statusbar = gtk_statusbar_new (); + priv->statusbar = statusbar; + g_object_ref (G_OBJECT (priv->statusbar)); + gtk_statusbar_set_has_resize_grip ( GTK_STATUSBAR (statusbar), TRUE); + gtk_box_pack_end (GTK_BOX (vbox), statusbar, FALSE, TRUE, 2); + canvas = tomoe_handwriting_get_canvas ( TOMOE_HANDWRITING ( + priv->handwriting)); + g_signal_connect (G_OBJECT (canvas), "find", + G_CALLBACK (on_canvas_find), window); + + g_signal_connect_after (G_OBJECT (canvas), "find", + G_CALLBACK (on_canvas_find_after), window); + + g_signal_connect (G_OBJECT (canvas), "clear", + G_CALLBACK (on_canvas_clear), window); + + g_signal_connect (G_OBJECT (priv->reading), "find", + G_CALLBACK (on_reading_search_find), window); + + g_signal_connect_after (G_OBJECT (priv->reading), "find", + G_CALLBACK (on_reading_search_find_after), + window); + + g_signal_connect (G_OBJECT (priv->reading), "clear", + G_CALLBACK (on_reading_search_clear), window); + + gtk_widget_show (statusbar); } static void @@ -237,6 +287,11 @@ priv->tooltips = NULL; } + if (priv->statusbar) { + g_object_unref (priv->statusbar); + priv->statusbar = NULL; + } + tomoe_quit (); if (G_OBJECT_CLASS(tomoe_window_parent_class)->dispose) @@ -355,6 +410,14 @@ return TOMOE_WINDOW_GET_PRIVATE (window)->gucharmap; } +GtkWidget * +tomoe_window_get_statusbar (TomoeWindow *window) +{ + g_return_val_if_fail (TOMOE_IS_WINDOW (window), NULL); + + return TOMOE_WINDOW_GET_PRIVATE (window)->statusbar; +} + const gchar * tomoe_window_get_selected_char (TomoeWindow *window) { @@ -366,7 +429,8 @@ priv = TOMOE_WINDOW_GET_PRIVATE (window); page_num = gtk_notebook_get_current_page (GTK_NOTEBOOK (priv->notebook)); - widget = gtk_notebook_get_nth_page (GTK_NOTEBOOK (priv->notebook), page_num); + widget = gtk_notebook_get_nth_page (GTK_NOTEBOOK (priv->notebook), +page_num); if (TOMOE_IS_HANDWRITING (widget)) return tomoe_handwriting_get_selected_char (widget); @@ -390,7 +454,8 @@ priv = TOMOE_WINDOW_GET_PRIVATE (window); page_num = gtk_notebook_get_current_page (GTK_NOTEBOOK (priv->notebook)); - widget = gtk_notebook_get_nth_page (GTK_NOTEBOOK (priv->notebook), page_num); + widget = gtk_notebook_get_nth_page (GTK_NOTEBOOK (priv->notebook), +page_num); if (TOMOE_IS_HANDWRITING (widget)) return tomoe_handwriting_get_selected_tomoe_char (widget); @@ -404,11 +469,110 @@ } static void +tomoe_window_statusbar_pop (GtkWidget *statusbar) +{ + gtk_statusbar_pop (GTK_STATUSBAR (statusbar), 0); +} + +static void +tomoe_window_statusbar_push (GtkWidget *statusbar, gchar *msg) +{ + tomoe_window_statusbar_pop (statusbar); + gtk_statusbar_push (GTK_STATUSBAR (statusbar), 0, msg); +} + +static void +on_canvas_find (TomoeCanvas *canvas, gpointer user_data) +{ + TomoeWindow *window = TOMOE_WINDOW (user_data); + TomoeWindowPrivate *priv = TOMOE_WINDOW_GET_PRIVATE (window); + + tomoe_window_statusbar_push (priv->statusbar, + _("Looking up candidates...")); +} + +static void +on_canvas_find_after (TomoeCanvas *canvas, gpointer user_data) +{ + TomoeWindow *window = TOMOE_WINDOW (user_data); + TomoeWindowPrivate *priv = TOMOE_WINDOW_GET_PRIVATE (window); + guint n_candidates; + gchar *msg; + + n_candidates = tomoe_canvas_get_n_candidates (TOMOE_CANVAS (canvas)); + + if (n_candidates == 0) + msg = g_strdup (_("No candidate found")); + else if (n_candidates == 1) + msg = g_strdup (_("1 candidate found")); + else + msg = g_strdup_printf (_("%d candidates found"), n_candidates); + + tomoe_window_statusbar_push (priv->statusbar, msg); + + g_free (msg); + +} + +static void +on_canvas_clear (TomoeCanvas *canvas, gpointer user_data) +{ + TomoeWindow *window = TOMOE_WINDOW (user_data); + TomoeWindowPrivate *priv = TOMOE_WINDOW_GET_PRIVATE (window); + tomoe_window_statusbar_pop (priv->statusbar); +} + +static void +on_reading_search_find (TomoeReadingSearch *reading, gpointer user_data) +{ + TomoeWindow *window = TOMOE_WINDOW (user_data); + TomoeWindowPrivate *priv = TOMOE_WINDOW_GET_PRIVATE (window); + + tomoe_window_statusbar_push (priv->statusbar, + _("Looking up characters...")); +} + +static void +on_reading_search_find_after (TomoeReadingSearch *reading, + gpointer user_data) +{ + TomoeWindow *window = TOMOE_WINDOW (user_data); + TomoeWindowPrivate *priv = TOMOE_WINDOW_GET_PRIVATE (window); + guint n_chars; + gchar *msg; + + n_chars = tomoe_reading_search_get_n_characters (reading); + + if (n_chars == 0) + msg = g_strdup (_("No character found")); + else if (n_chars == 1) + msg = g_strdup (_("1 character found")); + else + msg = g_strdup_printf (_("%d characters found"), n_chars); + + tomoe_window_statusbar_push (priv->statusbar, msg); + + g_free (msg); + +} + +static void +on_reading_search_clear (TomoeReadingSearch *reading, gpointer user_data) +{ + TomoeWindow *window = TOMOE_WINDOW (user_data); + TomoeWindowPrivate *priv = TOMOE_WINDOW_GET_PRIVATE (window); + tomoe_window_statusbar_pop (priv->statusbar); +} + +static void on_notebook_switch_page (GtkNotebook *notebook, GtkNotebookPage *page, guint page_num, gpointer user_data) { TomoeWindow *window = TOMOE_WINDOW (user_data); + TomoeWindowPrivate *priv = TOMOE_WINDOW_GET_PRIVATE (window); GtkWidget *widget = gtk_notebook_get_nth_page (notebook, page_num); + GtkWidget *canvas; + TomoeWriting *writing; const gchar *title = g_object_get_data (G_OBJECT (widget), "TomoeWindow::page-title"); @@ -416,6 +580,33 @@ gtk_window_set_title (GTK_WINDOW (window), title); else gtk_window_set_title (GTK_WINDOW (window), _("Tomoe")); + + /* redisplay the statusbar message if the user changes the page + and then goes to the previous page again */ + canvas = tomoe_handwriting_get_canvas (TOMOE_HANDWRITING + (priv->handwriting)); + writing = tomoe_canvas_get_writing (TOMOE_CANVAS (canvas)); + + if (priv->statusbar) { + if (page_num == TOMOE_WINDOW_HANDWRITING_PAGE && + tomoe_writing_get_n_strokes (writing) > 0) + + on_canvas_find_after (TOMOE_CANVAS (canvas), + (gpointer) window); + + + else if (page_num == TOMOE_WINDOW_READING_SEARCH_PAGE && + tomoe_reading_search_get_query ( + TOMOE_READING_SEARCH (priv->reading))) + + on_reading_search_find_after ( + TOMOE_READING_SEARCH (priv->reading), + (gpointer) window); + + else + tomoe_window_statusbar_pop (priv->statusbar); + + } } static void Modified: tomoe-gtk/trunk/src/tomoe-window.h =================================================================== --- tomoe-gtk/trunk/src/tomoe-window.h 2007-07-12 12:34:12 UTC (rev 1566) +++ tomoe-gtk/trunk/src/tomoe-window.h 2007-07-13 08:28:09 UTC (rev 1567) @@ -32,6 +32,11 @@ #define TOMOE_IS_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TOMOE_TYPE_WINDOW)) #define TOMOE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TOMOE_TYPE_WINDOW, TomoeWindowClass)) +enum { + TOMOE_WINDOW_HANDWRITING_PAGE, + TOMOE_WINDOW_READING_SEARCH_PAGE, + TOMOE_WINDOW_GUCHARMAP_PAGE +}; typedef struct _TomoeWindowClass TomoeWindowClass; typedef struct _TomoeWindow TomoeWindow; @@ -67,6 +72,8 @@ */ GtkWidget *tomoe_window_get_gucharmap_page (TomoeWindow *window); +GtkWidget *tomoe_window_get_statusbar (TomoeWindow *window); + const gchar *tomoe_window_get_selected_char (TomoeWindow *window); TomoeChar *tomoe_window_get_selected_tomoe_char (TomoeWindow *window); G_END_DECLS This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kt...@us...> - 2007-07-12 12:34:13
|
Revision: 1566 http://tomoe.svn.sourceforge.net/tomoe/?rev=1566&view=rev Author: ktou Date: 2007-07-12 05:34:12 -0700 (Thu, 12 Jul 2007) Log Message: ----------- * removed garbages... Sorry... Modified Paths: -------------- tomoe/trunk/benchmark/load-dict.rb Modified: tomoe/trunk/benchmark/load-dict.rb =================================================================== --- tomoe/trunk/benchmark/load-dict.rb 2007-07-12 12:33:19 UTC (rev 1565) +++ tomoe/trunk/benchmark/load-dict.rb 2007-07-12 12:34:12 UTC (rev 1566) @@ -11,29 +11,22 @@ n = 3 Benchmark.bmbm do |x| -# if ARGV.length == 1 -# binary = ARGV[0] + ".bin" + if ARGV.length == 1 + binary = ARGV[0] + ".bin" -# x.report(File.basename(binary)) do -# n.times {Tomoe::DictBinary.new("filename" => binary, -# "editable" => false)} -# end + x.report(File.basename(binary)) do + n.times {Tomoe::DictBinary.new("filename" => binary, + "editable" => false)} + end -# dictionary = ARGV[0] + ".xml" -# else -# dictionary = TomoeTestUtils::Path.dictionary -# end + dictionary = ARGV[0] + ".xml" + else + dictionary = TomoeTestUtils::Path.dictionary + end -# x.report(File.basename(dictionary)) do -# n.times {Tomoe::DictXML.new("filename" => dictionary, -# "editable" => false)} -# end - - have_unihan = false - begin - Tomoe::DictUnihan - have_unihan = true - rescue NameError + x.report(File.basename(dictionary)) do + n.times {Tomoe::DictXML.new("filename" => dictionary, + "editable" => false)} end if Tomoe::Dict.exist?("Unihan") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kt...@us...> - 2007-07-12 12:33:19
|
Revision: 1565 http://tomoe.svn.sourceforge.net/tomoe/?rev=1565&view=rev Author: ktou Date: 2007-07-12 05:33:19 -0700 (Thu, 12 Jul 2007) Log Message: ----------- * ChangeLog: fixed storange ChangeLog format. Modified Paths: -------------- tomoe/trunk/ChangeLog Modified: tomoe/trunk/ChangeLog =================================================================== --- tomoe/trunk/ChangeLog 2007-07-12 12:32:51 UTC (rev 1564) +++ tomoe/trunk/ChangeLog 2007-07-12 12:33:19 UTC (rev 1565) @@ -6,10 +6,10 @@ 2007-07-11 Mathieu Blondel <mbl...@ru...> - * module/dict/tomoe-dict-binary.c: added new backend using binary file. - * data/xml2binary.rb: convert a xml file to a binary file. - * module/dict/Makefile.am: compile the above backend. - * benchmark/load-dict.rb: compare binary and xml backends. + * module/dict/tomoe-dict-binary.c: added new backend using binary file. + * data/xml2binary.rb: convert a xml file to a binary file. + * module/dict/Makefile.am: compile the above backend. + * benchmark/load-dict.rb: compare binary and xml backends. 2007-07-07 Kouhei Sutou <ko...@co...> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kt...@us...> - 2007-07-12 12:32:51
|
Revision: 1564 http://tomoe.svn.sourceforge.net/tomoe/?rev=1564&view=rev Author: ktou Date: 2007-07-12 05:32:51 -0700 (Thu, 12 Jul 2007) Log Message: ----------- * benchmark/load-dict.rb: used Tomoe::Dict.exist?. * bindings/ruby/tomoe.rb (Tomoe::Dict.exist?): added. Modified Paths: -------------- tomoe/trunk/ChangeLog tomoe/trunk/benchmark/load-dict.rb tomoe/trunk/bindings/ruby/tomoe.rb Modified: tomoe/trunk/ChangeLog =================================================================== --- tomoe/trunk/ChangeLog 2007-07-11 11:15:32 UTC (rev 1563) +++ tomoe/trunk/ChangeLog 2007-07-12 12:32:51 UTC (rev 1564) @@ -1,3 +1,9 @@ +2007-07-12 Kouhei Sutou <ko...@co...> + + * benchmark/load-dict.rb: used Tomoe::Dict.exist?. + + * bindings/ruby/tomoe.rb (Tomoe::Dict.exist?): added. + 2007-07-11 Mathieu Blondel <mbl...@ru...> * module/dict/tomoe-dict-binary.c: added new backend using binary file. Modified: tomoe/trunk/benchmark/load-dict.rb =================================================================== --- tomoe/trunk/benchmark/load-dict.rb 2007-07-11 11:15:32 UTC (rev 1563) +++ tomoe/trunk/benchmark/load-dict.rb 2007-07-12 12:32:51 UTC (rev 1564) @@ -11,25 +11,32 @@ n = 3 Benchmark.bmbm do |x| - if ARGV.length == 1 - binary = ARGV[0] + ".bin" +# if ARGV.length == 1 +# binary = ARGV[0] + ".bin" - x.report(File.basename(binary)) do - n.times {Tomoe::DictBinary.new("filename" => binary, - "editable" => false)} - end +# x.report(File.basename(binary)) do +# n.times {Tomoe::DictBinary.new("filename" => binary, +# "editable" => false)} +# end - dictionary = ARGV[0] + ".xml" - else - dictionary = TomoeTestUtils::Path.dictionary - end +# dictionary = ARGV[0] + ".xml" +# else +# dictionary = TomoeTestUtils::Path.dictionary +# end - x.report(File.basename(dictionary)) do - n.times {Tomoe::DictXML.new("filename" => dictionary, - "editable" => false)} +# x.report(File.basename(dictionary)) do +# n.times {Tomoe::DictXML.new("filename" => dictionary, +# "editable" => false)} +# end + + have_unihan = false + begin + Tomoe::DictUnihan + have_unihan = true + rescue NameError end - if Tomoe::Dict.load("Unihan") + if Tomoe::Dict.exist?("Unihan") x.report("Unihan") do n.times {Tomoe::DictUnihan.new} end Modified: tomoe/trunk/bindings/ruby/tomoe.rb =================================================================== --- tomoe/trunk/bindings/ruby/tomoe.rb 2007-07-11 11:15:32 UTC (rev 1563) +++ tomoe/trunk/bindings/ruby/tomoe.rb 2007-07-12 12:32:51 UTC (rev 1564) @@ -23,6 +23,19 @@ end end end + + class Dict + class << self + def exist?(name) + begin + Tomoe.const_get("Dict#{name}") + true + rescue NameError + false + end + end + end + end end GLib::Log.set_log_domain(Tomoe::LOG_DOMAIN) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |