I think it's fine for 1.7, but let me know if you think it's too much of a feature and that can hurt stability. It's only activated if the environment variable is set, so I don't see much harm.
-- Tom. On 30/08/13 16:41, Tom 'TAsn' Hacohen - Enlightenment Git wrote: > tasn pushed a commit to branch elementary-1.7. > > commit 49a3f7ee22b6ddf0869a6ba82660308c3f4d0bbd > Author: Tom 'TAsn' Hacohen <t...@stosb.com> > Date: Fri Aug 30 16:39:51 2013 +0100 > > Added clouseau integration. > > You need to make sure the clouseau daemon is running (clouseaud), and > then > you can just run applications by setting the env var ELM_CLOUSEAU to 1. > This is very useful for platforms that do not have LD_PRELOAD, or block > them for any reason. > Most people should just stick to using clouseau_start or clouseau. > --- > ChangeLog | 5 ++++ > NEWS | 3 +++ > src/lib/elm_main.c | 72 > ++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 80 insertions(+) > > diff --git a/ChangeLog b/ChangeLog > index bdfa90e..29ce358 100644 > --- a/ChangeLog > +++ b/ChangeLog > @@ -840,3 +840,8 @@ > 2013-08-02 Eduardo Lima (Etrunko) > > * 1.7.8 release > + > +2013-08-30 Tom Hacohen (TAsn) > + > + * Clouseau: Added clouseau integration. > + > diff --git a/NEWS b/NEWS > index 21c2a59..6866407 100644 > --- a/NEWS > +++ b/NEWS > @@ -3,6 +3,9 @@ Elementary 1.7.8 > Changes since Elementary 1.7.7: > ------------------------- > > +Improvements: > + * Clouseau: Added clouseau integration. > + > Fixes: > > * Fix potential free'ed memory dereference in naviframe. > diff --git a/src/lib/elm_main.c b/src/lib/elm_main.c > index 1a09663..81e6103 100644 > --- a/src/lib/elm_main.c > +++ b/src/lib/elm_main.c > @@ -23,6 +23,12 @@ > > #define SEMI_BROKEN_QUICKLAUNCH 1 > > +#ifdef __CYGWIN__ > +# define LIBEXT ".dll" > +#else > +# define LIBEXT ".so" > +#endif > + > static Elm_Version _version = { VMAJ, VMIN, VMIC, VREV }; > EAPI Elm_Version *elm_version = &_version; > > @@ -198,6 +204,55 @@ _prefix_shutdown(void) > app_pfx = NULL; > } > > +static struct { > + Eina_Module *handle; > + void (*init)(void); > + void (*shutdown)(void); > + Eina_Bool (*app_connect)(const char *appname); > +} _clouseau_info; > + > +#define _CLOUSEAU_LOAD_SYMBOL(cls_struct, sym) \ > + do \ > + { \ > + (cls_struct).sym = eina_module_symbol_get((cls_struct).handle, > "clouseau_" #sym); \ > + if (!(cls_struct).sym) \ > + { \ > + WRN("Failed loading symbol '%s' from the clouseau library.", > "clouseau_" #sym); \ > + eina_module_free((cls_struct).handle); \ > + (cls_struct).handle = NULL; \ > + return EINA_FALSE; \ > + } \ > + } \ > + while (0) > + > +static Eina_Bool > +_clouseau_module_load() > +{ > + const char *elm_clouseau_env = getenv("ELM_CLOUSEAU"); > + Eina_Bool want_cls = EINA_FALSE; > + if (elm_clouseau_env) > + want_cls = atoi(elm_clouseau_env); > + > + if (!want_cls) > + return EINA_FALSE; > + > + _clouseau_info.handle = eina_module_new( > + PACKAGE_LIB_DIR "/clouseau/libclouseau" LIBEXT); > + if (!eina_module_load(_clouseau_info.handle)) > + { > + WRN("Failed loading the clouseau library."); > + eina_module_free(_clouseau_info.handle); > + _clouseau_info.handle = NULL; > + return EINA_FALSE; > + } > + > + _CLOUSEAU_LOAD_SYMBOL(_clouseau_info, init); > + _CLOUSEAU_LOAD_SYMBOL(_clouseau_info, shutdown); > + _CLOUSEAU_LOAD_SYMBOL(_clouseau_info, app_connect); > + > + return EINA_TRUE; > +} > + > EAPI int > elm_init(int argc, > char **argv) > @@ -206,6 +261,16 @@ elm_init(int argc, > if (_elm_init_count > 1) return _elm_init_count; > elm_quicklaunch_sub_init(argc, argv); > _prefix_shutdown(); > + > + if (_clouseau_module_load()) > + { > + _clouseau_info.init(); > + if(!_clouseau_info.app_connect(argv[0])) > + { > + ERR("Failed connecting to the clouseau server."); > + } > + } > + > return _elm_init_count; > } > > @@ -221,6 +286,13 @@ elm_shutdown(void) > if (_elm_init_count > 0) return _elm_init_count; > _elm_win_shutdown(); > while (_elm_win_deferred_free) ecore_main_loop_iterate(); > + > + if (_clouseau_info.shutdown) > + { > + _clouseau_info.shutdown(); > + eina_module_free(_clouseau_info.handle); > + _clouseau_info.handle = NULL; > + } > // wrningz :( > // _prefix_shutdown(); > elm_quicklaunch_sub_shutdown(); > ------------------------------------------------------------------------------ Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel