// Created: 08.12.99
// RCS-ID: $Id$
// Copyright: (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ============================================================================
#include "wx/wxprec.h"
#ifndef WX_PRECOMP
+ #include "wx/os2/private.h"
#include "wx/intl.h"
#include "wx/log.h"
#endif // PCH
#include <sys/types.h>
#define INCL_DOSFILEMGR
+#define INCL_DOSERRORS
#include <os2.h>
#ifdef __EMX__
)
{
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;
}
,pFinddata
,sizeof(FILEFINDBUF3)
,&ulFindCount
- ) != 0;
+ ) == 0;
}
static const wxChar* GetNameFromFindData(
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);
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;