diff options
author | tron <tron@openttd.org> | 2005-03-15 14:06:28 +0000 |
---|---|---|
committer | tron <tron@openttd.org> | 2005-03-15 14:06:28 +0000 |
commit | 3763ec7652c8421ad18cb59ec88a0bd448e2ab23 (patch) | |
tree | fb7abed850d590f522d3f6dcc8eeb2592af6893e | |
parent | cc99c3e262180a25209e120ac38dc5fefc4201d4 (diff) | |
download | openttd-3763ec7652c8421ad18cb59ec88a0bd448e2ab23.tar.xz |
(svn r2012) When making a savegame name, don't append the extension, if it is already there
-rw-r--r-- | os2.c | 13 | ||||
-rw-r--r-- | unix.c | 13 | ||||
-rw-r--r-- | win32.c | 13 |
3 files changed, 33 insertions, 6 deletions
@@ -392,10 +392,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) @@ -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) @@ -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) |