Commit 7e6968ae authored by Antoine Cellerier's avatar Antoine Cellerier

Change filename_sanitize() to work on original string like path_sanitize().

parent 96824f0c
...@@ -50,7 +50,7 @@ VLC_EXPORT( char *, str_format_meta, ( vlc_object_t *, const char * ) ); ...@@ -50,7 +50,7 @@ VLC_EXPORT( char *, str_format_meta, ( vlc_object_t *, const char * ) );
VLC_EXPORT( char *, str_format, ( vlc_object_t *, const char * ) ); VLC_EXPORT( char *, str_format, ( vlc_object_t *, const char * ) );
#define str_format( a, b ) str_format( VLC_OBJECT( a ), b ) #define str_format( a, b ) str_format( VLC_OBJECT( a ), b )
VLC_EXPORT( char *, filename_sanitize, ( const char * ) ) LIBVLC_USED; VLC_EXPORT( void, filename_sanitize, ( char * ) );
VLC_EXPORT( void, path_sanitize, ( char * ) ); VLC_EXPORT( void, path_sanitize, ( char * ) );
/** /**
......
...@@ -3339,16 +3339,14 @@ char *input_CreateFilename( vlc_object_t *p_obj, const char *psz_path, const cha ...@@ -3339,16 +3339,14 @@ char *input_CreateFilename( vlc_object_t *p_obj, const char *psz_path, const cha
if( !psz_tmp ) if( !psz_tmp )
return NULL; return NULL;
char *psz_tmp2 = filename_sanitize( psz_tmp ); filename_sanitize( psz_tmp );
free( psz_tmp );
if( !psz_tmp2 || if( asprintf( &psz_file, "%s"DIR_SEP"%s%s%s",
asprintf( &psz_file, "%s"DIR_SEP"%s%s%s", psz_path, psz_tmp,
psz_path, psz_tmp2,
psz_extension ? "." : "", psz_extension ? "." : "",
psz_extension ? psz_extension : "" ) < 0 ) psz_extension ? psz_extension : "" ) < 0 )
psz_file = NULL; psz_file = NULL;
free( psz_tmp2 ); free( psz_tmp );
return psz_file; return psz_file;
} }
else else
......
...@@ -71,8 +71,10 @@ static char* ArtCacheGetDirPath( const char *psz_title, const char *psz_artist, ...@@ -71,8 +71,10 @@ static char* ArtCacheGetDirPath( const char *psz_title, const char *psz_artist,
if( !EMPTY_STR(psz_artist) && !EMPTY_STR(psz_album) ) if( !EMPTY_STR(psz_artist) && !EMPTY_STR(psz_album) )
{ {
char *psz_album_sanitized = filename_sanitize( psz_album ); char *psz_album_sanitized = strdup( psz_album );
char *psz_artist_sanitized = filename_sanitize( psz_artist ); filename_sanitize( psz_album_sanitized );
char *psz_artist_sanitized = strdup( psz_artist );
filename_sanitize( psz_artist_sanitized );
if( asprintf( &psz_dir, "%s" DIR_SEP "art" DIR_SEP "artistalbum" if( asprintf( &psz_dir, "%s" DIR_SEP "art" DIR_SEP "artistalbum"
DIR_SEP "%s" DIR_SEP "%s", psz_cachedir, DIR_SEP "%s" DIR_SEP "%s", psz_cachedir,
psz_artist_sanitized, psz_album_sanitized ) == -1 ) psz_artist_sanitized, psz_album_sanitized ) == -1 )
...@@ -82,7 +84,8 @@ static char* ArtCacheGetDirPath( const char *psz_title, const char *psz_artist, ...@@ -82,7 +84,8 @@ static char* ArtCacheGetDirPath( const char *psz_title, const char *psz_artist,
} }
else else
{ {
char * psz_title_sanitized = filename_sanitize( psz_title ); char * psz_title_sanitized = strdup( psz_title );
filename_sanitize( psz_title_sanitized );
if( asprintf( &psz_dir, "%s" DIR_SEP "art" DIR_SEP "title" DIR_SEP if( asprintf( &psz_dir, "%s" DIR_SEP "art" DIR_SEP "title" DIR_SEP
"%s", psz_cachedir, psz_title_sanitized ) == -1 ) "%s", psz_cachedir, psz_title_sanitized ) == -1 )
psz_dir = NULL; psz_dir = NULL;
...@@ -131,7 +134,8 @@ static char *ArtCacheName( input_item_t *p_item, const char *psz_type ) ...@@ -131,7 +134,8 @@ static char *ArtCacheName( input_item_t *p_item, const char *psz_type )
ArtCacheCreateDir( psz_path ); ArtCacheCreateDir( psz_path );
char *psz_ext = filename_sanitize( psz_type ? psz_type : "" ); char *psz_ext = strdup( psz_type ? psz_type : "" );
filename_sanitize( psz_ext );
char *psz_filename; char *psz_filename;
if( asprintf( &psz_filename, "%s" DIR_SEP "art%s", psz_path, psz_ext ) < 0 ) if( asprintf( &psz_filename, "%s" DIR_SEP "art%s", psz_path, psz_ext ) < 0 )
psz_filename = NULL; psz_filename = NULL;
......
...@@ -962,10 +962,8 @@ char *str_format( vlc_object_t *p_this, const char *psz_src ) ...@@ -962,10 +962,8 @@ char *str_format( vlc_object_t *p_this, const char *psz_src )
/** /**
* Remove forbidden characters from filenames (including slashes) * Remove forbidden characters from filenames (including slashes)
*/ */
char* filename_sanitize( const char *str_origin ) void filename_sanitize( char *str )
{ {
char *str = strdup( str_origin );
char *str_base = str;
if( *str == '.' && (str[1] == '\0' || (str[1] == '.' && str[2] == '\0' ) ) ) if( *str == '.' && (str[1] == '\0' || (str[1] == '.' && str[2] == '\0' ) ) )
{ {
while( *str ) while( *str )
...@@ -973,7 +971,7 @@ char* filename_sanitize( const char *str_origin ) ...@@ -973,7 +971,7 @@ char* filename_sanitize( const char *str_origin )
*str = '_'; *str = '_';
str++; str++;
} }
return str_base; return;
} }
#if defined( WIN32 ) #if defined( WIN32 )
...@@ -1014,8 +1012,6 @@ char* filename_sanitize( const char *str_origin ) ...@@ -1014,8 +1012,6 @@ char* filename_sanitize( const char *str_origin )
*str-- = '_'; *str-- = '_';
} }
#endif #endif
return str_base;
} }
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment