summaryrefslogtreecommitdiff
path: root/win32.c
diff options
context:
space:
mode:
Diffstat (limited to 'win32.c')
-rw-r--r--win32.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/win32.c b/win32.c
index 8f1e124d3..7003e7aef 100644
--- a/win32.c
+++ b/win32.c
@@ -1848,10 +1848,19 @@ StringID FiosGetDescText(const char **path)
void FiosMakeSavegameName(char *buf, const char *name)
{
+ const char* extension;
+ const char* period;
+
if (_game_mode == GM_EDITOR)
- sprintf(buf, "%s\\%s.scn", _fios_path, name);
+ extension = ".scn";
else
- sprintf(buf, "%s\\%s.sav", _fios_path, name);
+ extension = ".sav";
+
+ // Don't append the extension, if it is already there
+ period = strrchr(name, '.');
+ if (period != NULL && strcasecmp(period, extension) == 0) extension = "";
+
+ sprintf(buf, "%s\\%s%s", _fios_path, name, extension);
}
void FiosDelete(const char *name)