]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/dir.cpp
better implementation from VZ
[wxWidgets.git] / src / os2 / dir.cpp
index 70b0ab2554a3a67d3249b9e859adcd43078ee121..fef52b91b3993047a9d7051f419eb881042cfd69 100644 (file)
 // headers
 // ----------------------------------------------------------------------------
 
-#ifdef __GNUG__
-    #pragma implementation "dir.h"
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
@@ -76,19 +72,19 @@ static inline FIND_DATA FindFirst(
 )
 {
     ULONG                       ulFindCount = 1;
-    FIND_DATA                   hDir;
+    FIND_DATA                   hDir = HDIR_CREATE;
     FIND_ATTR                   rc;
 
     rc = ::DosFindFirst( rsSpec.c_str()
                         ,&hDir
-                        ,FILE_NORMAL
+                        ,0x37 // was: FILE_NORMAL
                         ,pFinddata
                         ,sizeof(FILEFINDBUF3)
                         ,&ulFindCount
                         ,FIL_STANDARD
                        );
     if (rc != 0)
-        return 0;
+        return InitFindData();
     return hDir;
 }
 
@@ -103,14 +99,14 @@ static inline bool FindNext(
                          ,pFinddata
                          ,sizeof(FILEFINDBUF3)
                          ,&ulFindCount
-                         ) != 0;
+                         ) == 0;
 }
 
 static const wxChar* GetNameFromFindData(
   FIND_STRUCT*                      pFinddata
 )
 {
-    return pFinddata->achName;
+    return (wxChar*)pFinddata->achName;
 }
 
 static const FIND_ATTR GetAttrFromFindData(
@@ -213,7 +209,7 @@ bool wxDirData::Read(
   wxString*                         psFilename
 )
 {
-    bool                            bFirst = FALSE;
+    bool                            bFirst = false;
 
     FILEFINDBUF3                    vFinddata;
     #define PTR_TO_FINDDATA (&vFinddata)
@@ -234,12 +230,12 @@ bool wxDirData::Read(
         m_vFinddata = FindFirst( sFilespec
                                 ,PTR_TO_FINDDATA
                                );
-        bFirst = TRUE;
+        bFirst = true;
     }
 
     if ( !IsFindDataOk(m_vFinddata) )
     {
-        return FALSE;
+        return false;
     }
 
     const wxChar*                   zName;
@@ -249,7 +245,7 @@ bool wxDirData::Read(
     {
         if (bFirst)
         {
-            bFirst = FALSE;
+            bFirst = false;
         }
         else
         {
@@ -257,7 +253,7 @@ bool wxDirData::Read(
                           ,PTR_TO_FINDDATA
                          ))
             {
-                return FALSE;
+                return false;
             }
         }
 
@@ -309,7 +305,7 @@ bool wxDirData::Read(
         *psFilename = zName;
         break;
     }
-    return TRUE;
+    return true;
 } // end of wxDirData::Read
 
 // ----------------------------------------------------------------------------
@@ -321,7 +317,7 @@ bool wxDir::Exists(
   const wxString&                   rsDir
 )
 {
-    return wxPathExists(rsDir);
+    return wxDirExists(rsDir);
 } // end of wxDir::Exists
 
 // ----------------------------------------------------------------------------
@@ -343,7 +339,7 @@ bool wxDir::Open(
 {
     delete M_DIR;
     m_data = new wxDirData(rsDirname);
-    return TRUE;
+    return true;
 } // end of wxDir::Open
 
 bool wxDir::IsOpened() const
@@ -388,7 +384,7 @@ bool wxDir::GetFirst(
 , int                               nFlags
 ) const
 {
-    wxCHECK_MSG( IsOpened(), FALSE, _T("must wxDir::Open() first") );
+    wxCHECK_MSG( IsOpened(), false, _T("must wxDir::Open() first") );
     M_DIR->Rewind();
     M_DIR->SetFileSpec(rsFilespec);
     M_DIR->SetFlags(nFlags);
@@ -399,8 +395,8 @@ bool wxDir::GetNext(
   wxString*                         psFilename
 ) const
 {
-    wxCHECK_MSG( IsOpened(), FALSE, _T("must wxDir::Open() first") );
-    wxCHECK_MSG( psFilename, FALSE, _T("bad pointer in wxDir::GetNext()") );
+    wxCHECK_MSG( IsOpened(), false, _T("must wxDir::Open() first") );
+    wxCHECK_MSG( psFilename, false, _T("bad pointer in wxDir::GetNext()") );
     return M_DIR->Read(psFilename);
 } // end of wxDir::GetNext