X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/18a1516c4b2406f61202d5390fa8595e8ea5a196..f54632db33bc3ccc834cc5bcb6405fae6e26ed6e:/src/common/filefn.cpp diff --git a/src/common/filefn.cpp b/src/common/filefn.cpp index fbb1a719bb..afc6b6705e 100644 --- a/src/common/filefn.cpp +++ b/src/common/filefn.cpp @@ -79,6 +79,9 @@ #if defined __MWERKS__ || defined __CYGWIN__ #include #endif + #if defined __WINE__ + extern "C" { long _get_osfhandle(int); } + #endif #endif // __WINDOWS__ #if defined(__VMS__) @@ -189,8 +192,8 @@ void wxPathList::AddEnvList (const wxString& envVariable) wxT(" :;"); #endif - wxChar *val = wxGetenv (WXSTRINGCAST envVariable); - if (val && *val) + wxString val ; + if (wxGetEnv (WXSTRINGCAST envVariable, &val)) { wxChar *s = MYcopystring (val); wxChar *save_ptr, *token = wxStrtok (s, PATH_TOKS, &save_ptr); @@ -214,7 +217,9 @@ void wxPathList::AddEnvList (const wxString& envVariable) delete [] s; } -#endif +#else // __WXWINCE__ + wxUnusedVar(envVariable); +#endif // !__WXWINCE__/__WXWINCE__ } // Given a full filename (with path), ensure that that file can @@ -671,7 +676,7 @@ wxContractPath (const wxString& filename, const wxString& envname, const wxStrin const wxChar *val; #ifndef __WXWINCE__ wxChar *tcp; - if (envname != WXSTRINGCAST NULL && (val = wxGetenv (WXSTRINGCAST envname)) != NULL && + if (!envname.empty() && (val = wxGetenv (WXSTRINGCAST envname)) != NULL && (tcp = wxStrstr (dest, val)) != NULL) { wxStrcpy (wxFileFunctionsBuffer, tcp + wxStrlen (val)); @@ -681,6 +686,8 @@ wxContractPath (const wxString& filename, const wxString& envname, const wxStrin wxStrcat (tcp, wxT("}")); wxStrcat (tcp, wxFileFunctionsBuffer); } +#else + wxUnusedVar(envname); #endif // Handle User's home (ignore root homes!) @@ -1007,12 +1014,12 @@ wxCopyFile (const wxString& file1, const wxString& file2, bool overwrite) return false; } #elif defined(__OS2__) - if ( ::DosCopy(file2, file2, overwrite ? DCPY_EXISTING : 0) != 0 ) + if ( ::DosCopy((PSZ)file1.c_str(), (PSZ)file2.c_str(), overwrite ? DCPY_EXISTING : 0) != 0 ) return false; #elif defined(__PALMOS__) // TODO with http://www.palmos.com/dev/support/docs/protein_books/Memory_Databases_Files/ return false; -#else // !Win32 +#elif wxUSE_FILE // !Win32 wxStructStat fbuf; // get permissions of file1 @@ -1083,6 +1090,15 @@ wxCopyFile (const wxString& file1, const wxString& file2, bool overwrite) return false; } #endif // OS/2 || Mac + +#else // !Win32 && ! wxUSE_FILE + + // impossible to simulate with wxWidgets API + wxUnusedVar(file1); + wxUnusedVar(file2); + wxUnusedVar(overwrite); + return false; + #endif // __WXMSW__ && __WIN32__ return true; @@ -1191,7 +1207,7 @@ bool wxRmdir(const wxString& dir, int WXUNUSED(flags)) } // does the path exists? (may have or not '/' or '\\' at the end) -bool wxPathExists(const wxChar *pszPathName) +bool wxDirExists(const wxChar *pszPathName) { wxString strPath(pszPathName); @@ -1222,6 +1238,8 @@ bool wxPathExists(const wxChar *pszPathName) DWORD ret = ::GetFileAttributes(strPath); return (ret != (DWORD)-1) && (ret & FILE_ATTRIBUTE_DIRECTORY); +#elif defined(__OS2__) + return (::DosSetCurrentDir((PSZ)(WXSTRINGCAST strPath))); #else // !__WIN32__ wxStructStat st; @@ -1250,6 +1268,8 @@ wxChar *wxGetTempFileName(const wxString& prefix, wxChar *buf) return buf; #else + wxUnusedVar(prefix); + wxUnusedVar(buf); // wxFileName::CreateTempFileName needs wxFile class enabled return NULL; #endif @@ -1330,6 +1350,9 @@ wxChar *wxGetWorkingDirectory(wxChar *buf, int sz) // TODO ? return NULL; #elif defined(__WXWINCE__) + // TODO + wxUnusedVar(buf); + wxUnusedVar(sz); return NULL; #else if ( !buf ) @@ -1471,6 +1494,7 @@ bool wxSetWorkingDirectory(const wxString& d) #ifdef __WIN32__ #ifdef __WXWINCE__ // No equivalent in WinCE + wxUnusedVar(d); return false; #else return (bool)(SetCurrentDirectory(d) != 0); @@ -1724,7 +1748,7 @@ int WXDLLEXPORT wxParseCommonDialogsFilter(const wxString& filterStr, wxArrayStr // autocompletion for( size_t j = 0 ; j < descriptions.GetCount() ; j++ ) { - if ( descriptions[j] == wxEmptyString && filters[j] != wxEmptyString ) + if ( descriptions[j].empty() && !filters[j].empty() ) { descriptions[j].Printf(_("Files (%s)"), filters[j].c_str()); } @@ -1892,7 +1916,7 @@ bool wxMatchWild( const wxString& pat, const wxString& text, bool dot_special ) // This is important for the archive streams, which benefit greatly from // being able to seek on a stream, but which will produce corrupt archives // if they unknowingly seek on a non-seekable stream. -// +// // wxFILE_KIND_DISK is a good catch all return value, since other values // disable features of the archive streams. Some other value must be returned // for a file type that appears seekable but isn't. @@ -1936,11 +1960,25 @@ wxFileKind wxGetFileKind(int fd) return wxFILE_KIND_DISK; #else + #define wxFILEKIND_STUB (void)fd; return wxFILE_KIND_DISK; #endif } +wxFileKind wxGetFileKind(FILE *fp) +{ + // 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)) + (void)fp; + return wxFILE_KIND_DISK; +#else + return wxGetFileKind(fileno(fp)); +#endif +} + #ifdef __VISUALC__ #pragma warning(default:4706) // assignment within conditional expression #endif // VC++