writerfilter/source/rtftok/rtfdocumentimpl.cxx | 134 ++++++++++++------------- writerfilter/source/rtftok/rtfdocumentimpl.hxx | 18 +-- writerfilter/source/rtftok/rtflistener.hxx | 30 ++--- writerfilter/source/rtftok/rtflookahead.cxx | 32 ++--- writerfilter/source/rtftok/rtflookahead.hxx | 16 +- writerfilter/source/rtftok/rtftokenizer.cxx | 56 +++++----- writerfilter/source/rtftok/rtftokenizer.hxx | 6 - 7 files changed, 146 insertions(+), 146 deletions(-)
New commits: commit d40c992e6fd2d876b06c2890ca574a8b7ad20112 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Tue Dec 23 20:09:02 2014 +0100 writerfilter: turn RTFError into a C++11 scoped enumeration Change-Id: Ib909ea6f8ed18a008f9e5079b88fc862abe13da2 diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index 1c605dd..0664af6 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -700,31 +700,31 @@ void RTFDocumentImpl::resolve(Stream& rMapper) m_pMapperStream = &rMapper; switch (m_pTokenizer->resolveParse()) { - case ERROR_OK: - SAL_INFO("writerfilter", OSL_THIS_FUNC << ": finished without errors"); + case RTFError::OK: + SAL_INFO("writerfilter", "RTFDocumentImpl::resolve: finished without errors"); break; - case ERROR_GROUP_UNDER: - SAL_INFO("writerfilter", OSL_THIS_FUNC << ": unmatched '}'"); + case RTFError::GROUP_UNDER: + SAL_INFO("writerfilter", "RTFDocumentImpl::resolve: unmatched '}'"); break; - case ERROR_GROUP_OVER: - SAL_INFO("writerfilter", OSL_THIS_FUNC << ": unmatched '{'"); + case RTFError::GROUP_OVER: + SAL_INFO("writerfilter", "RTFDocumentImpl::resolve: unmatched '{'"); throw io::WrongFormatException(m_pTokenizer->getPosition()); break; - case ERROR_EOF: - SAL_INFO("writerfilter", OSL_THIS_FUNC << ": unexpected end of file"); + case RTFError::UNEXPECTED_EOF: + SAL_INFO("writerfilter", "RTFDocumentImpl::resolve: unexpected end of file"); throw io::WrongFormatException(m_pTokenizer->getPosition()); break; - case ERROR_HEX_INVALID: - SAL_INFO("writerfilter", OSL_THIS_FUNC << ": invalid hex char"); + case RTFError::HEX_INVALID: + SAL_INFO("writerfilter", "RTFDocumentImpl::resolve: invalid hex char"); throw io::WrongFormatException(m_pTokenizer->getPosition()); break; - case ERROR_CHAR_OVER: - SAL_INFO("writerfilter", OSL_THIS_FUNC << ": characters after last '}'"); + case RTFError::CHAR_OVER: + SAL_INFO("writerfilter", "RTFDocumentImpl::resolve: characters after last '}'"); break; } } -int RTFDocumentImpl::resolvePict(bool const bInline, uno::Reference<drawing::XShape> const& i_xShape) +RTFError RTFDocumentImpl::resolvePict(bool const bInline, uno::Reference<drawing::XShape> const& i_xShape) { SvMemoryStream aStream; SvStream* pStream = nullptr; @@ -744,7 +744,7 @@ int RTFDocumentImpl::resolvePict(bool const bInline, uno::Reference<drawing::XSh b = b << 4; sal_Int8 parsed = m_pTokenizer->asHex(ch); if (parsed == -1) - return ERROR_HEX_INVALID; + return RTFError::HEX_INVALID; b += parsed; count--; if (!count) @@ -761,7 +761,7 @@ int RTFDocumentImpl::resolvePict(bool const bInline, uno::Reference<drawing::XSh if (!pStream->Tell()) // No destination text? Then we'll get it later. - return 0; + return RTFError::OK; // Store, and get its URL. pStream->Seek(0); @@ -849,7 +849,7 @@ int RTFDocumentImpl::resolvePict(bool const bInline, uno::Reference<drawing::XSh RTFValue::Pointer_t pShapeValue(new RTFValue(xShape)); m_aObjectAttributes.set(NS_ooxml::LN_shape, pShapeValue); - return 0; + return RTFError::OK; } if (xPropertySet.is()) @@ -860,7 +860,7 @@ int RTFDocumentImpl::resolvePict(bool const bInline, uno::Reference<drawing::XSh // Send the shape directly, no section is started, to additional properties will be ignored anyway. Mapper().startShape(xShape); Mapper().endShape(); - return 0; + return RTFError::OK; } // Send it to the dmapper. @@ -992,10 +992,10 @@ int RTFDocumentImpl::resolvePict(bool const bInline, uno::Reference<drawing::XSh m_aStates.top().pCurrentBuffer->push_back(Buf_t(BUFFER_PROPS, pValue)); } - return 0; + return RTFError::OK; } -int RTFDocumentImpl::resolveChars(char ch) +RTFError RTFDocumentImpl::resolveChars(char ch) { if (m_aStates.top().nInternalState == INTERNAL_BIN) { @@ -1007,7 +1007,7 @@ int RTFDocumentImpl::resolveChars(char ch) m_pBinaryData->WriteChar(ch); } m_aStates.top().nInternalState = INTERNAL_NORMAL; - return 0; + return RTFError::OK; } @@ -1074,21 +1074,21 @@ int RTFDocumentImpl::resolveChars(char ch) { if (!bSkipped) m_aHexBuffer.append(ch); - return 0; + return RTFError::OK; } if (m_aStates.top().nDestinationState == DESTINATION_SKIP) - return 0; + return RTFError::OK; OString aStr = aBuf.makeStringAndClear(); if (m_aStates.top().nDestinationState == DESTINATION_LEVELNUMBERS) { if (aStr.toChar() != ';') m_aStates.top().aLevelNumbers.push_back(sal_Int32(ch)); - return 0; + return RTFError::OK; } OUString aOUStr(OStringToOUString(aStr, m_aStates.top().nCurrentEncoding)); - SAL_INFO("writerfilter", OSL_THIS_FUNC << ": collected '" << aOUStr << "'"); + SAL_INFO("writerfilter", "RTFDocumentImpl::resolveChars: collected '" << aOUStr << "'"); if (m_aStates.top().nDestinationState == DESTINATION_COLORTABLE) { @@ -1103,7 +1103,7 @@ int RTFDocumentImpl::resolveChars(char ch) m_aHexBuffer.append(aStr); checkUnicode(/*bUnicode =*/ false, /*bHex =*/ true); - return 0; + return RTFError::OK; } bool RTFFrame::inFrame() @@ -1497,7 +1497,7 @@ void RTFDocumentImpl::replayBuffer(RTFBuffer_t& rBuffer, } -int RTFDocumentImpl::dispatchDestination(RTFKeyword nKeyword) +RTFError RTFDocumentImpl::dispatchDestination(RTFKeyword nKeyword) { setNeedSect(); checkUnicode(/*bUnicode =*/ true, /*bHex =*/ true); @@ -2032,7 +2032,7 @@ int RTFDocumentImpl::dispatchDestination(RTFKeyword nKeyword) { m_aMathBuffer.appendOpeningTag(aSymbol.nToken); m_aStates.top().nDestinationState = aSymbol.eDestination; - return 0; + return RTFError::OK; } SAL_INFO("writerfilter", "TODO handle destination '" << lcl_RtfToString(nKeyword) << "'"); @@ -2046,10 +2046,10 @@ int RTFDocumentImpl::dispatchDestination(RTFKeyword nKeyword) // new destination => use new destination text m_aStates.top().pDestinationText = &m_aStates.top().aDestinationText; - return 0; + return RTFError::OK; } -int RTFDocumentImpl::dispatchSymbol(RTFKeyword nKeyword) +RTFError RTFDocumentImpl::dispatchSymbol(RTFKeyword nKeyword) { setNeedSect(); if (nKeyword != RTF_HEXCHAR) @@ -2062,7 +2062,7 @@ int RTFDocumentImpl::dispatchSymbol(RTFKeyword nKeyword) { // very special handling since text() will eat lone '\n' singleChar('\n'); - return 0; + return RTFError::OK; } // Trivial symbols sal_uInt8 cCh = 0; @@ -2108,7 +2108,7 @@ int RTFDocumentImpl::dispatchSymbol(RTFKeyword nKeyword) { OUString aStr(OStringToOUString(OString(cCh), RTL_TEXTENCODING_MS_1252)); text(aStr); - return 0; + return RTFError::OK; } switch (nKeyword) @@ -2117,7 +2117,7 @@ int RTFDocumentImpl::dispatchSymbol(RTFKeyword nKeyword) { m_bSkipUnknown = true; aSkip.setReset(false); - return 0; + return RTFError::OK; } break; case RTF_PAR: @@ -2410,7 +2410,7 @@ int RTFDocumentImpl::dispatchSymbol(RTFKeyword nKeyword) } break; } - return 0; + return RTFError::OK; } @@ -2517,7 +2517,7 @@ void RTFDocumentImpl::resetTableRowProperties() m_nTopLevelCurrentCellX = 0; } -int RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword) +RTFError RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword) { setNeedSect(); checkUnicode(/*bUnicode =*/ true, /*bHex =*/ true); @@ -2541,7 +2541,7 @@ int RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword) { RTFValue::Pointer_t pValue(new RTFValue(nSprm)); m_aStates.top().aCharacterAttributes.set(NS_ooxml::LN_CT_Underline_val, pValue); - return 0; + return RTFError::OK; } // Indentation @@ -2570,7 +2570,7 @@ int RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword) RTFValue::Pointer_t pValue(new RTFValue(nParam)); m_aStates.top().aParagraphSprms.set(NS_ooxml::LN_CT_PPrBase_jc, pValue); m_bNeedPap = true; - return 0; + return RTFError::OK; } // Font Alignment @@ -2599,7 +2599,7 @@ int RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword) { RTFValue::Pointer_t pValue(new RTFValue(nParam)); m_aStates.top().aParagraphSprms.set(NS_ooxml::LN_CT_PPrBase_textAlignment, pValue); - return 0; + return RTFError::OK; } // Tab kind. @@ -2621,7 +2621,7 @@ int RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword) { RTFValue::Pointer_t pValue(new RTFValue(nParam)); m_aStates.top().aTabAttributes.set(NS_ooxml::LN_CT_TabStop_val, pValue); - return 0; + return RTFError::OK; } // Tab lead. @@ -2652,7 +2652,7 @@ int RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword) { RTFValue::Pointer_t pValue(new RTFValue(nParam)); m_aStates.top().aTabAttributes.set(NS_ooxml::LN_CT_TabStop_leader, pValue); - return 0; + return RTFError::OK; } // Border types @@ -2714,7 +2714,7 @@ int RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword) { RTFValue::Pointer_t pValue(new RTFValue(nParam)); lcl_putBorderProperty(m_aStates, NS_ooxml::LN_CT_Border_val, pValue); - return 0; + return RTFError::OK; } } @@ -2747,7 +2747,7 @@ int RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword) } RTFValue::Pointer_t pValue(new RTFValue(nParam)); m_aStates.top().aSectionSprms.set(NS_ooxml::LN_EG_SectPrContents_type, pValue); - return 0; + return RTFError::OK; } // Footnote numbering @@ -2778,7 +2778,7 @@ int RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword) { RTFValue::Pointer_t pValue(new RTFValue(nParam)); lcl_putNestedSprm(m_aDefaultState.aParagraphSprms, NS_ooxml::LN_EG_SectPrContents_footnotePr, NS_ooxml::LN_CT_FtnProps_numFmt, pValue); - return 0; + return RTFError::OK; } // Footnote restart type @@ -2800,7 +2800,7 @@ int RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword) { RTFValue::Pointer_t pValue(new RTFValue(nParam)); lcl_putNestedSprm(m_aDefaultState.aParagraphSprms, NS_ooxml::LN_EG_SectPrContents_footnotePr, NS_ooxml::LN_EG_FtnEdnNumProps_numRestart, pValue); - return 0; + return RTFError::OK; } // Endnote numbering @@ -2831,7 +2831,7 @@ int RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword) { RTFValue::Pointer_t pValue(new RTFValue(nParam)); lcl_putNestedSprm(m_aDefaultState.aParagraphSprms, NS_ooxml::LN_EG_SectPrContents_endnotePr, NS_ooxml::LN_CT_EdnProps_numFmt, pValue); - return 0; + return RTFError::OK; } switch (nKeyword) @@ -2852,7 +2852,7 @@ int RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword) { RTFValue::Pointer_t const pValue(new RTFValue(nParam)); m_aStates.top().aTableRowSprms.set(NS_ooxml::LN_CT_TrPrBase_jc, pValue); - return 0; + return RTFError::OK; } // Cell Text Flow @@ -2910,7 +2910,7 @@ int RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword) RTFValue::Pointer_t pValue(new RTFValue(1)); m_aStates.top().aParagraphSprms.erase(NS_ooxml::LN_inTbl); m_aStates.top().aParagraphSprms.set(nParam, pValue); - return 0; + return RTFError::OK; } switch (nKeyword) @@ -3517,10 +3517,10 @@ int RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword) } break; } - return 0; + return RTFError::OK; } -int RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam) +RTFError RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam) { setNeedSect(); checkUnicode(/*bUnicode =*/ nKeyword != RTF_U, /*bHex =*/ true); @@ -3569,7 +3569,7 @@ int RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam) if (nSprm > 0) { m_aStates.top().aTableSprms.set(nSprm, pIntValue); - return 0; + return RTFError::OK; } // Trivial character sprms. switch (nKeyword) @@ -3596,7 +3596,7 @@ int RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam) if (nSprm > 0) { m_aStates.top().aCharacterSprms.set(nSprm, pIntValue); - return 0; + return RTFError::OK; } // Trivial character attributes. switch (nKeyword) @@ -3631,7 +3631,7 @@ int RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam) // Language is a character property, but we should store it at a paragraph level as well for fields. if (nKeyword == RTF_LANG && m_bNeedPap) lcl_putNestedAttribute(m_aStates.top().aParagraphSprms, NS_ooxml::LN_EG_RPrBase_lang, nSprm, pValue); - return 0; + return RTFError::OK; } // Trivial paragraph sprms. switch (nKeyword) @@ -3655,7 +3655,7 @@ int RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam) dispatchFlag(RTF_INTBL); // sets newly pushed buffer as current assert(m_aStates.top().pCurrentBuffer == &m_aTableBufferStack.back()); } - return 0; + return RTFError::OK; } // Info group. @@ -3695,7 +3695,7 @@ int RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam) break; } if (nSprm > 0) - return 0; + return RTFError::OK; // Frame size / position. Id nId = 0; @@ -3730,7 +3730,7 @@ int RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam) if (m_aStates.top().pCurrentBuffer != &m_aTableBufferStack.back()) m_aStates.top().aFrame.setSprm(nId, nParam); - return 0; + return RTFError::OK; } // Then check for the more complex ones. @@ -3796,7 +3796,7 @@ int RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam) } if (i == nRTFEncodings) // not found - return 0; + return RTFError::OK; m_nCurrentEncoding = rtl_getTextEncodingFromWindowsCodePage(aRTFEncodings[i].codepage); m_aStates.top().nCurrentEncoding = m_nCurrentEncoding; @@ -4745,10 +4745,10 @@ int RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam) } break; } - return 0; + return RTFError::OK; } -int RTFDocumentImpl::dispatchToggle(RTFKeyword nKeyword, bool bParam, int nParam) +RTFError RTFDocumentImpl::dispatchToggle(RTFKeyword nKeyword, bool bParam, int nParam) { setNeedSect(); checkUnicode(/*bUnicode =*/ true, /*bHex =*/ true); @@ -4811,7 +4811,7 @@ int RTFDocumentImpl::dispatchToggle(RTFKeyword nKeyword, bool bParam, int nParam { RTFValue::Pointer_t pValue(new RTFValue((!bParam || nParam != 0) ? nSprm : NS_ooxml::LN_Value_ST_Underline_none)); m_aStates.top().aCharacterAttributes.set(NS_ooxml::LN_CT_Underline_val, pValue); - return 0; + return RTFError::OK; } // Accent characters (over dot / over coma). @@ -4839,7 +4839,7 @@ int RTFDocumentImpl::dispatchToggle(RTFKeyword nKeyword, bool bParam, int nParam { RTFValue::Pointer_t pValue(new RTFValue((!bParam || nParam != 0) ? nSprm : 0)); m_aStates.top().aCharacterSprms.set(NS_ooxml::LN_EG_RPrBase_em, pValue); - return 0; + return RTFError::OK; } // Trivial character sprms. @@ -4883,7 +4883,7 @@ int RTFDocumentImpl::dispatchToggle(RTFKeyword nKeyword, bool bParam, int nParam if (nSprm >= 0) { m_aStates.top().aCharacterSprms.set(nSprm, pBoolValue); - return 0; + return RTFError::OK; } switch (nKeyword) @@ -4912,10 +4912,10 @@ int RTFDocumentImpl::dispatchToggle(RTFKeyword nKeyword, bool bParam, int nParam } break; } - return 0; + return RTFError::OK; } -int RTFDocumentImpl::pushState() +RTFError RTFDocumentImpl::pushState() { //SAL_INFO("writerfilter", OSL_THIS_FUNC << " before push: " << m_pTokenizer->getGroup()); @@ -4988,7 +4988,7 @@ int RTFDocumentImpl::pushState() // state does not inherit this flag. m_aStates.top().bStartedTrackchange = false; - return 0; + return RTFError::OK; } writerfilter::Reference<Properties>::Pointer_t @@ -5022,7 +5022,7 @@ void RTFDocumentImpl::resetAttributes() m_aStates.top().aParagraphAttributes.clear(); } -int RTFDocumentImpl::popState() +RTFError RTFDocumentImpl::popState() { //SAL_INFO("writerfilter", OSL_THIS_FUNC << " before pop: m_pTokenizer->getGroup() " << m_pTokenizer->getGroup() << // ", dest state: " << m_aStates.top().nDestinationState); @@ -5252,7 +5252,7 @@ int RTFDocumentImpl::popState() b = b << 4; sal_Int8 parsed = m_pTokenizer->asHex(ch); if (parsed == -1) - return ERROR_HEX_INVALID; + return RTFError::HEX_INVALID; b += parsed; count--; if (!count) @@ -5383,7 +5383,7 @@ int RTFDocumentImpl::popState() b = b << 4; sal_Int8 parsed = m_pTokenizer->asHex(ch); if (parsed == -1) - return ERROR_HEX_INVALID; + return RTFError::HEX_INVALID; b += parsed; count--; if (!count) @@ -6073,7 +6073,7 @@ int RTFDocumentImpl::popState() m_bHasFootnote = false; } - return 0; + return RTFError::OK; } bool RTFDocumentImpl::isInBackground() diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.hxx b/writerfilter/source/rtftok/rtfdocumentimpl.hxx index 85af01f..96a0e9b 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.hxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.hxx @@ -336,14 +336,14 @@ public: virtual void resolve(Stream& rHandler) SAL_OVERRIDE; // RTFListener - virtual int dispatchDestination(RTFKeyword nKeyword) SAL_OVERRIDE; - virtual int dispatchFlag(RTFKeyword nKeyword) SAL_OVERRIDE; - virtual int dispatchSymbol(RTFKeyword nKeyword) SAL_OVERRIDE; - virtual int dispatchToggle(RTFKeyword nKeyword, bool bParam, int nParam) SAL_OVERRIDE; - virtual int dispatchValue(RTFKeyword nKeyword, int nParam) SAL_OVERRIDE; - virtual int resolveChars(char ch) SAL_OVERRIDE; - virtual int pushState() SAL_OVERRIDE; - virtual int popState() SAL_OVERRIDE; + virtual RTFError dispatchDestination(RTFKeyword nKeyword) SAL_OVERRIDE; + virtual RTFError dispatchFlag(RTFKeyword nKeyword) SAL_OVERRIDE; + virtual RTFError dispatchSymbol(RTFKeyword nKeyword) SAL_OVERRIDE; + virtual RTFError dispatchToggle(RTFKeyword nKeyword, bool bParam, int nParam) SAL_OVERRIDE; + virtual RTFError dispatchValue(RTFKeyword nKeyword, int nParam) SAL_OVERRIDE; + virtual RTFError resolveChars(char ch) SAL_OVERRIDE; + virtual RTFError pushState() SAL_OVERRIDE; + virtual RTFError popState() SAL_OVERRIDE; virtual RTFDestinationState getDestinationState() SAL_OVERRIDE; virtual void setDestinationState(RTFDestinationState nDestinationState) SAL_OVERRIDE; virtual RTFInternalState getInternalState() SAL_OVERRIDE; @@ -371,7 +371,7 @@ public: bool isInBackground(); void setDestinationText(OUString& rString); /// Resolve a picture: If not inline, then anchored. - int resolvePict(bool bInline, css::uno::Reference<css::drawing::XShape> const& xShape); + RTFError resolvePict(bool bInline, css::uno::Reference<css::drawing::XShape> const& xShape); /// If this is the first run of the document, starts the initial paragraph. void checkFirstRun(); diff --git a/writerfilter/source/rtftok/rtflistener.hxx b/writerfilter/source/rtftok/rtflistener.hxx index 72568f6..f37064c 100644 --- a/writerfilter/source/rtftok/rtflistener.hxx +++ b/writerfilter/source/rtftok/rtflistener.hxx @@ -23,14 +23,14 @@ enum RTFInternalState INTERNAL_HEX }; -enum RTFErrors +enum class RTFError { - ERROR_OK, - ERROR_GROUP_UNDER, - ERROR_GROUP_OVER, - ERROR_EOF, - ERROR_HEX_INVALID, - ERROR_CHAR_OVER + OK, + GROUP_UNDER, + GROUP_OVER, + UNEXPECTED_EOF, + HEX_INVALID, + CHAR_OVER }; /** @@ -44,16 +44,16 @@ class RTFListener public: virtual ~RTFListener() { } // Dispatching of control words and characters. - virtual int dispatchDestination(RTFKeyword nKeyword) = 0; - virtual int dispatchFlag(RTFKeyword nKeyword) = 0; - virtual int dispatchSymbol(RTFKeyword nKeyword) = 0; - virtual int dispatchToggle(RTFKeyword nKeyword, bool bParam, int nParam) = 0; - virtual int dispatchValue(RTFKeyword nKeyword, int nParam) = 0; - virtual int resolveChars(char ch) = 0; + virtual RTFError dispatchDestination(RTFKeyword nKeyword) = 0; + virtual RTFError dispatchFlag(RTFKeyword nKeyword) = 0; + virtual RTFError dispatchSymbol(RTFKeyword nKeyword) = 0; + virtual RTFError dispatchToggle(RTFKeyword nKeyword, bool bParam, int nParam) = 0; + virtual RTFError dispatchValue(RTFKeyword nKeyword, int nParam) = 0; + virtual RTFError resolveChars(char ch) = 0; // State handling. - virtual int pushState() = 0; - virtual int popState() = 0; + virtual RTFError pushState() = 0; + virtual RTFError popState() = 0; virtual RTFDestinationState getDestinationState() = 0; virtual void setDestinationState(RTFDestinationState nDestinationState) = 0; diff --git a/writerfilter/source/rtftok/rtflookahead.cxx b/writerfilter/source/rtftok/rtflookahead.cxx index 8e608d2..00ab4a9 100644 --- a/writerfilter/source/rtftok/rtflookahead.cxx +++ b/writerfilter/source/rtftok/rtflookahead.cxx @@ -34,52 +34,52 @@ RTFLookahead::~RTFLookahead() { } -int RTFLookahead::dispatchDestination(RTFKeyword /*nKeyword*/) +RTFError RTFLookahead::dispatchDestination(RTFKeyword /*nKeyword*/) { - return 0; + return RTFError::OK; } -int RTFLookahead::dispatchFlag(RTFKeyword nKeyword) +RTFError RTFLookahead::dispatchFlag(RTFKeyword nKeyword) { if (nKeyword == RTF_INTBL) m_bHasTable = true; - return 0; + return RTFError::OK; } -int RTFLookahead::dispatchSymbol(RTFKeyword /*nKeyword*/) +RTFError RTFLookahead::dispatchSymbol(RTFKeyword /*nKeyword*/) { - return 0; + return RTFError::OK; } -int RTFLookahead::dispatchToggle(RTFKeyword /*nKeyword*/, bool /*bParam*/, int /*nParam*/) +RTFError RTFLookahead::dispatchToggle(RTFKeyword /*nKeyword*/, bool /*bParam*/, int /*nParam*/) { - return 0; + return RTFError::OK; } -int RTFLookahead::dispatchValue(RTFKeyword /*nKeyword*/, int /*nParam*/) +RTFError RTFLookahead::dispatchValue(RTFKeyword /*nKeyword*/, int /*nParam*/) { - return 0; + return RTFError::OK; } -int RTFLookahead::resolveChars(char ch) +RTFError RTFLookahead::resolveChars(char ch) { while (!m_rStream.IsEof() && (ch != '{' && ch != '}' && ch != '\\')) m_rStream.ReadChar(ch); if (!m_rStream.IsEof()) m_rStream.SeekRel(-1); - return 0; + return RTFError::OK; } -int RTFLookahead::pushState() +RTFError RTFLookahead::pushState() { m_pTokenizer->pushGroup(); - return 0; + return RTFError::OK; } -int RTFLookahead::popState() +RTFError RTFLookahead::popState() { m_pTokenizer->popGroup(); - return 0; + return RTFError::OK; } RTFDestinationState RTFLookahead::getDestinationState() diff --git a/writerfilter/source/rtftok/rtflookahead.hxx b/writerfilter/source/rtftok/rtflookahead.hxx index 2f5fed1b..fdf0ece 100644 --- a/writerfilter/source/rtftok/rtflookahead.hxx +++ b/writerfilter/source/rtftok/rtflookahead.hxx @@ -28,14 +28,14 @@ class RTFLookahead : public RTFListener public: RTFLookahead(SvStream& rStream, sal_Size nGroupStart); virtual ~RTFLookahead(); - virtual int dispatchDestination(RTFKeyword nKeyword) SAL_OVERRIDE; - virtual int dispatchFlag(RTFKeyword nKeyword) SAL_OVERRIDE; - virtual int dispatchSymbol(RTFKeyword nKeyword) SAL_OVERRIDE; - virtual int dispatchToggle(RTFKeyword nKeyword, bool bParam, int nParam) SAL_OVERRIDE; - virtual int dispatchValue(RTFKeyword nKeyword, int nParam) SAL_OVERRIDE; - virtual int resolveChars(char ch) SAL_OVERRIDE; - virtual int pushState() SAL_OVERRIDE; - virtual int popState() SAL_OVERRIDE; + virtual RTFError dispatchDestination(RTFKeyword nKeyword) SAL_OVERRIDE; + virtual RTFError dispatchFlag(RTFKeyword nKeyword) SAL_OVERRIDE; + virtual RTFError dispatchSymbol(RTFKeyword nKeyword) SAL_OVERRIDE; + virtual RTFError dispatchToggle(RTFKeyword nKeyword, bool bParam, int nParam) SAL_OVERRIDE; + virtual RTFError dispatchValue(RTFKeyword nKeyword, int nParam) SAL_OVERRIDE; + virtual RTFError resolveChars(char ch) SAL_OVERRIDE; + virtual RTFError pushState() SAL_OVERRIDE; + virtual RTFError popState() SAL_OVERRIDE; virtual RTFDestinationState getDestinationState() SAL_OVERRIDE; virtual void setDestinationState(RTFDestinationState nDestinationState) SAL_OVERRIDE; virtual RTFInternalState getInternalState() SAL_OVERRIDE; diff --git a/writerfilter/source/rtftok/rtftokenizer.cxx b/writerfilter/source/rtftok/rtftokenizer.cxx index 3e3ff78..fbcff42 100644 --- a/writerfilter/source/rtftok/rtftokenizer.cxx +++ b/writerfilter/source/rtftok/rtftokenizer.cxx @@ -55,11 +55,11 @@ RTFTokenizer::~RTFTokenizer() } -int RTFTokenizer::resolveParse() +RTFError RTFTokenizer::resolveParse() { SAL_INFO("writerfilter", OSL_THIS_FUNC); char ch; - int ret; + RTFError ret; // for hex chars int b = 0, count = 2; sal_uInt32 nPercentSize = 0; @@ -87,11 +87,11 @@ int RTFTokenizer::resolveParse() m_xStatusIndicator->setValue(nLastPos = nCurrentPos); if (m_nGroup < 0) - return ERROR_GROUP_UNDER; + return RTFError::GROUP_UNDER; if (m_nGroup > 0 && m_rImport.getInternalState() == INTERNAL_BIN) { ret = m_rImport.resolveChars(ch); - if (ret) + if (ret != RTFError::OK) return ret; } else @@ -101,23 +101,23 @@ int RTFTokenizer::resolveParse() case '{': m_nGroupStart = Strm().Tell() - 1; ret = m_rImport.pushState(); - if (ret) + if (ret != RTFError::OK) return ret; break; case '}': ret = m_rImport.popState(); - if (ret) + if (ret != RTFError::OK) return ret; if (m_nGroup == 0) { if (m_rImport.isSubstream()) m_rImport.finishSubstream(); - return 0; + return RTFError::OK; } break; case '\\': ret = resolveKeyword(); - if (ret) + if (ret != RTFError::OK) return ret; break; case 0x0d: @@ -128,11 +128,11 @@ int RTFTokenizer::resolveParse() break; default: if (m_nGroup == 0) - return ERROR_CHAR_OVER; + return RTFError::CHAR_OVER; if (m_rImport.getInternalState() == INTERNAL_NORMAL) { ret = m_rImport.resolveChars(ch); - if (ret) + if (ret != RTFError::OK) return ret; } else @@ -141,13 +141,13 @@ int RTFTokenizer::resolveParse() b = b << 4; sal_Int8 parsed = asHex(ch); if (parsed == -1) - return ERROR_HEX_INVALID; + return RTFError::HEX_INVALID; b += parsed; count--; if (!count) { ret = m_rImport.resolveChars(b); - if (ret) + if (ret != RTFError::OK) return ret; count = 2; b = 0; @@ -160,10 +160,10 @@ int RTFTokenizer::resolveParse() } if (m_nGroup < 0) - return ERROR_GROUP_UNDER; + return RTFError::GROUP_UNDER; else if (m_nGroup > 0) - return ERROR_GROUP_OVER; - return 0; + return RTFError::GROUP_OVER; + return RTFError::OK; } int RTFTokenizer::asHex(char ch) @@ -201,7 +201,7 @@ void RTFTokenizer::popGroup() m_nGroup--; } -int RTFTokenizer::resolveKeyword() +RTFError RTFTokenizer::resolveKeyword() { char ch; OStringBuffer aBuf; @@ -211,7 +211,7 @@ int RTFTokenizer::resolveKeyword() Strm().ReadChar(ch); if (Strm().IsEof()) - return ERROR_EOF; + return RTFError::UNEXPECTED_EOF; if (!isalpha(ch)) { @@ -242,7 +242,7 @@ int RTFTokenizer::resolveKeyword() bNeg = true; Strm().ReadChar(ch); if (Strm().IsEof()) - return ERROR_EOF; + return RTFError::UNEXPECTED_EOF; } if (isdigit(ch)) { @@ -280,10 +280,10 @@ bool RTFTokenizer::lookupMathKeyword(RTFMathSymbol& rSymbol) return true; } -int RTFTokenizer::dispatchKeyword(OString& rKeyword, bool bParam, int nParam) +RTFError RTFTokenizer::dispatchKeyword(OString& rKeyword, bool bParam, int nParam) { if (m_rImport.getDestinationState() == DESTINATION_SKIP) - return 0; + return RTFError::OK; SAL_INFO("writerfilter.rtf", OSL_THIS_FUNC << ": keyword '\\" << rKeyword.getStr() << "' with param? " << (bParam ? 1 : 0) <<" param val: '" << (bParam ? nParam : 0) << "'"); RTFSymbol aSymbol; @@ -295,33 +295,33 @@ int RTFTokenizer::dispatchKeyword(OString& rKeyword, bool bParam, int nParam) SAL_INFO("writerfilter", OSL_THIS_FUNC << ": unknown keyword '\\" << rKeyword.getStr() << "'"); RTFSkipDestination aSkip(m_rImport); aSkip.setParsed(false); - return 0; + return RTFError::OK; } - int ret; + RTFError ret; switch (m_aRTFControlWords[i].nControlType) { case CONTROL_FLAG: // flags ignore any parameter by definition ret = m_rImport.dispatchFlag(m_aRTFControlWords[i].nIndex); - if (ret) + if (ret != RTFError::OK) return ret; break; case CONTROL_DESTINATION: // same for destinations ret = m_rImport.dispatchDestination(m_aRTFControlWords[i].nIndex); - if (ret) + if (ret != RTFError::OK) return ret; break; case CONTROL_SYMBOL: // and symbols ret = m_rImport.dispatchSymbol(m_aRTFControlWords[i].nIndex); - if (ret) + if (ret != RTFError::OK) return ret; break; case CONTROL_TOGGLE: ret = m_rImport.dispatchToggle(m_aRTFControlWords[i].nIndex, bParam, nParam); - if (ret) + if (ret != RTFError::OK) return ret; break; case CONTROL_VALUE: @@ -329,13 +329,13 @@ int RTFTokenizer::dispatchKeyword(OString& rKeyword, bool bParam, int nParam) if (bParam) { ret = m_rImport.dispatchValue(m_aRTFControlWords[i].nIndex, nParam); - if (ret) + if (ret != RTFError::OK) return ret; } break; } - return 0; + return RTFError::OK; } OUString RTFTokenizer::getPosition() diff --git a/writerfilter/source/rtftok/rtftokenizer.hxx b/writerfilter/source/rtftok/rtftokenizer.hxx index 5a03359..bf84eeb 100644 --- a/writerfilter/source/rtftok/rtftokenizer.hxx +++ b/writerfilter/source/rtftok/rtftokenizer.hxx @@ -26,7 +26,7 @@ public: RTFTokenizer(RTFListener& rImport, SvStream* pInStream, com::sun::star::uno::Reference<com::sun::star::task::XStatusIndicator> const& xStatusIndicator); virtual ~RTFTokenizer(); - int resolveParse(); + RTFError resolveParse(); int asHex(char ch); /// Number of states on the stack. int getGroup() const @@ -49,8 +49,8 @@ private: { return *m_pInStream; } - int resolveKeyword(); - int dispatchKeyword(OString& rKeyword, bool bParam, int nParam); + RTFError resolveKeyword(); + RTFError dispatchKeyword(OString& rKeyword, bool bParam, int nParam); RTFListener& m_rImport; SvStream* m_pInStream; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits