// implementation
// ============================================================================
+#if defined(__WXMAC__) && !defined(__DARWIN__)
+
+WXDLLEXPORT int wxStat( const wxChar *file_name, wxStructStat *buf )
+{
+ return stat( wxMacStringToCString( file_name ), buf );
+}
+
+WXDLLEXPORT int wxAccess( const wxChar *pathname, int mode )
+{
+ return access( wxMacStringToCString( pathname ), mode );
+}
+
+WXDLLEXPORT int wxOpen( const wxChar *pathname, int flags, mode_t mode )
+{
+ return open( wxMacStringToCString( pathname ), flags, mode );
+}
+
+#endif
+
#ifdef wxNEED_WX_UNISTD_H
WXDLLEXPORT int wxStat( const wxChar *file_name, wxStructStat *buf )
// wxPathList
// ----------------------------------------------------------------------------
-IMPLEMENT_DYNAMIC_CLASS(wxPathList, wxStringList)
+// IMPLEMENT_DYNAMIC_CLASS(wxPathList, wxStringList)
+
+static inline wxChar* MYcopystring(const wxString& s)
+{
+ wxChar* copy = new wxChar[s.length() + 1];
+ return wxStrcpy(copy, s.c_str());
+}
+
+static inline wxChar* MYcopystring(const wxChar* s)
+{
+ wxChar* copy = new wxChar[wxStrlen(s) + 1];
+ return wxStrcpy(copy, s);
+}
void wxPathList::Add (const wxString& path)
{
- wxStringList::Add (WXSTRINGCAST path);
+ wxStringList::Append (WXSTRINGCAST path);
}
// Add paths e.g. from the PATH environment variable
wxChar *val = wxGetenv (WXSTRINGCAST envVariable);
if (val && *val)
{
- wxChar *s = copystring (val);
+ wxChar *s = MYcopystring (val);
wxChar *save_ptr, *token = wxStrtok (s, PATH_TOKS, &save_ptr);
if (token)
bool wxPathList::Member (const wxString& path)
{
- for (wxStringList::Node *node = GetFirst(); node; node = node->GetNext())
+ for (wxStringList::compatibility_iterator node = GetFirst(); node; node = node->GetNext())
{
wxString path2( node->GetData() );
if (
wxChar *filename = (wxChar*) NULL; /* shut up buggy egcs warning */
filename = wxIsAbsolutePath (buf) ? wxFileNameFromPath (buf) : (wxChar *)buf;
- for (wxStringList::Node *node = GetFirst(); node; node = node->GetNext())
+ for (wxStringList::compatibility_iterator node = GetFirst(); node; node = node->GetNext())
{
- wxChar *path = node->GetData();
+ const wxChar *path = node->GetData();
wxStrcpy (wxFileFunctionsBuffer, path);
wxChar ch = wxFileFunctionsBuffer[wxStrlen(wxFileFunctionsBuffer)-1];
if (ch != wxT('\\') && ch != wxT('/'))
wxStrcat(buf, wxT("/"));
#endif
wxStrcat(buf, wxFileFunctionsBuffer);
- return copystring( wxRealPath(buf) );
+ return MYcopystring( wxRealPath(buf) );
}
- return copystring( wxFileFunctionsBuffer );
+ return MYcopystring( wxFileFunctionsBuffer );
}
/*-
buf[0] = wxT('\0');
if (name == NULL || *name == wxT('\0'))
return buf;
- nm = copystring(name); // Make a scratch copy
+ nm = MYcopystring(name); // Make a scratch copy
wxChar *nm_tmp = nm;
/* Skip leading whitespace and cr */
#endif // __WXMAC__
void
-wxDos2UnixFilename (char *s)
+wxDos2UnixFilename (wxChar *s)
{
if (s)
while (*s)
{
- if (*s == '\\')
- *s = '/';
+ if (*s == _T('\\'))
+ *s = _T('/');
#ifdef __WXMSW__
else
*s = wxTolower (*s); // Case INDEPENDENT
if ( buf )
wxStrcpy(buf, filename);
else
- buf = copystring(filename);
+ buf = MYcopystring(filename);
return buf;
}
wxChar buf[256];
GetWindowsDirectory(buf, 256);
return wxString(buf);
+#elif defined(__WXMAC__)
+ return wxMacFindFolder(kOnSystemDisk, 'macs', false);
#else
return wxEmptyString;
#endif