unix.c
changeset 1596 c1c439a2d5b2
parent 1572 6d0111113f0b
child 1597 cc09dbccddac
--- a/unix.c	Mon Mar 28 12:38:02 2005 +0000
+++ b/unix.c	Mon Mar 28 13:30:51 2005 +0000
@@ -300,28 +300,30 @@
 	return NULL;
 }
 
-// Get descriptive texts.
-// Returns a path as well as a
-//  string describing the path.
-StringID FiosGetDescText(const char **path)
+/**
+ * Get descriptive texts. Returns the path and free space
+ * left on the device
+ * @param path string describing the path
+ * @param tfs total free space in megabytes, optional (can be NULL)
+ * @return StringID describing the path (free space or failure)
+ */
+StringID FiosGetDescText(const char **path, uint32 *tot)
 {
+	uint32 free = 0;
 	*path = _fios_path[0] != '\0' ? _fios_path : "/";
 
 #if defined(__linux__)
 	{
 		struct statvfs s;
 
-		if (statvfs(*path, &s) == 0) {
-			uint64 tot = (uint64)s.f_bsize * s.f_bavail;
-			SetDParam(0, (uint32)(tot >> 20));
-			return STR_4005_BYTES_FREE;
+		if (statvfs(*path, &s) != 0) {
+			free = ((uint64)s.f_bsize * s.f_bavail) >> 20;
 		} else
 			return STR_4006_UNABLE_TO_READ_DRIVE;
 	}
-#else
-	SetDParam(0, 0);
+#endif
+	if (tot != NULL) *tot = free;
 	return STR_4005_BYTES_FREE;
-#endif
 }
 
 void FiosMakeSavegameName(char *buf, const char *name)