1. use a manifest constant wxNO_LEN instead of -1 for lengths everywhere

2. reimplemented UTF-16/32 conversions using To/FromWChar() API instead
   of MB2WC/WC2MB for Windows (or rather SIZEOF_WCHAR_T == 2 platforms),
   the first tangible result is that reading UTF-32BE text streams now
   works too
3. more off by 1 fixes


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38585 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2006-04-05 22:12:45 +00:00
parent e6a87338f0
commit 467e04791c
4 changed files with 511 additions and 415 deletions

View File

@@ -1013,13 +1013,7 @@ wxString::wxString(const char *psz, const wxMBConv& conv, size_t nLength)
{
if ( nLength == npos )
{
nLength = (size_t)-1;
}
else if ( nLength == length() )
{
// this is important to avoid copying the string in cMB2WC: we're
// already NUL-terminated so we can pass this NUL with the data
nLength++;
nLength = wxNO_LEN;
}
size_t nLenWide;
@@ -1048,13 +1042,7 @@ wxString::wxString(const wchar_t *pwz, const wxMBConv& conv, size_t nLength)
{
if ( nLength == npos )
{
nLength = (size_t)-1;
}
else if ( nLength == length() )
{
// this is important to avoid copying the string in cMB2WC: we're
// already NUL-terminated so we can pass this NUL with the data
nLength++;
nLength = wxNO_LEN;
}
size_t nLenMB;