]> git.sesse.net Git - vlc/commitdiff
* modules/access/directory.c: Call vlc_fix_readdir_charset() whenever
authorChristophe Massiot <massiot@videolan.org>
Thu, 4 Aug 2005 19:11:07 +0000 (19:11 +0000)
committerChristophe Massiot <massiot@videolan.org>
Thu, 4 Aug 2005 19:11:07 +0000 (19:11 +0000)
   needed. This fixes the directory access module under Mac OS X.

modules/access/directory.c

index 7ff6b123acde8f9fc0c054aceb1e4353636dca4d..827ba6f39e81a1d5cd6e81bf4fc1edf1f215a974 100644 (file)
@@ -56,6 +56,8 @@
 #   include <dirent.h>
 #endif
 
+#include "charset.h"
+
 /*****************************************************************************
  * Module descriptor
  *****************************************************************************/
@@ -417,7 +419,7 @@ static int Filter( const struct dirent *foo )
  * ReadDir: read a directory and add its content to the list
  *****************************************************************************/
 static int ReadDir( playlist_t *p_playlist,
-                    char *psz_name , int i_mode, int *pi_position,
+                    char *psz_name, int i_mode, int *pi_position,
                     playlist_item_t *p_parent )
 {
     struct dirent   **pp_dir_content;
@@ -504,11 +506,15 @@ static int ReadDir( playlist_t *p_playlist,
                         char *psz_subdir = psz_uri;
                         /* Skip the parent path + the separator */
                         psz_subdir += strlen( psz_name ) + 1;
-                        psz_newname = strdup( psz_subdir );
+                        psz_newname = vlc_fix_readdir_charset(
+                                                VLC_OBJECT(p_playlist),
+                                                psz_subdir );
                     }
                     else
                     {
-                        psz_newname = strdup( psz_uri );
+                        psz_newname = vlc_fix_readdir_charset(
+                                                VLC_OBJECT(p_playlist),
+                                                psz_name );
                     }
                     p_node = playlist_NodeCreate( p_playlist,
                                        p_parent->pp_parents[0]->i_view,
@@ -530,6 +536,7 @@ static int ReadDir( playlist_t *p_playlist,
             else
             {
                 playlist_item_t *p_item;
+                char *psz_tmp1, *psz_tmp2;
 
 #ifdef HAVE_STRSEP
                 if( i_extensions > 0 )
@@ -553,8 +560,13 @@ static int ReadDir( playlist_t *p_playlist,
                 }
 #endif /* HAVE_STRSEP */
 
+                psz_tmp1 = vlc_fix_readdir_charset( VLC_OBJECT(p_playlist),
+                                                    psz_uri );
+                psz_tmp2 = vlc_fix_readdir_charset( VLC_OBJECT(p_playlist),
+                                                    p_dir_content->d_name );
+
                 p_item = playlist_ItemNewWithType( VLC_OBJECT(p_playlist),
-                        psz_uri, p_dir_content->d_name, ITEM_TYPE_VFILE );
+                        psz_tmp1, psz_tmp2, ITEM_TYPE_VFILE );
                 playlist_NodeAddItem( p_playlist,p_item,
                                       p_parent->pp_parents[0]->i_view,
                                       p_parent,