(svn r4001) - Add length parameter to FiosMakeSavegameName() and use this function for creating the full path instead of home-brewn snprintf.
authorDarkvater
Tue, 21 Mar 2006 22:08:15 +0000
changeset 3287 720ed37be8c6
parent 3286 3250f1488eb2
child 3288 91b3ed6a0885
(svn r4001) - Add length parameter to FiosMakeSavegameName() and use this function for creating the full path instead of home-brewn snprintf.
hal.h
misc_gui.c
os2.c
unix.c
win32.c
--- a/hal.h	Tue Mar 21 22:06:32 2006 +0000
+++ b/hal.h	Tue Mar 21 22:08:15 2006 +0000
@@ -88,7 +88,7 @@
 // Delete a name
 bool FiosDelete(const char *name);
 // Make a filename from a name
-void FiosMakeSavegameName(char *buf, const char *name);
+void FiosMakeSavegameName(char *buf, const char *name, size_t size);
 
 int CDECL compare_FiosItems(const void *a, const void *b);
 
--- a/misc_gui.c	Tue Mar 21 22:06:32 2006 +0000
+++ b/misc_gui.c	Tue Mar 21 22:08:15 2006 +0000
@@ -1325,7 +1325,7 @@
 					DeleteWindow(w);
 				} else {
 					// SLD_SAVE_GAME, SLD_SAVE_SCENARIO copy clicked name to editbox
-					ttd_strlcpy(WP(w, querystr_d).text.buf, file->name, WP(w, querystr_d).text.maxlength);
+					ttd_strlcpy(WP(w, querystr_d).text.buf, file->title, WP(w, querystr_d).text.maxlength);
 					UpdateTextBufferSize(&WP(w, querystr_d).text);
 					InvalidateWidget(w, 10);
 				}
@@ -1368,7 +1368,7 @@
 			}
 		} else if (HASBIT(w->click_state, 12)) { /* Save button clicked */
 			_switch_mode = SM_SAVE;
-			FiosMakeSavegameName(_file_to_saveload.name, WP(w,querystr_d).text.buf);
+			FiosMakeSavegameName(_file_to_saveload.name, WP(w,querystr_d).text.buf, sizeof(_file_to_saveload.name));
 
 			/* In the editor set up the vehicle engines correctly (date might have changed) */
 			if (_game_mode == GM_EDITOR) StartupEngines();
--- a/os2.c	Tue Mar 21 22:06:32 2006 +0000
+++ b/os2.c	Tue Mar 21 22:08:15 2006 +0000
@@ -401,7 +401,7 @@
 	return STR_4006_UNABLE_TO_READ_DRIVE;
 }
 
-void FiosMakeSavegameName(char *buf, const char *name)
+void FiosMakeSavegameName(char *buf, const char *name, size_t size)
 {
 	const char* extension;
 	const char* period;
@@ -415,14 +415,14 @@
 	period = strrchr(name, '.');
 	if (period != NULL && strcasecmp(period, extension) == 0) extension = "";
 
-	sprintf(buf, "%s\\%s%s", _fios_path, name, extension);
+	snprintf(buf, size, "%s\\%s%s", _fios_path, name, extension);
 }
 
 bool FiosDelete(const char *name)
 {
 	char path[512];
 
-	snprintf(path, lengthof(path), "%s\\%s", _fios_path, name);
+	FiosMakeSavegameName(path, name, sizeof(path));
 	return unlink(path) == 0;
 }
 
--- a/unix.c	Tue Mar 21 22:06:32 2006 +0000
+++ b/unix.c	Tue Mar 21 22:08:15 2006 +0000
@@ -362,7 +362,7 @@
 	return STR_4005_BYTES_FREE;
 }
 
-void FiosMakeSavegameName(char *buf, const char *name)
+void FiosMakeSavegameName(char *buf, const char *name, size_t size)
 {
 	const char* extension;
 	const char* period;
@@ -376,14 +376,14 @@
 	period = strrchr(name, '.');
 	if (period != NULL && strcasecmp(period, extension) == 0) extension = "";
 
-	sprintf(buf, "%s/%s%s", _fios_path, name, extension);
+	snprintf(buf, size, "%s/%s%s", _fios_path, name, extension);
 }
 
 bool FiosDelete(const char *name)
 {
 	char path[512];
 
-	snprintf(path, lengthof(path), "%s/%s", _fios_path, name);
+	FiosMakeSavegameName(path, name, sizeof(path));
 	return unlink(path) == 0;
 }
 
--- a/win32.c	Tue Mar 21 22:06:32 2006 +0000
+++ b/win32.c	Tue Mar 21 22:08:15 2006 +0000
@@ -963,7 +963,7 @@
 	return sid;
 }
 
-void FiosMakeSavegameName(char *buf, const char *name)
+void FiosMakeSavegameName(char *buf, const char *name, size_t size)
 {
 	const char* extension;
 	const char* period;
@@ -977,14 +977,14 @@
 	period = strrchr(name, '.');
 	if (period != NULL && strcasecmp(period, extension) == 0) extension = "";
 
-	sprintf(buf, "%s\\%s%s", _fios_path, name, extension);
+	snprintf(buf, size, "%s\\%s%s", _fios_path, name, extension);
 }
 
 bool FiosDelete(const char *name)
 {
 	char path[512];
 
-	snprintf(path, lengthof(path), "%s\\%s", _fios_path, name);
+	FiosMakeSavegameName(path, name, sizeof(path));
 	return DeleteFile(path) != 0;
 }