diff --git a/src/common/filefn.cpp b/src/common/filefn.cpp index fd4b6b7ae9..61c33fbcbb 100644 --- a/src/common/filefn.cpp +++ b/src/common/filefn.cpp @@ -1522,15 +1522,11 @@ wxChar *wxGetWorkingDirectory(wxChar *buf, int sz) wxString wxGetCwd() { - wxString str; - - // we can't create wxStringBuffer object inline: Sun CC generates buggy - // code in this case! - { - wxStringBuffer buf(str, _MAXPATHLEN); - wxGetWorkingDirectory(buf, _MAXPATHLEN); - } - + wxChar *buffer = new wxChar[_MAXPATHLEN]; + wxGetWorkingDirectory(buffer, _MAXPATHLEN); + wxString str( buffer ); + delete [] buffer; + return str; } diff --git a/src/common/strconv.cpp b/src/common/strconv.cpp index f1d4c56ea2..b4eaa65148 100644 --- a/src/common/strconv.cpp +++ b/src/common/strconv.cpp @@ -661,6 +661,9 @@ size_t IC_CharSet::MB2WC(wchar_t *buf, const char *psz, size_t n) // convert to native endianness WC_BSWAP(buf /* _not_ bufPtr */, res) } + + // iconv doesn't seem to set the trailing 0 + buf[res] = 0; } else {