forked from enlightenment/efl
eolian: fix eolian_type_enum_field_c_name_get for namespaced enums
This commit is contained in:
parent
3df93cca7d
commit
12fa5f5349
|
@ -160,7 +160,7 @@ eolian_type_enum_field_c_name_get(const Eolian_Enum_Type_Field *fl)
|
||||||
{
|
{
|
||||||
Eina_Stringshare *ret;
|
Eina_Stringshare *ret;
|
||||||
Eina_Strbuf *buf;
|
Eina_Strbuf *buf;
|
||||||
char *bufp;
|
char *bufp, *p;
|
||||||
EINA_SAFETY_ON_NULL_RETURN_VAL(fl, NULL);
|
EINA_SAFETY_ON_NULL_RETURN_VAL(fl, NULL);
|
||||||
buf = eina_strbuf_new();
|
buf = eina_strbuf_new();
|
||||||
if (fl->base_enum->legacy)
|
if (fl->base_enum->legacy)
|
||||||
|
@ -172,6 +172,7 @@ eolian_type_enum_field_c_name_get(const Eolian_Enum_Type_Field *fl)
|
||||||
bufp = eina_strbuf_string_steal(buf);
|
bufp = eina_strbuf_string_steal(buf);
|
||||||
eina_strbuf_free(buf);
|
eina_strbuf_free(buf);
|
||||||
eina_str_toupper(&bufp);
|
eina_str_toupper(&bufp);
|
||||||
|
while ((p = strchr(bufp, '.'))) *p = '_';
|
||||||
ret = eina_stringshare_add(bufp);
|
ret = eina_stringshare_add(bufp);
|
||||||
free(bufp);
|
free(bufp);
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
@ -16,6 +16,10 @@ enum Baz {
|
||||||
flag3 = 1 << 2
|
flag3 = 1 << 2
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum Name.Spaced {
|
||||||
|
pants
|
||||||
|
}
|
||||||
|
|
||||||
const Bah: Baz = Baz.flag1;
|
const Bah: Baz = Baz.flag1;
|
||||||
|
|
||||||
enum Value {
|
enum Value {
|
||||||
|
|
|
@ -895,16 +895,19 @@ START_TEST(eolian_enum)
|
||||||
fail_if(v.type != EOLIAN_EXPR_INT);
|
fail_if(v.type != EOLIAN_EXPR_INT);
|
||||||
fail_if(v.value.i != (1 << 1));
|
fail_if(v.value.i != (1 << 1));
|
||||||
|
|
||||||
cname = eolian_type_enum_field_c_name_get(field);
|
|
||||||
fail_if(strcmp(cname, "BAZ_FLAG2"));
|
|
||||||
eina_stringshare_del(cname);
|
|
||||||
|
|
||||||
fail_if(!(field = eolian_type_enum_field_get(type, "flag3")));
|
fail_if(!(field = eolian_type_enum_field_get(type, "flag3")));
|
||||||
fail_if(!(exp = eolian_type_enum_field_value_get(field, EINA_FALSE)));
|
fail_if(!(exp = eolian_type_enum_field_value_get(field, EINA_FALSE)));
|
||||||
v = eolian_expression_eval(exp, EOLIAN_MASK_ALL);
|
v = eolian_expression_eval(exp, EOLIAN_MASK_ALL);
|
||||||
fail_if(v.type != EOLIAN_EXPR_INT);
|
fail_if(v.type != EOLIAN_EXPR_INT);
|
||||||
fail_if(v.value.i != (1 << 2));
|
fail_if(v.value.i != (1 << 2));
|
||||||
|
|
||||||
|
fail_if(!(type = eolian_type_enum_get_by_name("Name.Spaced")));
|
||||||
|
fail_if(!(field = eolian_type_enum_field_get(type, "pants")));
|
||||||
|
|
||||||
|
cname = eolian_type_enum_field_c_name_get(field);
|
||||||
|
fail_if(strcmp(cname, "NAME_SPACED_PANTS"));
|
||||||
|
eina_stringshare_del(cname);
|
||||||
|
|
||||||
fail_if(!(var = eolian_variable_constant_get_by_name("Bah")));
|
fail_if(!(var = eolian_variable_constant_get_by_name("Bah")));
|
||||||
fail_if(eolian_variable_type_get(var) != EOLIAN_VAR_CONSTANT);
|
fail_if(eolian_variable_type_get(var) != EOLIAN_VAR_CONSTANT);
|
||||||
fail_if(eolian_variable_is_extern(var));
|
fail_if(eolian_variable_is_extern(var));
|
||||||
|
|
Loading…
Reference in New Issue