On Wed, Sep 10, 2014 at 10:13 AM, Sebastian Dransfeld
<s...@tango.flipp.net> wrote:
> Maybe we should deprecate the ecore_file_*() functions which are
> replaced by eina_file_*() functions? ecore_file_ls f.ex.

Yes and depending on the use case, eio. Usually eina file operation do
consume less memory and do more efficient syscall.

Cedric

> On 09/09/2014 10:17 PM, Eduardo Lima (Etrunko) wrote:
>> etrunko pushed a commit to branch master.
>>
>> http://git.enlightenment.org/apps/rage.git/commit/?id=7c80b9a131b729bd244b40c194dc36bf24dde661
>>
>> commit 7c80b9a131b729bd244b40c194dc36bf24dde661
>> Author: Eduardo Lima (Etrunko) <ebl...@gmail.com>
>> Date:   Mon Aug 25 15:36:44 2014 -0300
>>
>>      dnd: Recurse into directories
>>
>>      Signed-off-by: Eduardo Lima (Etrunko) <eduardo.l...@intel.com>
>> ---
>>   AUTHORS       |  1 +
>>   src/bin/dnd.c | 66 
>> +++++++++++++++++++++++++++++++++++++++++++++++++++++------
>>   2 files changed, 61 insertions(+), 6 deletions(-)
>>
>> diff --git a/AUTHORS b/AUTHORS
>> index b9a9404..230cb46 100644
>> --- a/AUTHORS
>> +++ b/AUTHORS
>> @@ -1 +1,2 @@
>>   Carsten Haitzler <ras...@rasterman.com>
>> +Eduardo Lima (Etrunko) <ebl...@gmail.com>
>> diff --git a/src/bin/dnd.c b/src/bin/dnd.c
>> index f8faba4..1a8b9d2 100644
>> --- a/src/bin/dnd.c
>> +++ b/src/bin/dnd.c
>> @@ -60,6 +60,39 @@ _escape_parse(const char *str)
>>      return dest;
>>   }
>>
>> +static Eina_Bool
>> +_recurse_dir(Evas_Object *win, const char *path)
>> +{
>> +   Eina_Bool ret = EINA_FALSE;
>> +   Eina_List *ls, *l;
>> +   char *p, *escape;
>> +   const char *full;
>> +
>> +   ls = ecore_file_ls(path);
>> +   EINA_LIST_FOREACH(ls, l, p)
>> +     {
>> +        escape = _escape_parse(p);
>> +        full = eina_stringshare_printf("%s/%s", path, escape);
>> +        free(escape);
>> +        if (ecore_file_is_dir(full))
>> +          {
>> +             ret = _recurse_dir(win, full);
>> +             eina_stringshare_del(full);
>> +             continue;
>> +          }
>> +
>> +        printf("inserting '%s'\n", full);
>> +        win_video_insert(win, full);
>> +        eina_stringshare_del(full);
>> +        ret = EINA_TRUE;
>> +     }
>> +
>> +   EINA_LIST_FREE(ls, p)
>> +     free(p);
>> +
>> +   return ret;
>> +}
>> +
>>   Eina_Bool
>>   _cb_drop(void *data, Evas_Object *o EINA_UNUSED, Elm_Selection_Data *ev)
>>   {
>> @@ -94,8 +127,15 @@ _cb_drop(void *data, Evas_Object *o EINA_UNUSED, 
>> Elm_Selection_Data *ev)
>>                               tt = _escape_parse(tb);
>>                               if (tt)
>>                                 {
>> -                                 win_video_insert(win, tt);
>> -                                 inserted = EINA_TRUE;
>> +                                 if (ecore_file_is_dir(tt))
>> +                                   {
>> +                                      inserted = _recurse_dir(win, tt);
>> +                                   }
>> +                                 else
>> +                                   {
>> +                                      win_video_insert(win, tt);
>> +                                      inserted = EINA_TRUE;
>> +                                   }
>>                                    free(tt);
>>                                 }
>>                            }
>> @@ -108,8 +148,15 @@ _cb_drop(void *data, Evas_Object *o EINA_UNUSED, 
>> Elm_Selection_Data *ev)
>>                               tt = _escape_parse(tb);
>>                               if (tt)
>>                                 {
>> -                                 win_video_insert(win, tt);
>> -                                 inserted = EINA_TRUE;
>> +                                 if (ecore_file_is_dir(tt))
>> +                                   {
>> +                                      inserted = _recurse_dir(win, tt);
>> +                                   }
>> +                                 else
>> +                                   {
>> +                                      win_video_insert(win, tt);
>> +                                      inserted = EINA_TRUE;
>> +                                   }
>>                                    free(tt);
>>                                 }
>>                            }
>> @@ -124,8 +171,15 @@ _cb_drop(void *data, Evas_Object *o EINA_UNUSED, 
>> Elm_Selection_Data *ev)
>>           char *tt = _escape_parse(ev->data);
>>           if (tt)
>>             {
>> -             win_video_insert(win, tt);
>> -             inserted = EINA_TRUE;
>> +             if (ecore_file_is_dir(tt))
>> +               {
>> +                  inserted = _recurse_dir(win, tt);
>> +               }
>> +             else
>> +               {
>> +                  win_video_insert(win, tt);
>> +                  inserted = EINA_TRUE;
>> +               }
>>                free(tt);
>>             }
>>        }
>>
>
>
> ------------------------------------------------------------------------------
> Want excitement?
> Manually upgrade your production database.
> When you want reliability, choose Perforce
> Perforce version control. Predictably reliable.
> http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>



-- 
Cedric BAIL

------------------------------------------------------------------------------
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191&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