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 * ) );
/**
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
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 )
}
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;
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;
/**
* 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 )
*str = '_';
str++;
}
- return str_base;
+ return;
}
#if defined( WIN32 )
*str-- = '_';
}
#endif
-
- return str_base;
}
/**