]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/filefn.cpp
fix for the dialog controls font
[wxWidgets.git] / src / common / filefn.cpp
index b9c16cd304111bccdfdfd23a3f90d069d2d25225..1f02317c40acec0b7bf7abe9e3b6fabbf2f58dbc 100644 (file)
 
 extern wxChar *wxBuffer;
 
-#if defined(__WXMAC__) && !defined(__UNIX__)
-    #include "morefile.h"
-    #include "moreextr.h"
-    #include "fullpath.h"
-    #include "fspcompa.h"
+#ifdef __WXMAC__
+#    include "MoreFiles.h"
+#    include "MoreFilesExtras.h"
+#    include "FullPath.h"
+#    include "FSpCompat.h"
 #endif
 
 IMPLEMENT_DYNAMIC_CLASS(wxPathList, wxStringList)
@@ -143,7 +143,11 @@ const off_t wxInvalidOffset = (off_t)-1;
 // ----------------------------------------------------------------------------
 
 // we need to translate Mac filenames before passing them to OS functions
+#if defined(__WXMAC__) && defined(__DARWIN__)
+    #define OS_FILENAME(s) wxMac2UnixFilename(s.fn_str())
+#else
     #define OS_FILENAME(s) (s.fn_str())
+#endif
 
 // ============================================================================
 // implementation
@@ -272,8 +276,11 @@ wxString wxPathList::FindAbsoluteValidPath (const wxString& file)
 bool
 wxFileExists (const wxString& filename)
 {
-#ifdef __GNUWIN32__ // (fix a B20 bug)
-    return GetFileAttributes(filename) != 0xFFFFFFFF;
+#ifdef __WINDOWS__
+    // GetFileAttributes can copy with network paths
+    DWORD ret = GetFileAttributes(filename);
+    DWORD isDir = (ret & FILE_ATTRIBUTE_DIRECTORY);
+    return ((ret != 0xffffffff) && (isDir == 0));
 #else
     wxStructStat stbuf;
     if ( !filename.empty() && wxStat (OS_FILENAME(filename), &stbuf) == 0 )
@@ -826,7 +833,7 @@ wxString wxPathOnly (const wxString& path)
 // and back again - or we get nasty problems with delimiters.
 // Also, convert to lower case, since case is significant in UNIX.
 
-#if defined(__WXMAC__) && !defined(__UNIX__)
+#if defined(__WXMAC__)
 wxString wxMacFSSpec2MacFilename( const FSSpec *spec )
 {
     Handle    myPath ;
@@ -1186,6 +1193,13 @@ bool wxPathExists(const wxChar *pszPathName)
     }
 #endif // __WINDOWS__
 
+#ifdef __WINDOWS__
+    // Stat can't cope with network paths
+    DWORD ret = GetFileAttributes(strPath.c_str());
+    DWORD isDir = (ret & FILE_ATTRIBUTE_DIRECTORY);
+    return ((ret != 0xffffffff) && (isDir != 0));
+#else
+
     wxStructStat st;
 #ifndef __VISAGECPP__
     return wxStat(wxFNSTRINGCAST strPath.fn_str(), &st) == 0 &&
@@ -1196,6 +1210,7 @@ bool wxPathExists(const wxChar *pszPathName)
         (st.st_mode == S_IFDIR);
 #endif
 
+#endif
 }
 
 // Get a temporary filename, opening and closing the file.
@@ -1692,7 +1707,7 @@ wxChar *wxGetWorkingDirectory(wxChar *buf, int sz)
   char *cbuf = new char[sz+1];
 #ifdef _MSC_VER
   if (_getcwd(cbuf, sz) == NULL) {
-#elif defined(__WXMAC__) && !defined(__UNIX__)
+#elif defined(__WXMAC__)
     enum
     {
         SFSaveDisk = 0x214, CurDirStore = 0x398