compilation in Unicode mode works with VC++
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_2_BRANCH@7031 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -287,7 +287,7 @@ bool wxDocument::OnSaveDocument(const wxString& file)
|
||||
msgTitle = wxString(_("File error"));
|
||||
|
||||
#if wxUSE_STD_IOSTREAM
|
||||
ofstream store(wxString(file.fn_str()));
|
||||
ofstream store(wxString(file.fn_str()).mb_str());
|
||||
if (store.fail() || store.bad())
|
||||
#else
|
||||
wxFileOutputStream store(wxString(file.fn_str()));
|
||||
@@ -323,7 +323,7 @@ bool wxDocument::OnOpenDocument(const wxString& file)
|
||||
msgTitle = wxString(_("File error"));
|
||||
|
||||
#if wxUSE_STD_IOSTREAM
|
||||
ifstream store(wxString(file.fn_str()));
|
||||
ifstream store(wxString(file.fn_str()).mb_str());
|
||||
if (store.fail() || store.bad())
|
||||
#else
|
||||
wxFileInputStream store(wxString(file.fn_str()));
|
||||
@@ -2164,7 +2164,7 @@ bool wxTransferFileToStream(const wxString& filename, ostream& stream)
|
||||
FILE *fd1;
|
||||
int ch;
|
||||
|
||||
if ((fd1 = fopen (filename.fn_str(), "rb")) == NULL)
|
||||
if ((fd1 = wxFopen (filename.fn_str(), _T("rb"))) == NULL)
|
||||
return FALSE;
|
||||
|
||||
while ((ch = getc (fd1)) != EOF)
|
||||
@@ -2179,7 +2179,7 @@ bool wxTransferStreamToFile(istream& stream, const wxString& filename)
|
||||
FILE *fd1;
|
||||
int ch;
|
||||
|
||||
if ((fd1 = fopen (filename.fn_str(), "wb")) == NULL)
|
||||
if ((fd1 = wxFopen (filename.fn_str(), _T("wb"))) == NULL)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -87,36 +87,6 @@
|
||||
#include <sys/stat.h> // stat
|
||||
#endif
|
||||
|
||||
// Microsoft compiler loves underscores, feed them to it
|
||||
#ifdef __VISUALC__
|
||||
// functions
|
||||
#define open _open
|
||||
#define close _close
|
||||
#define read _read
|
||||
#define write _write
|
||||
#define lseek _lseek
|
||||
#define fsync _commit
|
||||
#define access _access
|
||||
#define eof _eof
|
||||
|
||||
// types
|
||||
#define stat _stat
|
||||
|
||||
// constants
|
||||
|
||||
#define O_RDONLY _O_RDONLY
|
||||
#define O_WRONLY _O_WRONLY
|
||||
#define O_RDWR _O_RDWR
|
||||
#define O_EXCL _O_EXCL
|
||||
#define O_CREAT _O_CREAT
|
||||
#define O_BINARY _O_BINARY
|
||||
|
||||
#define S_IFDIR _S_IFDIR
|
||||
#define S_IFREG _S_IFREG
|
||||
#else
|
||||
#define tell(fd) lseek(fd, 0, SEEK_CUR)
|
||||
#endif // VC++
|
||||
|
||||
#if defined(__BORLANDC__) || defined(_MSC_VER)
|
||||
#define W_OK 2
|
||||
#define R_OK 4
|
||||
@@ -159,23 +129,23 @@
|
||||
// ----------------------------------------------------------------------------
|
||||
bool wxFile::Exists(const wxChar *name)
|
||||
{
|
||||
struct stat st;
|
||||
wxStructStat st;
|
||||
#if wxUSE_UNICODE && wxMBFILES
|
||||
wxCharBuffer fname = wxConvFile.cWC2MB(name);
|
||||
|
||||
#ifdef __WXMAC__
|
||||
return !access(wxUnix2MacFilename( name ) , 0) && !stat(wxUnix2MacFilename( name ), &st) && (st.st_mode & S_IFREG);
|
||||
#else
|
||||
return !access(fname, 0) &&
|
||||
!stat(wxMBSTRINGCAST fname, &st) &&
|
||||
return !wxAccess(fname, 0) &&
|
||||
!wxStat(wxMBSTRINGCAST fname, &st) &&
|
||||
(st.st_mode & S_IFREG);
|
||||
#endif
|
||||
#else
|
||||
#ifdef __WXMAC__
|
||||
return !access(wxUnix2MacFilename( name ) , 0) && !stat(wxUnix2MacFilename( name ), &st) && (st.st_mode & S_IFREG);
|
||||
#else
|
||||
return !access(name, 0) &&
|
||||
!stat(name, &st) &&
|
||||
return !wxAccess(name, 0) &&
|
||||
!wxStat(name, &st) &&
|
||||
(st.st_mode & S_IFREG);
|
||||
#endif
|
||||
#endif
|
||||
@@ -198,7 +168,7 @@ bool wxFile::Access(const wxChar *name, OpenMode mode)
|
||||
wxFAIL_MSG(wxT("bad wxFile::Access mode parameter."));
|
||||
}
|
||||
|
||||
return access(wxFNCONV(name), how) == 0;
|
||||
return wxAccess(wxFNCONV(name), how) == 0;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
@@ -222,10 +192,10 @@ bool wxFile::Create(const wxChar *szFileName, bool bOverwrite, int accessMode)
|
||||
#ifdef __WXMAC__
|
||||
int fd = open(wxUnix2MacFilename( szFileName ), O_CREAT | (bOverwrite ? O_TRUNC : O_EXCL), access);
|
||||
#else
|
||||
int fd = open(wxFNCONV(szFileName),
|
||||
O_BINARY | O_WRONLY | O_CREAT |
|
||||
(bOverwrite ? O_TRUNC : O_EXCL)
|
||||
ACCESS(accessMode));
|
||||
int fd = wxOpen(wxFNCONV(szFileName),
|
||||
O_BINARY | O_WRONLY | O_CREAT |
|
||||
(bOverwrite ? O_TRUNC : O_EXCL)
|
||||
ACCESS(accessMode));
|
||||
#endif
|
||||
if ( fd == -1 ) {
|
||||
wxLogSysError(_("can't create file '%s'"), szFileName);
|
||||
@@ -263,7 +233,7 @@ bool wxFile::Open(const wxChar *szFileName, OpenMode mode, int accessMode)
|
||||
#ifdef __WXMAC__
|
||||
int fd = open(wxUnix2MacFilename( szFileName ), flags, access);
|
||||
#else
|
||||
int fd = open(wxFNCONV(szFileName), flags ACCESS(accessMode));
|
||||
int fd = wxOpen(wxFNCONV(szFileName), flags ACCESS(accessMode));
|
||||
#endif
|
||||
if ( fd == -1 ) {
|
||||
wxLogSysError(_("can't open file '%s'"), szFileName);
|
||||
@@ -337,7 +307,7 @@ bool wxFile::Flush()
|
||||
{
|
||||
if ( IsOpened() ) {
|
||||
#if defined(__VISUALC__) || wxHAVE_FSYNC
|
||||
if ( fsync(m_fd) == -1 )
|
||||
if ( wxFsync(m_fd) == -1 )
|
||||
{
|
||||
wxLogSysError(_("can't flush file descriptor %d"), m_fd);
|
||||
return FALSE;
|
||||
@@ -522,7 +492,7 @@ bool wxTempFile::Open(const wxString& strName)
|
||||
mode_t umaskOld = 0; // just to suppress compiler warning
|
||||
bool changedUmask;
|
||||
|
||||
struct stat st;
|
||||
wxStructStat st;
|
||||
if ( stat(strName.fn_str(), &st) == 0 )
|
||||
{
|
||||
// this assumes that only lower bits of st_mode contain the access
|
||||
@@ -572,12 +542,12 @@ bool wxTempFile::Commit()
|
||||
m_file.Close();
|
||||
|
||||
#ifndef __WXMAC__
|
||||
if ( wxFile::Exists(m_strName) && remove(m_strName.fn_str()) != 0 ) {
|
||||
if ( wxFile::Exists(m_strName) && wxRemove(m_strName.fn_str()) != 0 ) {
|
||||
wxLogSysError(_("can't remove file '%s'"), m_strName.c_str());
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if ( rename(m_strTemp.fn_str(), m_strName.fn_str()) != 0 ) {
|
||||
if ( wxRename(m_strTemp.fn_str(), m_strName.fn_str()) != 0 ) {
|
||||
wxLogSysError(_("can't commit changes to file '%s'"), m_strName.c_str());
|
||||
return FALSE;
|
||||
}
|
||||
@@ -600,7 +570,7 @@ void wxTempFile::Discard()
|
||||
{
|
||||
m_file.Close();
|
||||
#ifndef __WXMAC__
|
||||
if ( remove(m_strTemp.fn_str()) != 0 )
|
||||
if ( wxRemove(m_strTemp.fn_str()) != 0 )
|
||||
wxLogSysError(_("can't remove temporary file '%s'"), m_strTemp.c_str());
|
||||
#else
|
||||
if ( remove( wxUnix2MacFilename(m_strTemp.fn_str())) != 0 )
|
||||
|
||||
@@ -881,7 +881,7 @@ bool wxFileConfig::DeleteAll()
|
||||
{
|
||||
CleanUp();
|
||||
|
||||
if ( remove(m_strLocalFile.fn_str()) == -1 )
|
||||
if ( wxRemove(m_strLocalFile.fn_str()) == -1 )
|
||||
wxLogSysError(_("can't delete user configuration file '%s'"), m_strLocalFile.c_str());
|
||||
|
||||
m_strLocalFile = m_strGlobalFile = wxT("");
|
||||
|
||||
@@ -277,14 +277,10 @@ wxFileExists (const wxString& filename)
|
||||
return FALSE ;
|
||||
#else
|
||||
|
||||
#ifdef __SALFORDC__
|
||||
struct _stat stbuf;
|
||||
#else
|
||||
struct stat stbuf;
|
||||
#endif
|
||||
|
||||
if ((filename != wxT("")) && stat (wxFNSTRINGCAST filename.fn_str(), &stbuf) == 0)
|
||||
wxStructStat stbuf;
|
||||
if ((filename != wxT("")) && wxStat (wxFNSTRINGCAST filename.fn_str(), &stbuf) == 0)
|
||||
return TRUE;
|
||||
|
||||
return FALSE;
|
||||
#endif
|
||||
}
|
||||
@@ -1050,7 +1046,7 @@ wxRenameFile (const wxString& file1, const wxString& file2)
|
||||
return TRUE;
|
||||
#else
|
||||
// Normal system call
|
||||
if (0 == rename (wxFNSTRINGCAST file1.fn_str(), wxFNSTRINGCAST file2.fn_str()))
|
||||
if (0 == wxRename (wxFNSTRINGCAST file1.fn_str(), wxFNSTRINGCAST file2.fn_str()))
|
||||
return TRUE;
|
||||
#endif
|
||||
// Try to copy
|
||||
@@ -1065,7 +1061,7 @@ wxRenameFile (const wxString& file1, const wxString& file2)
|
||||
bool wxRemoveFile(const wxString& file)
|
||||
{
|
||||
#if defined(__VISUALC__) || defined(__BORLANDC__) || defined(__WATCOMC__)
|
||||
int flag = remove(wxFNSTRINGCAST file.fn_str());
|
||||
int flag = wxRemove(wxFNSTRINGCAST file.fn_str());
|
||||
#elif defined( __WXMAC__ )
|
||||
int flag = unlink(wxUnix2MacFilename( file ));
|
||||
#else
|
||||
@@ -1086,7 +1082,7 @@ bool wxMkdir(const wxString& dir, int perm)
|
||||
#if (!(defined(__WXMSW__) || defined(__OS2__))) || (defined(__GNUWIN32__) && !defined(__MINGW32__)) || defined(__WXWINE__)
|
||||
if ( mkdir(wxFNCONV(dirname), perm) != 0 )
|
||||
#else // !MSW and !OS/2 VAC++
|
||||
if ( mkdir(wxFNSTRINGCAST wxFNCONV(dirname)) != 0 )
|
||||
if ( wxMkdir(wxFNSTRINGCAST wxFNCONV(dirname)) != 0 )
|
||||
#endif // !MSW/MSW
|
||||
{
|
||||
wxLogSysError(_("Directory '%s' couldn't be created"), dirname);
|
||||
@@ -1109,7 +1105,7 @@ bool wxRmdir(const wxString& dir, int WXUNUSED(flags))
|
||||
#ifdef __SALFORDC__
|
||||
return FALSE; // What to do?
|
||||
#else
|
||||
return (rmdir(wxFNSTRINGCAST dir.fn_str()) == 0);
|
||||
return (wxRmdir(wxFNSTRINGCAST dir.fn_str()) == 0);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -1170,13 +1166,9 @@ bool wxPathExists(const wxChar *pszPathName)
|
||||
if ( wxEndsWithPathSeparator(pszPathName) && pszPathName[1] != wxT('\0') )
|
||||
strPath.Last() = wxT('\0');
|
||||
|
||||
#ifdef __SALFORDC__
|
||||
struct _stat st;
|
||||
#else
|
||||
struct stat st;
|
||||
#endif
|
||||
wxStructStat st;
|
||||
|
||||
return stat(wxFNSTRINGCAST strPath.fn_str(), &st) == 0 && (st.st_mode & S_IFDIR);
|
||||
return wxStat(wxFNSTRINGCAST strPath.fn_str(), &st) == 0 && (st.st_mode & S_IFDIR);
|
||||
}
|
||||
|
||||
// Get a temporary filename, opening and closing the file.
|
||||
@@ -1869,9 +1861,9 @@ void WXDLLEXPORT wxSplitPath(const wxChar *pszFileName,
|
||||
|
||||
time_t WXDLLEXPORT wxFileModificationTime(const wxString& filename)
|
||||
{
|
||||
struct stat buf;
|
||||
wxStructStat buf;
|
||||
|
||||
stat(filename.fn_str(), &buf);
|
||||
wxStat(filename.fn_str(), &buf);
|
||||
return buf.st_mtime;
|
||||
}
|
||||
|
||||
|
||||
@@ -655,7 +655,7 @@ void wxOnAssert(const wxChar *szFile, int nLine, const wxChar *szMsg)
|
||||
//case wxNO: nothing to do
|
||||
}
|
||||
#else // !GUI, but MSW
|
||||
switch ( ::MessageBox(NULL, szBuf, "Debug",
|
||||
switch ( ::MessageBox(NULL, szBuf, _T("Debug"),
|
||||
MB_YESNOCANCEL | MB_ICONSTOP ) ) {
|
||||
case IDYES:
|
||||
Trap();
|
||||
|
||||
@@ -230,7 +230,7 @@ bool wxResourceTable::ParseResourceFile(const wxString& filename)
|
||||
#ifdef __WXMAC__
|
||||
FILE *fd = fopen(wxUnix2MacFilename(filename.fn_str()), "r");
|
||||
#else
|
||||
FILE *fd = fopen(filename.fn_str(), "r");
|
||||
FILE *fd = wxFopen(filename.fn_str(), _T("r"));
|
||||
#endif
|
||||
if (!fd)
|
||||
return FALSE;
|
||||
@@ -2779,7 +2779,7 @@ bool wxResourceParseIncludeFile(const wxString& f, wxResourceTable *table)
|
||||
if (!table)
|
||||
table = wxDefaultResourceTable;
|
||||
|
||||
FILE *fd = fopen(f.fn_str(), "r");
|
||||
FILE *fd = wxFopen(f.fn_str(), _T("r"));
|
||||
if (!fd)
|
||||
{
|
||||
return FALSE;
|
||||
|
||||
@@ -108,7 +108,7 @@ bool wxIPV4address::Hostname(const wxString& name)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return (GAddress_INET_SetHostName(m_address, name.fn_str()) == GSOCK_NOERROR);
|
||||
return (GAddress_INET_SetHostName(m_address, name.mb_str()) == GSOCK_NOERROR);
|
||||
}
|
||||
|
||||
bool wxIPV4address::Hostname(unsigned long addr)
|
||||
@@ -118,7 +118,7 @@ bool wxIPV4address::Hostname(unsigned long addr)
|
||||
|
||||
bool wxIPV4address::Service(const wxString& name)
|
||||
{
|
||||
return (GAddress_INET_SetPortName(m_address, name.fn_str(), "tcp") == GSOCK_NOERROR);
|
||||
return (GAddress_INET_SetPortName(m_address, name.mb_str(), "tcp") == GSOCK_NOERROR);
|
||||
}
|
||||
|
||||
bool wxIPV4address::Service(unsigned short port)
|
||||
|
||||
@@ -305,7 +305,7 @@ bool wxTCPConnection::Execute(const wxChar *data, int size, wxIPCFormat format)
|
||||
m_codeco->Write8(format);
|
||||
|
||||
if (size < 0)
|
||||
size = strlen(data) + 1; // includes final NUL
|
||||
size = wxStrlen(data) + 1; // includes final NUL
|
||||
|
||||
m_codeco->Write32(size);
|
||||
m_sockstrm->Write(data, size);
|
||||
@@ -353,7 +353,7 @@ bool wxTCPConnection::Poke (const wxString& item, wxChar *data, int size, wxIPCF
|
||||
m_codeco->Write8(format);
|
||||
|
||||
if (size < 0)
|
||||
size = strlen(data) + 1; // includes final NUL
|
||||
size = wxStrlen(data) + 1; // includes final NUL
|
||||
|
||||
m_codeco->Write32(size);
|
||||
m_sockstrm->Write(data, size);
|
||||
@@ -409,7 +409,7 @@ bool wxTCPConnection::Advise (const wxString& item,
|
||||
m_codeco->Write8(format);
|
||||
|
||||
if (size < 0)
|
||||
size = strlen(data) + 1; // includes final NUL
|
||||
size = wxStrlen(data) + 1; // includes final NUL
|
||||
|
||||
m_codeco->Write32(size);
|
||||
m_sockstrm->Write(data, size);
|
||||
|
||||
@@ -284,17 +284,19 @@ wxTextInputStream& wxTextInputStream::operator>>(wxString& word)
|
||||
return *this;
|
||||
}
|
||||
|
||||
wxTextInputStream& wxTextInputStream::operator>>(wxChar& c)
|
||||
wxTextInputStream& wxTextInputStream::operator>>(char& c)
|
||||
{
|
||||
if (!m_input)
|
||||
{
|
||||
c = (wxChar) 0;
|
||||
c = 0;
|
||||
return *this;
|
||||
}
|
||||
|
||||
c = m_input.GetC();
|
||||
|
||||
if (EatEOL(c)) c=wxT('\n');
|
||||
if (EatEOL(c))
|
||||
c = '\n';
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
@@ -444,9 +446,14 @@ wxTextOutputStream& wxTextOutputStream::operator<<(const wxString& string)
|
||||
return *this;
|
||||
}
|
||||
|
||||
wxTextOutputStream& wxTextOutputStream::operator<<(wxChar c)
|
||||
wxTextOutputStream& wxTextOutputStream::operator<<(char c)
|
||||
{
|
||||
WriteString( wxString(c) );
|
||||
// these strange manipulations are needed in Unicode mode
|
||||
char buf[2];
|
||||
buf[0] = c;
|
||||
buf[1] = 0;
|
||||
|
||||
WriteString( wxString(buf) );
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
@@ -513,8 +513,8 @@ wxAcceleratorEntry *wxGetAccelFromString(const wxString& label)
|
||||
else
|
||||
#endif // 0
|
||||
{
|
||||
wxLogDebug(wxT("Unrecognized accel key '%s', accel "
|
||||
"string ignored."), current.c_str());
|
||||
wxLogDebug(wxT("Unrecognized accel key '%s', accel string ignored."),
|
||||
current.c_str());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -992,7 +992,7 @@ bool wxExprDatabase::Read(const wxString& filename)
|
||||
{
|
||||
noErrors = 0;
|
||||
|
||||
FILE *f = fopen(filename.fn_str(), "r");
|
||||
FILE *f = wxFopen(filename.fn_str(), _T("r"));
|
||||
if (f)
|
||||
{
|
||||
thewxExprDatabase = this;
|
||||
@@ -1024,7 +1024,7 @@ bool wxExprDatabase::ReadFromString(const wxString& buffer)
|
||||
|
||||
bool wxExprDatabase::Write(const wxString& fileName)
|
||||
{
|
||||
FILE *stream = fopen( fileName.fn_str(), "w+" );
|
||||
FILE *stream = wxFopen( fileName.fn_str(), _T("w+"));
|
||||
|
||||
if (!stream)
|
||||
return FALSE;
|
||||
|
||||
Reference in New Issue
Block a user