From c32f5ca08da07066106fd4e462e660fb68c8971c Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= Date: Sat, 4 Nov 2006 15:29:25 +0000 Subject: [PATCH] Use utf8_open --- modules/access/file.c | 32 +------------------------------- modules/access_output/file.c | 19 ++++++++----------- 2 files changed, 9 insertions(+), 42 deletions(-) diff --git a/modules/access/file.c b/modules/access/file.c index 03953fc402..7369fc0f79 100644 --- a/modules/access/file.c +++ b/modules/access/file.c @@ -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, diff --git a/modules/access_output/file.c b/modules/access_output/file.c index 00b4a0f76d..8ef910c05c 100644 --- a/modules/access_output/file.c +++ b/modules/access_output/file.c @@ -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, -- 2.39.5