]> git.sesse.net Git - vlc/commitdiff
Use utf8_open
authorRémi Denis-Courmont <rem@videolan.org>
Sat, 4 Nov 2006 15:29:25 +0000 (15:29 +0000)
committerRémi Denis-Courmont <rem@videolan.org>
Sat, 4 Nov 2006 15:29:25 +0000 (15:29 +0000)
modules/access/file.c
modules/access_output/file.c

index 03953fc402f082fa697358dc08237a51f93de3e3..7369fc0f79acdfd0d3fafcb0d4ce88f9f169d30c 100644 (file)
@@ -445,37 +445,7 @@ static int open_file (access_t *p_access, const char *psz_name)
     p_access->info.i_update |= INPUT_UPDATE_SIZE;
     fseek( p_sys->fd, 0, SEEK_SET );
 #else
-    int fd = -1;
-
-# if defined (WIN32)
-    if (GetVersion() < 0x80000000)
-    {
-        /* for Windows NT and above */
-        wchar_t wpath[MAX_PATH + 1];
-        if (!MultiByteToWideChar (CP_UTF8, 0, path, -1, wpath, MAX_PATH))
-        {
-            msg_Err (p_access, "incorrect file name %s", psz_name);
-            return VLC_EGENERIC;
-        }
-        wpath[MAX_PATH] = L'\0'; 
-        fd = _wopen( wpath, O_NONBLOCK );
-    }
-    else
-# endif
-    {
-        const char *psz_localname = ToLocale (path);
-        if (psz_localname == NULL)
-        {
-            msg_Err (p_access, "incorrect file name %s", psz_name);
-            free (path);
-            return -1;
-        }
-
-        fd = open (path, O_NONBLOCK /*| O_LARGEFILE*/);
-        LocaleFree (psz_localname);
-    }
-    free (path);
-
+    int fd = utf8_open (path, O_RDONLY | O_NONBLOCK /* O_LARGEFILE*/, 0666);
     if (fd == -1)
     {
         msg_Err (p_access, "cannot open file %s (%s)", psz_name,
index 00b4a0f76d9cca73302eb66c21b7ae16eccd0cb8..8ef910c05c84d64a13a9dd48966b56178d1cf986 100644 (file)
@@ -129,10 +129,10 @@ static int Open( vlc_object_t *p_this )
     }
     else
     {
-        char *psz_localname = ToLocale( p_access->psz_name );
-        char *psz_tmp, *psz_tmp2, *psz_rewriten;
-        int fd, i, i_length = strlen( psz_localname );
-        for( i = 0, psz_tmp = psz_localname ;
+        const char *psz_tmp;
+       char *psz_tmp2, *psz_rewriten;
+        int fd, i, i_length = strlen( p_access->psz_name );
+        for( i = 0, psz_tmp = p_access->psz_name ;
              ( psz_tmp = strstr( psz_tmp, "%T" ) ) ; psz_tmp++, i++ )
             ;
         if( i )
@@ -141,7 +141,7 @@ static int Open( vlc_object_t *p_this )
             psz_rewriten = (char *) malloc( i_length );
             if( ! psz_rewriten )
                 return ( VLC_EGENERIC );
-            psz_tmp  = psz_localname;
+            psz_tmp  = p_access->psz_name;
             psz_tmp2 = psz_rewriten;
             while( *psz_tmp )
             {
@@ -156,15 +156,12 @@ static int Open( vlc_object_t *p_this )
                     *psz_tmp2++ = *psz_tmp++;
             }
             *psz_tmp2 = *psz_tmp;
-            fd = open( psz_rewriten, i_flags, 0666 );
-            LocaleFree( psz_localname );
+            fd = utf8_open( psz_rewriten, i_flags, 0666 );
             free( psz_rewriten );
         }
         else
-        {
-            fd = open( psz_localname, i_flags, 0666 );
-            LocaleFree( psz_localname );
-        }
+            fd = utf8_open( p_access->psz_name, i_flags, 0666 );
+
         if( fd == -1 )
         {
             msg_Err( p_access, "cannot open `%s' (%s)", p_access->psz_name,