5 //#include <db2/db_185.h>
\r
7 #include <sys/fcntl.h>
\r
13 kDatabase = dbopen(databaseFileName, O_RDWR|O_CREAT, 0666, DB_HASH, NULL);
\r
18 kDatabase->close(kDatabase);
\r
22 void searchPartsData(const GString *in, GString *out){
\r
25 GString *temp, *temp2;
\r
27 //cut off the end '-0000' if 'in' end with it
\r
28 temp = g_string_new(in->str);
\r
29 // if(strncmp(temp->str + temp->len - 5, "-0000", 5) == 0) g_string_set_size(temp, temp->len - 5);
\r
30 if((temp->str)[0] == 'u'){
\r
31 if(strncmp(temp->str + temp->len - 4, "-j00", 4) == 0) g_string_set_size(temp, temp->len - 4);
\r
32 else if(strncmp(temp->str + temp->len - 4, "-g00", 4) == 0) g_string_set_size(temp, temp->len - 2);
\r
33 else if(strncmp(temp->str + temp->len - 4, "-t00", 4) == 0) g_string_set_size(temp, temp->len - 2);
\r
34 else if(strncmp(temp->str + temp->len - 4, "-k00", 4) == 0) g_string_set_size(temp, temp->len - 2);
\r
35 else if(strncmp(temp->str + temp->len - 4, "-v00", 4) == 0) g_string_set_size(temp, temp->len - 2);
\r
36 else if(strncmp(temp->str + temp->len - 4, "-u00", 4) == 0) g_string_set_size(temp, temp->len - 2);
\r
39 memset(&dbkey,0,sizeof(DBT));
\r
40 memset(&dbdata,0,sizeof(DBT));
\r
41 dbkey.data = temp->str;
\r
42 dbkey.size = temp->len;
\r
43 g_string_set_size(out, 0);
\r
44 temp2 = g_string_new("");
\r
45 kDatabase->get(kDatabase, &dbkey, &dbdata, 0);
\r
46 if(dbdata.size != 0){
\r
47 //first:search selected shotai
\r
48 if(kShotai == kMincho) start = strstr(dbdata.data, ",mincho,");
\r
49 else start = strstr(dbdata.data, ",gothic,");
\r
51 start = strchr((start+8), ',');
\r
53 start = strchr((start+1), ',');
\r
55 end = strchr((start+1), ',');
\r
57 g_string_append_len(temp2, (start+1), end - start - 2 + 1);
\r
58 convert99(temp2, out);
\r
64 //second:search another shotai
\r
65 if(kShotai == kMincho) start = strstr(dbdata.data, ",gothic,");
\r
66 else start = strstr(dbdata.data, ",mincho,");
\r
68 start = strchr((start+8), ',');
\r
70 start = strchr((start+1), ',');
\r
72 end = strchr((start+1), ',');
\r
74 g_string_append_len(temp2, (start+1), end - start - 2 + 1);
\r
75 convert99(temp2, out);
\r
84 void searchAliasData(const GString *in, GString *out){
\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, &dbkey, &dbdata, 0);
\r
107 if(dbdata.size != 0){
\r
108 start = strstr(dbdata.data, ",linkto,");
\r
110 start = strchr((start+8), ',');
\r
112 start = strchr((start+1), ',');
\r
114 end = strchr((start+1), ',');
\r
116 g_string_append_len(out, (start+1), end - start - 2 + 1);
\r