9 kDatabase = dbopen(databaseFileName, O_RDWR|O_CREAT, 0666, DB_HASH, NULL);
\r
14 kDatabase->close(kDatabase);
\r
18 void searchPartsData(const GString *in, GString *out){
\r
21 GString *temp, *temp2;
\r
23 //cut off the end '-0000' if 'in' end with it
\r
24 temp = g_string_new(in->str);
\r
25 // if(strncmp(temp->str + temp->len - 5, "-0000", 5) == 0) g_string_set_size(temp, temp->len - 5);
\r
26 if((temp->str)[0] == 'u'){
\r
27 if(strncmp(temp->str + temp->len - 4, "-j00", 4) == 0) g_string_set_size(temp, temp->len - 4);
\r
28 else if(strncmp(temp->str + temp->len - 4, "-g00", 4) == 0) g_string_set_size(temp, temp->len - 2);
\r
29 else if(strncmp(temp->str + temp->len - 4, "-t00", 4) == 0) g_string_set_size(temp, temp->len - 2);
\r
30 else if(strncmp(temp->str + temp->len - 4, "-k00", 4) == 0) g_string_set_size(temp, temp->len - 2);
\r
31 else if(strncmp(temp->str + temp->len - 4, "-v00", 4) == 0) g_string_set_size(temp, temp->len - 2);
\r
32 else if(strncmp(temp->str + temp->len - 4, "-u00", 4) == 0) g_string_set_size(temp, temp->len - 2);
\r
35 memset(&dbkey,0,sizeof(DBT));
\r
36 memset(&dbdata,0,sizeof(DBT));
\r
37 dbkey.data = temp->str;
\r
38 dbkey.size = temp->len;
\r
39 g_string_set_size(out, 0);
\r
40 temp2 = g_string_new("");
\r
41 kDatabase->get(kDatabase, &dbkey, &dbdata, 0);
\r
42 if(dbdata.size != 0){
\r
43 ((char *)dbdata.data)[dbdata.size] = '\0'; //set null-stop to the result data
\r
44 //first:search selected shotai
\r
45 if(kShotai == kMincho) start = strstr(dbdata.data, ",mincho,");
\r
46 else start = strstr(dbdata.data, ",gothic,");
\r
48 start = strchr((start+8), ',');
\r
50 start = strchr((start+1), ',');
\r
52 end = strchr((start+1), ',');
\r
54 g_string_append_len(temp2, (start+1), end - start - 2 + 1);
\r
55 convert99(temp2, out);
\r
61 //second:search another shotai
\r
62 if(kShotai == kMincho) start = strstr(dbdata.data, ",gothic,");
\r
63 else start = strstr(dbdata.data, ",mincho,");
\r
65 start = strchr((start+8), ',');
\r
67 start = strchr((start+1), ',');
\r
69 end = strchr((start+1), ',');
\r
71 g_string_append_len(temp2, (start+1), end - start - 2 + 1);
\r
72 convert99(temp2, out);
\r
81 void searchAliasData(const GString *in, GString *out){
\r
86 //cut off the end '-0000' if 'in' end with it
\r
87 temp = g_string_new(in->str);
\r
88 // if(strncmp(temp->str + temp->len - 5, "-0000", 5) == 0) g_string_set_size(temp, temp->len - 5);
\r
89 if((temp->str)[0] == 'u'){
\r
90 if(strncmp(temp->str + temp->len - 4, "-j00", 4) == 0) g_string_set_size(temp, temp->len - 4);
\r
91 else if(strncmp(temp->str + temp->len - 4, "-g00", 4) == 0) g_string_set_size(temp, temp->len - 2);
\r
92 else if(strncmp(temp->str + temp->len - 4, "-t00", 4) == 0) g_string_set_size(temp, temp->len - 2);
\r
93 else if(strncmp(temp->str + temp->len - 4, "-k00", 4) == 0) g_string_set_size(temp, temp->len - 2);
\r
94 else if(strncmp(temp->str + temp->len - 4, "-v00", 4) == 0) g_string_set_size(temp, temp->len - 2);
\r
95 else if(strncmp(temp->str + temp->len - 4, "-u00", 4) == 0) g_string_set_size(temp, temp->len - 2);
\r
98 memset(&dbkey,0,sizeof(DBT));
\r
99 memset(&dbdata,0,sizeof(DBT));
\r
100 dbkey.data = temp->str;
\r
101 dbkey.size = temp->len;
\r
102 g_string_set_size(out, 0);
\r
103 kDatabase->get(kDatabase, &dbkey, &dbdata, 0);
\r
104 if(dbdata.size != 0){
\r
105 start = strstr(dbdata.data, ",linkto,");
\r
107 start = strchr((start+8), ',');
\r
109 start = strchr((start+1), ',');
\r
111 end = strchr((start+1), ',');
\r
113 g_string_append_len(out, (start+1), end - start - 2 + 1);
\r