From 7e6968aec4e94e43b078ed682ec6f7cc69102510 Mon Sep 17 00:00:00 2001 From: Antoine Cellerier Date: Wed, 10 Feb 2010 20:38:38 +0100 Subject: [PATCH] Change filename_sanitize() to work on original string like path_sanitize(). --- include/vlc_strings.h | 2 +- src/input/input.c | 10 ++++------ src/playlist/art.c | 12 ++++++++---- src/text/strings.c | 8 ++------ 4 files changed, 15 insertions(+), 17 deletions(-) diff --git a/include/vlc_strings.h b/include/vlc_strings.h index 66b43a21c0..42304257dd 100644 --- a/include/vlc_strings.h +++ b/include/vlc_strings.h @@ -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 * ) ); #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 * ) ); /** diff --git a/src/input/input.c b/src/input/input.c index ff7a006fc5..9f99b60cc5 100644 --- a/src/input/input.c +++ b/src/input/input.c @@ -3339,16 +3339,14 @@ char *input_CreateFilename( vlc_object_t *p_obj, const char *psz_path, const cha if( !psz_tmp ) return NULL; - char *psz_tmp2 = filename_sanitize( psz_tmp ); - free( psz_tmp ); + filename_sanitize( psz_tmp ); - if( !psz_tmp2 || - asprintf( &psz_file, "%s"DIR_SEP"%s%s%s", - psz_path, psz_tmp2, + if( asprintf( &psz_file, "%s"DIR_SEP"%s%s%s", + psz_path, psz_tmp, psz_extension ? "." : "", psz_extension ? psz_extension : "" ) < 0 ) psz_file = NULL; - free( psz_tmp2 ); + free( psz_tmp ); return psz_file; } else diff --git a/src/playlist/art.c b/src/playlist/art.c index 83a401b784..6ec15b11d4 100644 --- a/src/playlist/art.c +++ b/src/playlist/art.c @@ -71,8 +71,10 @@ static char* ArtCacheGetDirPath( const char *psz_title, const char *psz_artist, if( !EMPTY_STR(psz_artist) && !EMPTY_STR(psz_album) ) { - char *psz_album_sanitized = filename_sanitize( psz_album ); - char *psz_artist_sanitized = filename_sanitize( psz_artist ); + char *psz_album_sanitized = strdup( psz_album ); + 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" DIR_SEP "%s" DIR_SEP "%s", psz_cachedir, psz_artist_sanitized, psz_album_sanitized ) == -1 ) @@ -82,7 +84,8 @@ static char* ArtCacheGetDirPath( const char *psz_title, const char *psz_artist, } 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 "%s", psz_cachedir, psz_title_sanitized ) == -1 ) psz_dir = NULL; @@ -131,7 +134,8 @@ static char *ArtCacheName( input_item_t *p_item, const char *psz_type ) 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; if( asprintf( &psz_filename, "%s" DIR_SEP "art%s", psz_path, psz_ext ) < 0 ) psz_filename = NULL; diff --git a/src/text/strings.c b/src/text/strings.c index 4b8d7925e5..36b3e23357 100644 --- a/src/text/strings.c +++ b/src/text/strings.c @@ -962,10 +962,8 @@ char *str_format( vlc_object_t *p_this, const char *psz_src ) /** * 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' ) ) ) { while( *str ) @@ -973,7 +971,7 @@ char* filename_sanitize( const char *str_origin ) *str = '_'; str++; } - return str_base; + return; } #if defined( WIN32 ) @@ -1014,8 +1012,6 @@ char* filename_sanitize( const char *str_origin ) *str-- = '_'; } #endif - - return str_base; } /** -- 2.39.2