diff options
author | iive <iive@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-08-20 14:17:43 +0000 |
---|---|---|
committer | iive <iive@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-08-20 14:17:43 +0000 |
commit | 78dbd8ba260260585650a4b7a748f0e600771b6d (patch) | |
tree | 41d89d25b4d2f84e26809c8c8f94fb0991e8ddd0 /gui/interface.c | |
parent | 80ef41dccfb69b2d55ced1ad2ae68b1ea9d1d3ff (diff) | |
download | mpv-78dbd8ba260260585650a4b7a748f0e600771b6d.tar.bz2 mpv-78dbd8ba260260585650a4b7a748f0e600771b6d.tar.xz |
remove gconvert_uri_to_filename() and use url_unescape_string() instead.
reasons:
* gconvert strdup()s the original string, but it may exit without returning or freeing it.
* gconvert returns the original pointer when no % escaping is done. It is then free()ed and used in that state.
* gconvert doesn't consider that % may be at the end of the string and could continue parsing past the end.
* gconvert would try to free() pointer that iconv() have modified.
* gconvert would try to convert filenames from utf-8 to iso8859-1.
Seems like no other DnD programs convert to utf-8 and/or honors CHARSET.
Not converting seems to work best. Fix it if problem arises.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24106 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'gui/interface.c')
-rw-r--r-- | gui/interface.c | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/gui/interface.c b/gui/interface.c index 1dc00ba184..b4229e3994 100644 --- a/gui/interface.c +++ b/gui/interface.c @@ -157,49 +157,6 @@ void greplace(char ***list, const char *search, const char *replace) (*list)[i] = gstrdup(replace); (*list)[i + 1] = NULL; } - -#ifdef USE_ICONV -char * gconvert_uri_to_filename( char * str ) -{ - iconv_t d; - char * out = strdup( str ); - char * tmp = NULL; - char * ize; - size_t inb,outb; - char * charset = "ISO8859-1"; - char * cs; - - if ( !strchr( str,'%' ) ) return str; - - { - char * t = calloc( 1,strlen( out ) ); - int i,c = 0; - for ( i=0;i < (int)strlen( out );i++ ) - if ( out[i] != '%' ) t[c++]=out[i]; - else - { - char tmp[5] = "0xXX"; -// if ( out[++i] == '%' ) { t[c++]='%'; continue; }; - tmp[2]=out[++i]; tmp[3]=out[++i]; - t[c++]=(char)strtol( tmp,(char **)NULL,0 ); - } - free( out ); - out=t; - } - - if ( (cs=getenv( "CHARSET" )) && *cs ) charset=cs; - - inb=outb=strlen( out ); - tmp=calloc( 1,outb + 1 ); - ize=tmp; - d=iconv_open( charset,"UTF-8" ); - if ( (iconv_t)(-1) == d ) return str; - iconv( d,&out,&inb,&tmp,&outb ); - iconv_close( d ); - free( out ); - return ize; -} -#endif void guiInit( void ) { |