I think it will create a precedence!

On Fri, Aug 30, 2013 at 12:48 PM, Tom Hacohen <tom.haco...@samsung.com> wrote:
> 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



-- 
Rafael Antognolli

------------------------------------------------------------------------------
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

Reply via email to