aboutsummaryrefslogtreecommitdiff
path: root/vcpkg-ports/libflac/uwp-library-console.patch
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg-ports/libflac/uwp-library-console.patch')
-rw-r--r--vcpkg-ports/libflac/uwp-library-console.patch54
1 files changed, 54 insertions, 0 deletions
diff --git a/vcpkg-ports/libflac/uwp-library-console.patch b/vcpkg-ports/libflac/uwp-library-console.patch
new file mode 100644
index 00000000..0bf2f576
--- /dev/null
+++ b/vcpkg-ports/libflac/uwp-library-console.patch
@@ -0,0 +1,54 @@
+diff --git a/src/share/win_utf8_io/win_utf8_io.c b/src/share/win_utf8_io/win_utf8_io.c
+index 65b5699..af6d0f4 100644
+--- a/src/share/win_utf8_io/win_utf8_io.c
++++ b/src/share/win_utf8_io/win_utf8_io.c
+@@ -115,7 +115,11 @@ int get_utf8_argv(int *argc, char ***argv)
+ char **utf8argv;
+ int ret, i;
+
++#if defined (WINAPI_FAMILY_PARTITION) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
++ if ((handle = LoadPackagedLibrary("msvcrt.dll", 0)) == NULL) return 1;
++#else
+ if ((handle = LoadLibraryW(L"msvcrt.dll")) == NULL) return 1;
++#endif
+ if ((wgetmainargs = (wgetmainargs_t)GetProcAddress(handle, "__wgetmainargs")) == NULL) {
+ FreeLibrary(handle);
+ return 1;
+@@ -192,6 +196,9 @@ size_t strlen_utf8(const char *str)
+ /* get the console width in characters */
+ int win_get_console_width(void)
+ {
++#if defined (WINAPI_FAMILY_PARTITION) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
++ return 80;
++#else
+ int width = 80;
+ #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+ CONSOLE_SCREEN_BUFFER_INFO csbi;
+@@ -201,6 +208,7 @@ int win_get_console_width(void)
+ width = csbi.dwSize.X;
+ #endif // WINAPI_PARTITION_DESKTOP
+ return width;
++#endif
+ }
+
+ /* print functions */
+@@ -211,6 +219,11 @@ static int wprint_console(FILE *stream, const wchar_t *text, size_t len)
+ DWORD out;
+ int ret;
+
++#if defined (WINAPI_FAMILY_PARTITION) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
++ // disabled for UWP as there's no alternative:
++ // https://docs.microsoft.com/en-us/uwp/win32-and-com/alternatives-to-windows-apis-uwp
++#else
++
+ do {
+ if (stream == stdout) {
+ HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
+@@ -229,6 +242,7 @@ static int wprint_console(FILE *stream, const wchar_t *text, size_t len)
+ return out;
+ }
+ } while(0);
++#endif
+
+ ret = fputws(text, stream);
+ if (ret < 0)