]> git.saurik.com Git - wxWidgets.git/commitdiff
use better check for drives even with Mingw32 (and, later, MSDOS)
authorVáclav Slavík <vslavik@fastmail.fm>
Mon, 31 Dec 2001 00:46:17 +0000 (00:46 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Mon, 31 Dec 2001 00:46:17 +0000 (00:46 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13260 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/generic/dirctrlg.cpp

index 7df3852fe2a11d39f295a3f5426e6e887d883045..3343b595feb0415a33116b7d5432068d5418e64c 100644 (file)
 #ifdef __WXMSW__
 #include <windows.h>
 
-#ifndef __GNUWIN32__
-#include <direct.h>
-#include <stdlib.h>
-#include <ctype.h>
+// FIXME - Mingw32 1.0 has both _getdrive() and _chdrive(). For now, let's assume
+//         older releases don't, but it should be verified and the checks modified
+//         accordingly.
+#if !defined(__GNUWIN32__) || \
+    (defined(__MINGW32_MAJOR_VERSION) && __MINGW32_MAJOR_VERSION >= 1)
+  #include <direct.h>
+  #include <stdlib.h>
+  #include <ctype.h>
 #endif
 
 #endif
@@ -310,9 +314,13 @@ static const int ID_CANCEL = 1003;
 static const int ID_NEW = 1004;
 //static const int ID_CHECK = 1005;
 
-#if defined(__WXMSW__) || defined(__WXPM__)
+#if defined(__WXMSW__) || defined(__WXPM__) || defined(__DOS__)
 int setdrive(int drive)
 {
+#if defined(__GNUWIN32__) && \
+    (defined(__MINGW32_MAJOR_VERSION) && __MINGW32_MAJOR_VERSION >= 1)
+    return _chdrive(drive);
+#else
        wxChar  newdrive[3];
 
        if (drive < 1 || drive > 31)
@@ -333,6 +341,7 @@ int setdrive(int drive)
                return 0;
        else
                return -1;
+#endif // !GNUWIN32
 }
 
 static bool wxIsDriveAvailable(const wxString dirName)
@@ -347,7 +356,8 @@ static bool wxIsDriveAvailable(const wxString dirName)
     if (dirName.Len() == 3 && dirName[(size_t)1] == wxT(':'))
     {
         wxString dirNameLower(dirName.Lower());
-#if defined(__GNUWIN32__)
+#if defined(__GNUWIN32__) && \
+    !(defined(__MINGW32_MAJOR_VERSION) && __MINGW32_MAJOR_VERSION >= 1)
         success = wxPathExists(dirNameLower);
 #else
         int currentDrive = _getdrive();