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