// Created: 29/01/98
// RCS-ID: $Id$
// Copyright: (c) 1998 Julian Smart
-// Licence: wxWindows license
+// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
-#ifndef __FILEFNH__
-#define __FILEFNH__
+#ifndef _FILEFN_H_
+#define _FILEFN_H_
#ifdef __GNUG__
#pragma interface "filefn.h"
#endif
-#include "wx/list.h"
+#include <wx/list.h>
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+// define off_t
+#include <sys/types.h>
+
+#ifdef _MSC_VER
+ #define off_t _off_t
+#endif
+
+const off_t wxInvalidOffset = (off_t)-1;
+
+typedef enum {
+ wxFromStart,
+ wxFromCurrent,
+ wxFromEnd
+} wxSeekMode;
+
+// ----------------------------------------------------------------------------
+// functions
+// ----------------------------------------------------------------------------
bool WXDLLEXPORT wxFileExists(const wxString& filename);
#define FileExists wxFileExists
// Strip the extension, in situ
void WXDLLEXPORT wxStripExtension(char *buffer);
+void WXDLLEXPORT wxStripExtension(wxString& buffer);
// Get a temporary filename, opening and closing the file.
-char* WXDLLEXPORT wxGetTempFileName(const wxString& prefix, char *buf = NULL);
+char* WXDLLEXPORT wxGetTempFileName(const wxString& prefix, char *buf = (char *) NULL);
// Expand file name (~/ and ${OPENWINHOME}/ stuff)
char* WXDLLEXPORT wxExpandPath(char *dest, const char *path);
// copies into buf.
// IMPORTANT NOTE getcwd is know not to work under some releases
// of Win32s 1.3, according to MS release notes!
-char* WXDLLEXPORT wxGetWorkingDirectory(char *buf = NULL, int sz = 1000);
+char* WXDLLEXPORT wxGetWorkingDirectory(char *buf = (char *) NULL, int sz = 1000);
// Set working directory
bool WXDLLEXPORT wxSetWorkingDirectory(const wxString& d);
#define PATH_SEP PATH_SEP_DOS
#endif // Unix/Windows
+// this is useful for wxString::IsSameAs(): to compare two file names use
+// filename1.IsSameAs(filename2, wxARE_FILENAMES_CASE_SENSITIVE)
+#ifdef __UNIX__
+ #define wxARE_FILENAMES_CASE_SENSITIVE TRUE
+#else // Windows
+ #define wxARE_FILENAMES_CASE_SENSITIVE FALSE
+#endif // Unix/Windows
+
// is the char a path separator?
inline bool wxIsPathSeparator(char c)
{ return c == FILE_SEP_PATH_DOS || c == FILE_SEP_PATH_UNIX; }
// does the string ends with path separator?
bool WXDLLEXPORT wxEndsWithPathSeparator(const char *pszFileName);
+// split the full path into path (including drive for DOS), name and extension
+// (understands both '/' and '\\')
+void WXDLLEXPORT wxSplitPath(const char *pszFileName,
+ wxString *pstrPath,
+ wxString *pstrName,
+ wxString *pstrExt);
+
// find a file in a list of directories, returns false if not found
bool WXDLLEXPORT wxFindFileInPath(wxString *pStr, const char *pszPath, const char *pszFile);
+// ----------------------------------------------------------------------------
+// classes
+// ----------------------------------------------------------------------------
+
// Path searching
class WXDLLEXPORT wxPathList: public wxStringList
{
};
#endif
- // __FILEFNH__
+ // _WX_FILEFN_H_