diff options
Diffstat (limited to 'writerperfect/source/filter/OdgGenerator.cxx')
-rw-r--r-- | writerperfect/source/filter/OdgGenerator.cxx | 28 |
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: */ |