diff --git a/src/apps/haiku-depot/textview/MarkupParser.cpp b/src/apps/haiku-depot/textview/MarkupParser.cpp index 85d6c46851..86e09d77ca 100644 --- a/src/apps/haiku-depot/textview/MarkupParser.cpp +++ b/src/apps/haiku-depot/textview/MarkupParser.cpp @@ -157,13 +157,13 @@ MarkupParser::_ParseText(const BString& text) case '\n': _CopySpan(text, start, offset); if (offset > 0 && c[-1] != ' ') - _FinishParagraph(); + _FinishParagraph(offset >= charCount - 1); start = offset + 1; break; case '\0': _CopySpan(text, start, offset); - _FinishParagraph(); + _FinishParagraph(true); start = offset + 1; break; @@ -208,11 +208,12 @@ MarkupParser::_ParseText(const BString& text) && c[0] == '=' && c[1] == '\n') { _CopySpan(text, start, offset - 1); - _FinishParagraph(); offset += 2; c += 2; + _FinishParagraph(offset >= charCount - 1); + start = offset + 1; } break; @@ -284,9 +285,11 @@ MarkupParser::_ToggleStyle(const CharacterStyle& style) void -MarkupParser::_FinishParagraph() +MarkupParser::_FinishParagraph(bool isLast) { - fCurrentParagraph.Append(TextSpan("\n", *fCurrentCharacterStyle)); + if (!isLast) + fCurrentParagraph.Append(TextSpan("\n", *fCurrentCharacterStyle)); + fTextDocument->Append(fCurrentParagraph); fCurrentParagraph.Clear(); fCurrentParagraph.SetStyle(fParagraphStyle); diff --git a/src/apps/haiku-depot/textview/MarkupParser.h b/src/apps/haiku-depot/textview/MarkupParser.h index 4cddd76b1d..c810435dce 100644 --- a/src/apps/haiku-depot/textview/MarkupParser.h +++ b/src/apps/haiku-depot/textview/MarkupParser.h @@ -40,7 +40,7 @@ private: void _CopySpan(const BString& text, int32& start, int32 end); void _ToggleStyle(const CharacterStyle& style); - void _FinishParagraph(); + void _FinishParagraph(bool isLast); private: CharacterStyle fNormalStyle;