Skip to content

Commit

Permalink
windows: Workaround for WinXP systems.
Browse files Browse the repository at this point in the history
  • Loading branch information
icculus committed Mar 18, 2019
1 parent fa34bb4 commit 81bb11d
Showing 1 changed file with 10 additions and 1 deletion.
11 changes: 10 additions & 1 deletion src/physfs_platform_windows.c
Expand Up @@ -572,11 +572,20 @@ char *__PHYSFS_platformCalcUserDir(void)
/*
* Should fail. Will write the size of the profile path in
* psize. Also note that the second parameter can't be
* NULL or the function fails.
* NULL or the function fails on Windows XP, but has to be NULL on
* Windows 10 or it will fail. :(
*/
rc = pGetDir(accessToken, NULL, &psize);
GOTO_IF(rc, PHYSFS_ERR_OS_ERROR, done); /* should have failed! */

if (psize == 0) /* probably on Windows XP, try a different way. */
{
char x = 0;
rc = pGetDir(accessToken, &x, &psize);
GOTO_IF(rc, PHYSFS_ERR_OS_ERROR, done); /* should have failed! */
GOTO_IF(!psize, PHYSFS_ERR_OS_ERROR, done); /* Uhoh... */
} /* if */

/* Allocate memory for the profile directory */
wstr = (LPWSTR) __PHYSFS_smallAlloc((psize + 1) * sizeof (WCHAR));
if (wstr != NULL)
Expand Down

0 comments on commit 81bb11d

Please sign in to comment.