diff --git a/src/d_iwad.c b/src/d_iwad.c index 8ae0faac..cda32b91 100644 --- a/src/d_iwad.c +++ b/src/d_iwad.c @@ -385,8 +385,7 @@ static void CheckSteamGUSPatches(void) { const char *current_path; char *install_path; - char *patch_path; - int len; + char *test_patch_path, patch_path; // Already configured? Don't stomp on the user's choices. current_path = M_GetStringVariable("gus_patch_path"); @@ -402,19 +401,17 @@ static void CheckSteamGUSPatches(void) return; } - len = strlen(install_path) + strlen(STEAM_BFG_GUS_PATCHES) + 20; - patch_path = malloc(len); - M_snprintf(patch_path, len, "%s\\%s\\ACBASS.PAT", - install_path, STEAM_BFG_GUS_PATCHES); + patch_path = M_StringJoin(install_path, "\\", STEAM_BFG_GUS_PATCHES, + NULL); + test_patch_path = M_StringJoin(patch_path, "\\ACBASS.PAT", NULL); // Does acbass.pat exist? If so, then set gus_patch_path. - if (M_FileExists(patch_path)) + if (M_FileExists(test_patch_path)) { - M_snprintf(patch_path, len, "%s\\%s", - install_path, STEAM_BFG_GUS_PATCHES); M_SetVariable("gus_patch_path", patch_path); } + free(test_patch_path); free(patch_path); free(install_path); }