(svn r2100) - Fix: [1024703]: Infinite access for A:\ (win32). Patch [1171208]. Only requery drive(s) if the user changes a directory, also surpress the OS error box that pops up on some windows machines. Tron + glx (and me)

This commit is contained in:
darkvater
2005-03-28 13:30:51 +00:00
parent 4573a9f872
commit 6bca4c041a
6 changed files with 70 additions and 45 deletions

21
os2.c
View File

@@ -375,21 +375,28 @@ char *FiosBrowseTo(const FiosItem *item)
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)
{
struct diskfree_t free;
StringID sid;
char drive;
*path = _fios_path;
drive = *path[0] - 'A' + 1;
_getdiskfree(drive, &free);
if (tot != NULL && _getdiskfree(drive, &free) == 0) {
*tot = free.avail_clusters * free.sectors_per_cluster * free.bytes_per_sector;
return STR_4005_BYTES_FREE;
}
SetDParam(0, free.avail_clusters * free.sectors_per_cluster * free.bytes_per_sector);
return STR_4005_BYTES_FREE;
return STR_4006_UNABLE_TO_READ_DRIVE;
}
void FiosMakeSavegameName(char *buf, const char *name)