3 char db_dir[] = "/usr/local/lib/chise/char-db";
6 test_map_func (CHISE_Char_ID cid, CHISE_Feature_Table *db,
9 unsigned char buf[256];
11 printf ("(flags = %x)\n", valdatum->flags);
12 if (chise_value_size (valdatum) < 256)
14 strncpy (buf, chise_value_data (valdatum),
15 chise_value_size (valdatum));
16 buf[chise_value_size (valdatum)] = '\0';
17 printf ("#x%04X\t(%c)\t%s\n", cid, cid, buf);
20 printf ("#x%04X\t(%c)\t%s\n",
21 cid, cid, chise_value_to_c_string (valdatum));
26 main (int argc, char* argv[])
29 CHISE_CCS ccs_daikanwa;
30 CHISE_Feature ft_ideographic_structure;
31 CHISE_Feature ft_ascii;
32 int modemask = 0755; /* rwxr-xr-x */
33 DBTYPE real_subtype = DB_HASH;
35 CHISE_Char_ID char_id;
37 unsigned char buf[1024];
39 /* open a data-source */
40 ds = chise_open_data_source (CHISE_DS_Berkeley_DB, db_dir,
41 real_subtype, modemask);
44 printf ("Can't open data source\n");
50 * get a character corresponding with Daikanwa number 364
53 /* setup a decoding-table */
55 = chise_ds_get_ccs (ds, "=daikanwa");
56 if (ccs_daikanwa == NULL)
58 printf ("Can't open CCS =daikanwa\n");
63 /* get a character from the decoding-table */
64 char_id = chise_ccs_decode (ccs_daikanwa, 364);
67 /* get a feature-value of the character */
68 ft_ideographic_structure
69 = chise_ds_get_feature (ds, "ideographic-structure");
70 if (chise_char_gets_feature_value
71 (char_id, ft_ideographic_structure, buf, sizeof (buf)) != NULL)
72 printf ("#x%X => %s\n", char_id, buf);
74 printf ("#x%X\n", char_id);
76 ft_ascii = chise_ds_get_feature (ds, "ascii");
77 chise_char_feature_value_iterate (ft_ascii, &test_map_func);
78 chise_char_feature_value_iterate (ft_ideographic_structure, &test_map_func);
80 /* close the data-source */