From 1225d80d11124aaa0be7f437772c1b3b9db5efc1 Mon Sep 17 00:00:00 2001 From: past-due <30942300+past-due@users.noreply.github.com> Date: Wed, 28 Nov 2018 18:33:10 -0500 Subject: [PATCH] [physfs] Fix Win10 GetUserProfileDirectory() problem Fixes GetUserProfileDirectory issue on Win10 build 1809(+?) See: https://hg.icculus.org/icculus/physfs/rev/ece6769c0676 --- ports/physfs/CONTROL | 2 +- ...physfs.3.0.1.GetUserProfileDirectory.patch | 25 +++++++++++++++++++ ports/physfs/portfile.cmake | 8 +++++- 3 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 ports/physfs/physfs.3.0.1.GetUserProfileDirectory.patch diff --git a/ports/physfs/CONTROL b/ports/physfs/CONTROL index a937d38bf9..5d5d697556 100644 --- a/ports/physfs/CONTROL +++ b/ports/physfs/CONTROL @@ -1,4 +1,4 @@ Source: physfs -Version: 3.0.1 +Version: 3.0.1-1 Description: a library to provide abstract access to various archives Build-Depends: zlib diff --git a/ports/physfs/physfs.3.0.1.GetUserProfileDirectory.patch b/ports/physfs/physfs.3.0.1.GetUserProfileDirectory.patch new file mode 100644 index 0000000000..4338e52e5b --- /dev/null +++ b/ports/physfs/physfs.3.0.1.GetUserProfileDirectory.patch @@ -0,0 +1,25 @@ + +diff -r a29fef4a20fd -r ece6769c0676 src/physfs_platform_windows.c +--- a/src/physfs_platform_windows.c Wed May 16 19:54:51 2018 -0400 ++++ b/src/physfs_platform_windows.c Wed Oct 03 22:40:57 2018 -0400 +@@ -566,7 +566,6 @@ + else + { + DWORD psize = 0; +- WCHAR dummy = 0; + LPWSTR wstr = NULL; + BOOL rc = 0; + +@@ -575,7 +574,7 @@ + * psize. Also note that the second parameter can't be + * NULL or the function fails. + */ +- rc = pGetDir(accessToken, &dummy, &psize); ++ rc = pGetDir(accessToken, NULL, &psize); + GOTO_IF(rc, PHYSFS_ERR_OS_ERROR, done); /* should have failed! */ + + /* Allocate memory for the profile directory */ + + + + diff --git a/ports/physfs/portfile.cmake b/ports/physfs/portfile.cmake index 08b49e69ff..feee3b456b 100644 --- a/ports/physfs/portfile.cmake +++ b/ports/physfs/portfile.cmake @@ -6,7 +6,13 @@ vcpkg_download_distfile(ARCHIVE FILENAME "physfs-${PHYSFS_VERSION}.tar.bz2" SHA512 ddf3b075ccb506da5e9a1ce96001be402752b9b777c2e816a85d48aff3626ff0886ea43eb07bd300fe3a9f59b9a002f54d822c51d483a4ee94b38378534c1879 ) -vcpkg_extract_source_archive(${ARCHIVE}) +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + REF ${PHYSFS_VERSION} + PATCHES + physfs.3.0.1.GetUserProfileDirectory.patch # Fixes GetUserProfileDirectory issue on Win10 build 1809(+?); See: https://hg.icculus.org/icculus/physfs/rev/ece6769c0676 +) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" PHYSFS_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" PHYSFS_SHARED)