You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-15 14:13:16 +02:00
Merge commit '8ebf02f8f530240edf7e45f35f7647ef9dd44a58'
* commit '8ebf02f8f530240edf7e45f35f7647ef9dd44a58': libavformat: Only use MoveFileExA when targeting the desktop API subset Conflicts: configure Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
2
configure
vendored
2
configure
vendored
@@ -1741,7 +1741,6 @@ SYSTEM_FUNCS="
|
|||||||
lzo1x_999_compress
|
lzo1x_999_compress
|
||||||
mach_absolute_time
|
mach_absolute_time
|
||||||
MapViewOfFile
|
MapViewOfFile
|
||||||
MoveFileExA
|
|
||||||
memalign
|
memalign
|
||||||
mkstemp
|
mkstemp
|
||||||
mmap
|
mmap
|
||||||
@@ -4759,7 +4758,6 @@ check_func_headers windows.h GetProcessAffinityMask
|
|||||||
check_func_headers windows.h GetProcessTimes
|
check_func_headers windows.h GetProcessTimes
|
||||||
check_func_headers windows.h GetSystemTimeAsFileTime
|
check_func_headers windows.h GetSystemTimeAsFileTime
|
||||||
check_func_headers windows.h MapViewOfFile
|
check_func_headers windows.h MapViewOfFile
|
||||||
check_func_headers windows.h MoveFileExA
|
|
||||||
check_func_headers windows.h PeekNamedPipe
|
check_func_headers windows.h PeekNamedPipe
|
||||||
check_func_headers windows.h SetConsoleTextAttribute
|
check_func_headers windows.h SetConsoleTextAttribute
|
||||||
check_func_headers windows.h Sleep
|
check_func_headers windows.h Sleep
|
||||||
|
@@ -146,6 +146,18 @@ int ff_poll(struct pollfd *fds, nfds_t numfds, int timeout);
|
|||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include "libavutil/wchar_filename.h"
|
#include "libavutil/wchar_filename.h"
|
||||||
|
|
||||||
|
#ifdef WINAPI_FAMILY
|
||||||
|
#include <winapifamily.h>
|
||||||
|
// If a WINAPI_FAMILY is defined, check that the desktop API subset
|
||||||
|
// is enabled
|
||||||
|
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
|
||||||
|
#define USE_MOVEFILEEXA
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
// If no WINAPI_FAMILY is defined, assume the full API subset
|
||||||
|
#define USE_MOVEFILEEXA
|
||||||
|
#endif
|
||||||
|
|
||||||
#define DEF_FS_FUNCTION(name, wfunc, afunc) \
|
#define DEF_FS_FUNCTION(name, wfunc, afunc) \
|
||||||
static inline int win32_##name(const char *filename_utf8) \
|
static inline int win32_##name(const char *filename_utf8) \
|
||||||
{ \
|
{ \
|
||||||
@@ -197,13 +209,14 @@ static inline int win32_rename(const char *src_utf8, const char *dest_utf8)
|
|||||||
|
|
||||||
fallback:
|
fallback:
|
||||||
/* filename may be be in CP_ACP */
|
/* filename may be be in CP_ACP */
|
||||||
#if HAVE_MOVEFILEEXA
|
#ifdef USE_MOVEFILEEXA
|
||||||
ret = MoveFileExA(src_utf8, dest_utf8, MOVEFILE_REPLACE_EXISTING);
|
ret = MoveFileExA(src_utf8, dest_utf8, MOVEFILE_REPLACE_EXISTING);
|
||||||
if (ret)
|
if (ret)
|
||||||
errno = EPERM;
|
errno = EPERM;
|
||||||
#else
|
#else
|
||||||
/* Windows Phone doesn't have MoveFileExA. However, it's unlikely
|
/* Windows Phone doesn't have MoveFileExA, and for Windows Store apps,
|
||||||
* that anybody would input filenames in CP_ACP there, so this
|
* it is available but not allowed by the app certification kit. However,
|
||||||
|
* it's unlikely that anybody would input filenames in CP_ACP there, so this
|
||||||
* fallback is kept mostly for completeness. Alternatively we could
|
* fallback is kept mostly for completeness. Alternatively we could
|
||||||
* do MultiByteToWideChar(CP_ACP) and use MoveFileExW, but doing
|
* do MultiByteToWideChar(CP_ACP) and use MoveFileExW, but doing
|
||||||
* explicit conversions with CP_ACP is allegedly forbidden in windows
|
* explicit conversions with CP_ACP is allegedly forbidden in windows
|
||||||
|
Reference in New Issue
Block a user