From: Enlightenment S. <no-...@en...> - 2010-11-30 15:37:28
|
Log: Make edje_cc store script source snippets (only embryo now) in the generated file. Yeah... yeah... we are on a freeze and we aren't supposed to be doing things like this, but it's not change anything other than allow edje_edit to know about scripts in order to not screw them up when modifying a file. Author: sachiel Date: 2010-11-30 07:37:20 -0800 (Tue, 30 Nov 2010) New Revision: 55088 Trac: http://trac.enlightenment.org/e/changeset/55088 Modified: trunk/edje/src/bin/edje_cc.h trunk/edje/src/bin/edje_cc_handlers.c trunk/edje/src/bin/edje_cc_out.c Modified: trunk/edje/src/bin/edje_cc.h =================================================================== --- trunk/edje/src/bin/edje_cc.h 2010-11-30 15:18:21 UTC (rev 55087) +++ trunk/edje/src/bin/edje_cc.h 2010-11-30 15:37:20 UTC (rev 55088) @@ -78,6 +78,7 @@ { int l1, l2; char *shared; + char *original; Eina_List *programs; int is_lua; }; @@ -87,6 +88,7 @@ int l1, l2; int id; char *script; + char *original; }; struct _SrcFile Modified: trunk/edje/src/bin/edje_cc_handlers.c =================================================================== --- trunk/edje/src/bin/edje_cc_handlers.c 2010-11-30 15:18:21 UTC (rev 55087) +++ trunk/edje/src/bin/edje_cc_handlers.c 2010-11-30 15:37:20 UTC (rev 55088) @@ -1937,6 +1937,7 @@ exit(-1); } cd->shared = s; + cd->original = strdup(s); cd->is_lua = 0; set_verbatim(NULL, 0, 0); } @@ -7026,6 +7027,7 @@ cp->l1 = get_verbatim_line1(); cp->l2 = get_verbatim_line2(); cp->script = s; + cp->original = strdup(s); if (cd->shared && cd->is_lua) { ERR("%s: Error. parse error %s:%i. You're trying to mix Embryo and Lua scripting in the same group", Modified: trunk/edje/src/bin/edje_cc_out.c =================================================================== --- trunk/edje/src/bin/edje_cc_out.c 2010-11-30 15:18:21 UTC (rev 55087) +++ trunk/edje/src/bin/edje_cc_out.c 2010-11-30 15:37:20 UTC (rev 55088) @@ -848,8 +848,11 @@ { char tmpn[PATH_MAX]; char tmpo[PATH_MAX]; + char buf[PATH_MAX]; int fd; Code *cd = eina_list_data_get(l); + Eina_List *ll; + Code_Program *cp; if (cd->is_lua) continue; @@ -879,6 +882,20 @@ unlink(tmpn); unlink(tmpo); + + if (cd->original) + { + snprintf(buf, PATH_MAX, "edje/scripts/embryo/source/%i", i); + eet_write(ef, buf, cd->original, strlen(cd->original) + 1, 1); + } + EINA_LIST_FOREACH(cd->programs, ll, cp) + { + if (!cp->original) + continue; + snprintf(buf, PATH_MAX, "edje/scripts/embryo/source/%i/%i", i, + cp->id); + eet_write(ef, buf, cp->original, strlen(cp->original) + 1, 1); + } } } |