summaryrefslogtreecommitdiff
path: root/writerperfect/source/filter/OdgGenerator.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'writerperfect/source/filter/OdgGenerator.cxx')
-rw-r--r--writerperfect/source/filter/OdgGenerator.cxx28
1 files changed, 26 insertions, 2 deletions
diff --git a/writerperfect/source/filter/OdgGenerator.cxx b/writerperfect/source/filter/OdgGenerator.cxx
index f873343b5512..e8f365bda5eb 100644
--- a/writerperfect/source/filter/OdgGenerator.cxx
+++ b/writerperfect/source/filter/OdgGenerator.cxx
@@ -1750,8 +1750,32 @@ void OdgGenerator::endTextSpan()
void OdgGenerator::insertText(const WPXString &text)
{
- DocumentElement *pText = new TextElement(text);
- mpImpl->mBodyElements.push_back(pText);
+ int length = text.len();
+ WPXString out;
+ for (int curr = 0; curr < length; ++curr)
+ {
+ char ch = text.cstr()[curr];
+ if (ch == '\n')
+ {
+ if (out.len() != 0)
+ {
+ DocumentElement *pText = new TextElement(out);
+ mpImpl->mBodyElements.push_back(pText);
+ out.clear();
+ }
+ mpImpl->mBodyElements.push_back(new TagOpenElement("text:line-break"));
+ mpImpl->mBodyElements.push_back(new TagCloseElement("text:line-break"));
+ }
+ else
+ {
+ out.append(ch);
+ }
+ }
+ if (out.len() != 0)
+ {
+ DocumentElement *pText = new TextElement(out);
+ mpImpl->mBodyElements.push_back(pText);
+ }
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */