From 82fee3d58c25a8ba1b9e76639399d296117a82dc Mon Sep 17 00:00:00 2001 From: doursse Date: Fri, 6 Jun 2008 18:31:49 +0000 Subject: [PATCH] evilize edje. Link against ecore_file only when needed. PATH_MAX and not MAX_PATH. Minor other fixes. SVN revision: 34761 --- legacy/edje/configure.in | 22 +++++++---- legacy/edje/src/bin/Makefile.am | 24 +++++++++--- legacy/edje/src/bin/edje_cc.c | 8 ---- legacy/edje/src/bin/edje_cc_out.c | 57 +++-------------------------- legacy/edje/src/bin/edje_cc_parse.c | 39 ++++++-------------- legacy/edje/src/bin/edje_decc.c | 54 ++------------------------- legacy/edje/src/bin/edje_main.h | 22 +++++++---- legacy/edje/src/bin/edje_prefix.c | 18 +++------ legacy/edje/src/lib/Makefile.am | 3 +- legacy/edje/src/lib/edje_edit.c | 20 ++++++---- 10 files changed, 85 insertions(+), 182 deletions(-) diff --git a/legacy/edje/configure.in b/legacy/edje/configure.in index 97b6299034..f63444667a 100644 --- a/legacy/edje/configure.in +++ b/legacy/edje/configure.in @@ -31,14 +31,18 @@ SNAP=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $4);}'` version_info=`expr $VMAJ + $VMIN`":$VMIC:$VMIN" AC_SUBST(version_info) +PKG_PROG_PKG_CONFIG + AC_FUNC_ALLOCA WIN32_CFLAGS="" lt_no_undefined="" lt_enable_auto_import="" -edje_decc_lib="" case "$host_os" in mingw*|cegcc) + PKG_CHECK_MODULES([EVIL], [evil]) + AC_DEFINE(HAVE_EVIL, 1, [Set to 1 if evil package is installed]) + AC_DEFINE(HAVE_REALPATH, 1, [Define to 1 if you have the `realpath' function.]) dnl needed for correct definition of EAPI AC_DEFINE(EFL_EDJE_BUILD, 1, [Define to mention that embryo is built]) if test "x$host_os" = "xcegcc" ; then @@ -46,15 +50,14 @@ case "$host_os" in lt_enable_auto_import="-Wl,--enable-auto-import" fi lt_no_undefined="-no-undefined" - edje_decc_lib="-lole32 -luuid" + ;; + *) + AC_CHECK_FUNCS(realpath) ;; esac AC_SUBST(WIN32_CFLAGS) AC_SUBST(lt_no_undefined) AC_SUBST(lt_enable_auto_import) -AC_SUBST(edje_decc_lib) - -AC_CHECK_FUNCS(realpath) AC_MSG_CHECKING(whether to build edje_cc) have_edje_cc="yes" @@ -75,11 +78,14 @@ PKG_CHECK_MODULES(EDJE, [ evas >= 0.9.9 ecore-evas >= 0.9.9 ecore-job >= 0.9.9 - ecore-file >= 0.9.9 eet >= 1.0.1 embryo >= 0.9.1 ]) +PKG_CHECK_MODULES(ECORE_FILE, [ + ecore-file >= 0.9.9 +]) + AC_MSG_CHECKING([for location of Vim data files]) install_vim="yes"; AC_ARG_WITH(vim, @@ -113,11 +119,9 @@ AC_SUBST(vimdir) EDJE_CC_PRG="" EDJE_DECC_PRG="" EDJE_RECC_PRG="" -EDJE_THUMB_PRG="" if test "x$have_edje_cc" = "xyes"; then AM_CONDITIONAL(BUILD_EDJE_CC, true) AM_CONDITIONAL(BUILD_EDJE_DECC, true) - AM_CONDITIONAL(BUILD_EDJE_THUMB, true) EDJE_CC_PRG="edje_cc" EDJE_DECC_PRG="edje_decc" EDJE_RECC_PRG="edje_recc" @@ -153,6 +157,8 @@ echo "------------------------------------------------------------------------" echo echo "Configuration Options Summary:" echo +echo " Build binaries.......: $have_edje_cc" +echo echo " Compilation..........: make" echo echo " Installation.........: make install" diff --git a/legacy/edje/src/bin/Makefile.am b/legacy/edje/src/bin/Makefile.am index e67dd8a9ac..7d3780f471 100644 --- a/legacy/edje/src/bin/Makefile.am +++ b/legacy/edje/src/bin/Makefile.am @@ -8,7 +8,21 @@ AM_CPPFLAGS = \ -DPACKAGE_BIN_DIR=\"$(bindir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ -DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ -@EDJE_CFLAGS@ +@EDJE_CFLAGS@ \ +@ECORE_FILE_CFLAGS@ \ +@EVIL_CFLAGS@ + +if BUILD_EDJE_CC +EDJE_CC = edje_cc +else +EDJE_CC = +endif + +if BUILD_EDJE_DECC +EDJE_DECC = edje_decc +else +EDJE_DECC = +endif bin_SCRIPTS = \ @EDJE_RECC_PRG@ @@ -16,9 +30,7 @@ bin_SCRIPTS = \ EXTRA_DIST = @EDJE_RECC_PRG@ EXTRA_SCRIPTS = edje_recc -bin_PROGRAMS = \ -edje_cc \ -edje_decc +bin_PROGRAMS = $(EDJE_CC) $(EDJE_DECC) EXTRA_PROGRAMS = \ edje_cc \ @@ -37,7 +49,7 @@ edje_prefix.h \ edje_main.h edje_cc_CFLAGS = @WIN32_CFLAGS@ -edje_cc_LDADD = $(top_builddir)/src/lib/libedje.la $(EDJE_LIBS) +edje_cc_LDADD = $(top_builddir)/src/lib/libedje.la $(EDJE_LIBS) $(EVIL_LIBS) edje_cc_LDFLAGS = @lt_enable_auto_import@ edje_cc_DEPENDENCIES = $(top_builddir)/src/lib/libedje.la @@ -49,6 +61,6 @@ edje_cc_mem.c \ edje_cc_sources.c edje_decc_CFLAGS = @WIN32_CFLAGS@ -edje_decc_LDADD = $(top_builddir)/src/lib/libedje.la @edje_decc_lib@ $(EDJE_LIBS) +edje_decc_LDADD = $(top_builddir)/src/lib/libedje.la $(EDJE_LIBS) $(ECORE_FILE_LIBS) $(EVIL_LIBS) edje_decc_LDFLAGS = @lt_enable_auto_import@ edje_decc_DEPENDENCIES = $(top_builddir)/src/lib/libedje.la diff --git a/legacy/edje/src/bin/edje_cc.c b/legacy/edje/src/bin/edje_cc.c index f0ed21af1b..450edc1d15 100644 --- a/legacy/edje/src/bin/edje_cc.c +++ b/legacy/edje/src/bin/edje_cc.c @@ -125,11 +125,7 @@ main(int argc, char **argv) #ifdef HAVE_REALPATH if (!realpath(file_in, rpath) || stat(rpath, &st) || !S_ISREG(st.st_mode)) #else -# ifdef _WIN32 - if (!_fullpath(rpath, file_in, _MAX_PATH) || stat(rpath, &st) || !S_ISREG(st.st_mode)) -# else if (stat(file_in, &st) || !S_ISREG(st.st_mode)) -# endif /* _WIN32 */ #endif { fprintf(stderr, "%s: Error: file not found: %s.\n", progname, file_in); @@ -161,11 +157,7 @@ main(int argc, char **argv) #ifdef HAVE_REALPATH if (realpath(file_out, rpath2) && !strcmp (rpath, rpath2)) #else -# ifdef _WIN32 - if (_fullpath(rpath2, file_out, _MAX_PATH) && !strcmp (rpath, rpath2)) -# else if (!strcmp (file_in, file_out)) -# endif /* _WIN32 */ #endif { fprintf(stderr, "%s: Error: input file equals output file.\n", progname); diff --git a/legacy/edje/src/bin/edje_cc_out.c b/legacy/edje/src/bin/edje_cc_out.c index cd29021449..a9107a25cc 100644 --- a/legacy/edje/src/bin/edje_cc_out.c +++ b/legacy/edje/src/bin/edje_cc_out.c @@ -2,12 +2,6 @@ * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 */ -#ifdef _WIN32 -# include -# include -#endif /* _WIN32 */ - - #include "edje_cc.h" typedef struct _Part_Lookup Part_Lookup; @@ -600,34 +594,16 @@ data_write(void) { char tmpn[4096]; int fd; -#ifdef _WIN32 char *tmpdir; -#endif /* _WIN32 */ -#ifdef _WIN32 - tmpdir = getenv("TMP"); - if (!tmpdir) tmpdir = getenv("TEMP"); - if (!tmpdir) tmpdir = getenv("USERPROFILE"); - if (!tmpdir) tmpdir = getenv("WINDIR"); - if (tmpdir) - { - snprintf(tmpn, _MAX_PATH, "%s/edje_cc.sma-tmp-XXXXXX", tmpdir); -# ifdef __MINGW32__ - if (_mktemp(tmpn)) - fd = _sopen(tmpn, _O_RDWR | _O_BINARY | _O_CREAT, _SH_DENYNO, _S_IREAD | _S_IWRITE); -# else - if (!_mktemp_s(tmpn, _MAX_PATH)) - _sopen_s(&fd, tmpn, _O_RDWR | _O_BINARY | _O_CREAT, _SH_DENYNO, _S_IREAD | _S_IWRITE); -# endif /* __MINGW32__ */ - else - fd = -1; - } - else - fd= -1; +#ifdef HAVE_EVIL + tmpdir = evil_tmpdir_get(); #else + tmpdir = "/tmp"; +#endif + snprintf(tmpn, PATH_MAX, "%s/edje_cc.sma-tmp-XXXXXX", tmpdir); strcpy(tmpn, "/tmp/edje_cc.sma-tmp-XXXXXX"); fd = mkstemp(tmpn); -#endif /* _WIN32 */ if (fd >= 0) { FILE *f; @@ -708,30 +684,9 @@ data_write(void) fclose(f); } close(fd); -#ifdef _WIN32 - tmpdir = getenv("TMP"); - if (!tmpdir) tmpdir = getenv("TEMP"); - if (!tmpdir) tmpdir = getenv("USERPROFILE"); - if (!tmpdir) tmpdir = getenv("WINDIR"); - if (tmpdir) - { - snprintf(tmpo, _MAX_PATH, "%s/edje_cc.amx-tmp-XXXXXX", tmpdir); -# ifdef __MINGW32__ - if (_mktemp(tmpo)) - fd = _sopen(tmpo, _O_RDWR | _O_BINARY | _O_CREAT, _SH_DENYNO, _S_IREAD | _S_IWRITE); -# else - if (!_mktemp_s(tmpo, _MAX_PATH)) - _sopen_s(&fd, tmpo, _O_RDWR | _O_BINARY | _O_CREAT, _SH_DENYNO, _S_IREAD | _S_IWRITE); -# endif /* __MINGW32__ */ - else - fd = -1; - } - else - fd= -1; -#else + snprintf(tmpo, PATH_MAX, "%s/edje_cc.amx-tmp-XXXXXX", tmpdir); strcpy(tmpo, "/tmp/edje_cc.amx-tmp-XXXXXX"); fd = mkstemp(tmpo); -#endif /* _WIN32 */ if (fd >= 0) { snprintf(buf, sizeof(buf), diff --git a/legacy/edje/src/bin/edje_cc_parse.c b/legacy/edje/src/bin/edje_cc_parse.c index d96fd2d297..30acba9b99 100644 --- a/legacy/edje/src/bin/edje_cc_parse.c +++ b/legacy/edje/src/bin/edje_cc_parse.c @@ -2,10 +2,6 @@ * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 */ -#ifdef _WIN32 -# include -#endif /* _WIN32 */ - #include "edje_cc.h" static void new_object(void); @@ -609,36 +605,27 @@ get_verbatim_line2(void) void compile(void) { - int fd; - off_t size; - char *data, *p; -#ifdef _WIN32 - int ret; -#endif /* _WIN32 */ char buf[4096]; char inc[4096]; static char tmpn[4096]; + int fd; + off_t size; + char *data, *p; + char *tmpdir; + +#ifdef HAVE_EVIL + tmpdir = evil_tmpdir_get(); +#else + tmpdir = "/tmp"; +#endif strncpy(inc, file_in, 4000); inc[4001] = 0; p = strrchr(inc, '/'); if (!p) strcpy(inc, "./"); else *p = 0; -#ifdef _WIN32 - ret = GetTempPath(4096, buf); - if ((ret > 4096) || (ret == 0)) - fd = -1; - else - { - if (!GetTempFileName(buf, "edj", 0, tmpn)) - fd = -1; - else - fd = open(tmpn, _O_RDWR | _O_BINARY | _O_CREAT, 0444); - } -#else - strcpy(tmpn, "/tmp/edje_cc.edc-tmp-XXXXXX"); + snprintf (tmpn, PATH_MAX, "%s/edje_cc.edc-tmp-XXXXXX", tmpdir); fd = mkstemp(tmpn); -#endif /* _WIN32 */ if (fd >= 0) { int ret; @@ -706,11 +693,7 @@ compile(void) free(def); */ } -#ifdef _WIN32 - fd = open(file_in, _O_RDONLY | _O_BINARY); -#else fd = open(file_in, O_RDONLY); -#endif /* _WIN32 */ if (fd < 0) { fprintf(stderr, "%s: Error. cannot open file \"%s\" for input. %s\n", diff --git a/legacy/edje/src/bin/edje_decc.c b/legacy/edje/src/bin/edje_decc.c index 309aa658cd..3ddc473b7b 100644 --- a/legacy/edje/src/bin/edje_decc.c +++ b/legacy/edje/src/bin/edje_decc.c @@ -3,17 +3,14 @@ */ /* ugly ugly. avert your eyes. */ -#include "edje_decc.h" #include #include #include #include + #include -#ifdef _WIN32 -# include -# include -# include -#endif /* _WIN32 */ + +#include "edje_decc.h" char *progname = NULL; char *file_in = NULL; @@ -40,49 +37,6 @@ main_help(void) ,progname); } -#ifdef _WIN32 -int -symlink (const char *oldpath, const char *newpath) -{ - IShellLink *pISL; - IPersistFile *pIPF; - - if (FAILED(CoInitialize(NULL))) - return 0; - - if (FAILED(CoCreateInstance(&CLSID_ShellLink, - NULL, - CLSCTX_INPROC_SERVER, - &IID_IShellLink, - (PVOID *)&pISL))) - goto no_instance; - - if (FAILED(pISL->lpVtbl->SetPath(pISL, oldpath))) - goto no_setpath; - - if (FAILED(pISL->lpVtbl->QueryInterface(pISL, &IID_IPersistFile, (PVOID *) &pIPF))) - goto no_queryinterface; - - if (FAILED(pIPF->lpVtbl->Save(pIPF, newpath, FALSE))) - goto no_save; - - pIPF->lpVtbl->Release(pIPF); - pISL->lpVtbl->Release(pISL); - CoUninitialize(); - - return 1; - - no_save: - pIPF->lpVtbl->Release(pIPF); - no_queryinterface: - no_setpath: - pISL->lpVtbl->Release(pISL); - no_instance: - CoUninitialize(); - return 0; -} -#endif /* _WIN32 */ - Eet_File *ef; Eet_Dictionary *ed; @@ -349,9 +303,7 @@ output(void) symlink(sf->name, out); } -#ifndef _WIN32 chmod(out, S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IWGRP | S_IXGRP); -#endif /* _WIN32 */ printf("\n*** CAUTION ***\n" "Please check the build script for anything malicious " diff --git a/legacy/edje/src/bin/edje_main.h b/legacy/edje/src/bin/edje_main.h index 6df75a20b1..c6596536c2 100644 --- a/legacy/edje/src/bin/edje_main.h +++ b/legacy/edje/src/bin/edje_main.h @@ -1,15 +1,7 @@ #ifndef EDJE_MAIN_H #define EDJE_MAIN_H -#ifdef HAVE_CONFIG_H -#include -#endif -#include -#include -#include -#include -#include "Edje.h" #include #include #include @@ -22,6 +14,20 @@ #include #include +#ifdef HAVE_CONFIG_H +# include +#endif + +#ifdef HAVE_EVIL +# include +#endif + +#include +#include +#include +#include +#include "Edje.h" + #ifdef HAVE_ALLOCA_H # include #elif defined __GNUC__ diff --git a/legacy/edje/src/bin/edje_prefix.c b/legacy/edje/src/bin/edje_prefix.c index 3a392745b0..2241fef335 100644 --- a/legacy/edje/src/bin/edje_prefix.c +++ b/legacy/edje/src/bin/edje_prefix.c @@ -1,7 +1,11 @@ /* * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 */ -#include "config.h" + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + #include #include #include @@ -385,11 +389,7 @@ _e_prefix_try_argv(char *argv0) if (getcwd(buf3, sizeof(buf3))) { snprintf(buf2, sizeof(buf2), "%s/%s", buf3, argv0); -#ifdef _WIN32 - if (_fullpath(buf, buf2, _MAX_PATH)) -#else if (realpath(buf2, buf)) -#endif /* _WIN32 */ { _exe_path = strdup(buf); if (access(_exe_path, X_OK) == 0) return 1; @@ -413,11 +413,7 @@ _e_prefix_try_argv(char *argv0) strncpy(s, cp, len); s[len] = '/'; strcpy(s + len + 1, argv0); -#ifdef _WIN32 - if (_fullpath(buf, s, _MAX_PATH)) -#else if (realpath(s, buf)) -#endif /* _WIN32 */ { if (access(buf, X_OK) == 0) { @@ -437,11 +433,7 @@ _e_prefix_try_argv(char *argv0) strncpy(s, cp, len); s[len] = '/'; strcpy(s + len + 1, argv0); -#ifdef _WIN32 - if (_fullpath(buf, s, _MAX_PATH)) -#else if (realpath(s, buf)) -#endif /* _WIN32 */ { if (access(buf, X_OK) == 0) { diff --git a/legacy/edje/src/lib/Makefile.am b/legacy/edje/src/lib/Makefile.am index 0a40295376..0002e7d2a1 100644 --- a/legacy/edje/src/lib/Makefile.am +++ b/legacy/edje/src/lib/Makefile.am @@ -9,7 +9,8 @@ AM_CPPFLAGS = \ -DPACKAGE_BIN_DIR=\"$(bindir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ -DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ -@EDJE_CFLAGS@ +@EDJE_CFLAGS@ \ +@EVIL_CFLAGS@ lib_LTLIBRARIES = \ libedje.la diff --git a/legacy/edje/src/lib/edje_edit.c b/legacy/edje/src/lib/edje_edit.c index c0cef9a82c..ae5efcae63 100644 --- a/legacy/edje/src/lib/edje_edit.c +++ b/legacy/edje/src/lib/edje_edit.c @@ -15,13 +15,17 @@ #include #include +#include + +#ifdef HAVE_EVIL +# include +#endif + #include "Edje.h" #include "edje_private.h" #include "edje_cc.h" #include "Edje_Edit.h" -#define MAX_PATH 4096 - /* Get ed(Edje*) from obj(Evas_Object*) */ #define GET_ED_OR_RETURN(RET) \ Edje *ed; \ @@ -1181,14 +1185,14 @@ edje_edit_part_type_get(Evas_Object *obj, const char *part) EAPI const char * edje_edit_part_selected_state_get(Evas_Object *obj, const char *part) { - char name[MAX_PATH]; + char name[PATH_MAX]; GET_RP_OR_RETURN(NULL); if (!rp->chosen_description) return "default 0.00"; - snprintf(name, MAX_PATH, "%s %.2f", + snprintf(name, PATH_MAX, "%s %.2f", rp->chosen_description->state.name, rp->chosen_description->state.value); @@ -1384,7 +1388,7 @@ edje_edit_part_source_set(Evas_Object *obj, const char *part, const char *source EAPI Evas_List * edje_edit_part_states_list_get(Evas_Object *obj, const char *part) { - char state_name[MAX_PATH]; + char state_name[PATH_MAX]; Evas_List *states; Evas_List *l; Edje_Part_Description *state; @@ -1398,7 +1402,7 @@ edje_edit_part_states_list_get(Evas_Object *obj, const char *part) //append default state state = rp->part->default_desc; - snprintf(state_name, MAX_PATH, + snprintf(state_name, PATH_MAX, "%s %.2f", state->state.name, state->state.value); states = evas_list_append(states, evas_stringshare_add(state_name)); //printf("NEW STATE def: %s\n", state->state.name); @@ -2261,7 +2265,7 @@ edje_edit_fonts_list_get(Evas_Object *obj) EAPI unsigned char edje_edit_font_add(Evas_Object *obj, const char* path) { - char buf[MAX_PATH]; + char buf[PATH_MAX]; Font *fn; Edje_Font_Directory_Entry *fnt; Eet_File *eetf; @@ -3327,7 +3331,7 @@ static void _edje_generate_source(Edje *ed) { printf("\n****** GENERATE SOURCE *********\n"); - char tmpn[MAX_PATH]; + char tmpn[PATH_MAX]; int fd; FILE *f; long sz;