[vlc-devel] commit: Change filename_sanitize() to work on original string like path_sanitize(). (Antoine Cellerier )

git version control git at videolan.org
Wed Feb 10 20:39:48 CET 2010


vlc | branch: master | Antoine Cellerier <dionoea at videolan.org> | Wed Feb 10 20:38:38 2010 +0100| [7e6968aec4e94e43b078ed682ec6f7cc69102510] | committer: Antoine Cellerier 

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

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=7e6968aec4e94e43b078ed682ec6f7cc69102510
---

 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 66b43a2..4230425 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 ff7a006..9f99b60 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 83a401b..6ec15b1 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 4b8d792..36b3e23 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;
 }
 
 /**




More information about the vlc-devel mailing list