edje - edje_cc - fix wrong state lists where default is not the first

this fixes T1926
@fix
This commit is contained in:
Carsten Haitzler 2015-01-12 15:54:22 +09:00
parent 8002cabf35
commit 0cb33a4675
1 changed files with 26 additions and 1 deletions

View File

@ -6478,12 +6478,37 @@ st_collections_group_parts_part_description_state(void)
if (ep->other.desc_count) ed = ep->other.desc[ep->other.desc_count - 1];
s = parse_str(0);
if (!strcmp (s, "custom"))
if (!strcmp(s, "default"))
{
double v;
if (get_arg_count() == 1) v = 0.0;
else v = parse_float_range(1, 0.0, 1.0);
if (v == 0.0)
{
if (ed != ep->default_desc)
{
ERR("parse error %s:%i. description state '%s' %1.2f is not the first state listed",
file_in, line - 1, s, v);
exit(-1);
}
}
}
if (!strcmp(s, "custom"))
{
ERR("parse error %s:%i. invalid state name: '%s'.",
file_in, line - 1, s);
exit(-1);
}
if (ed == ep->default_desc)
{
if (strcmp(s, "default"))
{
ERR("parse error %s:%i. first state is not 'default'",
file_in, line - 1);
exit(-1);
}
}
free((void *)ed->state.name);
ed->state.name = s;