]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/dir.cpp
A few tweaks and cleanups
[wxWidgets.git] / src / os2 / dir.cpp
index c5a14f2ce3494faeb1e849af0f7293b15b02df6b..3c10f9bff84a8627ff4b4269d275066082efd5df 100644 (file)
@@ -25,6 +25,7 @@
 #include "wx/wxprec.h"
 
 #ifndef WX_PRECOMP
+    #include "wx/os2/private.h"
     #include "wx/intl.h"
     #include "wx/log.h"
 #endif // PCH
@@ -35,6 +36,7 @@
 #include <sys/types.h>
 
 #define INCL_DOSFILEMGR
+#define INCL_DOSERRORS
 #include <os2.h>
 
 #ifdef __EMX__
@@ -160,6 +162,7 @@ public:
     void SetFileSpec(const wxString& rsFilespec) { m_sFilespec = rsFilespec; }
     void SetFlags(int nFlags) { m_nFlags = nFlags; }
 
+    const wxString& GetName() const { return m_sDirname; }
     void Close();
     void Rewind();
     bool Read(wxString* rsFilename);
@@ -348,6 +351,28 @@ bool wxDir::IsOpened() const
     return m_data != NULL;
 } // end of wxDir::IsOpen
 
+wxString wxDir::GetName() const
+{
+    wxString name;
+    if ( m_data )
+    {
+        name = M_DIR->GetName();
+        if ( !name.empty() )
+        {
+            // bring to canonical Windows form
+            name.Replace(_T("/"), _T("\\"));
+
+            if ( name.Last() == _T('\\') )
+            {
+                // chop off the last (back)slash
+                name.Truncate(name.length() - 1);
+            }
+        }
+    }
+
+    return name;
+}
+
 wxDir::~wxDir()
 {
     delete M_DIR;