cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=f7af802f4f94c9f99c511f9a9661523cc5cdac02

commit f7af802f4f94c9f99c511f9a9661523cc5cdac02
Author: Cedric BAIL <ced...@osg.samsung.com>
Date:   Thu Jul 21 11:17:30 2016 -0700

    edje: allow inheritance from an aliased group.
---
 src/bin/edje/edje_cc_handlers.c | 26 ++++++++++++++++++++++----
 1 file changed, 22 insertions(+), 4 deletions(-)

diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c
index 3767a7b..b1cfc7a 100644
--- a/src/bin/edje/edje_cc_handlers.c
+++ b/src/bin/edje/edje_cc_handlers.c
@@ -4572,7 +4572,8 @@ st_collections_group_target_group(void)
 static void
 st_collections_group_inherit(void)
 {
-   Edje_Part_Collection *pc, *pc2;
+   Edje_Part_Collection_Directory_Entry *alias;
+   Edje_Part_Collection *pc, *pc2 = NULL;
    Edje_Part_Collection_Parser *pcp, *pcp2;
    Edje_Part *ep, *ep2;
    Edje_List_Foreach_Data fdata;
@@ -4586,17 +4587,34 @@ st_collections_group_inherit(void)
 
    parent_name = parse_str(0);
 
-   EINA_LIST_FOREACH(edje_collections, l, pc2)
+   EINA_LIST_FOREACH(aliases, l, alias)
      {
-        if (!strcmp(parent_name, pc2->part))
-          break;
+        if (alias->group_alias &&
+            !strcmp(alias->entry, parent_name))
+          {
+             free(parent_name);
+             pc2 = eina_list_nth(edje_collections, alias->id);
+             parent_name = strdup(pc2->part);
+             break;
+          }
      }
+
+   if (!pc2)
+     {
+        EINA_LIST_FOREACH(edje_collections, l, pc2)
+          {
+             if (!strcmp(parent_name, pc2->part))
+               break;
+          }
+     }
+
    if (!pc2)
      {
         ERR("parse error %s:%i. There isn't a group with the name %s",
             file_in, line - 1, parent_name);
         exit(-1);
      }
+
    if (pc2 == pc)
      {
         ERR("parse error %s:%i. You are trying to inherit '%s' from itself. 
That's not possible."

-- 


Reply via email to