]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/filefn.cpp
wxControl::SetLabel no longer strips out codes so do it here
[wxWidgets.git] / src / common / filefn.cpp
index cb433eb7e4ddebb273f78d5c05829ef20d65b3e3..dabc946ebf50984b0361dd9cf2c7b6f0147a15ed 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
-// Name:        filefn.cpp
+// Name:        src/common/filefn.cpp
 // Purpose:     File- and directory-related functions
 // Author:      Julian Smart
 // Modified by:
 // Purpose:     File- and directory-related functions
 // Author:      Julian Smart
 // Modified by:
@@ -40,7 +40,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#if !defined(__WATCOMC__)
+#if !wxONLY_WATCOM_EARLIER_THAN(1,4)
     #if !(defined(_MSC_VER) && (_MSC_VER > 800))
         #include <errno.h>
     #endif
     #if !(defined(_MSC_VER) && (_MSC_VER > 800))
         #include <errno.h>
     #endif
@@ -301,7 +301,12 @@ wxFileExists (const wxString& filename)
 #else // !__WIN32__
     wxStructStat st;
 #ifndef wxNEED_WX_UNISTD_H
 #else // !__WIN32__
     wxStructStat st;
 #ifndef wxNEED_WX_UNISTD_H
-    return wxStat( filename.fn_str() , &st) == 0 && (st.st_mode & S_IFREG);
+    return (wxStat( filename.fn_str() , &st) == 0 && (st.st_mode & S_IFREG))
+#ifdef __OS2__
+      || (errno == EACCES) // if access is denied something with that name
+                            // exists and is opened in exclusive mode.
+#endif
+      ;
 #else
     return wxStat( filename , &st) == 0 && (st.st_mode & S_IFREG);
 #endif
 #else
     return wxStat( filename , &st) == 0 && (st.st_mode & S_IFREG);
 #endif
@@ -1237,7 +1242,13 @@ bool wxDirExists(const wxChar *pszPathName)
 
     return (ret != (DWORD)-1) && (ret & FILE_ATTRIBUTE_DIRECTORY);
 #elif defined(__OS2__)
 
     return (ret != (DWORD)-1) && (ret & FILE_ATTRIBUTE_DIRECTORY);
 #elif defined(__OS2__)
-    return (bool)(::DosSetCurrentDir((PSZ)(WXSTRINGCAST strPath)));
+    FILESTATUS3 Info = {{0}};
+    APIRET rc = ::DosQueryPathInfo((PSZ)(WXSTRINGCAST strPath), FIL_STANDARD,
+                                   (void*) &Info, sizeof(FILESTATUS3));
+
+    return ((rc == NO_ERROR) && (Info.attrFile & FILE_DIRECTORY)) ||
+      (rc == ERROR_SHARING_VIOLATION);
+    // If we got a sharing violation, there must be something with this name.
 #else // !__WIN32__
 
     wxStructStat st;
 #else // !__WIN32__
 
     wxStructStat st;
@@ -1351,11 +1362,11 @@ wxChar *wxDoGetCwd(wxChar *buf, int sz)
 #if defined(__WXPALMOS__)
     // TODO
     if(buf && sz>0) buf[0] = _T('\0');
 #if defined(__WXPALMOS__)
     // TODO
     if(buf && sz>0) buf[0] = _T('\0');
-    return NULL;
+    return buf;
 #elif defined(__WXWINCE__)
     // TODO
     if(buf && sz>0) buf[0] = _T('\0');
 #elif defined(__WXWINCE__)
     // TODO
     if(buf && sz>0) buf[0] = _T('\0');
-    return NULL;
+    return buf;
 #else
     if ( !buf )
     {
 #else
     if ( !buf )
     {
@@ -1978,8 +1989,7 @@ wxFileKind wxGetFileKind(FILE *fp)
 {
     // Note: The watcom rtl dll doesn't have fileno (the static lib does).
     //       Should be fixed in version 1.4.
 {
     // Note: The watcom rtl dll doesn't have fileno (the static lib does).
     //       Should be fixed in version 1.4.
-#if defined(wxFILEKIND_STUB) || \
-        (defined(__WATCOMC__) && __WATCOMC__ <= 1230 && defined(__SW_BR))
+#if defined(wxFILEKIND_STUB) || wxONLY_WATCOM_EARLIER_THAN(1,4)
     (void)fp;
     return wxFILE_KIND_DISK;
 #else
     (void)fp;
     return wxFILE_KIND_DISK;
 #else