// 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()
+ rc = ::DosFindFirst( (PSZ)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(
FIND_STRUCT* pFinddata
)
{
- return pFinddata->achName;
+ return (wxChar*)pFinddata->achName;
}
static const FIND_ATTR GetAttrFromFindData(
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);
wxString* psFilename
)
{
- bool bFirst = FALSE;
+ bool bFirst = false;
FILEFINDBUF3 vFinddata;
#define PTR_TO_FINDDATA (&vFinddata)
m_vFinddata = FindFirst( sFilespec
,PTR_TO_FINDDATA
);
- bFirst = TRUE;
+ bFirst = true;
}
if ( !IsFindDataOk(m_vFinddata) )
{
- return FALSE;
+ return false;
}
const wxChar* zName;
{
if (bFirst)
{
- bFirst = FALSE;
+ bFirst = false;
}
else
{
,PTR_TO_FINDDATA
))
{
- return FALSE;
+ return false;
}
}
*psFilename = zName;
break;
}
- return TRUE;
+ return true;
} // end of wxDirData::Read
// ----------------------------------------------------------------------------
const wxString& rsDir
)
{
- return wxPathExists(rsDir);
+ return wxDirExists(rsDir);
} // end of wxDir::Exists
// ----------------------------------------------------------------------------
{
delete M_DIR;
m_data = new wxDirData(rsDirname);
- return TRUE;
+ return true;
} // end of wxDir::Open
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;
, 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);
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