[vlc-devel] [PATCH] contrib: flac: update the winstore fixes for 1.3.3

Steve Lhomme robux4 at ycbcr.xyz
Thu Apr 30 12:32:20 CEST 2020


---
 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 8015fd49701..0a95534f10d 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 <robux4 at 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 b66f96d8e84..2831b0a79b0 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 <robux4 at 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
+
-- 
2.17.1



More information about the vlc-devel mailing list