1. changed all "wxMBConv& conv" parameters to "const wxMBConv&"

2. this allows to use wxConvAuto() instead of wxConvUTF8 as default value
   for this parameter in the classes which read text from the file: wxConvAuto
   automatically recognizes the BOM at the start of file and uses the correct
   conversion
3. don't use Windows for UTF-7 conversions as there is no way to make it
   fail on invalid UTF-7 strings; use our own wxMBConvUtf7 instead


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38570 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2006-04-05 14:37:47 +00:00
parent cc845a6142
commit 830f8f11bc
21 changed files with 413 additions and 103 deletions

View File

@@ -86,7 +86,7 @@ bool wxTextFile::OnClose()
}
bool wxTextFile::OnRead(wxMBConv& conv)
bool wxTextFile::OnRead(const wxMBConv& conv)
{
// file should be opened and we must be in it's beginning
wxASSERT( m_file.IsOpened() && m_file.Tell() == 0 );
@@ -114,18 +114,8 @@ bool wxTextFile::OnRead(wxMBConv& conv)
return false;
}
eof = nRead == 0;
if ( eof )
{
// append 4 trailing NUL bytes: this is needed to ensure that the
// string is going to be NUL-terminated, whatever is the encoding
// used (even UTF-32)
block[0] =
block[1] =
block[2] =
block[3] = '\0';
nRead = 4;
}
if ( nRead == 0 )
break;
// this shouldn't happen but don't overwrite the buffer if it does
wxCHECK_MSG( bufPos + nRead <= bufSize, false,
@@ -136,7 +126,7 @@ bool wxTextFile::OnRead(wxMBConv& conv)
bufPos += nRead;
}
const wxString str(buf, conv);
const wxString str(buf, conv, bufPos);
// this doesn't risk to happen in ANSI build
#if wxUSE_UNICODE
@@ -211,7 +201,7 @@ bool wxTextFile::OnRead(wxMBConv& conv)
}
bool wxTextFile::OnWrite(wxTextFileType typeNew, wxMBConv& conv)
bool wxTextFile::OnWrite(wxTextFileType typeNew, const wxMBConv& conv)
{
wxFileName fn = m_strBufferName;