[vlc-devel] commit: zip access: fix #2467. Now it' s able to open files with non ASCII names, but can' t open files with non ASCII names inside of the zip file (Geoffroy Couprie )
git version control
git at videolan.org
Wed May 20 00:32:18 CEST 2009
vlc | branch: master | Geoffroy Couprie <geal at videolan.org> | Thu May 14 04:03:19 2009 +0200| [e3d08b7955a57485d8d301f33c583641899153a6] | committer: Geoffroy Couprie
zip access: fix #2467. Now it's able to open files with non ASCII names, but can't open files with non ASCII names inside of the zip file
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e3d08b7955a57485d8d301f33c583641899153a6
---
modules/access/zip/zipaccess.c | 8 +++-----
modules/access/zip/zipstream.c | 11 ++---------
2 files changed, 5 insertions(+), 14 deletions(-)
diff --git a/modules/access/zip/zipaccess.c b/modules/access/zip/zipaccess.c
index 3689e12..e1ab43b 100644
--- a/modules/access/zip/zipaccess.c
+++ b/modules/access/zip/zipaccess.c
@@ -64,7 +64,7 @@ int AccessOpen( vlc_object_t *p_this )
int i_ret = VLC_EGENERIC;
unzFile file = 0;
- char *psz_pathToZip = NULL, *psz_path = NULL, *psz_sep = NULL;
+ char *psz_path = NULL, *psz_sep = NULL;
p_access->p_sys = p_sys = (access_sys_t*)
calloc( 1, sizeof( access_sys_t ) );
@@ -78,7 +78,6 @@ int AccessOpen( vlc_object_t *p_this )
return VLC_EGENERIC;
*psz_sep = '\0';
- psz_pathToZip = unescape_URI_duplicate( psz_path );
p_sys->psz_fileInzip = strdup( psz_sep + 1 );
/* Define IO functions */
@@ -94,10 +93,10 @@ int AccessOpen( vlc_object_t *p_this )
p_func->opaque = p_access;
/* Open zip archive */
- file = p_access->p_sys->zipFile = unzOpen2( psz_pathToZip, p_func );
+ file = p_access->p_sys->zipFile = unzOpen2( psz_path, p_func );
if( !file )
{
- msg_Err( p_access, "not a valid zip archive: '%s'", psz_pathToZip );
+ msg_Err( p_access, "not a valid zip archive: '%s'", psz_path );
goto exit;
}
@@ -131,7 +130,6 @@ exit:
free( p_sys );
}
- free( psz_pathToZip );
free( psz_path );
return i_ret;
}
diff --git a/modules/access/zip/zipstream.c b/modules/access/zip/zipstream.c
index c29d11f..940d5f4 100644
--- a/modules/access/zip/zipstream.c
+++ b/modules/access/zip/zipstream.c
@@ -488,8 +488,8 @@ static int WriteXSPF( char **pp_buffer, vlc_array_t *p_filenames,
/* Root node */
node *playlist = new_node( psz_zip );
- /* Web-Encode the URI and append '!' */
- char *psz_pathtozip = vlc_UrlEncode( psz_zippath );
+ /* Web-Encode the URI and append '|' */
+ char *psz_pathtozip = make_URI( psz_zippath );
if( astrcatf( &psz_pathtozip, ZIP_SEP ) < 0 ) return -1;
int i_track = 0;
@@ -516,11 +516,6 @@ static int WriteXSPF( char **pp_buffer, vlc_array_t *p_filenames,
char *psz_path = strdup( psz_pathtozip );
if( astrcatf( &psz_path, psz_name ) < 0 ) return -1;
- /* Double url-encode */
- char *psz_tmp = psz_path;
- psz_path = vlc_UrlEncode( psz_tmp );
- free( psz_tmp );
-
/* Track information */
if( astrcatf( pp_buffer,
" <track>\n"
@@ -572,8 +567,6 @@ static int WriteXSPF( char **pp_buffer, vlc_array_t *p_filenames,
/* Close extension and playlist */
if( astrcatf( pp_buffer, " </extension>\n</playlist>\n" ) < 0 ) return -1;
- /* printf( "%s", *pp_buffer ); */
-
free_all_node( playlist );
return VLC_SUCCESS;
More information about the vlc-devel
mailing list