• R/O
  • SSH
  • HTTPS

qrobosdk: コミット


コミットメタ情報

リビジョン1799 (tree)
日時2010-04-24 11:45:30
作者satofumi

ログメッセージ

added utf8_string.h

変更サマリ

差分

--- trunk/libs/lua/luabindInput.cpp (revision 1798)
+++ trunk/libs/lua/luabindInput.cpp (revision 1799)
@@ -11,6 +11,7 @@
1111 #include "convertToRoman.h"
1212 #include "convertToJp.h"
1313 #include "Utf8.h"
14+#include "utf8_string.h"
1415 #include <luabind/luabind.hpp>
1516
1617 using namespace qrk;
@@ -29,8 +30,9 @@
2930 .def("substr", &Utf8::substr)
3031 .def("pop_back", &Utf8::pop_back),
3132
33+ def("convertToRoman", &convertToRoman),
34+ def("convertToJp", &convertToJp),
3235
33- def("convertToRoman", &convertToRoman),
34- def("convertToJp", &convertToJp)
36+ def("utf8_matchSize", &utf8_matchSize)
3537 ];
3638 }
--- trunk/libs/input/utf8_string.cpp (nonexistent)
+++ trunk/libs/input/utf8_string.cpp (revision 1799)
@@ -0,0 +1,26 @@
1+/*!
2+ \file
3+ \brief UTF8 文字列の操作
4+
5+ \author Satofumi KAMIMURA
6+
7+ $Id$
8+*/
9+
10+#include "utf8_string.h"
11+#include "Utf8.h"
12+
13+using namespace qrk;
14+using namespace std;
15+
16+
17+size_t qrk::utf8_matchSize(const Utf8& s1, const Utf8& s2)
18+{
19+ size_t n = min(s1.size(), s2.size());
20+ for (size_t i = 0; i < n; ++i) {
21+ if (s1.ch(i) != s2.ch(i)) {
22+ return i;
23+ }
24+ }
25+ return n;
26+}
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
--- trunk/libs/input/convertToJp.cpp (revision 1798)
+++ trunk/libs/input/convertToJp.cpp (revision 1799)
@@ -42,7 +42,6 @@
4242 vector<unsigned short> converted;
4343 Utf8 utf8_text(raw_text);
4444 size_t raw_text_size = utf8_text.size();
45- // !!! copy() を使うべき
4645 for (size_t i = 0; i < raw_text_size; ++i) {
4746 converted.push_back(utf8_text[i]);
4847 }
--- trunk/libs/input/roman_table.txt (revision 1798)
+++ trunk/libs/input/roman_table.txt (revision 1799)
@@ -4,12 +4,6 @@
44 e え
55 o お
66
7-ka か
8-ki き
9-ku く
10-ke け
11-ko こ
12-
137 kya きゃ
148 kyi きぃ
159 kyu きゅ
@@ -17,12 +11,11 @@
1711 kyo きょ
1812 kwa くぁ
1913
20-sa さ
21-si し
22-shi し
23-su す
24-se せ
25-so そ
14+ka か
15+ki き
16+ku く
17+ke け
18+ko こ
2619
2720 sya しゃ
2821 sha しゃ
@@ -34,6 +27,41 @@
3427 syo しょ
3528 sho しょ
3629
30+sa さ
31+si し
32+shi し
33+su す
34+se せ
35+so そ
36+
37+tsa つぁ
38+tsi つぃ
39+tse つぇ
40+tso つぉ
41+
42+tha てゃ
43+thi てぃ
44+thu てゅ
45+the てぇ
46+tho てょ
47+
48+tya ちゃ
49+cya ちゃ
50+cha ちゃ
51+tyi ちぃ
52+cyi ちぃ
53+tyu ちゅ
54+cyu ちゅ
55+chu ちゅ
56+tye ちぇ
57+cye ちぇ
58+che ちぇ
59+tyo ちょ
60+cyo ちょ
61+cho ちょ
62+
63+twu とぅ
64+
3765 ta た
3866 ti ち
3967 chi ち
@@ -66,34 +94,12 @@
6694 ltsu っ
6795 xtsu っ
6896
69-tya ちゃ
70-cya ちゃ
71-cha ちゃ
72-tyi ちぃ
73-cyi ちぃ
74-tyu ちゅ
75-cyu ちゅ
76-chu ちゅ
77-tye ちぇ
78-cye ちぇ
79-che ちぇ
80-tyo ちょ
81-cyo ちょ
82-cho ちょ
97+nya にゃ
98+nyi にぃ
99+nyu にゅ
100+nye にぇ
101+nyo にょ
83102
84-tsa つぁ
85-tsi つぃ
86-tse つぇ
87-tso つぉ
88-
89-tha てゃ
90-thi てぃ
91-thu てゅ
92-the てぇ
93-tho てょ
94-
95-twu とぅ
96-
97103 na な
98104 ni に
99105 nu ぬ
@@ -100,19 +106,6 @@
100106 ne ね
101107 no の
102108
103-nya にゃ
104-nyi にぃ
105-nyu にゅ
106-nye にぇ
107-nyo にょ
108-
109-ha は
110-hi ひ
111-hu ふ
112-fu ふ
113-he へ
114-ho ほ
115-
116109 hya ひゃ
117110 hyi ひぃ
118111 hyu ひゅ
@@ -130,11 +123,12 @@
130123 fye ふぇ
131124 fyo ふょ
132125
133-ma ま
134-mi み
135-mu む
136-me め
137-mo も
126+ha は
127+hi ひ
128+hu ふ
129+fu ふ
130+he へ
131+ho ほ
138132
139133 mya みゃ
140134 myi みぃ
@@ -142,6 +136,12 @@
142136 mye みぇ
143137 myo みょ
144138
139+ma ま
140+mi み
141+mu む
142+me め
143+mo も
144+
145145 ya や
146146 yi い
147147 yu ゆ
@@ -148,6 +148,12 @@
148148 ye いぇ
149149 yo よ
150150
151+rya りゃ
152+ryi りぃ
153+ryu りゅ
154+rye りぇ
155+ryo りょ
156+
151157 ra ら
152158 ri り
153159 ru る
@@ -154,12 +160,6 @@
154160 re れ
155161 ro ろ
156162
157-rya りゃ
158-ryi りぃ
159-ryu りゅ
160-rye りぇ
161-ryo りょ
162-
163163 wa わ
164164 wi うぃ
165165 wu う
@@ -193,12 +193,6 @@
193193 n, ん,
194194 n. ん.
195195
196-ga が
197-gi ぎ
198-gu ぐ
199-ge げ
200-go ご
201-
202196 gya ぎゃ
203197 gyi ぎぃ
204198 gyu ぎゅ
@@ -207,12 +201,11 @@
207201
208202 gwa ぐぁ
209203
210-za ざ
211-zi じ
212-ji じ
213-zu ず
214-ze ぜ
215-zo ぞ
204+ga が
205+gi ぎ
206+gu ぐ
207+ge げ
208+go ご
216209
217210 ja じゃ
218211 jya じゃ
@@ -229,11 +222,12 @@
229222 jyo じょ
230223 zyo じょ
231224
232-da だ
233-di ぢ
234-du づ
235-de で
236-do ど
225+za ざ
226+zi じ
227+ji じ
228+zu ず
229+ze ぜ
230+zo ぞ
237231
238232 dya ぢゃ
239233 dyi ぢぃ
@@ -249,6 +243,12 @@
249243
250244 dwu どぅ
251245
246+da だ
247+di ぢ
248+du づ
249+de で
250+do ど
251+
252252 ba ば
253253 bi び
254254 bu ぶ
@@ -255,12 +255,6 @@
255255 be べ
256256 bo ぼ
257257
258-pa ぱ
259-pi ぴ
260-pu ぷ
261-pe ぺ
262-po ぽ
263-
264258 pya ぴゃ
265259 pyi ぴぃ
266260 pyu ぴゅ
@@ -273,6 +267,12 @@
273267 bye びぇ
274268 byo びょ
275269
270+pa ぱ
271+pi ぴ
272+pu ぷ
273+pe ぺ
274+po ぽ
275+
276276 va う゛ぁ
277277 vi う゛ぃ
278278 vu う゛
@@ -290,18 +290,18 @@
290290 xo ぉ
291291 lo ぉ
292292
293+xya ゃ
293294 lya ゃ
294-xya ゃ
295+xyi ぃ
295296 lyu ぃ
296-xyi ぃ
297+xyu ゅ
297298 lyu ゅ
298-xyu ゅ
299+xye ぇ
299300 lye ぇ
300-xye ぇ
301+xyo ょ
301302 lyo ょ
302-xyo ょ
303303
304+xka ヵ
304305 lka ヵ
305-xka ヵ
306+xke ヶ
306307 lke ヶ
307-xke ヶ
--- trunk/libs/input/TestConvertToRoman.cpp (revision 1798)
+++ trunk/libs/input/TestConvertToRoman.cpp (revision 1799)
@@ -19,9 +19,19 @@
1919
2020 void TestConvertToRoman::convertTest(void)
2121 {
22- //CPPUNIT_ASSERT_EQUAL(string("a"), convertToRoman("あ"));
22+ CPPUNIT_ASSERT_EQUAL(string("a"), convertToRoman("あ"));
2323 CPPUNIT_ASSERT_EQUAL(string("aka"), convertToRoman("あか"));
2424 CPPUNIT_ASSERT_EQUAL(string("ga"), convertToRoman("が"));
2525 CPPUNIT_ASSERT_EQUAL(string("nba"), convertToRoman("んば"));
26+ CPPUNIT_ASSERT_EQUAL(string("sixya"), convertToRoman("しゃ"));
2627 CPPUNIT_ASSERT_EQUAL(string("a"), convertToRoman("a"));
2728 }
29+
30+
31+void TestConvertToRoman::currentInputTest(void)
32+{
33+ CPPUNIT_ASSERT_EQUAL(string("a"), convertToRoman("あ", "a"));
34+ CPPUNIT_ASSERT_EQUAL(string("sha"), convertToRoman("しゃ", "sh"));
35+ CPPUNIT_ASSERT_EQUAL(string("sya"), convertToRoman("しゃ", "sy"));
36+ CPPUNIT_ASSERT_EQUAL(string("sixya"), convertToRoman("しゃ", "ss"));
37+}
--- trunk/libs/input/convertToRoman.cpp (revision 1798)
+++ trunk/libs/input/convertToRoman.cpp (revision 1799)
@@ -1,16 +1,21 @@
11 /*!
2- \file
3- \brief 日本語のローマ字文字列への変換
2+ \file
3+ \brief 日本語のローマ字文字列への変換
44
5- \author Satofumi KAMIMURA
5+ \author Satofumi KAMIMURA
66
7- $Id$
8-*/
7+ $Id$
98
9+ \todo なるべく長い日本語の変換文字とマッチさせるようにする
10+ */
11+
1012 #include "convertToRoman.h"
13+#include "roman_table.h"
1114 #include "Utf8.h"
1215 #include <vector>
16+#include <cstring>
1317
18+using namespace qrk;
1419 using namespace std;
1520
1621
@@ -24,62 +29,146 @@
2429 }
2530 return size;
2631 }
27-}
2832
2933
30-std::string qrk::convertToRoman(const char* jp_text)
31-{
32- // 変換文字列を代入
33- Utf8 input(jp_text);
34- size_t input_size = input.size();
34+ bool isConvertedCorrect(const unsigned short* pattern,
35+ const Utf8& jp_text, size_t used_jp_index)
36+ {
37+ size_t converted_size = short_strlen(pattern + ROMAN_CONVERT_SIZE_MAX);
3538
36- vector<unsigned short> converted;
37- // !!! copy() を使うべき
38- for (size_t i = 0; i < input_size; ++i) {
39- converted.push_back(input[i]);
39+ for (size_t i = 0; i < converted_size; ++i) {
40+ if (*(pattern + ROMAN_CONVERT_SIZE_MAX + i) !=
41+ jp_text.ch(used_jp_index + i)) {
42+ return false;
43+ }
44+ }
45+
46+ return true;
4047 }
4148
42- for (int match_start = converted.size() - 1;
43- match_start >= 0; --match_start) {
44- for (int pattern_index = 0;
45- RomanTable[pattern_index][1][0] != 0x0; ++pattern_index) {
46- int current_size = converted.size();
4749
48- bool matched = true;
49- int match_index = 0;
50- for (; RomanTable[pattern_index][1][match_index] != 0x0; ++match_index) {
51- unsigned short ch = RomanTable[pattern_index][1][match_index];
52- int ch_index = match_start + match_index;
53- if ((current_size <= ch_index) || (ch != converted[ch_index])) {
54- matched = false;
55- break;
50+ void convertUsingInput(Utf8& created_jp_utf8, string& created_roman,
51+ const Utf8& jp_text, const char *current_input)
52+ {
53+ // 順に変換候補を使ったローマ字の文字列の生成を行い、
54+ // 変換に失敗した時点で戻る
55+ string created_jp;
56+ size_t used_jp_index = 0;
57+ const char* input = current_input;
58+ while (*input != '\0') {
59+ bool matched = false;
60+ const unsigned short* pattern = &RomanTable[0][0][0];
61+ for (; *pattern != 0x0; pattern += ROMAN_CONVERT_SIZE_MAX * 2) {
62+ size_t match_size = 0;
63+ for (match_size = 0; *(pattern + match_size) != 0x0; ++match_size) {
64+ if (*(pattern + match_size) != input[match_size]) {
65+ break;
66+ }
5667 }
57- }
5868
59- // パターンが一致していたら、置換する
60- if (matched) {
61- // nba -> んば のように置換後に伸びる場合は、置換前に伸長しておく
62- size_t matched_size = match_index;
63- size_t replaced_size = short_strlen(&RomanTable[pattern_index][0][0]);
64-
65- vector<unsigned short>::iterator it = converted.begin() + match_start;
66- for (size_t i = 0; i < (replaced_size - matched_size); ++i) {
67- converted.insert(it, 0x0);
69+ if ((match_size > 0) && (input[match_size] == '\0')) {
70+ match_size = short_strlen(pattern);
6871 }
6972
70- // 置換する
71- for (size_t i = 0; i < replaced_size; ++i) {
72- converted[match_start + i] = RomanTable[pattern_index][0][i];
73+ if (*(pattern + match_size) == 0x0) {
74+ // パターンが入力候補とも一致したら置換処理を行う
75+ if (isConvertedCorrect(pattern, jp_text, used_jp_index)) {
76+ for (const unsigned short* ch = pattern + ROMAN_CONVERT_SIZE_MAX;
77+ *ch != 0x0; ++ch) {
78+ created_jp.push_back(0xe3);
79+ created_jp.push_back((*ch >> 8) & 0xff);
80+ created_jp.push_back(*ch & 0xff);
81+ }
82+
83+ for (size_t i = 0; i < match_size; ++i) {
84+ created_roman.push_back(*(pattern + i));
85+ }
86+
87+ matched = true;
88+ input += min(match_size, strlen(input));
89+ }
7390 }
91+ }
92+ if (! matched) {
7493 break;
7594 }
7695 }
96+
97+ created_jp_utf8 = Utf8(created_jp.c_str());
7798 }
7899
79- string converted_string;
80- size_t n = converted.size();
81- for (size_t i = 0; i < n; ++i) {
82- converted_string.push_back(converted[i]);
100+
101+ string convertLeftText(const Utf8& input)
102+ {
103+ // 変換文字列を代入
104+ size_t input_size = input.size();
105+
106+ vector<unsigned short> converted;
107+ for (size_t i = 0; i < input_size; ++i) {
108+ converted.push_back(input.ch(i));
109+ }
110+
111+ for (int match_start = converted.size() - 1;
112+ match_start >= 0; --match_start) {
113+ for (int pattern_index = 0;
114+ RomanTable[pattern_index][1][0] != 0x0; ++pattern_index) {
115+ int current_size = converted.size();
116+
117+ bool matched = true;
118+ int match_index = 0;
119+ for (; RomanTable[pattern_index][1][match_index] != 0x0;
120+ ++match_index) {
121+ unsigned short ch = RomanTable[pattern_index][1][match_index];
122+ int ch_index = match_start + match_index;
123+ if ((current_size <= ch_index) || (ch != converted[ch_index])) {
124+ matched = false;
125+ break;
126+ }
127+ }
128+
129+ // パターンが一致していたら、置換する
130+ if (matched) {
131+ // nba -> んば のように置換後に伸びる場合は、置換前に伸長しておく
132+ size_t matched_size = match_index;
133+ size_t replaced_size = short_strlen(&RomanTable[pattern_index][0][0]);
134+
135+ vector<unsigned short>::iterator it = converted.begin() + match_start;
136+ for (size_t i = 0; i < (replaced_size - matched_size); ++i) {
137+ it = converted.insert(it, 0x0);
138+ }
139+
140+ // 置換する
141+ for (size_t i = 0; i < replaced_size; ++i) {
142+ converted[match_start + i] = RomanTable[pattern_index][0][i];
143+ }
144+ break;
145+ }
146+ }
147+ }
148+
149+ string converted_string;
150+ size_t n = converted.size();
151+ for (size_t i = 0; i < n; ++i) {
152+ converted_string.push_back(converted[i]);
153+ }
154+ return converted_string;
83155 }
84- return converted_string;
85156 }
157+
158+
159+std::string qrk::convertToRoman(const char* jp_text, const char* current_input)
160+{
161+ // 入力候補に対応するローマ字の文字列を生成する
162+ Utf8 created_jp("");
163+ string created_roman;
164+ convertUsingInput(created_jp, created_roman, Utf8(jp_text), current_input);
165+
166+ // 残りのローマ字の文字列を生成する
167+ Utf8 jp_text_utf8(jp_text);
168+ size_t left_size = jp_text_utf8.size() - created_jp.size();
169+ Utf8 remain_jp_text = jp_text_utf8.substr(created_jp.size(), left_size);
170+
171+ // 入力候補を使って変換できた文字列、を取り除いた後半の文字列に対して
172+ // ローマ字の文字列を末尾から評価して生成する
173+ return created_roman + convertLeftText(remain_jp_text);
174+}
--- trunk/libs/input/utf8_string.h (nonexistent)
+++ trunk/libs/input/utf8_string.h (revision 1799)
@@ -0,0 +1,25 @@
1+#ifndef QRK_UTF8_STRING_H
2+#define QRK_UTF8_STRING_H
3+
4+/*!
5+ \file
6+ \brief UTF8 文字列の操作
7+
8+ \author Satofumi KAMIMURA
9+
10+ $Id$
11+*/
12+
13+#include <stddef.h>
14+
15+
16+namespace qrk
17+{
18+ class Utf8;
19+
20+
21+ size_t utf8_matchSize(const Utf8& s1, const Utf8& s2);
22+ // !!!
23+}
24+
25+#endif /* !QRK_UTF8_STRING_H */
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
--- trunk/libs/input/TestConvertToRoman.h (revision 1798)
+++ trunk/libs/input/TestConvertToRoman.h (revision 1799)
@@ -18,10 +18,12 @@
1818 {
1919 CPPUNIT_TEST_SUITE(TestConvertToRoman);
2020 CPPUNIT_TEST(convertTest);
21+ CPPUNIT_TEST(currentInputTest);
2122 CPPUNIT_TEST_SUITE_END();
2223
2324 public:
2425 void convertTest(void);
26+ void currentInputTest(void);
2527 };
2628
2729 #endif /* !TEST_CONVERT_TO_ROMAN_H */
--- trunk/libs/input/convertToRoman.h (revision 1798)
+++ trunk/libs/input/convertToRoman.h (revision 1799)
@@ -10,7 +10,6 @@
1010 $Id$
1111 */
1212
13-#include "roman_table.h"
1413 #include <string>
1514
1615
@@ -17,7 +16,8 @@
1716 namespace qrk
1817 {
1918 //! 日本語のローマ字文字列への変換
20- extern std::string convertToRoman(const char* jp_text);
19+ extern std::string convertToRoman(const char* jp_text,
20+ const char* current_intput = "");
2121 }
2222
2323 #endif /* !QRK_CONVERT_TO_ROMAN_H */
--- trunk/libs/input/TestUtf8.cpp (revision 1798)
+++ trunk/libs/input/TestUtf8.cpp (revision 1799)
@@ -129,4 +129,7 @@
129129
130130 actual = Utf8("あiう");
131131 CPPUNIT_ASSERT_EQUAL(string("iう"), string(actual.substr(1, 2).c_str()));
132+
133+ actual = Utf8("");
134+ CPPUNIT_ASSERT_EQUAL(string(""), string(actual.substr(0, 0).c_str()));
132135 }
--- trunk/libs/input/Utf8.cpp (revision 1798)
+++ trunk/libs/input/Utf8.cpp (revision 1799)
@@ -116,13 +116,13 @@
116116 }
117117
118118
119-size_t Utf8::size(void)
119+size_t Utf8::size(void) const
120120 {
121121 return pimpl->index_.size();
122122 }
123123
124124
125-unsigned short Utf8::ch(size_t index)
125+unsigned short Utf8::ch(size_t index) const
126126 {
127127 size_t first_index = pimpl->utf8_index(index);
128128 size_t last_index = pimpl->utf8_index(index + 1);
@@ -155,6 +155,11 @@
155155
156156 Utf8 Utf8::substr(size_t first_index, size_t n)
157157 {
158+ if (first_index >= pimpl->index_.size()) {
159+ // 指定した範囲に文字が存在しないときには、"" を返す
160+ return Utf8("");
161+ }
162+
158163 // 指定された文字の位置から指定されたサイズだけ文字を格納していく
159164 size_t raw_first_index = pimpl->index_[first_index];
160165
--- trunk/libs/input/roman_table.h (revision 1798)
+++ trunk/libs/input/roman_table.h (revision 1799)
@@ -21,11 +21,6 @@
2121 { { 'u', 0x00 }, { 0x8186, 0x00 }, }, // う
2222 { { 'e', 0x00 }, { 0x8188, 0x00 }, }, // え
2323 { { 'o', 0x00 }, { 0x818a, 0x00 }, }, // お
24- { { 'k','a', 0x00 }, { 0x818b, 0x00 }, }, // か
25- { { 'k','i', 0x00 }, { 0x818d, 0x00 }, }, // き
26- { { 'k','u', 0x00 }, { 0x818f, 0x00 }, }, // く
27- { { 'k','e', 0x00 }, { 0x8191, 0x00 }, }, // け
28- { { 'k','o', 0x00 }, { 0x8193, 0x00 }, }, // こ
2924 { { 'k','y','a', 0x00 }, { 0x818d, 0x8283, 0x00 }, }, // きゃ
3025 { { 'k','y','i', 0x00 }, { 0x818d, 0x8183, 0x00 }, }, // きぃ
3126 { { 'k','y','u', 0x00 }, { 0x818d, 0x8285, 0x00 }, }, // きゅ
@@ -32,12 +27,11 @@
3227 { { 'k','y','e', 0x00 }, { 0x818d, 0x8187, 0x00 }, }, // きぇ
3328 { { 'k','y','o', 0x00 }, { 0x818d, 0x8287, 0x00 }, }, // きょ
3429 { { 'k','w','a', 0x00 }, { 0x818f, 0x8181, 0x00 }, }, // くぁ
35- { { 's','a', 0x00 }, { 0x8195, 0x00 }, }, // さ
36- { { 's','i', 0x00 }, { 0x8197, 0x00 }, }, // し
37- { { 's','h','i', 0x00 }, { 0x8197, 0x00 }, }, // し
38- { { 's','u', 0x00 }, { 0x8199, 0x00 }, }, // す
39- { { 's','e', 0x00 }, { 0x819b, 0x00 }, }, // せ
40- { { 's','o', 0x00 }, { 0x819d, 0x00 }, }, // そ
30+ { { 'k','a', 0x00 }, { 0x818b, 0x00 }, }, // か
31+ { { 'k','i', 0x00 }, { 0x818d, 0x00 }, }, // き
32+ { { 'k','u', 0x00 }, { 0x818f, 0x00 }, }, // く
33+ { { 'k','e', 0x00 }, { 0x8191, 0x00 }, }, // け
34+ { { 'k','o', 0x00 }, { 0x8193, 0x00 }, }, // こ
4135 { { 's','y','a', 0x00 }, { 0x8197, 0x8283, 0x00 }, }, // しゃ
4236 { { 's','h','a', 0x00 }, { 0x8197, 0x8283, 0x00 }, }, // しゃ
4337 { { 's','y','i', 0x00 }, { 0x8197, 0x8183, 0x00 }, }, // しぃ
@@ -47,6 +41,36 @@
4741 { { 's','h','e', 0x00 }, { 0x8197, 0x8187, 0x00 }, }, // しぇ
4842 { { 's','y','o', 0x00 }, { 0x8197, 0x8287, 0x00 }, }, // しょ
4943 { { 's','h','o', 0x00 }, { 0x8197, 0x8287, 0x00 }, }, // しょ
44+ { { 's','a', 0x00 }, { 0x8195, 0x00 }, }, // さ
45+ { { 's','i', 0x00 }, { 0x8197, 0x00 }, }, // し
46+ { { 's','h','i', 0x00 }, { 0x8197, 0x00 }, }, // し
47+ { { 's','u', 0x00 }, { 0x8199, 0x00 }, }, // す
48+ { { 's','e', 0x00 }, { 0x819b, 0x00 }, }, // せ
49+ { { 's','o', 0x00 }, { 0x819d, 0x00 }, }, // そ
50+ { { 't','s','a', 0x00 }, { 0x81a4, 0x8181, 0x00 }, }, // つぁ
51+ { { 't','s','i', 0x00 }, { 0x81a4, 0x8183, 0x00 }, }, // つぃ
52+ { { 't','s','e', 0x00 }, { 0x81a4, 0x8187, 0x00 }, }, // つぇ
53+ { { 't','s','o', 0x00 }, { 0x81a4, 0x8189, 0x00 }, }, // つぉ
54+ { { 't','h','a', 0x00 }, { 0x81a6, 0x8283, 0x00 }, }, // てゃ
55+ { { 't','h','i', 0x00 }, { 0x81a6, 0x8183, 0x00 }, }, // てぃ
56+ { { 't','h','u', 0x00 }, { 0x81a6, 0x8285, 0x00 }, }, // てゅ
57+ { { 't','h','e', 0x00 }, { 0x81a6, 0x8187, 0x00 }, }, // てぇ
58+ { { 't','h','o', 0x00 }, { 0x81a6, 0x8287, 0x00 }, }, // てょ
59+ { { 't','y','a', 0x00 }, { 0x81a1, 0x8283, 0x00 }, }, // ちゃ
60+ { { 'c','y','a', 0x00 }, { 0x81a1, 0x8283, 0x00 }, }, // ちゃ
61+ { { 'c','h','a', 0x00 }, { 0x81a1, 0x8283, 0x00 }, }, // ちゃ
62+ { { 't','y','i', 0x00 }, { 0x81a1, 0x8183, 0x00 }, }, // ちぃ
63+ { { 'c','y','i', 0x00 }, { 0x81a1, 0x8183, 0x00 }, }, // ちぃ
64+ { { 't','y','u', 0x00 }, { 0x81a1, 0x8285, 0x00 }, }, // ちゅ
65+ { { 'c','y','u', 0x00 }, { 0x81a1, 0x8285, 0x00 }, }, // ちゅ
66+ { { 'c','h','u', 0x00 }, { 0x81a1, 0x8285, 0x00 }, }, // ちゅ
67+ { { 't','y','e', 0x00 }, { 0x81a1, 0x8187, 0x00 }, }, // ちぇ
68+ { { 'c','y','e', 0x00 }, { 0x81a1, 0x8187, 0x00 }, }, // ちぇ
69+ { { 'c','h','e', 0x00 }, { 0x81a1, 0x8187, 0x00 }, }, // ちぇ
70+ { { 't','y','o', 0x00 }, { 0x81a1, 0x8287, 0x00 }, }, // ちょ
71+ { { 'c','y','o', 0x00 }, { 0x81a1, 0x8287, 0x00 }, }, // ちょ
72+ { { 'c','h','o', 0x00 }, { 0x81a1, 0x8287, 0x00 }, }, // ちょ
73+ { { 't','w','u', 0x00 }, { 0x81a8, 0x8185, 0x00 }, }, // とぅ
5074 { { 't','a', 0x00 }, { 0x819f, 0x00 }, }, // た
5175 { { 't','i', 0x00 }, { 0x81a1, 0x00 }, }, // ち
5276 { { 'c','h','i', 0x00 }, { 0x81a1, 0x00 }, }, // ち
@@ -76,46 +100,16 @@
76100 { { 'l','t','u', 0x00 }, { 0x81a3, 0x00 }, }, // っ
77101 { { 'l','t','s','u', 0x00 }, { 0x81a3, 0x00 }, }, // っ
78102 { { 'x','t','s','u', 0x00 }, { 0x81a3, 0x00 }, }, // っ
79- { { 't','y','a', 0x00 }, { 0x81a1, 0x8283, 0x00 }, }, // ちゃ
80- { { 'c','y','a', 0x00 }, { 0x81a1, 0x8283, 0x00 }, }, // ちゃ
81- { { 'c','h','a', 0x00 }, { 0x81a1, 0x8283, 0x00 }, }, // ちゃ
82- { { 't','y','i', 0x00 }, { 0x81a1, 0x8183, 0x00 }, }, // ちぃ
83- { { 'c','y','i', 0x00 }, { 0x81a1, 0x8183, 0x00 }, }, // ちぃ
84- { { 't','y','u', 0x00 }, { 0x81a1, 0x8285, 0x00 }, }, // ちゅ
85- { { 'c','y','u', 0x00 }, { 0x81a1, 0x8285, 0x00 }, }, // ちゅ
86- { { 'c','h','u', 0x00 }, { 0x81a1, 0x8285, 0x00 }, }, // ちゅ
87- { { 't','y','e', 0x00 }, { 0x81a1, 0x8187, 0x00 }, }, // ちぇ
88- { { 'c','y','e', 0x00 }, { 0x81a1, 0x8187, 0x00 }, }, // ちぇ
89- { { 'c','h','e', 0x00 }, { 0x81a1, 0x8187, 0x00 }, }, // ちぇ
90- { { 't','y','o', 0x00 }, { 0x81a1, 0x8287, 0x00 }, }, // ちょ
91- { { 'c','y','o', 0x00 }, { 0x81a1, 0x8287, 0x00 }, }, // ちょ
92- { { 'c','h','o', 0x00 }, { 0x81a1, 0x8287, 0x00 }, }, // ちょ
93- { { 't','s','a', 0x00 }, { 0x81a4, 0x8181, 0x00 }, }, // つぁ
94- { { 't','s','i', 0x00 }, { 0x81a4, 0x8183, 0x00 }, }, // つぃ
95- { { 't','s','e', 0x00 }, { 0x81a4, 0x8187, 0x00 }, }, // つぇ
96- { { 't','s','o', 0x00 }, { 0x81a4, 0x8189, 0x00 }, }, // つぉ
97- { { 't','h','a', 0x00 }, { 0x81a6, 0x8283, 0x00 }, }, // てゃ
98- { { 't','h','i', 0x00 }, { 0x81a6, 0x8183, 0x00 }, }, // てぃ
99- { { 't','h','u', 0x00 }, { 0x81a6, 0x8285, 0x00 }, }, // てゅ
100- { { 't','h','e', 0x00 }, { 0x81a6, 0x8187, 0x00 }, }, // てぇ
101- { { 't','h','o', 0x00 }, { 0x81a6, 0x8287, 0x00 }, }, // てょ
102- { { 't','w','u', 0x00 }, { 0x81a8, 0x8185, 0x00 }, }, // とぅ
103+ { { 'n','y','a', 0x00 }, { 0x81ab, 0x8283, 0x00 }, }, // にゃ
104+ { { 'n','y','i', 0x00 }, { 0x81ab, 0x8183, 0x00 }, }, // にぃ
105+ { { 'n','y','u', 0x00 }, { 0x81ab, 0x8285, 0x00 }, }, // にゅ
106+ { { 'n','y','e', 0x00 }, { 0x81ab, 0x8187, 0x00 }, }, // にぇ
107+ { { 'n','y','o', 0x00 }, { 0x81ab, 0x8287, 0x00 }, }, // にょ
103108 { { 'n','a', 0x00 }, { 0x81aa, 0x00 }, }, // な
104109 { { 'n','i', 0x00 }, { 0x81ab, 0x00 }, }, // に
105110 { { 'n','u', 0x00 }, { 0x81ac, 0x00 }, }, // ぬ
106111 { { 'n','e', 0x00 }, { 0x81ad, 0x00 }, }, // ね
107112 { { 'n','o', 0x00 }, { 0x81ae, 0x00 }, }, // の
108- { { 'n','y','a', 0x00 }, { 0x81ab, 0x8283, 0x00 }, }, // にゃ
109- { { 'n','y','i', 0x00 }, { 0x81ab, 0x8183, 0x00 }, }, // にぃ
110- { { 'n','y','u', 0x00 }, { 0x81ab, 0x8285, 0x00 }, }, // にゅ
111- { { 'n','y','e', 0x00 }, { 0x81ab, 0x8187, 0x00 }, }, // にぇ
112- { { 'n','y','o', 0x00 }, { 0x81ab, 0x8287, 0x00 }, }, // にょ
113- { { 'h','a', 0x00 }, { 0x81af, 0x00 }, }, // は
114- { { 'h','i', 0x00 }, { 0x81b2, 0x00 }, }, // ひ
115- { { 'h','u', 0x00 }, { 0x81b5, 0x00 }, }, // ふ
116- { { 'f','u', 0x00 }, { 0x81b5, 0x00 }, }, // ふ
117- { { 'h','e', 0x00 }, { 0x81b8, 0x00 }, }, // へ
118- { { 'h','o', 0x00 }, { 0x81bb, 0x00 }, }, // ほ
119113 { { 'h','y','a', 0x00 }, { 0x81b2, 0x8283, 0x00 }, }, // ひゃ
120114 { { 'h','y','i', 0x00 }, { 0x81b2, 0x8183, 0x00 }, }, // ひぃ
121115 { { 'h','y','u', 0x00 }, { 0x81b2, 0x8285, 0x00 }, }, // ひゅ
@@ -130,31 +124,37 @@
130124 { { 'f','y','u', 0x00 }, { 0x81b5, 0x8285, 0x00 }, }, // ふゅ
131125 { { 'f','y','e', 0x00 }, { 0x81b5, 0x8187, 0x00 }, }, // ふぇ
132126 { { 'f','y','o', 0x00 }, { 0x81b5, 0x8287, 0x00 }, }, // ふょ
127+ { { 'h','a', 0x00 }, { 0x81af, 0x00 }, }, // は
128+ { { 'h','i', 0x00 }, { 0x81b2, 0x00 }, }, // ひ
129+ { { 'h','u', 0x00 }, { 0x81b5, 0x00 }, }, // ふ
130+ { { 'f','u', 0x00 }, { 0x81b5, 0x00 }, }, // ふ
131+ { { 'h','e', 0x00 }, { 0x81b8, 0x00 }, }, // へ
132+ { { 'h','o', 0x00 }, { 0x81bb, 0x00 }, }, // ほ
133+ { { 'm','y','a', 0x00 }, { 0x81bf, 0x8283, 0x00 }, }, // みゃ
134+ { { 'm','y','i', 0x00 }, { 0x81bf, 0x8183, 0x00 }, }, // みぃ
135+ { { 'm','y','u', 0x00 }, { 0x81bf, 0x8285, 0x00 }, }, // みゅ
136+ { { 'm','y','e', 0x00 }, { 0x81bf, 0x8187, 0x00 }, }, // みぇ
137+ { { 'm','y','o', 0x00 }, { 0x81bf, 0x8287, 0x00 }, }, // みょ
133138 { { 'm','a', 0x00 }, { 0x81be, 0x00 }, }, // ま
134139 { { 'm','i', 0x00 }, { 0x81bf, 0x00 }, }, // み
135140 { { 'm','u', 0x00 }, { 0x8280, 0x00 }, }, // む
136141 { { 'm','e', 0x00 }, { 0x8281, 0x00 }, }, // め
137142 { { 'm','o', 0x00 }, { 0x8282, 0x00 }, }, // も
138- { { 'm','y','a', 0x00 }, { 0x81bf, 0x8283, 0x00 }, }, // みゃ
139- { { 'm','y','i', 0x00 }, { 0x81bf, 0x8183, 0x00 }, }, // みぃ
140- { { 'm','y','u', 0x00 }, { 0x81bf, 0x8285, 0x00 }, }, // みゅ
141- { { 'm','y','e', 0x00 }, { 0x81bf, 0x8187, 0x00 }, }, // みぇ
142- { { 'm','y','o', 0x00 }, { 0x81bf, 0x8287, 0x00 }, }, // みょ
143143 { { 'y','a', 0x00 }, { 0x8284, 0x00 }, }, // や
144144 { { 'y','i', 0x00 }, { 0x8184, 0x00 }, }, // い
145145 { { 'y','u', 0x00 }, { 0x8286, 0x00 }, }, // ゆ
146146 { { 'y','e', 0x00 }, { 0x8184, 0x8187, 0x00 }, }, // いぇ
147147 { { 'y','o', 0x00 }, { 0x8288, 0x00 }, }, // よ
148+ { { 'r','y','a', 0x00 }, { 0x828a, 0x8283, 0x00 }, }, // りゃ
149+ { { 'r','y','i', 0x00 }, { 0x828a, 0x8183, 0x00 }, }, // りぃ
150+ { { 'r','y','u', 0x00 }, { 0x828a, 0x8285, 0x00 }, }, // りゅ
151+ { { 'r','y','e', 0x00 }, { 0x828a, 0x8187, 0x00 }, }, // りぇ
152+ { { 'r','y','o', 0x00 }, { 0x828a, 0x8287, 0x00 }, }, // りょ
148153 { { 'r','a', 0x00 }, { 0x8289, 0x00 }, }, // ら
149154 { { 'r','i', 0x00 }, { 0x828a, 0x00 }, }, // り
150155 { { 'r','u', 0x00 }, { 0x828b, 0x00 }, }, // る
151156 { { 'r','e', 0x00 }, { 0x828c, 0x00 }, }, // れ
152157 { { 'r','o', 0x00 }, { 0x828d, 0x00 }, }, // ろ
153- { { 'r','y','a', 0x00 }, { 0x828a, 0x8283, 0x00 }, }, // りゃ
154- { { 'r','y','i', 0x00 }, { 0x828a, 0x8183, 0x00 }, }, // りぃ
155- { { 'r','y','u', 0x00 }, { 0x828a, 0x8285, 0x00 }, }, // りゅ
156- { { 'r','y','e', 0x00 }, { 0x828a, 0x8187, 0x00 }, }, // りぇ
157- { { 'r','y','o', 0x00 }, { 0x828a, 0x8287, 0x00 }, }, // りょ
158158 { { 'w','a', 0x00 }, { 0x828f, 0x00 }, }, // わ
159159 { { 'w','i', 0x00 }, { 0x8186, 0x8183, 0x00 }, }, // うぃ
160160 { { 'w','u', 0x00 }, { 0x8186, 0x00 }, }, // う
@@ -184,11 +184,6 @@
184184 { { 'n','\n', 0x00 }, { 0x8293, 0x00 }, }, // ん
185185 { { 'n',',', 0x00 }, { 0x8293, 0x2c, 0x00 }, }, // ん,
186186 { { 'n','.', 0x00 }, { 0x8293, 0x2e, 0x00 }, }, // ん.
187- { { 'g','a', 0x00 }, { 0x818c, 0x00 }, }, // が
188- { { 'g','i', 0x00 }, { 0x818e, 0x00 }, }, // ぎ
189- { { 'g','u', 0x00 }, { 0x8190, 0x00 }, }, // ぐ
190- { { 'g','e', 0x00 }, { 0x8192, 0x00 }, }, // げ
191- { { 'g','o', 0x00 }, { 0x8194, 0x00 }, }, // ご
192187 { { 'g','y','a', 0x00 }, { 0x818e, 0x8283, 0x00 }, }, // ぎゃ
193188 { { 'g','y','i', 0x00 }, { 0x818e, 0x8183, 0x00 }, }, // ぎぃ
194189 { { 'g','y','u', 0x00 }, { 0x818e, 0x8285, 0x00 }, }, // ぎゅ
@@ -195,12 +190,11 @@
195190 { { 'g','y','e', 0x00 }, { 0x818e, 0x8187, 0x00 }, }, // ぎぇ
196191 { { 'g','y','o', 0x00 }, { 0x818e, 0x8287, 0x00 }, }, // ぎょ
197192 { { 'g','w','a', 0x00 }, { 0x8190, 0x8181, 0x00 }, }, // ぐぁ
198- { { 'z','a', 0x00 }, { 0x8196, 0x00 }, }, // ざ
199- { { 'z','i', 0x00 }, { 0x8198, 0x00 }, }, // じ
200- { { 'j','i', 0x00 }, { 0x8198, 0x00 }, }, // じ
201- { { 'z','u', 0x00 }, { 0x819a, 0x00 }, }, // ず
202- { { 'z','e', 0x00 }, { 0x819c, 0x00 }, }, // ぜ
203- { { 'z','o', 0x00 }, { 0x819e, 0x00 }, }, // ぞ
193+ { { 'g','a', 0x00 }, { 0x818c, 0x00 }, }, // が
194+ { { 'g','i', 0x00 }, { 0x818e, 0x00 }, }, // ぎ
195+ { { 'g','u', 0x00 }, { 0x8190, 0x00 }, }, // ぐ
196+ { { 'g','e', 0x00 }, { 0x8192, 0x00 }, }, // げ
197+ { { 'g','o', 0x00 }, { 0x8194, 0x00 }, }, // ご
204198 { { 'j','a', 0x00 }, { 0x8198, 0x8283, 0x00 }, }, // じゃ
205199 { { 'j','y','a', 0x00 }, { 0x8198, 0x8283, 0x00 }, }, // じゃ
206200 { { 'z','y','a', 0x00 }, { 0x8198, 0x8283, 0x00 }, }, // じゃ
@@ -215,11 +209,12 @@
215209 { { 'j','o', 0x00 }, { 0x8198, 0x8287, 0x00 }, }, // じょ
216210 { { 'j','y','o', 0x00 }, { 0x8198, 0x8287, 0x00 }, }, // じょ
217211 { { 'z','y','o', 0x00 }, { 0x8198, 0x8287, 0x00 }, }, // じょ
218- { { 'd','a', 0x00 }, { 0x81a0, 0x00 }, }, // だ
219- { { 'd','i', 0x00 }, { 0x81a2, 0x00 }, }, // ぢ
220- { { 'd','u', 0x00 }, { 0x81a5, 0x00 }, }, // づ
221- { { 'd','e', 0x00 }, { 0x81a7, 0x00 }, }, // で
222- { { 'd','o', 0x00 }, { 0x81a9, 0x00 }, }, // ど
212+ { { 'z','a', 0x00 }, { 0x8196, 0x00 }, }, // ざ
213+ { { 'z','i', 0x00 }, { 0x8198, 0x00 }, }, // じ
214+ { { 'j','i', 0x00 }, { 0x8198, 0x00 }, }, // じ
215+ { { 'z','u', 0x00 }, { 0x819a, 0x00 }, }, // ず
216+ { { 'z','e', 0x00 }, { 0x819c, 0x00 }, }, // ぜ
217+ { { 'z','o', 0x00 }, { 0x819e, 0x00 }, }, // ぞ
223218 { { 'd','y','a', 0x00 }, { 0x81a2, 0x8283, 0x00 }, }, // ぢゃ
224219 { { 'd','y','i', 0x00 }, { 0x81a2, 0x8183, 0x00 }, }, // ぢぃ
225220 { { 'd','y','u', 0x00 }, { 0x81a2, 0x8285, 0x00 }, }, // ぢゅ
@@ -231,16 +226,16 @@
231226 { { 'd','h','e', 0x00 }, { 0x81a7, 0x8187, 0x00 }, }, // でぇ
232227 { { 'd','h','o', 0x00 }, { 0x81a7, 0x8287, 0x00 }, }, // でょ
233228 { { 'd','w','u', 0x00 }, { 0x81a9, 0x8185, 0x00 }, }, // どぅ
229+ { { 'd','a', 0x00 }, { 0x81a0, 0x00 }, }, // だ
230+ { { 'd','i', 0x00 }, { 0x81a2, 0x00 }, }, // ぢ
231+ { { 'd','u', 0x00 }, { 0x81a5, 0x00 }, }, // づ
232+ { { 'd','e', 0x00 }, { 0x81a7, 0x00 }, }, // で
233+ { { 'd','o', 0x00 }, { 0x81a9, 0x00 }, }, // ど
234234 { { 'b','a', 0x00 }, { 0x81b0, 0x00 }, }, // ば
235235 { { 'b','i', 0x00 }, { 0x81b3, 0x00 }, }, // び
236236 { { 'b','u', 0x00 }, { 0x81b6, 0x00 }, }, // ぶ
237237 { { 'b','e', 0x00 }, { 0x81b9, 0x00 }, }, // べ
238238 { { 'b','o', 0x00 }, { 0x81bc, 0x00 }, }, // ぼ
239- { { 'p','a', 0x00 }, { 0x81b1, 0x00 }, }, // ぱ
240- { { 'p','i', 0x00 }, { 0x81b4, 0x00 }, }, // ぴ
241- { { 'p','u', 0x00 }, { 0x81b7, 0x00 }, }, // ぷ
242- { { 'p','e', 0x00 }, { 0x81ba, 0x00 }, }, // ぺ
243- { { 'p','o', 0x00 }, { 0x81bd, 0x00 }, }, // ぽ
244239 { { 'p','y','a', 0x00 }, { 0x81b4, 0x8283, 0x00 }, }, // ぴゃ
245240 { { 'p','y','i', 0x00 }, { 0x81b4, 0x8183, 0x00 }, }, // ぴぃ
246241 { { 'p','y','u', 0x00 }, { 0x81b4, 0x8285, 0x00 }, }, // ぴゅ
@@ -251,6 +246,11 @@
251246 { { 'b','y','u', 0x00 }, { 0x81b3, 0x8285, 0x00 }, }, // びゅ
252247 { { 'b','y','e', 0x00 }, { 0x81b3, 0x8187, 0x00 }, }, // びぇ
253248 { { 'b','y','o', 0x00 }, { 0x81b3, 0x8287, 0x00 }, }, // びょ
249+ { { 'p','a', 0x00 }, { 0x81b1, 0x00 }, }, // ぱ
250+ { { 'p','i', 0x00 }, { 0x81b4, 0x00 }, }, // ぴ
251+ { { 'p','u', 0x00 }, { 0x81b7, 0x00 }, }, // ぷ
252+ { { 'p','e', 0x00 }, { 0x81ba, 0x00 }, }, // ぺ
253+ { { 'p','o', 0x00 }, { 0x81bd, 0x00 }, }, // ぽ
254254 { { 'v','a', 0x00 }, { 0x8186, 0x829b, 0x8181, 0x00 }, }, // う゛ぁ
255255 { { 'v','i', 0x00 }, { 0x8186, 0x829b, 0x8183, 0x00 }, }, // う゛ぃ
256256 { { 'v','u', 0x00 }, { 0x8186, 0x829b, 0x00 }, }, // う゛
@@ -266,20 +266,20 @@
266266 { { 'l','e', 0x00 }, { 0x8187, 0x00 }, }, // ぇ
267267 { { 'x','o', 0x00 }, { 0x8189, 0x00 }, }, // ぉ
268268 { { 'l','o', 0x00 }, { 0x8189, 0x00 }, }, // ぉ
269+ { { 'x','y','a', 0x00 }, { 0x8283, 0x00 }, }, // ゃ
269270 { { 'l','y','a', 0x00 }, { 0x8283, 0x00 }, }, // ゃ
270- { { 'x','y','a', 0x00 }, { 0x8283, 0x00 }, }, // ゃ
271+ { { 'x','y','i', 0x00 }, { 0x8183, 0x00 }, }, // ぃ
271272 { { 'l','y','u', 0x00 }, { 0x8183, 0x00 }, }, // ぃ
272- { { 'x','y','i', 0x00 }, { 0x8183, 0x00 }, }, // ぃ
273+ { { 'x','y','u', 0x00 }, { 0x8285, 0x00 }, }, // ゅ
273274 { { 'l','y','u', 0x00 }, { 0x8285, 0x00 }, }, // ゅ
274- { { 'x','y','u', 0x00 }, { 0x8285, 0x00 }, }, // ゅ
275+ { { 'x','y','e', 0x00 }, { 0x8187, 0x00 }, }, // ぇ
275276 { { 'l','y','e', 0x00 }, { 0x8187, 0x00 }, }, // ぇ
276- { { 'x','y','e', 0x00 }, { 0x8187, 0x00 }, }, // ぇ
277+ { { 'x','y','o', 0x00 }, { 0x8287, 0x00 }, }, // ょ
277278 { { 'l','y','o', 0x00 }, { 0x8287, 0x00 }, }, // ょ
278- { { 'x','y','o', 0x00 }, { 0x8287, 0x00 }, }, // ょ
279+ { { 'x','k','a', 0x00 }, { 0x83b5, 0x00 }, }, // ヵ
279280 { { 'l','k','a', 0x00 }, { 0x83b5, 0x00 }, }, // ヵ
280- { { 'x','k','a', 0x00 }, { 0x83b5, 0x00 }, }, // ヵ
281+ { { 'x','k','e', 0x00 }, { 0x83b6, 0x00 }, }, // ヶ
281282 { { 'l','k','e', 0x00 }, { 0x83b6, 0x00 }, }, // ヶ
282- { { 'x','k','e', 0x00 }, { 0x83b6, 0x00 }, }, // ヶ
283283 { { 0x00 }, { 0x00 }, }, // テーブルの終端
284284 };
285285 };
--- trunk/libs/input/Utf8.h (revision 1798)
+++ trunk/libs/input/Utf8.h (revision 1799)
@@ -32,9 +32,9 @@
3232
3333 bool empty(void);
3434 void clear(void);
35- size_t size(void);
35+ size_t size(void) const;
3636
37- unsigned short ch(size_t index);
37+ unsigned short ch(size_t index) const;
3838 unsigned short operator[](size_t index);
3939
4040 const char* c_str(void);
--- trunk/libs/input/Makefile (revision 1798)
+++ trunk/libs/input/Makefile (revision 1799)
@@ -27,10 +27,12 @@
2727 ######################################################################
2828 $(INPUT_LIB) : \
2929 $(INPUT_LIB)(Utf8.o) \
30+ $(INPUT_LIB)(utf8_string.o) \
3031 $(INPUT_LIB)(convertToJp.o) \
3132 $(INPUT_LIB)(convertToRoman.o) \
3233
3334 convertToJp.o : roman_table.h kana_table.h
35+convertToRoman.o : roman_table.h
3436
3537 kana_table.h : kana_table.txt $(INPUT_CONVERT_SCRIPT)
3638 ruby $(INPUT_CONVERT_SCRIPT) $< > $@ || $(RM) $@
@@ -47,10 +49,10 @@
4749
4850 # DO NOT DELETE
4951
50-convertToRoman.o: roman_table.h
5152 TestConvertToJp.o: TestConvertToJp.h convertToJp.h Utf8.h
52-TestConvertToRoman.o: TestConvertToRoman.h convertToRoman.h roman_table.h
53+TestConvertToRoman.o: TestConvertToRoman.h convertToRoman.h
5354 TestUtf8.o: TestUtf8.h Utf8.h
5455 Utf8.o: Utf8.h
5556 convertToJp.o: convertToJp.h roman_table.h kana_table.h Utf8.h
5657 convertToRoman.o: convertToRoman.h roman_table.h Utf8.h
58+utf8_string.o: utf8_string.h Utf8.h
旧リポジトリブラウザで表示