MarkupParser: Don't append line-break to last paragraph.

This commit is contained in:
Stephan Aßmus 2014-01-26 11:10:28 +01:00
parent 547466c035
commit 38c65defc5
2 changed files with 9 additions and 6 deletions

View File

@ -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);

View File

@ -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;