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
This commit is contained in:
Václav Slavík
2006-10-09 19:28:46 +00:00
parent 6003de2fe4
commit 82bf96f548

View File

@@ -156,9 +156,17 @@ bool wxTextFile::OnRead(const wxMBConv& conv)
case '\n': case '\n':
// could be a DOS or Unix EOL // could be a DOS or Unix EOL
if ( chLast == '\r' ) if ( chLast == '\r' )
{
if ( p - 1 >= lineStart )
{ {
AddLine(wxString(lineStart, p - 1), wxTextFileType_Dos); 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 else // bare '\n', Unix style
{ {
AddLine(wxString(lineStart, p), wxTextFileType_Unix); AddLine(wxString(lineStart, p), wxTextFileType_Unix);
@@ -182,7 +190,15 @@ bool wxTextFile::OnRead(const wxMBConv& conv)
if ( chLast == '\r' ) if ( chLast == '\r' )
{ {
// Mac line termination // Mac line termination
if ( p - 1 >= lineStart )
{
AddLine(wxString(lineStart, p - 1), wxTextFileType_Mac); AddLine(wxString(lineStart, p - 1), wxTextFileType_Mac);
}
else
{
// there were two line endings, so add an empty line:
AddLine(wxEmptyString, wxTextFileType_Mac);
}
lineStart = p; lineStart = p;
} }
} }