9 db_create(&kDatabase, NULL, 0);
10 kDatabase->open(kDatabase, databaseFileName, NULL, DB_HASH, DB_RDONLY, 0644);
\r
15 kDatabase->close(kDatabase, 0);
\r
19 void searchPartsData(const GString *in, GString *out){
\r
21 char *start, *end, *buf;
\r
22 GString *temp, *temp2;
\r
24 //cut off the end '-0000' if 'in' end with it
\r
25 temp = g_string_new(in->str);
\r
26 // if(strncmp(temp->str + temp->len - 5, "-0000", 5) == 0) g_string_set_size(temp, temp->len - 5);
\r
27 if((temp->str)[0] == 'u'){
\r
28 if(strncmp(temp->str + temp->len - 4, "-j00", 4) == 0) g_string_set_size(temp, temp->len - 4);
\r
29 else if(strncmp(temp->str + temp->len - 4, "-g00", 4) == 0) g_string_set_size(temp, temp->len - 2);
\r
30 else if(strncmp(temp->str + temp->len - 4, "-t00", 4) == 0) g_string_set_size(temp, temp->len - 2);
\r
31 else if(strncmp(temp->str + temp->len - 4, "-k00", 4) == 0) g_string_set_size(temp, temp->len - 2);
\r
32 else if(strncmp(temp->str + temp->len - 4, "-v00", 4) == 0) g_string_set_size(temp, temp->len - 2);
\r
33 else if(strncmp(temp->str + temp->len - 4, "-u00", 4) == 0) g_string_set_size(temp, temp->len - 2);
\r
36 memset(&dbkey,0,sizeof(DBT));
\r
37 memset(&dbdata,0,sizeof(DBT));
\r
38 dbkey.data = temp->str;
\r
39 dbkey.size = temp->len;
\r
40 g_string_set_size(out, 0);
\r
41 temp2 = g_string_new("");
\r
42 kDatabase->get(kDatabase, NULL, &dbkey, &dbdata, 0);
\r
43 if(dbdata.size != 0){
\r
44 buf = (char *)malloc(dbdata.size + 1);
45 strncpy(buf, dbdata.data, dbdata.size + 1);
46 //first:search selected shotai
\r
47 if(kShotai == kMincho) start = strstr(buf, ",mincho,");
\r
48 else start = strstr(buf, ",gothic,");
\r
50 start = strchr((start+8), ',');
\r
52 start = strchr((start+1), ',');
\r
54 end = strchr((start+1), ',');
\r
56 g_string_append_len(temp2, (start+1), end - start - 2 + 1);
\r
57 convert99(temp2, out);
\r
63 //second:search another shotai
\r
64 if(kShotai == kMincho) start = strstr(buf, ",gothic,");
\r
65 else start = strstr(buf, ",mincho,");
\r
67 start = strchr((start+8), ',');
\r
69 start = strchr((start+1), ',');
\r
71 end = strchr((start+1), ',');
\r
73 g_string_append_len(temp2, (start+1), end - start - 2 + 1);
\r
74 convert99(temp2, out);
\r
84 void searchAliasData(const GString *in, GString *out){
\r
86 char *start, *end, *buf;
\r
89 //cut off the end '-0000' if 'in' end with it
\r
90 temp = g_string_new(in->str);
\r
91 // if(strncmp(temp->str + temp->len - 5, "-0000", 5) == 0) g_string_set_size(temp, temp->len - 5);
\r
92 if((temp->str)[0] == 'u'){
\r
93 if(strncmp(temp->str + temp->len - 4, "-j00", 4) == 0) g_string_set_size(temp, temp->len - 4);
\r
94 else if(strncmp(temp->str + temp->len - 4, "-g00", 4) == 0) g_string_set_size(temp, temp->len - 2);
\r
95 else if(strncmp(temp->str + temp->len - 4, "-t00", 4) == 0) g_string_set_size(temp, temp->len - 2);
\r
96 else if(strncmp(temp->str + temp->len - 4, "-k00", 4) == 0) g_string_set_size(temp, temp->len - 2);
\r
97 else if(strncmp(temp->str + temp->len - 4, "-v00", 4) == 0) g_string_set_size(temp, temp->len - 2);
\r
98 else if(strncmp(temp->str + temp->len - 4, "-u00", 4) == 0) g_string_set_size(temp, temp->len - 2);
\r
101 memset(&dbkey,0,sizeof(DBT));
\r
102 memset(&dbdata,0,sizeof(DBT));
\r
103 dbkey.data = temp->str;
\r
104 dbkey.size = temp->len;
\r
105 g_string_set_size(out, 0);
\r
106 kDatabase->get(kDatabase, NULL, &dbkey, &dbdata, 0);
\r
107 if(dbdata.size != 0){
\r
108 buf = (char *)malloc(dbdata.size + 1);
109 strncpy(buf, dbdata.data, dbdata.size + 1);
110 start = strstr(buf, ",linkto,");
\r
112 start = strchr((start+8), ',');
\r
114 start = strchr((start+1), ',');
\r
116 end = strchr((start+1), ',');
\r
118 g_string_append_len(out, (start+1), end - start - 2 + 1);
\r