Commits

Anonymous committed 9b126d6

ERR: Merging 1.7->1.9 changes to CMake 1.8 branch.

Comments (0)

Files changed (1)

GCC_XML/KWSys/Directory.cxx

      PURPOSE.  See the above copyright notices for more information.
 
 =========================================================================*/
-#include <Directory.hxx>
+#include "kwsysPrivate.h"
+#include KWSYS_HEADER(Directory.hxx)
+
+#include KWSYS_HEADER(Configure.hxx)
+
+#include KWSYS_HEADER(std/string)
+#include KWSYS_HEADER(std/vector)
+
+namespace KWSYS_NAMESPACE
+{
+
+//----------------------------------------------------------------------------
+class DirectoryInternals
+{
+public:
+  // Array of Files
+  kwsys_std::vector<kwsys_std::string> Files;
+  
+  // Path to Open'ed directory
+  kwsys_std::string Path;
+};
+
+//----------------------------------------------------------------------------
+Directory::Directory()
+{
+  this->Internal = new DirectoryInternals;
+}
+
+//----------------------------------------------------------------------------
+Directory::~Directory()
+{
+  delete this->Internal;
+}
+
+//----------------------------------------------------------------------------
+unsigned long Directory::GetNumberOfFiles()
+{
+  return static_cast<unsigned long>(this->Internal->Files.size());
+}
+
+//----------------------------------------------------------------------------
+const char* Directory::GetFile(unsigned long dindex)
+{
+  if ( dindex >= this->Internal->Files.size() )
+    {
+    return 0;
+    }
+  return this->Internal->Files[dindex].c_str();
+}
+
+} // namespace KWSYS_NAMESPACE
 
 // First microsoft compilers
 
 
 bool Directory::Load(const char* name)
 {
+#if _MSC_VER < 1300
+  long srchHandle;
+#else
+  intptr_t srchHandle;
+#endif
   char* buf;
   size_t n = strlen(name);
   if ( name[n - 1] == '/' ) 
   struct _finddata_t data;      // data of current file
   
   // Now put them into the file array
-  size_t srchHandle = _findfirst(buf, &data);
+  srchHandle = _findfirst(buf, &data);
   delete [] buf;
   
   if ( srchHandle == -1 )
   // Loop through names
   do 
     {
-    m_Files.push_back(data.name);
+    this->Internal->Files.push_back(data.name);
     } 
   while ( _findnext(srchHandle, &data) != -1 );
-  m_Path = name;
+  this->Internal->Path = name;
   return _findclose(srchHandle) != -1;
 }
 
 
 #include <sys/types.h>
 #include <dirent.h>
-  
+
 namespace KWSYS_NAMESPACE
 {
 
 
   for (dirent* d = readdir(dir); d; d = readdir(dir) )
     {
-    m_Files.push_back(d->d_name);
+    this->Internal->Files.push_back(d->d_name);
     }
-  m_Path = name;
+  this->Internal->Path = name;
   closedir(dir);
   return 1;
 }
-  
+
 } // namespace KWSYS_NAMESPACE
 
 #endif
-
-namespace KWSYS_NAMESPACE
-{
-
-const char* Directory::GetFile(size_t dindex)
-{
-  if ( dindex >= m_Files.size() )
-    {
-    return 0;
-    }
-  return m_Files[dindex].c_str();
-}
-
-} // namespace KWSYS_NAMESPACE