sw/source/filter/html/swhtml.cxx | 62 ++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 32 deletions(-)
New commits: commit 707ef3171a096787b2f7a4c221e60962f05e7d01 Author: Matteo Casalin <matteo.casa...@yahoo.com> Date: Mon Jun 8 23:32:14 2015 +0200 Just continue to next iteration Change-Id: I4040dff95dd1718df4cb555c155f7eea723bd2e3 Reviewed-on: https://gerrit.libreoffice.org/16170 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Michael Stahl <mst...@redhat.com> Tested-by: Michael Stahl <mst...@redhat.com> diff --git a/sw/source/filter/html/swhtml.cxx b/sw/source/filter/html/swhtml.cxx index 1f92ffc..9d338a7 100644 --- a/sw/source/filter/html/swhtml.cxx +++ b/sw/source/filter/html/swhtml.cxx @@ -2292,7 +2292,7 @@ bool SwHTMLParser::AppendTextNode( SwHTMLAppendMode eMode, bool bUpdateNum ) { SwTextAttr *pHt = rHints.GetTextHint( i ); sal_uInt16 nWhich = pHt->Which(); - sal_Int16 nIdx = -1; + sal_Int16 nIdx = 0; bool bFont = false; switch( nWhich ) { @@ -2345,45 +2345,43 @@ bool SwHTMLParser::AppendTextNode( SwHTMLAppendMode eMode, bool bUpdateNum ) nIdx = 14; break; default: - break; + // Skip to next attribute + continue; } - if( nIdx != -1 ) + const sal_Int32 nStt = pHt->GetStart(); + if( nStt >= aEndPos[nIdx] ) { - sal_Int32 nStt = pHt->GetStart(); - if( nStt >= aEndPos[nIdx] ) + const SfxPoolItem& rItem = + static_cast<const SwContentNode *>(pTextNd)->GetAttr( nWhich ); + if( bFont ? swhtml_css1atr_equalFontItems(rItem,pHt->GetAttr()) + : rItem == pHt->GetAttr() ) { - const SfxPoolItem& rItem = - static_cast<const SwContentNode *>(pTextNd)->GetAttr( nWhich ); - if( bFont ? swhtml_css1atr_equalFontItems(rItem,pHt->GetAttr()) - : rItem == pHt->GetAttr() ) - { - // The hint is the same as set in the paragraph and - // therefore, it can be deleted - // CAUTION!!! This WILL delete the hint and it MAY - // also delete the SwpHints!!! To avoid any trouble - // we leave the loop immediately if this is the last - // hint. - pTextNd->DeleteAttribute( pHt ); - if( 1 == nCntAttr ) - break; - i--; - nCntAttr--; - } - else - { - // The hint is different. Therefore all hints within that - // hint have to be ignored. - aEndPos[nIdx] = pHt->GetEnd() ? *pHt->GetEnd() : nStt; - } + // The hint is the same as set in the paragraph and + // therefore, it can be deleted + // CAUTION!!! This WILL delete the hint and it MAY + // also delete the SwpHints!!! To avoid any trouble + // we leave the loop immediately if this is the last + // hint. + pTextNd->DeleteAttribute( pHt ); + if( 1 == nCntAttr ) + break; + i--; + nCntAttr--; } else { - // The hint starts before another one ends. - // The hint in this case is not deleted - OSL_ENSURE( pHt->GetEnd() && *pHt->GetEnd() <= aEndPos[nIdx], - "hints aren't nested properly!" ); + // The hint is different. Therefore all hints within that + // hint have to be ignored. + aEndPos[nIdx] = pHt->GetEnd() ? *pHt->GetEnd() : nStt; } } + else + { + // The hint starts before another one ends. + // The hint in this case is not deleted + OSL_ENSURE( pHt->GetEnd() && *pHt->GetEnd() <= aEndPos[nIdx], + "hints aren't nested properly!" ); + } } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits