#ifndef _WX_FILEH__
#define _WX_FILEH__
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(__APPLE__)
#pragma interface "file.h"
#endif
#ifndef WX_PRECOMP
#include "wx/string.h"
#include "wx/filefn.h"
+ #include "wx/strconv.h"
#endif
#if wxUSE_FILE
// more file constants
// -------------------
// opening mode
- enum OpenMode { read, write, read_write, write_append };
+ enum OpenMode { read, write, read_write, write_append, write_excl };
// standard values for file descriptor
enum { fd_invalid = -1, fd_stdin, fd_stdout, fd_stderr };
// returns the number of bytes written
size_t Write(const void *pBuf, size_t nCount);
// returns true on success
- bool Write(const wxString& s)
+ bool Write(const wxString& s, wxMBConv& conv = wxConvLocal)
{
- size_t size = s.Len()*sizeof(wxChar);
- return Write(s.c_str(), size) == size;
+ const wxWX2MBbuf buf = s.mb_str(conv);
+ size_t size = strlen(buf);
+ return Write((const char *) buf, size) == size;
}
// flush data not yet written
bool Flush();
// I/O (both functions return true on success, false on failure)
bool Write(const void *p, size_t n) { return m_file.Write(p, n) != 0; }
- bool Write(const wxString& str) { return m_file.Write(str); }
+ bool Write(const wxString& str, wxMBConv& conv = wxConvLibc) { return m_file.Write(str, conv); }
// different ways to close the file
// validate changes and delete the old file of name m_strName