summaryrefslogtreecommitdiff
path: root/unix.c
diff options
context:
space:
mode:
Diffstat (limited to 'unix.c')
-rw-r--r--unix.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/unix.c b/unix.c
index 529c57d9e..d24255b8b 100644
--- a/unix.c
+++ b/unix.c
@@ -324,10 +324,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)