vlc | branch: master | Steve Lhomme <rob...@ycbcr.xyz> | Fri Apr 3 13:26:27 2020 +0200| [079eb01b962620baaa8df78efe4a01ec086f9219] | committer: Steve Lhomme
contrib: flac: update the winstore fixes for 1.3.3 > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=079eb01b962620baaa8df78efe4a01ec086f9219 --- contrib/src/flac/console_write.patch | 37 ++++++++++++++----- contrib/src/flac/no-createfilea.patch | 69 ++++++++++------------------------- 2 files changed, 48 insertions(+), 58 deletions(-) diff --git a/contrib/src/flac/console_write.patch b/contrib/src/flac/console_write.patch index 8015fd4970..0a95534f10 100644 --- a/contrib/src/flac/console_write.patch +++ b/contrib/src/flac/console_write.patch @@ -1,5 +1,22 @@ ---- flac.orig/src/share/win_utf8_io/win_utf8_io.c 2017-01-02 18:07:08.794676209 -0500 -+++ flac/src/share/win_utf8_io/win_utf8_io.c 2017-01-02 18:10:16.633867994 -0500 +From 9d6fbddfd031852f7c6d1a10aff9fa5ef690858b Mon Sep 17 00:00:00 2001 +From: Steve Lhomme <rob...@ycbcr.xyz> +Date: Fri, 3 Apr 2020 13:33:26 +0200 +Subject: [PATCH 1/2] Don't call Console APIs on Winstore builds + +The API's are only available on desktop builds. +https://docs.microsoft.com/en-us/windows/console/getstdhandle +https://docs.microsoft.com/en-us/windows/console/getconsolescreenbufferinfo +https://docs.microsoft.com/en-us/windows/console/writeconsole + +Instead send logs to the debug output +--- + src/share/win_utf8_io/win_utf8_io.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/src/share/win_utf8_io/win_utf8_io.c b/src/share/win_utf8_io/win_utf8_io.c +index bbb6a74a..1e0c1e86 100644 +--- a/src/share/win_utf8_io/win_utf8_io.c ++++ b/src/share/win_utf8_io/win_utf8_io.c @@ -34,6 +34,7 @@ #endif @@ -8,7 +25,7 @@ #include "share/win_utf8_io.h" #include "share/windows_unicode_filenames.h" -@@ -164,11 +165,13 @@ +@@ -182,11 +183,13 @@ size_t strlen_utf8(const char *str) int win_get_console_width(void) { int width = 80; @@ -22,23 +39,25 @@ return width; } -@@ -176,6 +179,11 @@ +@@ -194,6 +197,10 @@ int win_get_console_width(void) static int wprint_console(FILE *stream, const wchar_t *text, size_t len) { -+#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) ++#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) + (void)stream; + OutputDebugStringW(text); -+ return len; +#else DWORD out; int ret; -@@ -202,6 +210,7 @@ +@@ -219,6 +226,7 @@ static int wprint_console(FILE *stream, const wchar_t *text, size_t len) + ret = fputws(text, stream); if (ret < 0) return ret; - return len; +#endif + return len; } - int printf_utf8(const char *format, ...) +-- +2.26.0.windows.1 + diff --git a/contrib/src/flac/no-createfilea.patch b/contrib/src/flac/no-createfilea.patch index b66f96d8e8..2831b0a79b 100644 --- a/contrib/src/flac/no-createfilea.patch +++ b/contrib/src/flac/no-createfilea.patch @@ -1,59 +1,30 @@ ---- flac-orig/src/share/win_utf8_io/win_utf8_io.c 2019-08-26 11:13:17.600801754 -0400 -+++ flac/src/share/win_utf8_io/win_utf8_io.c 2019-08-26 11:20:27.895132487 -0400 -@@ -34,8 +34,10 @@ - #endif - - #include <windows.h> -+#include <winapifamily.h> - #include "share/win_utf8_io.h" - #include "share/windows_unicode_filenames.h" -+#include <winapifamily.h> - - #define UTF8_BUFFER_SIZE 32768 - -@@ -153,7 +155,11 @@ +From 11390430fbad4a0d5a70671f922bd374defc715b Mon Sep 17 00:00:00 2001 +From: Steve Lhomme <rob...@ycbcr.xyz> +Date: Fri, 3 Apr 2020 13:25:14 +0200 +Subject: [PATCH 2/2] Don't call CreateFileA on Winstore builds + +The API is only available on desktop builds. +https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilea +--- + src/share/win_utf8_io/win_utf8_io.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/share/win_utf8_io/win_utf8_io.c b/src/share/win_utf8_io/win_utf8_io.c +index 1e0c1e86..e634efd9 100644 +--- a/src/share/win_utf8_io/win_utf8_io.c ++++ b/src/share/win_utf8_io/win_utf8_io.c +@@ -154,7 +154,11 @@ int get_utf8_argv(int *argc, char ***argv) HANDLE WINAPI CreateFile_utf8(const char *lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile) { if (!flac_internal_get_utf8_filenames()) { +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) return CreateFileA(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile); +#else -+ return INVALID_HANDLE_VALUE; ++ return INVALID_HANDLE_VALUE; +#endif } else { wchar_t *wname; HANDLE handle = INVALID_HANDLE_VALUE; -@@ -182,11 +188,13 @@ - int win_get_console_width(void) - { - int width = 80; -+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - CONSOLE_SCREEN_BUFFER_INFO csbi; - HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); - if(hOut != INVALID_HANDLE_VALUE && hOut != NULL) - if (GetConsoleScreenBufferInfo(hOut, &csbi) != 0) - width = csbi.dwSize.X; -+#endif - return width; - } - -@@ -194,6 +202,11 @@ - - static int wprint_console(FILE *stream, const wchar_t *text, size_t len) - { -+#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -+ (void)stream; -+ OutputDebugStringW(text); -+ return len; -+#else - DWORD out; - int ret; - -@@ -220,6 +233,7 @@ - if (ret < 0) - return ret; - return len; -+#endif - } - - int printf_utf8(const char *format, ...) +-- +2.26.0.windows.1 + _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits