diff options
author | Fridrich Štrba <fridrich.strba@bluewin.ch> | 2014-01-14 08:57:35 +0100 |
---|---|---|
committer | Fridrich Štrba <fridrich.strba@bluewin.ch> | 2014-01-14 08:57:47 +0100 |
commit | 766f718ebb4deda1a294cc1cfe137a75dfb0f6f8 (patch) | |
tree | 20a46162cf21dc62f3b9615ad6a5584b1d6d04b3 /external/libabw | |
parent | aa4ed8c883eba545737da5de3402f02ad5712b1d (diff) |
Fix a silly with ABW footnotes/endnotes
Change-Id: I026f9c664ff7dec51e511ad439ab563d2cc0c201
Diffstat (limited to 'external/libabw')
-rw-r--r-- | external/libabw/UnpackedTarball_libabw.mk | 4 | ||||
-rw-r--r-- | external/libabw/libabw-0.0.0-footendnote.patch.1 | 101 |
2 files changed, 105 insertions, 0 deletions
diff --git a/external/libabw/UnpackedTarball_libabw.mk b/external/libabw/UnpackedTarball_libabw.mk index 6288b0ef83aa..8a565fb66abb 100644 --- a/external/libabw/UnpackedTarball_libabw.mk +++ b/external/libabw/UnpackedTarball_libabw.mk @@ -11,4 +11,8 @@ $(eval $(call gb_UnpackedTarball_UnpackedTarball,libabw)) $(eval $(call gb_UnpackedTarball_set_tarball,libabw,$(ABW_TARBALL))) +$(eval $(call gb_UnpackedTarball_add_patches,libabw,\ + external/libabw/libabw-0.0.0-footendnote.patch.1 \ +)) + # vim: set noet sw=4 ts=4: diff --git a/external/libabw/libabw-0.0.0-footendnote.patch.1 b/external/libabw/libabw-0.0.0-footendnote.patch.1 new file mode 100644 index 000000000000..4c9e81308098 --- /dev/null +++ b/external/libabw/libabw-0.0.0-footendnote.patch.1 @@ -0,0 +1,101 @@ +--- a/src/lib/ABWContentCollector.cpp ++++ b/src/lib/ABWContentCollector.cpp +@@ -289,6 +289,7 @@ libabw::ABWContentParsingState::ABWContentParsingState() : + m_isSpanOpened(false), + m_isParagraphOpened(false), + m_isListElementOpened(false), ++ m_inParagraphOrListElement(false), + + m_currentSectionStyle(), + m_currentParagraphStyle(), +@@ -334,6 +335,7 @@ libabw::ABWContentParsingState::ABWContentParsingState(const ABWContentParsingSt + m_isSpanOpened(ps.m_isSpanOpened), + m_isParagraphOpened(ps.m_isParagraphOpened), + m_isListElementOpened(ps.m_isListElementOpened), ++ m_inParagraphOrListElement(ps.m_inParagraphOrListElement), + + m_currentSectionStyle(ps.m_currentSectionStyle), + m_currentParagraphStyle(ps.m_currentParagraphStyle), +@@ -500,6 +502,7 @@ void libabw::ABWContentCollector::collectParagraphProperties(const char *level, + parsePropString(props, tmpProps); + for (std::map<std::string, std::string>::const_iterator iter = tmpProps.begin(); iter != tmpProps.end(); ++iter) + m_ps->m_currentParagraphStyle[iter->first] = iter->second; ++ m_ps->m_inParagraphOrListElement = true; + } + + void libabw::ABWContentCollector::collectCharacterProperties(const char *style, const char *props) +@@ -748,6 +751,7 @@ void libabw::ABWContentCollector::closeParagraphOrListElement() + _closeParagraph(); + _closeListElement(); + m_ps->m_currentParagraphStyle.clear(); ++ m_ps->m_inParagraphOrListElement = false; + } + + void libabw::ABWContentCollector::openLink(const char *href) +@@ -807,6 +811,8 @@ void libabw::ABWContentCollector::insertPageBreak() + + void libabw::ABWContentCollector::insertText(const WPXString &text) + { ++ if (!m_ps->m_inParagraphOrListElement) ++ return; + if (!m_ps->m_isSpanOpened) + _openSpan(); + +--- a/src/lib/ABWContentCollector.h ++++ b/src/lib/ABWContentCollector.h +@@ -71,6 +71,7 @@ struct ABWContentParsingState + bool m_isSpanOpened; + bool m_isParagraphOpened; + bool m_isListElementOpened; ++ bool m_inParagraphOrListElement; + + std::map<std::string, std::string> m_currentSectionStyle; + std::map<std::string, std::string> m_currentParagraphStyle; +--- a/src/lib/ABWParser.cpp ++++ b/src/lib/ABWParser.cpp +@@ -92,7 +92,7 @@ void appendFromBase64(WPXBinaryData &data, const char *base64Data) + } // namespace libabw + + libabw::ABWParser::ABWParser(WPXInputStream *input, WPXDocumentInterface *iface) +- : m_input(input), m_iface(iface), m_collector(0), m_inParagraph(false) ++ : m_input(input), m_iface(iface), m_collector(0) + { + } + +@@ -173,8 +173,7 @@ void libabw::ABWParser::processXmlNode(xmlTextReaderPtr reader) + { + WPXString text((const char *)xmlTextReaderConstValue(reader)); + ABW_DEBUG_MSG(("ABWParser::processXmlNode: text %s\n", text.cstr())); +- if (m_inParagraph && m_collector) +- m_collector->insertText(text); ++ m_collector->insertText(text); + } + switch (tokenId) + { +@@ -219,16 +218,10 @@ void libabw::ABWParser::processXmlNode(xmlTextReaderPtr reader) + break; + case XML_P: + if (XML_READER_TYPE_ELEMENT == tokenType) +- { + readP(reader); +- m_inParagraph = true; +- } + if (XML_READER_TYPE_END_ELEMENT == tokenType || emptyToken > 0) +- { +- m_inParagraph = false; + if (m_collector) + m_collector->closeParagraphOrListElement(); +- } + break; + case XML_C: + if (XML_READER_TYPE_ELEMENT == tokenType) +--- a/src/lib/ABWParser.h ++++ b/src/lib/ABWParser.h +@@ -61,7 +61,6 @@ private: + WPXInputStream *m_input; + WPXDocumentInterface *m_iface; + ABWCollector *m_collector; +- bool m_inParagraph; + }; + + } // namespace libabw |