diff options
Diffstat (limited to 'src/setup')
-rw-r--r-- | src/setup/multiplayer.c | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/src/setup/multiplayer.c b/src/setup/multiplayer.c index 8c8fe0c5..8e123b03 100644 --- a/src/setup/multiplayer.c +++ b/src/setup/multiplayer.c @@ -1059,28 +1059,29 @@ void SetPlayerNameDefault(void) { if (net_player_name == NULL) { - net_player_name = M_StringDuplicate(getenv("USER")); + net_player_name = getenv("USER"); } if (net_player_name == NULL) { - net_player_name = M_StringDuplicate(getenv("USERNAME")); + net_player_name = getenv("USERNAME"); } - // On Windows, environment variables are in OEM codepage - // encoding, so convert to UTF8: - -#ifdef _WIN32 - if (net_player_name != NULL) - { - net_player_name = M_OEMToUTF8(net_player_name); - } -#endif - if (net_player_name == NULL) { - net_player_name = M_StringDuplicate("player"); + net_player_name = "player"; } + + // Now strdup() the string so that it's in a mutable form + // that can be freed when the value changes. + +#ifdef _WIN32 + // On Windows, environment variables are in OEM codepage + // encoding, so convert to UTF8: + net_player_name = M_OEMToUTF8(net_player_name); +#else + net_player_name = M_StringDuplicate(net_player_name); +#endif } void MultiplayerConfig(void) |