@ -29,6 +29,7 @@
# if defined(_WIN32) && !defined(__MINGW32CE__)
# if defined(_WIN32) && !defined(__MINGW32CE__)
# include <windows.h>
# include <windows.h>
# include <share.h>
# undef open
# undef open
int ff_win32_open ( const char * filename_utf8 , int oflag , int pmode )
int ff_win32_open ( const char * filename_utf8 , int oflag , int pmode )
@ -44,12 +45,12 @@ int ff_win32_open(const char *filename_utf8, int oflag, int pmode)
filename_w = av_mallocz ( sizeof ( wchar_t ) * num_chars ) ;
filename_w = av_mallocz ( sizeof ( wchar_t ) * num_chars ) ;
MultiByteToWideChar ( CP_UTF8 , 0 , filename_utf8 , - 1 , filename_w , num_chars ) ;
MultiByteToWideChar ( CP_UTF8 , 0 , filename_utf8 , - 1 , filename_w , num_chars ) ;
fd = _wopen ( filename_w , oflag , pmode ) ;
fd = _ws open ( filename_w , oflag , SH_DENYNO , pmode ) ;
av_freep ( & filename_w ) ;
av_freep ( & filename_w ) ;
/* filename maybe be in CP_ACP */
/* filename maybe be in CP_ACP */
if ( fd = = - 1 & & ! ( oflag & O_CREAT ) )
if ( fd = = - 1 & & ! ( oflag & O_CREAT ) )
return open ( filename_utf8 , oflag , pmode ) ;
return _s open( filename_utf8 , oflag , SH_DENYNO , pmode ) ;
return fd ;
return fd ;
}
}