bool file_info::are_meta_fields_identical(t_size p_index1,t_size p_index2) const
{
    const t_size count = meta_enum_value_count(p_index1);
    if (count != meta_enum_value_count(p_index2)) return false;
    t_size n;
    for(n=0; n<count; n++)
    {
        if (strcmp(meta_enum_value(p_index1,n),meta_enum_value(p_index2,n))) return false;
    }
    return true;
}
Beispiel #2
0
const char * file_info::meta_get(const char * name,int num) const
{
	assert(is_valid_utf8(name));
	int idx = meta_get_idx(name,num);
	if (idx<0) return 0;
	else return meta_enum_value(idx);
}
const char * file_info::meta_get_ex(const char * p_name,t_size p_name_length,t_size p_index) const
{
    t_size index = meta_find_ex(p_name,p_name_length);
    if (index == pfc_infinite) return 0;
    t_size max = meta_enum_value_count(index);
    if (p_index >= max) return 0;
    return meta_enum_value(index,p_index);
}
void file_info::meta_format_entry(t_size index, pfc::string_base & out, const char * separator) const {
    out.reset();
    t_size val, count = meta_enum_value_count(index);
    PFC_ASSERT( count > 0);
    for(val=0; val<count; val++)
    {
        if (val > 0) out += separator;
        out += meta_enum_value(index,val);
    }
}