jaehyun pushed a commit to branch master.
http://git.enlightenment.org/core/efl.git/commit/?id=7500ef6f8c8b22a139670fe65d16a42c4785e0e2
commit 7500ef6f8c8b22a139670fe65d16a42c4785e0e2
Author: Vincent Torri <vincent dot torri at gmail dot com>
Date: Thu Dec 10 20:09:00 2015 +0900
edje_cc: Use ecore_file_file_get() and ecore_file_dir_get() for EDC parsing
Replace current EDC parsing code in edje_cc on Windows with the code
using ecore_file_file_get() and ecore_file_dir_get().
Signed-off-by: Jaehyun Cho <[email protected]>
---
src/bin/edje/edje_cc_parse.c | 27 +++++++++++----------------
src/bin/edje/edje_cc_sources.c | 37 ++-----------------------------------
2 files changed, 13 insertions(+), 51 deletions(-)
diff --git a/src/bin/edje/edje_cc_parse.c b/src/bin/edje/edje_cc_parse.c
index 4fa97eb..4466c87 100644
--- a/src/bin/edje/edje_cc_parse.c
+++ b/src/bin/edje/edje_cc_parse.c
@@ -914,23 +914,13 @@ void
compile(void)
{
char buf[4096], buf2[4096];
- char inc[4096];
Eina_Tmpstr *tmpn;
int fd;
off_t size;
- char *data, *p;
+ char *data;
Eina_List *l;
Edje_Style *stl;
- strncpy(inc, file_in, 4000);
- inc[4001] = 0;
- p = strrchr(inc, '/');
-#ifdef _WIN32
- char *p_backslash = strrchr(inc, '\\');
- if (p_backslash > p) p = p_backslash;
-#endif
- if (!p) strcpy(inc, "./");
- else *p = 0;
fd = eina_file_mkstemp("edje_cc.edc-tmp-XXXXXX", &tmpn);
if (fd < 0)
{
@@ -986,25 +976,30 @@ compile(void)
eina_prefix_lib_get(pfx));
if (ecore_file_exists(buf2))
{
+ char *inc;
+
+ inc = ecore_file_dir_get(file_in);
if (depfile)
snprintf(buf, sizeof(buf), "%s -MMD %s -MT %s %s -I%s %s -o %s"
" -DEFL_VERSION_MAJOR=%d -DEFL_VERSION_MINOR=%d",
buf2, depfile, file_out, file_in,
- inc, def, clean_file,
+ inc ? inc : "./", def, clean_file,
EINA_VERSION_MAJOR, EINA_VERSION_MINOR);
else if (annotate)
snprintf(buf, sizeof(buf), "%s -annotate -a %s %s -I%s %s -o %s"
" -DEFL_VERSION_MAJOR=%d -DEFL_VERSION_MINOR=%d",
buf2, watchfile ? watchfile : "/dev/null", file_in,
- inc, def, clean_file,
+ inc ? inc : "./", def, clean_file,
EINA_VERSION_MAJOR, EINA_VERSION_MINOR);
else
snprintf(buf, sizeof(buf), "%s -a %s %s -I%s %s -o %s"
" -DEFL_VERSION_MAJOR=%d -DEFL_VERSION_MINOR=%d",
buf2, watchfile ? watchfile : "/dev/null", file_in,
- inc, def, clean_file,
+ inc ? inc : "./", def, clean_file,
EINA_VERSION_MAJOR, EINA_VERSION_MINOR);
ret = system(buf);
+ if (inc)
+ free(inc);
}
else
{
@@ -1029,9 +1024,9 @@ compile(void)
}
DBG("Opening \"%s\" for input", file_in);
- /* lseek can return -1 on error. trap that return and exit so that
+ /* lseek can return -1 on error. trap that return and exit so that
* we do not pass malloc a -1
- *
+ *
* NB: Fixes Coverity CID 1040029 */
size = lseek(fd, 0, SEEK_END);
if (size < 0)
diff --git a/src/bin/edje/edje_cc_sources.c b/src/bin/edje/edje_cc_sources.c
index 381ba20..3f119bb 100644
--- a/src/bin/edje/edje_cc_sources.c
+++ b/src/bin/edje/edje_cc_sources.c
@@ -154,25 +154,7 @@ source_fetch_file(const char *fil, const char *filname)
*/
if (!dir)
{
- char *slash;
- if (strrchr(fil, '/'))
- {
- dir = mem_strdup(fil);
- slash = strrchr(dir, '/');
- }
- else
- {
- slash = NULL;
- }
-#ifdef _WIN32
- if (strrchr(fil, '\\'))
- {
- if (!dir) dir = mem_strdup(fil);
- char *backslash = strrchr(dir, '\\');
- if (backslash > slash) slash =
backslash;
- }
-#endif
- if (slash) *slash = '\0';
+ dir = ecore_file_dir_get(fil);
if (dir) dir_len = strlen(dir);
}
@@ -219,22 +201,7 @@ source_fetch_file(const char *fil, const char *filname)
void
source_fetch(void)
{
- char buf[PATH_MAX] = {0}, *ptr;
-
- ptr = strrchr(file_in, '/');
- if (ptr)
- {
- snprintf(buf, sizeof (buf), "%s", ptr + 1);
- }
-#ifdef _WIN32
- char *ptr_backslash = strrchr(file_in, '\\');
- if (ptr_backslash)
- {
- if (ptr_backslash > ptr)
- snprintf(buf, sizeof (buf), "%s", ptr_backslash + 1);
- }
-#endif
- source_fetch_file(file_in, buf[0] ? buf : file_in);
+ source_fetch_file(file_in, ecore_file_file_get(file_in));
}
int
--