char db_dir[] = "/usr/local/lib/chise/char-db";
int
+test_map_func (CHISE_Feature_Table *db,
+ CHISE_Char_ID cid, CHISE_Value *valdatum)
+{
+ printf ("#x%04X\t(%c)\t%s\n",
+ cid, cid, chise_value_to_c_string (valdatum));
+ return 0;
+}
+
+int
main (int argc, char* argv[])
{
- CHISE_DS ds;
+ CHISE_DS *ds;
CHISE_Decoding_Table *dt_daikanwa;
CHISE_Feature_Table *ft_ideographic_structure;
+ CHISE_Feature_Table *ft_ascii;
int modemask;
int accessmask = 0;
DBTYPE real_subtype;
CHISE_Value value;
/* open a data-source */
- status = chise_open_data_source (&ds, CHISE_DS_Berkeley_DB, db_dir);
- if (status)
+ ds = chise_open_data_source (CHISE_DS_Berkeley_DB, db_dir);
+ if (ds == NULL)
{
- chise_close_data_source (&ds);
return -1;
}
accessmask = DB_RDONLY;
/* setup a decoding-table */
- status = chise_open_decoding_table (&dt_daikanwa, &ds,
- "ideograph-daikanwa",
- real_subtype,
- accessmask, modemask);
- if (status)
+ dt_daikanwa
+ = chise_ds_open_decoding_table (ds, "=daikanwa",
+ real_subtype, accessmask, modemask);
+ if (dt_daikanwa == NULL)
{
- chise_close_decoding_table (dt_daikanwa);
- chise_close_data_source (&ds);
+ chise_ds_close (ds);
return -1;
}
char_id = chise_dt_get_char (dt_daikanwa, 364);
/* close the decoding-table */
- chise_close_decoding_table (dt_daikanwa);
+ chise_dt_close (dt_daikanwa);
/*
*/
/* setup a feature-table */
- status = chise_open_feature_table (&ft_ideographic_structure, &ds,
- "ideographic-structure",
- real_subtype, accessmask, modemask);
- if (status)
+ ft_ideographic_structure
+ = chise_ds_open_feature_table (ds, "ideographic-structure",
+ real_subtype, accessmask, modemask);
+ if (ft_ideographic_structure == NULL)
{
- chise_close_feature_table (ft_ideographic_structure);
- chise_close_data_source (&ds);
+ chise_ds_close (ds);
+ return -1;
+ }
+
+ /* setup a feature-table */
+ ft_ascii = chise_ds_open_feature_table (ds, "ascii",
+ real_subtype, accessmask, modemask);
+ if (ft_ascii == NULL)
+ {
+ chise_ds_close (ds);
return -1;
}
else
printf ("#x%X (%d)\n", char_id, status);
- /* close the feature-table */
- chise_close_feature_table (ft_ideographic_structure);
+ chise_ft_iterate (ft_ascii, &test_map_func);
+ chise_ft_iterate (ft_ideographic_structure, &test_map_func);
+ /* close the feature-table */
+ chise_ft_close (ft_ideographic_structure);
+ chise_ft_close (ft_ascii);
/* close the data-source */
- chise_close_data_source (&ds);
+ chise_ds_close (ds);
}