MarkupParser: Don't append line-break to last paragraph.
This commit is contained in:
@@ -157,13 +157,13 @@ MarkupParser::_ParseText(const BString& text)
|
|||||||
case '\n':
|
case '\n':
|
||||||
_CopySpan(text, start, offset);
|
_CopySpan(text, start, offset);
|
||||||
if (offset > 0 && c[-1] != ' ')
|
if (offset > 0 && c[-1] != ' ')
|
||||||
_FinishParagraph();
|
_FinishParagraph(offset >= charCount - 1);
|
||||||
start = offset + 1;
|
start = offset + 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case '\0':
|
case '\0':
|
||||||
_CopySpan(text, start, offset);
|
_CopySpan(text, start, offset);
|
||||||
_FinishParagraph();
|
_FinishParagraph(true);
|
||||||
start = offset + 1;
|
start = offset + 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -208,11 +208,12 @@ MarkupParser::_ParseText(const BString& text)
|
|||||||
&& c[0] == '=' && c[1] == '\n') {
|
&& c[0] == '=' && c[1] == '\n') {
|
||||||
|
|
||||||
_CopySpan(text, start, offset - 1);
|
_CopySpan(text, start, offset - 1);
|
||||||
_FinishParagraph();
|
|
||||||
|
|
||||||
offset += 2;
|
offset += 2;
|
||||||
c += 2;
|
c += 2;
|
||||||
|
|
||||||
|
_FinishParagraph(offset >= charCount - 1);
|
||||||
|
|
||||||
start = offset + 1;
|
start = offset + 1;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -284,9 +285,11 @@ MarkupParser::_ToggleStyle(const CharacterStyle& style)
|
|||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
MarkupParser::_FinishParagraph()
|
MarkupParser::_FinishParagraph(bool isLast)
|
||||||
{
|
{
|
||||||
|
if (!isLast)
|
||||||
fCurrentParagraph.Append(TextSpan("\n", *fCurrentCharacterStyle));
|
fCurrentParagraph.Append(TextSpan("\n", *fCurrentCharacterStyle));
|
||||||
|
|
||||||
fTextDocument->Append(fCurrentParagraph);
|
fTextDocument->Append(fCurrentParagraph);
|
||||||
fCurrentParagraph.Clear();
|
fCurrentParagraph.Clear();
|
||||||
fCurrentParagraph.SetStyle(fParagraphStyle);
|
fCurrentParagraph.SetStyle(fParagraphStyle);
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ private:
|
|||||||
void _CopySpan(const BString& text,
|
void _CopySpan(const BString& text,
|
||||||
int32& start, int32 end);
|
int32& start, int32 end);
|
||||||
void _ToggleStyle(const CharacterStyle& style);
|
void _ToggleStyle(const CharacterStyle& style);
|
||||||
void _FinishParagraph();
|
void _FinishParagraph(bool isLast);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
CharacterStyle fNormalStyle;
|
CharacterStyle fNormalStyle;
|
||||||
|
|||||||
Reference in New Issue
Block a user