Commit 4dfdeb4a authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

Use utf8 directory wrappers

parent 9f30d0ac
...@@ -95,16 +95,18 @@ ThemeRepository::~ThemeRepository() ...@@ -95,16 +95,18 @@ ThemeRepository::~ThemeRepository()
} }
void ThemeRepository::parseDirectory( const string &rDir ) void ThemeRepository::parseDirectory( const string &rDir_locale )
{ {
DIR *pDir; DIR *pDir;
struct dirent *pDirContent; char *pszDirContent;
vlc_value_t val, text; vlc_value_t val, text;
// Path separator // Path separator
const string &sep = OSFactory::instance( getIntf() )->getDirSeparator(); const string &sep = OSFactory::instance( getIntf() )->getDirSeparator();
// Open the dir // Open the dir
pDir = opendir( rDir.c_str() ); // FIXME: parseDirectory should be invoked with UTF-8 input instead!!
string rDir = sFromLocale( rDir_locale );
pDir = utf8_opendir( rDir.c_str() );
if( pDir == NULL ) if( pDir == NULL )
{ {
...@@ -113,13 +115,10 @@ void ThemeRepository::parseDirectory( const string &rDir ) ...@@ -113,13 +115,10 @@ void ThemeRepository::parseDirectory( const string &rDir )
return; return;
} }
// Get the first directory entry
pDirContent = (dirent*)readdir( pDir );
// While we still have entries in the directory // While we still have entries in the directory
while( pDirContent != NULL ) while( ( pszDirContent = utf8_readdir( pDir ) ) != NULL )
{ {
string name = pDirContent->d_name; string name = pszDirContent;
string extension; string extension;
if( name.size() > 4 ) if( name.size() > 4 )
{ {
...@@ -142,7 +141,7 @@ void ThemeRepository::parseDirectory( const string &rDir ) ...@@ -142,7 +141,7 @@ void ThemeRepository::parseDirectory( const string &rDir )
delete[] text.psz_string; delete[] text.psz_string;
} }
pDirContent = (dirent*)readdir( pDir ); free( pszDirContent );
} }
closedir( pDir ); closedir( pDir );
......
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