changeset 17730:d8e242803402 draft

(svn r22510) -Codechange: Extract filepath creation to its own function.
author alberth <alberth@openttd.org>
date Sat, 28 May 2011 13:54:42 +0000
parents 70782a19f1ac
children ff826de69369
files src/fios.cpp
diffstat 1 files changed, 34 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/src/fios.cpp
+++ b/src/fios.cpp
@@ -141,6 +141,38 @@
 }
 
 /**
+ * Construct a filename from its components in destination buffer \a buf.
+ * @param buf Destination buffer.
+ * @param path Directory path, may be \c NULL.
+ * @param name Filename.
+ * @param ext Filename extension (use \c "" for no extension).
+ * @param size Size of \a buf.
+ */
+static void FiosMakeFilename(char *buf, const char *path, const char *name, const char *ext, size_t size)
+{
+	const char *period;
+
+	/* Don't append the extension if it is already there */
+	period = strrchr(name, '.');
+	if (period != NULL && strcasecmp(period, ext) == 0) ext = "";
+#if  defined(__MORPHOS__) || defined(__AMIGAOS__)
+	if (path != NULL) {
+		unsigned char sepchar = path[(strlen(path) - 1)];
+
+		if (sepchar != ':' && sepchar != '/') {
+			snprintf(buf, size, "%s" PATHSEP "%s%s", path, name, ext);
+		} else {
+			snprintf(buf, size, "%s%s%s", path, name, ext);
+		}
+	} else {
+		snprintf(buf, size, "%s%s", name, ext);
+	}
+#else
+	snprintf(buf, size, "%s" PATHSEP "%s%s", path, name, ext);
+#endif
+}
+
+/**
  * Make a save game or scenario filename from a name.
  * @param buf Destination buffer for saving the filename.
  * @param name Name of the file.
@@ -148,28 +180,9 @@
  */
 void FiosMakeSavegameName(char *buf, const char *name, size_t size)
 {
-	const char *extension, *period;
-
-	extension = (_game_mode == GM_EDITOR) ? ".scn" : ".sav";
-
-	/* Don't append the extension if it is already there */
-	period = strrchr(name, '.');
-	if (period != NULL && strcasecmp(period, extension) == 0) extension = "";
-#if  defined(__MORPHOS__) || defined(__AMIGAOS__)
-	if (_fios_path != NULL) {
-		unsigned char sepchar = _fios_path[(strlen(_fios_path) - 1)];
+	const char *extension = (_game_mode == GM_EDITOR) ? ".scn" : ".sav";
 
-		if (sepchar != ':' && sepchar != '/') {
-			snprintf(buf, size, "%s" PATHSEP "%s%s", _fios_path, name, extension);
-		} else {
-			snprintf(buf, size, "%s%s%s", _fios_path, name, extension);
-		}
-	} else {
-		snprintf(buf, size, "%s%s", name, extension);
-	}
-#else
-	snprintf(buf, size, "%s" PATHSEP "%s%s", _fios_path, name, extension);
-#endif
+	FiosMakeFilename(buf, _fios_path, name, extension, size);
 }
 
 /**