From: Vadim Zeitlin Date: Thu, 30 Mar 2006 14:04:46 +0000 (+0000) Subject: don't process previously read characters twice in OnRead() X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/c1981a2fa408700243400606f93679b2befe1ac2 don't process previously read characters twice in OnRead() git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38449 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/common/textfile.cpp b/src/common/textfile.cpp index 9bf2947f43..f9cd34077d 100644 --- a/src/common/textfile.cpp +++ b/src/common/textfile.cpp @@ -116,6 +116,10 @@ bool wxTextFile::OnRead(wxMBConv& conv) if ( nRead == 0 ) break; + // save the number characters which we already processed during the + // last loop iteration + const size_t lenOld = str.length(); + #if wxUSE_UNICODE // we have to properly NUL-terminate the string for any encoding it may // use -- 4 NULs should be enough for everyone (this is why we add 4 @@ -144,7 +148,7 @@ bool wxTextFile::OnRead(wxMBConv& conv) // the beginning of the current line, changes inside the loop wxString::const_iterator lineStart = str.begin(); const wxString::const_iterator end = str.end(); - for ( wxString::const_iterator p = lineStart; p != end; p++ ) + for ( wxString::const_iterator p = lineStart + lenOld; p != end; p++ ) { const wxChar ch = *p; switch ( ch )