From: Václav Slavík Date: Mon, 9 Oct 2006 19:28:46 +0000 (+0000) Subject: don't crash on weird line endings like \r\r\n X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/82bf96f54849a84b449d1b9f0fcff8f28649b07e don't crash on weird line endings like \r\r\n git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41829 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/common/textfile.cpp b/src/common/textfile.cpp index 3334375b44..f61220dc06 100644 --- a/src/common/textfile.cpp +++ b/src/common/textfile.cpp @@ -157,7 +157,15 @@ bool wxTextFile::OnRead(const wxMBConv& conv) // could be a DOS or Unix EOL if ( chLast == '\r' ) { - AddLine(wxString(lineStart, p - 1), wxTextFileType_Dos); + if ( p - 1 >= lineStart ) + { + AddLine(wxString(lineStart, p - 1), wxTextFileType_Dos); + } + else + { + // there were two line endings, so add an empty line: + AddLine(wxEmptyString, wxTextFileType_Dos); + } } else // bare '\n', Unix style { @@ -182,7 +190,15 @@ bool wxTextFile::OnRead(const wxMBConv& conv) if ( chLast == '\r' ) { // Mac line termination - AddLine(wxString(lineStart, p - 1), wxTextFileType_Mac); + if ( p - 1 >= lineStart ) + { + AddLine(wxString(lineStart, p - 1), wxTextFileType_Mac); + } + else + { + // there were two line endings, so add an empty line: + AddLine(wxEmptyString, wxTextFileType_Mac); + } lineStart = p; } }