*/
if ( CHAR_TABLEP (encoding_table) )
{
+ Lisp_Object mother = XCHARSET_MOTHER (range->charset);
+
char_attribute_table_to_put = ct;
value_to_put = val;
Fmap_char_attribute (Qput_char_table_map_function,
XCHAR_TABLE_NAME (encoding_table),
Qnil);
+ if ( CHARSETP (mother) )
+ {
+ struct chartab_range r;
+
+ r.type = CHARTAB_RANGE_CHARSET;
+ r.charset = mother;
+ put_char_table (ct, &r, val);
+ }
}
#if 0
else
if (default_chise_data_source == NULL)
{
Lisp_Object db_dir = Vexec_directory;
+ int modemask = 0755; /* rwxr-xr-x */
if (NILP (db_dir))
db_dir = build_string ("../lib-src");
default_chise_data_source
= chise_open_data_source (CHISE_DS_Berkeley_DB,
- XSTRING_DATA (db_dir));
+ XSTRING_DATA (db_dir),
+ DB_HASH, modemask);
if (default_chise_data_source == NULL)
return -1;
}
if (!NILP (attribute))
{
#ifdef CHISE
- int modemask;
- int accessmask = 0;
- DBTYPE real_subtype;
-
if (cit->feature_table == NULL)
{
if ( open_chise_data_source_maybe () )
return -1;
- modemask = 0755; /* rwxr-xr-x */
- real_subtype = DB_HASH;
- accessmask = DB_RDONLY;
-
cit->feature_table
- = chise_ds_open_feature_table (default_chise_data_source,
- XSTRING_DATA (Fsymbol_name
- (attribute)),
- real_subtype,
- accessmask, modemask);
+ = chise_ds_get_feature (default_chise_data_source,
+ XSTRING_DATA (Fsymbol_name (attribute)));
if (cit->feature_table == NULL)
return -1;
}
#ifdef CHISE
if (cit->feature_table != NULL)
{
- chise_ft_close (cit->feature_table);
+ /* chise_ft_close (cit->feature_table); */
cit->feature_table = NULL;
}
#else
Lisp_Object val;
#ifdef CHISE
CHISE_Value value;
- int status = chise_ft_get_value (cit->feature_table, ch, &value);
+ int status
+ = chise_char_load_feature_value (ch, cit->feature_table, &value);
if (!status)
{
#ifdef CHISE
int
-load_char_attribute_table_map_func (CHISE_Feature_Table *db,
- CHISE_Char_ID cid,
- CHISE_Value *valdatum);
+load_char_attribute_table_map_func (CHISE_Char_ID cid,
+ CHISE_Feature feature,
+ CHISE_Value *value);
int
-load_char_attribute_table_map_func (CHISE_Feature_Table *db,
- CHISE_Char_ID cid,
- CHISE_Value *valdatum)
+load_char_attribute_table_map_func (CHISE_Char_ID cid,
+ CHISE_Feature feature,
+ CHISE_Value *value)
{
Emchar code = cid;
Lisp_Object ret = get_char_id_table_0 (char_attribute_table_to_load, code);
if (EQ (ret, Qunloaded))
put_char_id_table_0 (char_attribute_table_to_load, code,
- Fread (make_string ((Bufbyte *) valdatum->data,
- valdatum->size)));
+ Fread (make_string ((Bufbyte *) value->data,
+ value->size)));
return 0;
}
#else
GCPRO1 (table);
#ifdef CHISE
- chise_ft_iterate (cit->feature_table,
- &load_char_attribute_table_map_func);
+ chise_char_feature_value_iterate
+ (cit->feature_table,
+ &load_char_attribute_table_map_func);
#else
Fmap_database (Qload_char_attribute_table_map_function, cit->db);
#endif