fixed bug #947908: wxString("abcdefghij", wxConvLibc, n) returns an empty string for every n>0 and n<string length (Unicode mode only)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27131 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -970,9 +970,14 @@ wxString::wxString(const char *psz, wxMBConv& conv, size_t nLength)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
wxWCharBuffer buf(nLen + 1);
|
// the input buffer to MB2WC must always be NUL-terminated
|
||||||
|
wxCharBuffer inBuf(nLen);
|
||||||
|
memcpy(inBuf.data(), psz, nLen);
|
||||||
|
inBuf.data()[nLen] = '\0';
|
||||||
|
|
||||||
|
wxWCharBuffer buf(nLen);
|
||||||
// MB2WC wants the buffer size, not the string length hence +1
|
// MB2WC wants the buffer size, not the string length hence +1
|
||||||
nLen = conv.MB2WC(buf.data(), psz, nLen + 1);
|
nLen = conv.MB2WC(buf.data(), inBuf.data(), nLen + 1);
|
||||||
|
|
||||||
if ( nLen != (size_t)-1 )
|
if ( nLen != (size_t)-1 )
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user