#define _FILEFN_H_
#ifdef __GNUG__
-#pragma interface "filefn.h"
+ #pragma interface "filefn.h"
#endif
#include <wx/list.h>
// define off_t
#ifndef __WXMAC__
-#include <sys/types.h>
+ #include <sys/types.h>
#else
-typedef long off_t;
+ typedef long off_t;
#endif
-#ifdef _MSC_VER
- #define off_t _off_t
-#endif
-
-#if defined(__BORLANDC__) && defined(__WIN16__)
-typedef long off_t;
-#endif
-
-#if defined(__SC__)
-typedef long off_t;
+#if defined(__VISUALC__) || ( defined(__MWERKS__) && defined( __INTEL__) )
+ typedef _off_t off_t;
+#elif defined(__BORLANDC__) && defined(__WIN16__)
+ typedef long off_t;
+#elif defined(__SC__)
+ typedef long off_t;
+#elif defined(__MWERKS__) && !defined(__INTEL__)
+ typedef long off_t;
#endif
const off_t wxInvalidOffset = (off_t)-1;
-typedef enum {
+enum wxSeekMode
+{
wxFromStart,
wxFromCurrent,
wxFromEnd
-} wxSeekMode;
+};
WXDLLEXPORT_DATA(extern const char*) wxEmptyString;
#define FileNameFromPath wxFileNameFromPath
// Get directory
-WXDLLEXPORT char* wxPathOnly(char *path);
WXDLLEXPORT wxString wxPathOnly(const wxString& path);
#define PathOnly wxPathOnly
WXDLLEXPORT void wxMac2UnixFilename(char *s);
WXDLLEXPORT void wxUnix2MacFilename(char *s);
#endif
+
// Strip the extension, in situ
WXDLLEXPORT void wxStripExtension(char *buffer);
WXDLLEXPORT void wxStripExtension(wxString& buffer);
// and make (if under the home tree) relative to home
// [caller must copy-- volatile]
WXDLLEXPORT char* wxContractPath(const wxString& filename,
- const wxString& envname = "",
- const wxString& user = "");
+ const wxString& envname = wxEmptyString,
+ const wxString& user = wxEmptyString);
// Destructive removal of /./ and /../ stuff
WXDLLEXPORT char* wxRealPath(char *path);
// Flags are reserved for future use.
#define wxFILE 1
#define wxDIR 2
-WXDLLEXPORT char* wxFindFirstFile(const char *spec, int flags = wxFILE);
-WXDLLEXPORT char* wxFindNextFile(void);
+WXDLLEXPORT wxString wxFindFirstFile(const char *spec, int flags = wxFILE);
+WXDLLEXPORT wxString wxFindNextFile();
// Does the pattern contain wildcards?
WXDLLEXPORT bool wxIsWild(const wxString& pattern);
// IMPORTANT NOTE getcwd is know not to work under some releases
// of Win32s 1.3, according to MS release notes!
WXDLLEXPORT char* wxGetWorkingDirectory(char *buf = (char *) NULL, int sz = 1000);
+// new and preferred version of wxGetWorkingDirectory
+// NB: can't have the same name because of overloading ambiguity
+WXDLLEXPORT wxString wxGetCwd();
// Set working directory
WXDLLEXPORT bool wxSetWorkingDirectory(const wxString& d);
// Make directory
-WXDLLEXPORT bool wxMkdir(const wxString& dir);
+WXDLLEXPORT bool wxMkdir(const wxString& dir, int perm = 0777);
// Remove directory. Flags reserved for future use.
WXDLLEXPORT bool wxRmdir(const wxString& dir, int flags = 0);
// separators in file names
-#define FILE_SEP_EXT '.'
-#define FILE_SEP_DSK ':'
-#define FILE_SEP_PATH_DOS '\\'
-#define FILE_SEP_PATH_UNIX '/'
+#define wxFILE_SEP_EXT '.'
+#define wxFILE_SEP_DSK ':'
+#define wxFILE_SEP_PATH_DOS '\\'
+#define wxFILE_SEP_PATH_UNIX '/'
// separator in the path list (as in PATH environment variable)
// NB: these are strings and not characters on purpose!
-#define PATH_SEP_DOS ";"
-#define PATH_SEP_UNIX ":"
+#define wxPATH_SEP_DOS ";"
+#define wxPATH_SEP_UNIX ":"
// platform independent versions
#ifdef __UNIX__
- #define FILE_SEP_PATH FILE_SEP_PATH_UNIX
- #define PATH_SEP PATH_SEP_UNIX
+ #define wxFILE_SEP_PATH wxFILE_SEP_PATH_UNIX
+ #define wxPATH_SEP wxPATH_SEP_UNIX
#else // Windows
- #define FILE_SEP_PATH FILE_SEP_PATH_DOS
- #define PATH_SEP PATH_SEP_DOS
+ #define wxFILE_SEP_PATH wxFILE_SEP_PATH_DOS
+ #define wxPATH_SEP wxPATH_SEP_DOS
#endif // Unix/Windows
// this is useful for wxString::IsSameAs(): to compare two file names use
// is the char a path separator?
inline bool wxIsPathSeparator(char c)
- { return c == FILE_SEP_PATH_DOS || c == FILE_SEP_PATH_UNIX; }
+ { return c == wxFILE_SEP_PATH_DOS || c == wxFILE_SEP_PATH_UNIX; }
// does the string ends with path separator?
WXDLLEXPORT bool wxEndsWithPathSeparator(const char *pszFileName);
// find a file in a list of directories, returns false if not found
WXDLLEXPORT bool wxFindFileInPath(wxString *pStr, const char *pszPath, const char *pszFile);
+// Get the OS directory if appropriate (such as the Windows directory).
+// On non-Windows platform, probably just return the empty string.
+WXDLLEXPORT wxString wxGetOSDirectory();
+
// ----------------------------------------------------------------------------
// classes
// ----------------------------------------------------------------------------
class WXDLLEXPORT wxPathList : public wxStringList
{
public:
- void AddEnvList(const wxString& envVariable); // Adds all paths in environment variable
+ // Adds all paths in environment variable
+ void AddEnvList(const wxString& envVariable);
+
void Add(const wxString& path);
- wxString FindValidPath(const wxString& filename); // Find the first full path
- // for which the file exists
- wxString FindAbsoluteValidPath(const wxString& filename); // Find the first full path
- // for which the file exists; ensure it's an absolute
- // path that gets returned.
- void EnsureFileAccessible(const wxString& path); // Given full path and filename,
- // add path to list
+ // Avoid compiler warning
+ wxNode *Add(const char *s) { return wxStringList::Add(s); }
+ // Find the first full path for which the file exists
+ wxString FindValidPath(const wxString& filename);
+ // Find the first full path for which the file exists; ensure it's an
+ // absolute path that gets returned.
+ wxString FindAbsoluteValidPath(const wxString& filename);
+ // Given full path and filename, add path to list
+ void EnsureFileAccessible(const wxString& path);
+ // Returns TRUE if the path is in the list
bool Member(const wxString& path);
private: