#include "wx/stream.h"
#ifdef HAVE_STATFS
-# ifdef __DARWIN__
+# ifdef __BSD__
# include <sys/param.h>
# include <sys/mount.h>
# else
# endif
#endif // HAVE_STATFS
+#ifdef HAVE_STATVFS
+ #include <sys/statvfs.h>
+
+ #define statfs statvfs
+#endif // HAVE_STATVFS
+
#if wxUSE_GUI
#include "wx/unix/execute.h"
#endif
return -1;
}
-#ifndef __WXMAC__
bool wxGetDiskSpace(const wxString& path, wxLongLong *pTotal, wxLongLong *pFree)
{
-#ifdef HAVE_STATFS
-
+#if defined(HAVE_STATFS) || defined(HAVE_STATVFS)
struct statfs fs;
if ( statfs(path, &fs) != 0 )
{
return FALSE;
}
+ // under Solaris we might have to use fs.f_frsize instead as I think it
+ // may be a multiple of the block size in general (TODO)
+
if ( pTotal )
{
*pTotal = wxLongLong(fs.f_blocks) * fs.f_bsize;
return FALSE;
}
-#endif
// ----------------------------------------------------------------------------
// env vars
bool wxSetEnv(const wxString& variable, const wxChar *value)
{
#if defined(HAVE_SETENV)
- return setenv(variable.mb_str(), value ? wxString(value).mb_str().data()
- : NULL, 1 /* overwrite */) == 0;
+ return setenv(variable.mb_str(),
+ value ? (const char *)wxString(value).mb_str()
+ : NULL,
+ 1 /* overwrite */) == 0;
#elif defined(HAVE_PUTENV)
wxString s = variable;
if ( value )
#include <signal.h>
-static void wxFatalSignalHandler(wxTYPE_SA_HANDLER)
+extern "C" void wxFatalSignalHandler(wxTYPE_SA_HANDLER)
{
if ( wxTheApp )
{