I think here is not a good place to decode the encoded escaped uri without
scheme.

IMHO, it should be decoded in elm_cnp.c when they detach schema "file://",
so I made a patch (https://phab.enlightenment.org/D1384)
if the patch is accepted, 'attaching "file://" and decoding' might not be
needed anymore.



On Tue, Sep 2, 2014 at 9:20 PM, Boris Faure <bill...@gmail.com> wrote:

> billiob pushed a commit to branch master.
>
>
> http://git.enlightenment.org/apps/terminology.git/commit/?id=ae24098f738f61631ebfb82629c3bf5225cf5aab
>
> commit ae24098f738f61631ebfb82629c3bf5225cf5aab
> Author: Boris Faure <bill...@gmail.com>
> Date:   Tue Sep 2 21:18:24 2014 +0200
>
>     fix dnd with media with spaces. Closes T1586
>
>     The path is url encoded without the prefix "file:".
> ---
>  src/bin/media.c | 25 ++++++++++++++++++++++---
>  1 file changed, 22 insertions(+), 3 deletions(-)
>
> diff --git a/src/bin/media.c b/src/bin/media.c
> index f97a03d..ba2a412 100644
> --- a/src/bin/media.c
> +++ b/src/bin/media.c
> @@ -1127,8 +1127,8 @@ Evas_Object *
>  media_add(Evas_Object *parent, const char *src, const Config *config, int
> mode, int *type)
>  {
>     Evas *e;
> -   Evas_Object *obj;
> -   Media *sd;
> +   Evas_Object *obj = NULL;
> +   Media *sd = NULL;
>     int t;
>
>     EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
> @@ -1226,7 +1226,21 @@ media_add(Evas_Object *parent, const char *src,
> const Config *config, int mode,
>       }
>  #endif
>
> -   if (!sd->url) sd->realf = eina_stringshare_add(sd->src);
> +   if (!sd->url)
> +     {
> +        Efreet_Uri *uri;
> +        const char *file_path = eina_stringshare_printf("file:%s",
> sd->src);
> +        uri = efreet_uri_decode(file_path);
> +        eina_stringshare_del(file_path);
> +        if (!uri)
> +          {
> +             ERR("can not decode '%s'", sd->src);
> +             goto err;
> +          }
> +        sd->realf = uri->path;
> +        eina_stringshare_ref(sd->realf);
> +        efreet_uri_free(uri);
> +     }
>
>     if ((mode & MEDIA_SIZE_MASK) == MEDIA_THUMB)
>       {
> @@ -1267,6 +1281,11 @@ media_add(Evas_Object *parent, const char *src,
> const Config *config, int mode,
>
>     if (type) *type = t;
>     return obj;
> +
> +err:
> +   if (obj)
> +     evas_object_del(obj);
> +   return NULL;
>  }
>
>  void
>
> --
>
>
>
------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to