sw/source/filter/html/css1atr.cxx        |   46 +++++----
 sw/source/filter/html/htmlatr.cxx        |  158 +++++++++++++------------------
 sw/source/filter/html/htmlcss1.cxx       |   47 ++++-----
 sw/source/filter/html/htmlctxt.cxx       |   24 ++--
 sw/source/filter/html/htmldrawreader.cxx |    8 -
 sw/source/filter/html/htmldrawwriter.cxx |    4 
 sw/source/filter/html/htmlfld.cxx        |    4 
 sw/source/filter/html/htmlfldw.cxx       |    4 
 sw/source/filter/html/htmlflywriter.cxx  |   11 --
 sw/source/filter/html/htmlform.cxx       |   29 ++---
 sw/source/filter/html/htmlftn.cxx        |   21 +---
 sw/source/filter/html/htmlgrin.cxx       |    2 
 sw/source/filter/html/htmlnumreader.cxx  |    2 
 sw/source/filter/html/htmlsect.cxx       |    6 -
 sw/source/filter/html/htmltab.cxx        |   24 ++--
 sw/source/filter/html/swhtml.cxx         |   15 +-
 sw/source/filter/html/swhtml.hxx         |    4 
 17 files changed, 195 insertions(+), 214 deletions(-)

New commits:
commit 778d5508f5be8d9e31e1634110137f8afdf0065e
Author: Matteo Casalin <matteo.casa...@yahoo.com>
Date:   Sun May 31 23:32:19 2015 +0200

    Use more proper integer types and range-based for loops
    
    Change-Id: Ie91ab1fad1b2f16380071b8c8fbb928151f85d4b

diff --git a/sw/source/filter/html/htmlftn.cxx 
b/sw/source/filter/html/htmlftn.cxx
index e71d537..e0145c3 100644
--- a/sw/source/filter/html/htmlftn.cxx
+++ b/sw/source/filter/html/htmlftn.cxx
@@ -89,7 +89,7 @@ sal_Int32 lcl_html_getEndNoteInfo( SwEndNoteInfo& rInfo,
                                     bool bEndNote )
 {
     sal_Int32 nStrPos = 0;
-    for( sal_uInt16 nPart = 0; nPart < 4; nPart++ )
+    for( int nPart = 0; nPart < 4; ++nPart )
     {
         OUString aPart;
         if( -1 != nStrPos )
@@ -134,7 +134,7 @@ void SwHTMLParser::FillFootNoteInfo( const OUString& 
rContent )
 
     sal_Int32 nStrPos = lcl_html_getEndNoteInfo( aInfo, rContent, false );
 
-    for( sal_uInt16 nPart = 4; nPart < 8; nPart++ )
+    for( int nPart = 4; nPart < 8; ++nPart )
     {
         OUString aPart;
         if( -1 != nStrPos )
@@ -271,7 +271,7 @@ Writer& OutHTML_SwFormatFootnote( Writer& rWrt, const 
SfxPoolItem& rHt )
         return rWrt;
 
     OUString sFootnoteName, sClass;
-    sal_uInt16 nPos;
+    size_t nPos;
     if( rFormatFootnote.IsEndNote() )
     {
         nPos = rHTMLWrt.pFootEndNotes ? rHTMLWrt.pFootEndNotes->size() : 0;
@@ -330,9 +330,8 @@ void SwHTMLWriter::OutFootEndNotes()
 #endif
     nFootNote = 0, nEndNote = 0;
 
-    for( sal_uInt16 i=0; i<pFootEndNotes->size(); i++ )
+    for( auto *pTextFootnote : *pFootEndNotes )
     {
-        SwTextFootnote *pTextFootnote = (*pFootEndNotes)[i];
         pFormatFootnote = &pTextFootnote->GetFootnote();
 
         OUString sFootnoteName, sClass;
@@ -478,11 +477,11 @@ void SwHTMLWriter::OutFootEndNoteSym( const 
SwFormatFootnote& rFormatFootnote,
     HTMLOutFuncs::Out_AsciiTag( Strm(), OOO_STRING_SVTOOLS_HTML_anchor, false 
);
 }
 
-static sal_uInt16 lcl_html_fillEndNoteInfo( const SwEndNoteInfo& rInfo,
+static int lcl_html_fillEndNoteInfo( const SwEndNoteInfo& rInfo,
                                  OUString *pParts,
                                  bool bEndNote  )
 {
-    sal_uInt16 nParts = 0;
+    int nParts = 0;
     sal_Int16 eFormat = rInfo.aFormat.GetNumberingType();
     if( (bEndNote ? SVX_NUM_ROMAN_LOWER : SVX_NUM_ARABIC) != eFormat )
     {
@@ -513,12 +512,12 @@ static sal_uInt16 lcl_html_fillEndNoteInfo( const 
SwEndNoteInfo& rInfo,
 }
 
 static void lcl_html_outFootEndNoteInfo( Writer& rWrt, OUString *pParts,
-                                  sal_uInt16 nParts, const sal_Char *pName )
+                                  int nParts, const sal_Char *pName )
 {
     SwHTMLWriter& rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
 
     OUString aContent;
-    for( sal_uInt16 i=0; i<nParts; i++ )
+    for( int i=0; i<nParts; ++i )
     {
         OUString aTmp( pParts[i] );
         aTmp = aTmp.replaceAll( "\\", "\\\\" );
@@ -552,7 +551,7 @@ void SwHTMLWriter::OutFootEndNoteInfo()
     {
         const SwFootnoteInfo& rInfo = pDoc->GetFootnoteInfo();
         OUString aParts[8];
-        sal_uInt16 nParts = lcl_html_fillEndNoteInfo( rInfo, aParts, false );
+        int nParts = lcl_html_fillEndNoteInfo( rInfo, aParts, false );
         if( rInfo.eNum != FTNNUM_DOC )
         {
             aParts[4] = rInfo.eNum == FTNNUM_CHAPTER ? OUString( "C" ) : 
OUString( "P" );
@@ -581,7 +580,7 @@ void SwHTMLWriter::OutFootEndNoteInfo()
     {
         const SwEndNoteInfo& rInfo = pDoc->GetEndNoteInfo();
         OUString aParts[4];
-        sal_uInt16 nParts = lcl_html_fillEndNoteInfo( rInfo, aParts, true );
+        const int nParts = lcl_html_fillEndNoteInfo( rInfo, aParts, true );
         if( nParts > 0 )
             lcl_html_outFootEndNoteInfo( *this, aParts, nParts,
                                          
OOO_STRING_SVTOOLS_HTML_META_sdendnote );
commit c8eb473ff1895ad01fe01e82b0a422f6cf5c351e
Author: Matteo Casalin <matteo.casa...@yahoo.com>
Date:   Sun May 31 23:22:30 2015 +0200

    Use more proper integer types and range-based for loops
    
    Change-Id: I04a53b2e6f48e597b5d2de79587458a9f7f61f4d

diff --git a/sw/source/filter/html/htmlform.cxx 
b/sw/source/filter/html/htmlform.cxx
index d3bd58c..eda765b 100644
--- a/sw/source/filter/html/htmlform.cxx
+++ b/sw/source/filter/html/htmlform.cxx
@@ -762,9 +762,8 @@ static void lcl_html_setEvents(
 {
     // Erstmal muss die Anzahl der Events ermittelt werden ...
     sal_Int32 nEvents = 0;
-    sal_uInt16 i;
 
-    for( i = 0; HTML_ET_END != aEventTypeTable[i]; i++ )
+    for( int i = 0; HTML_ET_END != aEventTypeTable[i]; ++i )
     {
         const SvxMacro *pMacro = rMacroTable.Get( aEventTypeTable[i] );
         // Solange nicht alle Events implementiert sind, enthaelt die
@@ -772,9 +771,8 @@ static void lcl_html_setEvents(
         if( pMacro && aEventListenerTable[i] )
             nEvents++;
     }
-    for( i=0; i< rUnoMacroTable.size(); i++ )
+    for( const auto &rStr : rUnoMacroTable )
     {
-        const OUString& rStr(rUnoMacroTable[i]);
         sal_Int32 nIndex = 0;
         if( rStr.getToken( 0, '-', nIndex ).isEmpty() || -1 == nIndex )
             continue;
@@ -791,7 +789,7 @@ static void lcl_html_setEvents(
     script::ScriptEventDescriptor* pDescs = aDescs.getArray();
     sal_Int32 nEvent = 0;
 
-    for( i=0; HTML_ET_END != aEventTypeTable[i]; i++ )
+    for( int i=0; HTML_ET_END != aEventTypeTable[i]; ++i )
     {
         const SvxMacro *pMacro = rMacroTable.Get( aEventTypeTable[i] );
         if( pMacro && aEventListenerTable[i] )
@@ -805,9 +803,8 @@ static void lcl_html_setEvents(
         }
     }
 
-    for( i=0; i< rUnoMacroTable.size(); ++i )
+    for( const auto &rStr : rUnoMacroTable )
     {
-        const OUString& rStr = rUnoMacroTable[i];
         sal_Int32 nIndex = 0;
         OUString sListener( rStr.getToken( 0, '-', nIndex ) );
         if( sListener.isEmpty() || -1 == nIndex )
@@ -884,8 +881,10 @@ uno::Reference< drawing::XShape > 
SwHTMLParser::InsertControl(
     if( !bHidden )
     {
         Any aTmp;
-        sal_uInt16 nLeftSpace = 0, nRightSpace = 0,
-                      nUpperSpace = 0, nLowerSpace = 0;
+        sal_Int32 nLeftSpace = 0;
+        sal_Int32 nRightSpace = 0;
+        sal_Int32 nUpperSpace = 0;
+        sal_Int32 nLowerSpace = 0;
 
         const uno::Reference< XMultiServiceFactory > & rServiceFactory =
             pFormImpl->GetServiceFactory();
@@ -919,12 +918,12 @@ uno::Reference< drawing::XShape > 
SwHTMLParser::InsertControl(
             aLRItem.SetTextFirstLineOfst( 0 );
             if( rCSS1PropInfo.bLeftMargin )
             {
-                nLeftSpace = static_cast< sal_uInt16 >(convertTwipToMm100( 
aLRItem.GetLeft() ));
+                nLeftSpace = convertTwipToMm100( aLRItem.GetLeft() );
                 rCSS1PropInfo.bLeftMargin = false;
             }
             if( rCSS1PropInfo.bRightMargin )
             {
-                nRightSpace = static_cast< sal_uInt16 >(convertTwipToMm100( 
aLRItem.GetRight() ));
+                nRightSpace = convertTwipToMm100( aLRItem.GetRight() );
                 rCSS1PropInfo.bRightMargin = false;
             }
             rCSS1ItemSet.ClearItem( RES_LR_SPACE );
@@ -932,10 +931,10 @@ uno::Reference< drawing::XShape > 
SwHTMLParser::InsertControl(
         if( nLeftSpace || nRightSpace )
         {
             Any aAny2;
-            aAny2 <<= (sal_Int32)nLeftSpace;
+            aAny2 <<= nLeftSpace;
             xShapePropSet->setPropertyValue("LeftMargin", aAny2 );
 
-            aAny2 <<= (sal_Int32)nRightSpace;
+            aAny2 <<= nRightSpace;
             xShapePropSet->setPropertyValue("RightMargin", aAny2 );
         }
 
@@ -961,10 +960,10 @@ uno::Reference< drawing::XShape > 
SwHTMLParser::InsertControl(
         if( nUpperSpace || nLowerSpace )
         {
             uno::Any aAny2;
-            aAny2 <<= (sal_Int32)nUpperSpace;
+            aAny2 <<= nUpperSpace;
             xShapePropSet->setPropertyValue("TopMargin", aAny2 );
 
-            aAny2 <<= (sal_Int32)nLowerSpace;
+            aAny2 <<= nLowerSpace;
             xShapePropSet->setPropertyValue("BottomMargin", aAny2 );
         }
 
commit ac52b11a150cd260cfb58aa3013abcf499d04468
Author: Matteo Casalin <matteo.casa...@yahoo.com>
Date:   Sun May 31 23:11:52 2015 +0200

    Use size_t and range-based fo loops
    
    Change-Id: I41a30326a2507b1a21b7f9ed17edb21e373ab526

diff --git a/sw/source/filter/html/htmlflywriter.cxx 
b/sw/source/filter/html/htmlflywriter.cxx
index fe05420..9e24f9a 100644
--- a/sw/source/filter/html/htmlflywriter.cxx
+++ b/sw/source/filter/html/htmlflywriter.cxx
@@ -248,10 +248,9 @@ sal_uInt16 SwHTMLWriter::GuessFrmType( const 
SwFrameFormat& rFrameFormat,
                     bEmpty = true;
                     if( pHTMLPosFlyFrms )
                     {
-                        for( sal_uInt16 i=0; i<pHTMLPosFlyFrms->size(); i++ )
+                        for( auto pHTMLPosFlyFrm : *pHTMLPosFlyFrms )
                         {
-                            sal_uLong nIdx = (*pHTMLPosFlyFrms)[i]
-                                                ->GetNdIndex().GetIndex();
+                            sal_uLong nIdx = 
pHTMLPosFlyFrm->GetNdIndex().GetIndex();
                             bEmpty = (nIdx != nStt) && (nIdx != nStt-1);
                             if( !bEmpty || nIdx > nStt )
                                 break;
@@ -367,9 +366,9 @@ bool SwHTMLWriter::OutFlyFrm( sal_uLong nNdIdx, sal_Int32 
nContentIdx, sal_uInt8
         bFlysLeft = bRestart = false;
 
         // suche nach dem Anfang der FlyFrames
-        sal_uInt16 i;
+        size_t i {0};
 
-        for( i = 0; i < pHTMLPosFlyFrms->size() &&
+        for( ; i < pHTMLPosFlyFrms->size() &&
             (*pHTMLPosFlyFrms)[i]->GetNdIndex().GetIndex() < nNdIdx; i++ )
             ;
         for( ; !bRestart && i < pHTMLPosFlyFrms->size() &&
@@ -1940,7 +1939,7 @@ void SwHTMLWriter::CollectLinkTargets()
             const ImageMap *pIMap = pURL->GetMap();
             if( pIMap )
             {
-                for( sal_uInt16 i=0; i<pIMap->GetIMapObjectCount(); i++ )
+                for( size_t i=0; i<pIMap->GetIMapObjectCount(); ++i )
                 {
                     const IMapObject* pObj = pIMap->GetIMapObject( i );
                     if( pObj )
commit 591b3d1551f6bddbbda1fbe7e6d5f766de6a29d3
Author: Matteo Casalin <matteo.casa...@yahoo.com>
Date:   Sun May 31 23:02:26 2015 +0200

    More proper tipes, avoid cast to wrong type
    
    Change-Id: Ia323ed625b51bdb9dac3f3e2826b0dfec2141165

diff --git a/sw/source/filter/html/htmldrawwriter.cxx 
b/sw/source/filter/html/htmldrawwriter.cxx
index 17638a2..35e3b33 100644
--- a/sw/source/filter/html/htmldrawwriter.cxx
+++ b/sw/source/filter/html/htmldrawwriter.cxx
@@ -217,9 +217,9 @@ Writer& OutHTML_DrawFrameFormatAsMarquee( Writer& rWrt,
     }
     else if( nAmount && Application::GetDefaultDevice() )
     {
-        nAmount = (sal_uInt16)(Application::GetDefaultDevice()
+        nAmount = Application::GetDefaultDevice()
                             ->LogicToPixel( Size(nAmount,0),
-                                            MapMode(MAP_TWIP) ).Width());
+                                            MapMode(MAP_TWIP) ).Width();
     }
     if( nAmount )
     {
diff --git a/sw/source/filter/html/htmlfld.cxx 
b/sw/source/filter/html/htmlfld.cxx
index 6f12c4d..9e3a9d9 100644
--- a/sw/source/filter/html/htmlfld.cxx
+++ b/sw/source/filter/html/htmlfld.cxx
@@ -351,7 +351,7 @@ void SwHTMLParser::NewField()
             if( pFormatOption )
             {
                 const OUString& rFormat = pFormatOption->GetString();
-                for( sal_uInt16 k = 0; pFormatTable[k].pName; k++ )
+                for( int k = 0; pFormatTable[k].pName; ++k )
                 {
                     if( rFormat.equalsIgnoreAsciiCaseAscii( 
pFormatTable[k].pName ) )
                     {
@@ -616,7 +616,7 @@ void SwHTMLParser::InsertComment( const OUString& rComment, 
const sal_Char *pTag
 
         sal_uLong nNodeIdx = pPam->GetPoint()->nNode.GetIndex();
         const sal_Int32 nIdx = pPam->GetPoint()->nContent.GetIndex();
-        for( sal_uInt16 i = aSetAttrTab.size(); i > 0; )
+        for( auto i = aSetAttrTab.size(); i > 0; )
         {
             _HTMLAttr *pAttr = aSetAttrTab[--i];
             if( pAttr->GetSttParaIdx() != nNodeIdx ||
diff --git a/sw/source/filter/html/htmlfldw.cxx 
b/sw/source/filter/html/htmlfldw.cxx
index 09501c1..ebfb23a 100644
--- a/sw/source/filter/html/htmlfldw.cxx
+++ b/sw/source/filter/html/htmlfldw.cxx
@@ -380,12 +380,12 @@ static Writer& OutHTML_SwField( Writer& rWrt, const 
SwField* pField,
                 rHTMLWrt.bTagOn = true;
 
                 const SfxPoolItem *aItems[5];
-                sal_uInt16 nItems = 0;
+                int nItems = 0;
 
                 assert(pWhichIds && pRefWhichIds);
                 if (pWhichIds && pRefWhichIds)
                 {
-                    for( sal_uInt16 i=0; i<4; i++ )
+                    for( int i=0; i<4; i++ )
                     {
                         const SfxPoolItem *pRefItem =
                             aScriptItemSet.GetItem( pRefWhichIds[i] );
commit d9733c229f4dbd1f33ffd09eb6d31253c64cc30c
Author: Matteo Casalin <matteo.casa...@yahoo.com>
Date:   Sun May 31 21:00:28 2015 +0200

    Unuseful check, unless nLoop is signed (as returned by GetSNumber)
    
    Change-Id: If3a24832251de6be9c4428bfedb6a2a612d6a375

diff --git a/sw/source/filter/html/htmldrawreader.cxx 
b/sw/source/filter/html/htmldrawreader.cxx
index 1fd1266..da355ef 100644
--- a/sw/source/filter/html/htmldrawreader.cxx
+++ b/sw/source/filter/html/htmldrawreader.cxx
@@ -309,8 +309,8 @@ void SwHTMLParser::NewMarquee( HTMLTable *pCurTable )
                 }
                 else
                 {
-                    sal_uInt32 nLoop = rOption.GetSNumber();
-                    nCount = (sal_uInt16)(nLoop>0 ? nLoop : 0 );
+                    const sal_Int32 nLoop = rOption.GetSNumber();
+                    nCount = static_cast<sal_uInt16>(nLoop>0 ? nLoop : 0);
                 }
                 break;
 
commit a512942270525405ea646c88dc1d460152a7aa46
Author: Matteo Casalin <matteo.casa...@yahoo.com>
Date:   Sun May 31 20:50:32 2015 +0200

    Use auto, int
    
    Change-Id: I39a7f83684d044602dd95e4523c43920d3caeac8

diff --git a/sw/source/filter/html/htmldrawreader.cxx 
b/sw/source/filter/html/htmldrawreader.cxx
index 73ca7cc..1fd1266 100644
--- a/sw/source/filter/html/htmldrawreader.cxx
+++ b/sw/source/filter/html/htmldrawreader.cxx
@@ -424,7 +424,7 @@ void SwHTMLParser::NewMarquee( HTMLTable *pCurTable )
     {
         const SfxItemSet& rItemSet = pTextNd->GetAnyFormatColl().GetAttrSet();
         const SfxPoolItem *pItem;
-        for( sal_uInt16 i=0; nWhichIds[i]; i++ )
+        for( int i=0; nWhichIds[i]; ++i )
         {
             if( SfxItemState::SET == rItemSet.GetItemState( nWhichIds[i], 
true, &pItem ) )
                 PutEEPoolItem( aItemSet, *pItem );
@@ -433,7 +433,7 @@ void SwHTMLParser::NewMarquee( HTMLTable *pCurTable )
 
     // die Attribute der Umgebung am Draw-Objekt setzen
     _HTMLAttr** pHTMLAttributes = reinterpret_cast<_HTMLAttr**>(&aAttrTab);
-    for (sal_uInt16 nCnt = sizeof(_HTMLAttrTable) / sizeof(_HTMLAttr*); 
nCnt--; ++pHTMLAttributes)
+    for (auto nCnt = sizeof(_HTMLAttrTable) / sizeof(_HTMLAttr*); nCnt--; 
++pHTMLAttributes)
     {
         _HTMLAttr *pAttr = *pHTMLAttributes;
         if( pAttr )
commit 0b8ae8aa7867e63f12517e4a575a700bd07f6d7d
Author: Matteo Casalin <matteo.casa...@yahoo.com>
Date:   Sun May 31 20:41:44 2015 +0200

    Use size_t, auto and range-based for loops
    
    Change-Id: I7f3672928b3d1ee937c7c6c2684b1396425b9fe6

diff --git a/sw/source/filter/html/htmlctxt.cxx 
b/sw/source/filter/html/htmlctxt.cxx
index 8772b68..0184637 100644
--- a/sw/source/filter/html/htmlctxt.cxx
+++ b/sw/source/filter/html/htmlctxt.cxx
@@ -47,10 +47,10 @@ class _HTMLAttrContext_SaveDoc
                                     // wenn Attributierung nicht
                                     // beibehalten werden soll.
 
-    sal_uInt16 nContextStMin;           // In Umgebung gueltige Stack-
+    size_t nContextStMin;           // In Umgebung gueltige Stack-
                                     // Untergrenze, wenn der Stack
                                     // geschuetzt werden soll.
-    sal_uInt16 nContextStAttrMin;       // In Umgebung gueltige Stack-
+    size_t nContextStAttrMin;       // In Umgebung gueltige Stack-
                                     // Untergrenze, wenn die Attribute
                                     // nicht beibehalten werden sollen.
 
@@ -63,7 +63,7 @@ public:
 
     _HTMLAttrContext_SaveDoc() :
         pPos( 0 ), pAttrTab( 0 ),
-        nContextStMin( USHRT_MAX ), nContextStAttrMin( USHRT_MAX ),
+        nContextStMin( SIZE_MAX ), nContextStAttrMin( SIZE_MAX ),
         bStripTrailingPara( false ), bKeepNumRules( false ),
         bFixHeaderDist( false ), bFixFooterDist( false )
     {}
@@ -80,11 +80,11 @@ public:
 
     _HTMLAttrTable *GetAttrTab( bool bCreate= false );
 
-    void SetContextStMin( sal_uInt16 nMin ) { nContextStMin = nMin; }
-    sal_uInt16 GetContextStMin() const { return nContextStMin; }
+    void SetContextStMin( size_t nMin ) { nContextStMin = nMin; }
+    size_t GetContextStMin() const { return nContextStMin; }
 
-    void SetContextStAttrMin( sal_uInt16 nMin ) { nContextStAttrMin = nMin; }
-    sal_uInt16 GetContextStAttrMin() const { return nContextStAttrMin; }
+    void SetContextStAttrMin( size_t nMin ) { nContextStAttrMin = nMin; }
+    size_t GetContextStAttrMin() const { return nContextStAttrMin; }
 
     void SetStripTrailingPara( bool bSet ) { bStripTrailingPara = bSet; }
     bool GetStripTrailingPara() const { return bStripTrailingPara; }
@@ -309,10 +309,10 @@ void SwHTMLParser::RestoreDocContext( _HTMLAttrContext 
*pCntxt )
         SetAttr();
     }
 
-    if( USHRT_MAX != pSave->GetContextStMin() )
+    if( SIZE_MAX != pSave->GetContextStMin() )
     {
         nContextStMin = pSave->GetContextStMin();
-        if( USHRT_MAX != pSave->GetContextStAttrMin() )
+        if( SIZE_MAX != pSave->GetContextStAttrMin() )
             nContextStAttrMin = pSave->GetContextStAttrMin();
     }
 
diff --git a/sw/source/filter/html/htmlgrin.cxx 
b/sw/source/filter/html/htmlgrin.cxx
index ab51592..1246d1d 100644
--- a/sw/source/filter/html/htmlgrin.cxx
+++ b/sw/source/filter/html/htmlgrin.cxx
@@ -160,7 +160,7 @@ void SwHTMLParser::SetAnchorAndAdjustment( sal_Int16 
eVertOri,
                                            SfxItemSet& rFrmItemSet )
 {
     const SfxItemSet *pCntnrItemSet = 0;
-    sal_uInt16 i = aContexts.size();
+    auto i = aContexts.size();
     while( !pCntnrItemSet && i > nContextStMin )
         pCntnrItemSet = aContexts[--i]->GetFrmItemSet();
 
diff --git a/sw/source/filter/html/htmlnumreader.cxx 
b/sw/source/filter/html/htmlnumreader.cxx
index dc1d49b..d2a5fe3 100644
--- a/sw/source/filter/html/htmlnumreader.cxx
+++ b/sw/source/filter/html/htmlnumreader.cxx
@@ -559,7 +559,7 @@ void SwHTMLParser::EndNumBulListItem( int nToken, bool 
bSetColl,
 
     // Kontext zu dem Token suchen und vom Stack holen
     _HTMLAttrContext *pCntxt = 0;
-    sal_uInt16 nPos = aContexts.size();
+    auto nPos = aContexts.size();
     nToken &= ~1;
     while( !pCntxt && nPos>nContextStMin )
     {
diff --git a/sw/source/filter/html/htmlsect.cxx 
b/sw/source/filter/html/htmlsect.cxx
index 9b5325d..6cddcd9 100644
--- a/sw/source/filter/html/htmlsect.cxx
+++ b/sw/source/filter/html/htmlsect.cxx
@@ -389,7 +389,7 @@ void SwHTMLParser::EndDivision( int /*nToken*/ )
     // Stack-Eintrag zu dem Token suchen (weil wir noch den Div-Stack
     // haben unterscheiden wir erst einmal nicht zwischen DIV und CENTER
     _HTMLAttrContext *pCntxt = 0;
-    sal_uInt16 nPos = aContexts.size();
+    auto nPos = aContexts.size();
     while( !pCntxt && nPos>nContextStMin )
     {
         switch( aContexts[--nPos]->GetToken() )
@@ -524,7 +524,7 @@ bool SwHTMLParser::EndSection( bool bLFStripped )
 bool SwHTMLParser::EndSections( bool bLFStripped )
 {
     bool bSectionClosed = false;
-    sal_uInt16 nPos = aContexts.size();
+    auto nPos = aContexts.size();
     while( nPos>nContextStMin )
     {
         _HTMLAttrContext *pCntxt = aContexts[--nPos];
@@ -589,7 +589,7 @@ void SwHTMLParser::NewMultiCol( sal_uInt16 columnsFromCss )
     //.is the multicol elememt contained in a container? That may be the
     // case for 5.0 documents.
     bool bInCntnr = false;
-    sal_uInt16 i = aContexts.size();
+    auto i = aContexts.size();
     while( !bInCntnr && i > nContextStMin )
         bInCntnr = 0 != aContexts[--i]->GetFrmItemSet();
 
diff --git a/sw/source/filter/html/htmltab.cxx 
b/sw/source/filter/html/htmltab.cxx
index d01333d..b6e5bb5 100644
--- a/sw/source/filter/html/htmltab.cxx
+++ b/sw/source/filter/html/htmltab.cxx
@@ -108,8 +108,8 @@ class _HTMLTableContext
     SwFrameFormat *pFrameFormat;              // der Fly frame::Frame, 
containing the table
     SwPosition *pPos;               // position behind the table
 
-    sal_uInt16 nContextStAttrMin;
-    sal_uInt16 nContextStMin;
+    size_t nContextStAttrMin;
+    size_t nContextStMin;
 
     bool    bRestartPRE : 1;
     bool    bRestartXMP : 1;
@@ -119,8 +119,8 @@ public:
 
     _HTMLAttrTable aAttrTab;        // attributes
 
-    _HTMLTableContext( SwPosition *pPs, sal_uInt16 nCntxtStMin,
-                       sal_uInt16 nCntxtStAttrMin ) :
+    _HTMLTableContext( SwPosition *pPs, size_t nCntxtStMin,
+                       size_t nCntxtStAttrMin ) :
         pTableNd( 0 ),
         pFrameFormat( 0 ),
         pPos( pPs ),
@@ -149,8 +149,8 @@ public:
     void SetFrameFormat( SwFrameFormat *pFormat ) { pFrameFormat = pFormat; }
     SwFrameFormat *GetFrameFormat() const { return pFrameFormat; }
 
-    sal_uInt16 GetContextStMin() const { return nContextStMin; }
-    sal_uInt16 GetContextStAttrMin() const { return nContextStAttrMin; }
+    size_t GetContextStMin() const { return nContextStMin; }
+    size_t GetContextStAttrMin() const { return nContextStAttrMin; }
 };
 
 // Cell content is a linked list with SwStartNodes and
@@ -2985,7 +2985,9 @@ SvxBrushItem* SwHTMLParser::CreateBrushItem( const Color 
*pColor,
 class _SectionSaveStruct : public SwPendingStackData
 {
     sal_uInt16 nBaseFontStMinSave, nFontStMinSave, nFontStHeadStartSave;
-    sal_uInt16 nDefListDeepSave, nContextStMinSave, nContextStAttrMinSave;
+    sal_uInt16 nDefListDeepSave;
+    size_t nContextStMinSave;
+    size_t nContextStAttrMinSave;
 
 public:
 
@@ -2995,7 +2997,7 @@ public:
     virtual ~_SectionSaveStruct();
 
 #if OSL_DEBUG_LEVEL > 0
-    sal_uInt16 GetContextStAttrMin() const { return nContextStAttrMinSave; }
+    size_t GetContextStAttrMin() const { return nContextStAttrMinSave; }
 #endif
     void Restore( SwHTMLParser& rParser );
 };
@@ -3303,7 +3305,7 @@ void _CellSaveStruct::InsertCell( SwHTMLParser& rParser,
     {
         _HTMLAttr** pTable = reinterpret_cast<_HTMLAttr**>(&rParser.aAttrTab);
 
-        for( sal_uInt16 nCnt = sizeof( _HTMLAttrTable ) / sizeof( _HTMLAttr* );
+        for( auto nCnt = sizeof( _HTMLAttrTable ) / sizeof( _HTMLAttr* );
             nCnt--; ++pTable )
         {
             OSL_ENSURE( !*pTable, "Die Attribut-Tabelle ist nicht leer" );
@@ -4096,7 +4098,7 @@ void SwHTMLParser::BuildTableCell( HTMLTable *pCurTable, 
bool bReadOptions,
         // Alle noch offenen Kontexte beenden. Wir nehmen hier
         // AttrMin, weil nContxtStMin evtl. veraendert wurde.
         // Da es durch EndContext wieder restauriert wird, geht das.
-        while( (sal_uInt16)aContexts.size() > nContextStAttrMin+1 )
+        while( aContexts.size() > nContextStAttrMin+1 )
         {
             _HTMLAttrContext *pCntxt = PopContext();
             EndContext( pCntxt );
@@ -4915,7 +4917,7 @@ void SwHTMLParser::BuildTableCaption( HTMLTable 
*pCurTable )
     }
 
     // Alle noch offenen Kontexte beenden
-    while( (sal_uInt16)aContexts.size() > nContextStAttrMin+1 )
+    while( aContexts.size() > nContextStAttrMin+1 )
     {
         _HTMLAttrContext *pCntxt = PopContext();
         EndContext( pCntxt );
diff --git a/sw/source/filter/html/swhtml.cxx b/sw/source/filter/html/swhtml.cxx
index 4ab6dee..f5f501e 100644
--- a/sw/source/filter/html/swhtml.cxx
+++ b/sw/source/filter/html/swhtml.cxx
@@ -4085,7 +4085,7 @@ void SwHTMLParser::EndHeading()
 
     // Kontext zu dem Token suchen und vom Stack holen
     _HTMLAttrContext *pCntxt = 0;
-    sal_uInt16 nPos = aContexts.size();
+    auto nPos = aContexts.size();
     while( !pCntxt && nPos>nContextStMin )
     {
         switch( aContexts[--nPos]->GetToken() )
@@ -4283,7 +4283,7 @@ void SwHTMLParser::NewDefList()
     nDefListDeep++;
 
     bool bInDD = false, bNotInDD = false;
-    sal_uInt16 nPos = aContexts.size();
+    auto nPos = aContexts.size();
     while( !bInDD && !bNotInDD && nPos>nContextStMin )
     {
         sal_uInt16 nCntxtToken = aContexts[--nPos]->GetToken();
@@ -4377,7 +4377,7 @@ void SwHTMLParser::NewDefListItem( int nToken )
 {
     // festellen, ob das DD/DT in einer DL vorkommt
     bool bInDefList = false, bNotInDefList = false;
-    sal_uInt16 nPos = aContexts.size();
+    auto nPos = aContexts.size();
     while( !bInDefList && !bNotInDefList && nPos>nContextStMin )
     {
         sal_uInt16 nCntxtToken = aContexts[--nPos]->GetToken();
@@ -4418,7 +4418,7 @@ void SwHTMLParser::EndDefListItem( int nToken, bool 
bSetColl,
     // Kontext zu dem Token suchen und vom Stack holen
     nToken &= ~1;
     _HTMLAttrContext *pCntxt = 0;
-    sal_uInt16 nPos = aContexts.size();
+    auto nPos = aContexts.size();
     while( !pCntxt && nPos>nContextStMin )
     {
         sal_uInt16 nCntxtToken = aContexts[--nPos]->GetToken();
@@ -4547,9 +4547,8 @@ void SwHTMLParser::SetTextCollAttrs( _HTMLAttrContext 
*pContext )
 
     sal_uInt16 nLeftMargin = 0, nRightMargin = 0;   // die Einzuege und
     short nFirstLineIndent = 0;                 // Abstaende
-    sal_uInt16 i;
 
-    for( i = nContextStAttrMin; i < aContexts.size(); i++ )
+    for( auto i = nContextStAttrMin; i < aContexts.size(); ++i )
     {
         const _HTMLAttrContext *pCntxt = aContexts[i];
 
@@ -4716,8 +4715,8 @@ void SwHTMLParser::SetTextCollAttrs( _HTMLAttrContext 
*pContext )
     // bisherige harte Attributierung des Absatzes entfernen
     if( !aParaAttrs.empty() )
     {
-        for( i=0; i<aParaAttrs.size(); i++ )
-            aParaAttrs[i]->Invalidate();
+        for( auto pParaAttr : aParaAttrs )
+            pParaAttr->Invalidate();
 
         aParaAttrs.clear();
     }
diff --git a/sw/source/filter/html/swhtml.hxx b/sw/source/filter/html/swhtml.hxx
index 8c9f9c1..4b9701d 100644
--- a/sw/source/filter/html/swhtml.hxx
+++ b/sw/source/filter/html/swhtml.hxx
@@ -418,8 +418,8 @@ class SwHTMLParser : public SfxHTMLParser, public SwClient
     sal_uInt16  nSBModuleCnt;       // Zaehler fuer Basic-Module
     sal_uInt16  nMissingImgMaps;    // Wie viele Image-Maps fehlen noch?
     size_t nParaCnt;
-    sal_uInt16  nContextStMin;      // Untergrenze fuer PopContext
-    sal_uInt16  nContextStAttrMin;  // Untergrenze fuer Attributierung
+    size_t nContextStMin;           // Untergrenze fuer PopContext
+    size_t nContextStAttrMin;       // Untergrenze fuer Attributierung
     sal_uInt16  nSelectEntryCnt;    // Anzahl der Eintraege der akt. Listbox
     sal_uInt16  nOpenParaToken;     // ein geoeffnetes Absatz-Element
 
commit 1b554d3ada47063496b8cf4a28239da26a6537ae
Author: Matteo Casalin <matteo.casa...@yahoo.com>
Date:   Sun May 31 19:30:46 2015 +0200

    Use auto and range-based for loops
    
    Change-Id: Idbef553cf734eb9eb194912e60f7811d35ce6c84

diff --git a/sw/source/filter/html/htmlctxt.cxx 
b/sw/source/filter/html/htmlctxt.cxx
index e3673e5..8772b68 100644
--- a/sw/source/filter/html/htmlctxt.cxx
+++ b/sw/source/filter/html/htmlctxt.cxx
@@ -143,7 +143,7 @@ void SwHTMLParser::SplitAttrTab( const SwPosition& rNewPos )
     // alle noch offenen Attribute beenden und hinter der Tabelle
     // neu aufspannen
     _HTMLAttr** pHTMLAttributes = reinterpret_cast<_HTMLAttr**>(&aAttrTab);
-    for (sal_uInt16 nCnt = sizeof(_HTMLAttrTable) / sizeof(_HTMLAttr*); 
nCnt--; ++pHTMLAttributes)
+    for (auto nCnt = sizeof(_HTMLAttrTable) / sizeof(_HTMLAttr*); nCnt--; 
++pHTMLAttributes)
     {
         _HTMLAttr *pAttr = *pHTMLAttributes;
         while( pAttr )
@@ -380,14 +380,14 @@ void SwHTMLParser::EndContext( _HTMLAttrContext *pContext 
)
 void SwHTMLParser::ClearContext( _HTMLAttrContext *pContext )
 {
     _HTMLAttrs &rAttrs = pContext->GetAttrs();
-    for( sal_uInt16 i=0; i<rAttrs.size(); i++ )
+    for( auto pAttr : rAttrs )
     {
         // einfaches Loeschen reicht hier nicht, weil das
         // Attribut auch aus seiner Liste ausgetragen werden
         // muss. Theoretisch koennt man natuerlich auch die Liste
         // und die Attribute getrennt loeschen, aber wenn man
         // dann was falsch gemacht hat, sieht es uebel aus.
-        DeleteAttr( rAttrs[i] );
+        DeleteAttr( pAttr );
     }
 
     OSL_ENSURE( !pContext->GetSpansSection(),
commit 3a2549197b0d90a1cd94a13fe0514fec5d5e0fa6
Author: Matteo Casalin <matteo.casa...@yahoo.com>
Date:   Sun May 31 19:02:17 2015 +0200

    Use more proper integer types and range-based for loops
    
    Change-Id: Ie02ebb5337bb902b33685feba95d1265be084450

diff --git a/sw/source/filter/html/htmlcss1.cxx 
b/sw/source/filter/html/htmlcss1.cxx
index a756cdc..ff50777 100644
--- a/sw/source/filter/html/htmlcss1.cxx
+++ b/sw/source/filter/html/htmlcss1.cxx
@@ -189,7 +189,7 @@ static void SetCharFormatAttrs( SwCharFormat *pCharFormat, 
SfxItemSet& rItemSet
     const SfxPoolItem *pItem;
     static const sal_uInt16 aWhichIds[3] = { 
RES_CHRATR_FONTSIZE,RES_CHRATR_CJK_FONTSIZE,
                                    RES_CHRATR_CTL_FONTSIZE };
-       for( sal_uInt16 i=0; i<3; i++ )
+       for( size_t i=0; i<SAL_N_ELEMENTS(aWhichIds); ++i )
     {
         if( SfxItemState::SET == rItemSet.GetItemState( aWhichIds[i], false,
                                                    &pItem ) &&
@@ -320,7 +320,7 @@ static void SetTextCollAttrs( SwTextFormatColl *pColl, 
SfxItemSet& rItemSet,
 
     static const sal_uInt16 aWhichIds[3] = { 
RES_CHRATR_FONTSIZE,RES_CHRATR_CJK_FONTSIZE,
                                    RES_CHRATR_CTL_FONTSIZE };
-       for( sal_uInt16 i=0; i<3; i++ )
+       for( size_t i=0; i<SAL_N_ELEMENTS(aWhichIds); ++i )
     {
         if( SfxItemState::SET == rItemSet.GetItemState( aWhichIds[i], false,
                                                    &pItem ) &&
@@ -426,7 +426,7 @@ void SwCSS1Parser::SetPageDescAttrs( const SvxBrushItem 
*pBrush,
     {
         static sal_uInt16 aPoolIds[] = { RES_POOLPAGE_HTML, RES_POOLPAGE_FIRST,
                                      RES_POOLPAGE_LEFT, RES_POOLPAGE_RIGHT };
-        for( sal_uInt16 i=0; i<4; i++ )
+        for( size_t i=0; i<SAL_N_ELEMENTS(aPoolIds); i++ )
         {
             const SwPageDesc *pPageDesc = GetPageDesc( aPoolIds[i], false );
             if( pPageDesc )
@@ -675,9 +675,9 @@ static void RemoveScriptItems( SfxItemSet& rItemSet, 
sal_uInt16 nScript,
         break;
        }
 
-    for( sal_uInt16 j=0; j < 3; j++ )
+    for( size_t j=0; j < SAL_N_ELEMENTS(aWhichIds); ++j )
     {
-        for( sal_uInt16 i=0; i < 5; i++ )
+        for( size_t i=0; i < SAL_N_ELEMENTS(aWhichIds[0]); ++i )
         {
             sal_uInt16 nWhich = aWhichIds[j][i];
             const SfxPoolItem *pItem;
@@ -1221,14 +1221,14 @@ SwCharFormat* SwCSS1Parser::GetChrFormat( sal_uInt16 
nToken2, const OUString& rC
 
 SwTextFormatColl *SwCSS1Parser::GetTextCollFromPool( sal_uInt16 nPoolId ) const
 {
-    sal_uInt16 nOldArrLen = pDoc->GetTextFormatColls()->size();
+    const SwTextFormatColls::size_type nOldArrLen = 
pDoc->GetTextFormatColls()->size();
 
     SwTextFormatColl *pColl = 
pDoc->getIDocumentStylePoolAccess().GetTextCollFromPool( nPoolId, false );
 
     if( bIsNewDoc )
     {
-        sal_uInt16 nArrLen = pDoc->GetTextFormatColls()->size();
-        for( sal_uInt16 i=nOldArrLen; i<nArrLen; i++ )
+        const SwTextFormatColls::size_type nArrLen = 
pDoc->GetTextFormatColls()->size();
+        for( SwTextFormatColls::size_type i=nOldArrLen; i<nArrLen; ++i )
             lcl_swcss1_setEncoding( *(*pDoc->GetTextFormatColls())[i],
                                     GetDfltEncoding() );
     }
@@ -1238,15 +1238,15 @@ SwTextFormatColl *SwCSS1Parser::GetTextCollFromPool( 
sal_uInt16 nPoolId ) const
 
 SwCharFormat *SwCSS1Parser::GetCharFormatFromPool( sal_uInt16 nPoolId ) const
 {
-    sal_uInt16 nOldArrLen = pDoc->GetCharFormats()->size();
+    const SwCharFormats::size_type nOldArrLen = pDoc->GetCharFormats()->size();
 
     SwCharFormat *pCharFormat = 
pDoc->getIDocumentStylePoolAccess().GetCharFormatFromPool( nPoolId );
 
     if( bIsNewDoc )
     {
-        sal_uInt16 nArrLen = pDoc->GetCharFormats()->size();
+        const SwCharFormats::size_type nArrLen = 
pDoc->GetCharFormats()->size();
 
-        for( sal_uInt16 i=nOldArrLen; i<nArrLen; i++ )
+        for( SwCharFormats::size_type i=nOldArrLen; i<nArrLen; i++ )
             lcl_swcss1_setEncoding( *(*pDoc->GetCharFormats())[i],
                                     GetDfltEncoding() );
     }
@@ -2133,7 +2133,7 @@ void SwHTMLParser::SetFrameFormatAttrs( SfxItemSet 
&rItemSet,
 _HTMLAttrContext *SwHTMLParser::PopContext( sal_uInt16 nToken, sal_uInt16 
nLimit,
                                             bool bRemove )
 {
-    sal_uInt16 nPos = aContexts.size();
+    _HTMLAttrContexts::size_type nPos = aContexts.size();
     if( nPos <= nContextStMin )
         return 0;
 
@@ -2176,7 +2176,7 @@ bool SwHTMLParser::GetMarginsFromContext( sal_uInt16& 
nLeft,
                                           short& nIndent,
                                           bool bIgnoreTopContext ) const
 {
-    sal_uInt16 nPos = aContexts.size();
+    _HTMLAttrContexts::size_type nPos = aContexts.size();
     if( bIgnoreTopContext )
     {
         if( !nPos )
@@ -2222,7 +2222,7 @@ void SwHTMLParser::GetULSpaceFromContext( sal_uInt16& 
nUpper,
     sal_uInt16 nDfltColl = 0;
     OUString aDfltClass;
 
-    sal_uInt16 nPos = aContexts.size();
+    _HTMLAttrContexts::size_type nPos = aContexts.size();
     while( nPos > nContextStAttrMin )
     {
         const _HTMLAttrContext *pCntxt = aContexts[--nPos];
@@ -2252,10 +2252,8 @@ void SwHTMLParser::GetULSpaceFromContext( sal_uInt16& 
nUpper,
 void SwHTMLParser::EndContextAttrs( _HTMLAttrContext *pContext, bool bRemove )
 {
     _HTMLAttrs &rAttrs = pContext->GetAttrs();
-    for( sal_uInt16 i=0; i<rAttrs.size(); i++ )
+    for( auto pAttr : rAttrs )
     {
-        _HTMLAttr *pAttr = rAttrs[i];
-
         if( RES_PARATR_DROP==pAttr->GetItem().Which() )
         {
             // Fuer DropCaps noch die Anzahl der Zeichen anpassen. Wenn
@@ -2311,7 +2309,7 @@ static void lcl_swcss1_setEncoding( SwFormat& rFormat, 
rtl_TextEncoding eEnc )
     static const sal_uInt16 aWhichIds[3] = { RES_CHRATR_FONT, 
RES_CHRATR_CJK_FONT,
                                    RES_CHRATR_CTL_FONT };
     const SfxPoolItem *pItem;
-    for( sal_uInt16 i=0; i<3; i++ )
+    for( size_t i=0; i<SAL_N_ELEMENTS(aWhichIds); ++i )
     {
         if( SfxItemState::SET == rItemSet.GetItemState( aWhichIds[i], 
false,&pItem ) )
         {
@@ -2336,8 +2334,7 @@ void SwCSS1Parser::SetDfltEncoding( rtl_TextEncoding eEnc 
)
             // Set new encoding as pool default
             static const sal_uInt16 aWhichIds[3] = { RES_CHRATR_FONT, 
RES_CHRATR_CJK_FONT,
                                            RES_CHRATR_CTL_FONT };
-            sal_uInt16 i;
-            for( i=0; i<3; i++ )
+            for( size_t i=0; i<SAL_N_ELEMENTS(aWhichIds); ++i )
             {
                 const SvxFontItem& rDfltFont =
                     static_cast<const SvxFontItem&>(pDoc->GetDefault( 
aWhichIds[i]));
@@ -2350,14 +2347,12 @@ void SwCSS1Parser::SetDfltEncoding( rtl_TextEncoding 
eEnc )
             }
 
             // Change all paragraph styles that do specify a font.
-            sal_uInt16 nArrLen = pDoc->GetTextFormatColls()->size();
-            for( i=1; i<nArrLen; i++ )
-                lcl_swcss1_setEncoding( *(*pDoc->GetTextFormatColls())[i], 
eEnc );
+            for( auto pTextFormatColl : *pDoc->GetTextFormatColls() )
+                lcl_swcss1_setEncoding( *pTextFormatColl, eEnc );
 
             // Change all character styles that do specify a font.
-            nArrLen = pDoc->GetCharFormats()->size();
-            for( i=1; i<nArrLen; i++ )
-                lcl_swcss1_setEncoding( *(*pDoc->GetCharFormats())[i], eEnc );
+            for( auto pCharFormat : *pDoc->GetCharFormats() )
+                lcl_swcss1_setEncoding( *pCharFormat, eEnc );
         }
 
         SvxCSS1Parser::SetDfltEncoding( eEnc );
commit 18cf9461f58d652296424b25536543fe5371964b
Author: Matteo Casalin <matteo.casa...@yahoo.com>
Date:   Sun May 31 18:08:28 2015 +0200

    Use more proper integer types and range-based for loops
    
    Change-Id: I59dc93687063e1df082d5c96c691dd364cc78ddb

diff --git a/sw/source/filter/html/htmlatr.cxx 
b/sw/source/filter/html/htmlatr.cxx
index 5664b4f..2b9fa87 100644
--- a/sw/source/filter/html/htmlatr.cxx
+++ b/sw/source/filter/html/htmlatr.cxx
@@ -356,10 +356,10 @@ SwHTMLFormatInfo::SwHTMLFormatInfo( const SwFormat *pF, 
SwDoc *pDoc, SwDoc *pTem
                 aSets[1] = 1;
                 break;
             }
-            for( sal_uInt16 i=0; i<4; i++ )
+            for( int i=0; i<4; ++i )
             {
                 const SfxPoolItem& rRef = pFormat->GetFormatAttr( 
aWhichIds[nRef][i] );
-                for( sal_uInt16 j=0; j<2; j++ )
+                for( size_t j=0; j<SAL_N_ELEMENTS(aSets); ++j )
                 {
                     const SfxPoolItem& rSet = pFormat->GetFormatAttr( 
aWhichIds[aSets[j]][i] );
                     if( rSet != rRef )
@@ -430,7 +430,7 @@ SwHTMLFormatInfo::SwHTMLFormatInfo( const SwFormat *pF, 
SwDoc *pDoc, SwDoc *pTem
         static const sal_uInt16 aWhichIds[3] =
             { RES_CHRATR_LANGUAGE, RES_CHRATR_CJK_LANGUAGE,
                 RES_CHRATR_CTL_LANGUAGE };
-        for( sal_uInt16 i=0; i<3; i++ )
+        for( size_t i=0; i<SAL_N_ELEMENTS(aWhichIds); ++i )
         {
             if( aWhichIds[i] != nWhichId )
             {
@@ -854,7 +854,7 @@ void OutHTML_SwFormat( Writer& rWrt, const SwFormat& 
rFormat,
     {
         static const sal_uInt16 aWhichIds[3] = { RES_CHRATR_LANGUAGE, 
RES_CHRATR_CJK_LANGUAGE, RES_CHRATR_CTL_LANGUAGE };
 
-        for( sal_uInt16 i=0; i<3; i++ )
+        for( size_t i=0; i<SAL_N_ELEMENTS(aWhichIds); ++i )
         {
             // export language if it differs from the default language only.
             const SfxPoolItem *pTmpItem;
@@ -1124,8 +1124,8 @@ class HTMLEndPosLst
 
     // Eine SttEndPos in die Start- und Ende-Listen eintragen bzw. aus
     // ihnen loeschen, wobei die Ende-Position bekannt ist
-    void _InsertItem( HTMLStartEndPos *pPos, sal_uInt16 nEndPos );
-    void _RemoveItem( sal_uInt16 nEndPos );
+    void _InsertItem( HTMLStartEndPos *pPos, HTMLStartEndPositions::size_type 
nEndPos );
+    void _RemoveItem( HTMLStartEndPositions::size_type nEndPos );
 
     // die "Art" es Attributs ermitteln
     HTMLOnOffState GetHTMLItemState( const SfxPoolItem& rItem );
@@ -1140,7 +1140,7 @@ class HTMLEndPosLst
 
     // das Ende eines gesplitteten Items anpassen
     void FixSplittedItem( HTMLStartEndPos *pPos, sal_Int32 nNewEnd,
-                            sal_uInt16 nStartPos );
+                            HTMLStartEndPositions::size_type nStartPos );
 
     // Ein Attribut in die Listen eintragen und ggf. aufteilen
     void InsertItem( const SfxPoolItem& rItem, sal_Int32 nStart,
@@ -1185,23 +1185,22 @@ public:
     bool IsHTMLMode( sal_uLong nMode ) const { return (nHTMLMode & nMode) != 
0; }
 };
 
-void HTMLEndPosLst::_InsertItem( HTMLStartEndPos *pPos, sal_uInt16 nEndPos )
+void HTMLEndPosLst::_InsertItem( HTMLStartEndPos *pPos, 
HTMLStartEndPositions::size_type nEndPos )
 {
     // In der Start-Liste das Attribut hinter allen vorher und an
     // der gleichen Position gestarteten Attributen einfuegen
     sal_Int32 nStart = pPos->GetStart();
-    sal_uInt16 i;
+    HTMLStartEndPositions::size_type i {0};
 
-    for( i = 0; i < aStartLst.size() &&
-                     aStartLst[i]->GetStart() <= nStart; i++ )
-        ;
+    while( i < aStartLst.size() && aStartLst[i]->GetStart() <= nStart )
+        ++i;
     aStartLst.insert( aStartLst.begin() + i, pPos );
 
     // die Position in der Ende-Liste wurde uebergeben
     aEndLst.insert( aEndLst.begin() + nEndPos, pPos );
 }
 
-void HTMLEndPosLst::_RemoveItem( sal_uInt16 nEndPos )
+void HTMLEndPosLst::_RemoveItem( HTMLStartEndPositions::size_type nEndPos )
 {
     HTMLStartEndPos *pPos = aEndLst[nEndPos];
 
@@ -1369,10 +1368,8 @@ HTMLOnOffState HTMLEndPosLst::GetHTMLItemState( const 
SfxPoolItem& rItem )
 
 bool HTMLEndPosLst::ExistsOnTagItem( sal_uInt16 nWhich, sal_Int32 nPos )
 {
-    for( sal_uInt16 i=0; i<aStartLst.size(); i++ )
+    for( auto pTest : aStartLst )
     {
-        HTMLStartEndPos *pTest = aStartLst[i];
-
         if( pTest->GetStart() > nPos )
         {
             // dieses uns alle folgenden Attribute beginnen spaeter
@@ -1405,10 +1402,8 @@ bool HTMLEndPosLst::ExistsOffTagItem( sal_uInt16 nWhich, 
sal_Int32 nStartPos,
         return false;
     }
 
-    for( sal_uInt16 i=0; i<aStartLst.size(); i++ )
+    for( auto pTest : aStartLst )
     {
-        HTMLStartEndPos *pTest = aStartLst[i];
-
         if( pTest->GetStart() > nStartPos )
         {
             // dieses uns alle folgenden Attribute beginnen spaeter
@@ -1437,7 +1432,7 @@ bool HTMLEndPosLst::ExistsOffTagItem( sal_uInt16 nWhich, 
sal_Int32 nStartPos,
 }
 
 void HTMLEndPosLst::FixSplittedItem( HTMLStartEndPos *pPos, sal_Int32 nNewEnd,
-                                        sal_uInt16 nStartPos )
+                                        HTMLStartEndPositions::size_type 
nStartPos )
 {
     // die End-Position entsprechend fixen
     pPos->SetEnd( nNewEnd );
@@ -1451,14 +1446,13 @@ void HTMLEndPosLst::FixSplittedItem( HTMLStartEndPos 
*pPos, sal_Int32 nNewEnd,
 
     // es wird von nun an als letztes an der entsprechenden Position
     // beendet
-    HTMLStartEndPositions::size_type nEndPos;
-    for( nEndPos=0; nEndPos < aEndLst.size() &&
-                    aEndLst[nEndPos]->GetEnd() <= nNewEnd; nEndPos++ )
-        ;
+    HTMLStartEndPositions::size_type nEndPos {0};
+    while( nEndPos < aEndLst.size() && aEndLst[nEndPos]->GetEnd() <= nNewEnd )
+        ++nEndPos;
     aEndLst.insert( aEndLst.begin() + nEndPos, pPos );
 
     // jetzt noch die spaeter gestarteten Attribute anpassen
-    for( sal_uInt16 i=nStartPos+1; i<aStartLst.size(); i++ )
+    for( HTMLStartEndPositions::size_type i = nStartPos+1; i<aStartLst.size(); 
++i )
     {
         HTMLStartEndPos *pTest = aStartLst[i];
         sal_Int32 nTestEnd = pTest->GetEnd();
@@ -1495,7 +1489,7 @@ void HTMLEndPosLst::FixSplittedItem( HTMLStartEndPos 
*pPos, sal_Int32 nNewEnd,
 void HTMLEndPosLst::InsertItem( const SfxPoolItem& rItem, sal_Int32 nStart,
                                                           sal_Int32 nEnd )
 {
-    sal_uInt16 i;
+    HTMLStartEndPositions::size_type i;
     for( i = 0; i < aEndLst.size(); i++ )
     {
         HTMLStartEndPos *pTest = aEndLst[i];
@@ -1535,7 +1529,7 @@ void HTMLEndPosLst::SplitItem( const SfxPoolItem& rItem, 
sal_Int32 nStart,
     // erstmal muessen wir die alten Items anhand der Startliste suchen
     // und die neuen Item-Bereiche festlegen
 
-    for( sal_uInt16 i=0; i<aStartLst.size(); i++ )
+    for( HTMLStartEndPositions::size_type i=0; i<aStartLst.size(); ++i )
     {
         HTMLStartEndPos *pTest = aStartLst[i];
         sal_Int32 nTestStart = pTest->GetStart();
@@ -1932,7 +1926,7 @@ void HTMLEndPosLst::OutStartAttrs( SwHTMLWriter& rHWrt, 
sal_Int32 nPos,
 
     // Character border attribute must be the first which is written out
     // because of border merge.
-    sal_uInt16 nCharBoxIndex = 0;
+    HTMLStartEndPositions::size_type nCharBoxIndex = 0;
     while( nCharBoxIndex < aStartLst.size() &&
            aStartLst[nCharBoxIndex]->GetItem()->Which() != RES_CHRATR_BOX )
     {
@@ -1940,7 +1934,7 @@ void HTMLEndPosLst::OutStartAttrs( SwHTMLWriter& rHWrt, 
sal_Int32 nPos,
     }
 
     // die Attribute in der Start-Liste sind aufsteigend sortiert
-    for( sal_uInt16 i=0; i< aStartLst.size(); i++ )
+    for( HTMLStartEndPositions::size_type i=0; i< aStartLst.size(); ++i )
     {
         HTMLStartEndPos *pPos = 0;
         if( nCharBoxIndex < aStartLst.size() )
@@ -1989,7 +1983,7 @@ void HTMLEndPosLst::OutEndAttrs( SwHTMLWriter& rHWrt, 
sal_Int32 nPos,
     rHWrt.bTagOn = false;
 
     // die Attribute in der End-Liste sind aufsteigend sortiert
-    sal_uInt16 i=0;
+    HTMLStartEndPositions::size_type i {0};
     while( i < aEndLst.size() )
     {
         HTMLStartEndPos *pPos = aEndLst[i];
commit bd54e40d69cd79fc4d79573c23a9dca460d71819
Author: Matteo Casalin <matteo.casa...@yahoo.com>
Date:   Sun May 31 17:29:10 2015 +0200

    Use std::find instead of custom code
    
    Change-Id: I5841fa214b53e5b65b4c1251b4c033bb2e55dadc

diff --git a/sw/source/filter/html/htmlatr.cxx 
b/sw/source/filter/html/htmlatr.cxx
index 39a28de..5664b4f 100644
--- a/sw/source/filter/html/htmlatr.cxx
+++ b/sw/source/filter/html/htmlatr.cxx
@@ -78,6 +78,7 @@
 #include <svtools/HtmlWriter.hxx>
 
 #include <memory>
+#include <algorithm>
 
 using namespace css;
 
@@ -1121,10 +1122,6 @@ class HTMLEndPosLst
     sal_uLong nHTMLMode;
     bool bOutStyles : 1;    // werden Styles exportiert
 
-    // die Position eines Items in der Start-/Ende-Liste suchen
-    sal_uInt16 _FindStartPos( const HTMLStartEndPos *pPos ) const;
-    sal_uInt16 _FindEndPos( const HTMLStartEndPos *pPos ) const;
-
     // Eine SttEndPos in die Start- und Ende-Listen eintragen bzw. aus
     // ihnen loeschen, wobei die Ende-Position bekannt ist
     void _InsertItem( HTMLStartEndPos *pPos, sal_uInt16 nEndPos );
@@ -1188,29 +1185,6 @@ public:
     bool IsHTMLMode( sal_uLong nMode ) const { return (nHTMLMode & nMode) != 
0; }
 };
 
-sal_uInt16 HTMLEndPosLst::_FindStartPos( const HTMLStartEndPos *pPos ) const
-{
-    sal_uInt16 i;
-    for( i = 0; i < aStartLst.size() && aStartLst[i] != pPos;  i++ )
-        ;
-
-    OSL_ENSURE(i != aStartLst.size(), "Item not found in Start List!" );
-
-    return i==aStartLst.size() ? USHRT_MAX : i;
-}
-
-sal_uInt16 HTMLEndPosLst::_FindEndPos( const HTMLStartEndPos *pPos ) const
-{
-    sal_uInt16 i;
-
-    for( i = 0; i < aEndLst.size() && aEndLst[i] != pPos;  i++ )
-        ;
-
-    OSL_ENSURE(i != aEndLst.size(), "Item not found in End List!" );
-
-    return i==aEndLst.size() ? USHRT_MAX : i;
-}
-
 void HTMLEndPosLst::_InsertItem( HTMLStartEndPos *pPos, sal_uInt16 nEndPos )
 {
     // In der Start-Liste das Attribut hinter allen vorher und an
@@ -1232,9 +1206,11 @@ void HTMLEndPosLst::_RemoveItem( sal_uInt16 nEndPos )
     HTMLStartEndPos *pPos = aEndLst[nEndPos];
 
     // jetzt Suchen wir es in der Start-Liste
-    sal_uInt16 nStartPos = _FindStartPos( pPos );
-    if( nStartPos != USHRT_MAX )
-        aStartLst.erase( aStartLst.begin() + nStartPos );
+    HTMLStartEndPositions::iterator it =
+        std::find(aStartLst.begin(), aStartLst.end(), pPos );
+    OSL_ENSURE(it != aStartLst.end(), "Item not found in Start List!");
+    if( it != aStartLst.end() )
+        aStartLst.erase( it );
 
     aEndLst.erase( aEndLst.begin() + nEndPos );
 
@@ -1467,12 +1443,15 @@ void HTMLEndPosLst::FixSplittedItem( HTMLStartEndPos 
*pPos, sal_Int32 nNewEnd,
     pPos->SetEnd( nNewEnd );
 
     // das Item aus der End-Liste entfernen
-    sal_uInt16 nEndPos = _FindEndPos( pPos );
-    if( nEndPos != USHRT_MAX )
-        aEndLst.erase( aEndLst.begin() + nEndPos );
+    HTMLStartEndPositions::iterator it =
+        std::find(aEndLst.begin(), aEndLst.end(), pPos );
+    OSL_ENSURE(it != aEndLst.end(), "Item not found in End List!" );
+    if( it != aEndLst.end() )
+        aEndLst.erase( it );
 
     // es wird von nun an als letztes an der entsprechenden Position
     // beendet
+    HTMLStartEndPositions::size_type nEndPos;
     for( nEndPos=0; nEndPos < aEndLst.size() &&
                     aEndLst[nEndPos]->GetEnd() <= nNewEnd; nEndPos++ )
         ;
@@ -1498,9 +1477,10 @@ void HTMLEndPosLst::FixSplittedItem( HTMLStartEndPos 
*pPos, sal_Int32 nNewEnd,
             pTest->SetEnd( nNewEnd );
 
             // das Attribut aus der End-Liste entfernen
-            sal_uInt16 nEPos = _FindEndPos( pTest );
-            if( nEPos != USHRT_MAX )
-                aEndLst.erase( aEndLst.begin() + nEPos );
+            it = std::find(aEndLst.begin(), aEndLst.end(), pTest );
+            OSL_ENSURE(it != aEndLst.end(), "Item not found in End List!" );
+            if( it != aEndLst.end() )
+                aEndLst.erase( it );
 
             // es endet jetzt als erstes Attribut an der entsprechenden
             // Position. Diese Position in der Ende-Liste kennen wir schon.
@@ -1593,9 +1573,11 @@ void HTMLEndPosLst::SplitItem( const SfxPoolItem& rItem, 
sal_Int32 nStart,
                     aStartLst.erase( aStartLst.begin() + i );
                     i--;
 
-                    sal_uInt16 nEndPos = _FindEndPos( pTest );
-                    if( nEndPos != USHRT_MAX )
-                        aEndLst.erase( aEndLst.begin() + nEndPos );
+                    HTMLStartEndPositions::iterator it =
+                        std::find(aEndLst.begin(), aEndLst.end(), pTest );
+                    OSL_ENSURE(it != aEndLst.end(), "Item not found in End 
List!" );
+                    if( it != aEndLst.end() )
+                        aEndLst.erase( it );
                 }
 
                 // ggf den zweiten Teil des gesplitteten Attribts einfuegen
@@ -2024,9 +2006,14 @@ void HTMLEndPosLst::OutEndAttrs( SwHTMLWriter& rHWrt, 
sal_Int32 nPos,
             bool bSkipOut = false;
             if( pPos->GetItem()->Which() == RES_CHRATR_BOX )
             {
-                for(sal_uInt16 nIndex = _FindStartPos(pPos) + 1; nIndex < 
aStartLst.size(); ++nIndex )
+                HTMLStartEndPositions::iterator it =
+                    std::find(aStartLst.begin(), aStartLst.end(), pPos );
+                OSL_ENSURE(it != aStartLst.end(), "Item not found in Start 
List!" );
+                if (it != aStartLst.end())
+                    ++it;
+                while(it != aStartLst.end() )
                 {
-                    HTMLStartEndPos *pEndPos = aStartLst[nIndex];
+                    HTMLStartEndPos *pEndPos = *it;
                     if( pEndPos->GetItem()->Which() == RES_CHRATR_BOX &&
                         *static_cast<const SvxBoxItem*>(pEndPos->GetItem()) ==
                         *static_cast<const SvxBoxItem*>(pPos->GetItem()) )
@@ -2035,6 +2022,7 @@ void HTMLEndPosLst::OutEndAttrs( SwHTMLWriter& rHWrt, 
sal_Int32 nPos,
                         bSkipOut = true;
                         break;
                     }
+                    ++it;
                 }
             }
             if( !bSkipOut )
commit fd5d74c28a5c1775a3559f93233b52382991539a
Author: Matteo Casalin <matteo.casa...@yahoo.com>
Date:   Sun May 31 15:03:18 2015 +0200

    Use more explicative names
    
    Change-Id: Ie42b204b8cc81552b0fb18b8f4ef938787fa5c4d

diff --git a/sw/source/filter/html/htmlatr.cxx 
b/sw/source/filter/html/htmlatr.cxx
index 879ac21..39a28de 100644
--- a/sw/source/filter/html/htmlatr.cxx
+++ b/sw/source/filter/html/htmlatr.cxx
@@ -1058,7 +1058,7 @@ void OutHTML_SwFormatOff( Writer& rWrt, const 
SwHTMLTextCollOutputInfo& rInfo )
     }
 }
 
-class HTMLSttEndPos
+class HTMLStartEndPos
 {
     sal_Int32 nStart;
     sal_Int32 nEnd;
@@ -1066,8 +1066,8 @@ class HTMLSttEndPos
 
 public:
 
-    HTMLSttEndPos( const SfxPoolItem& rItem, sal_Int32 nStt, sal_Int32 nE );
-    ~HTMLSttEndPos();
+    HTMLStartEndPos( const SfxPoolItem& rItem, sal_Int32 nStt, sal_Int32 nE );
+    ~HTMLStartEndPos();
 
     const SfxPoolItem *GetItem() const { return pItem; }
 
@@ -1078,19 +1078,19 @@ public:
     void SetEnd( sal_Int32 nE ) { nEnd = nE; }
 };
 
-HTMLSttEndPos::HTMLSttEndPos( const SfxPoolItem& rItem, sal_Int32 nStt,
+HTMLStartEndPos::HTMLStartEndPos( const SfxPoolItem& rItem, sal_Int32 nStt,
                                                         sal_Int32 nE ) :
     nStart( nStt ),
     nEnd( nE ),
     pItem( rItem.Clone() )
 {}
 
-HTMLSttEndPos::~HTMLSttEndPos()
+HTMLStartEndPos::~HTMLStartEndPos()
 {
     delete pItem;
 }
 
-typedef std::vector<HTMLSttEndPos *> _HTMLEndLst;
+typedef std::vector<HTMLStartEndPos *> HTMLStartEndPositions;
 
 enum HTMLOnOffState { HTML_NOT_SUPPORTED,   // unsupported Attribute
                       HTML_REAL_VALUE,      // Attribute with value
@@ -1104,8 +1104,8 @@ enum HTMLOnOffState { HTML_NOT_SUPPORTED,   // 
unsupported Attribute
 
 class HTMLEndPosLst
 {
-    _HTMLEndLst aStartLst;  // nach Anfangs-Psoitionen sortierte Liste
-    _HTMLEndLst aEndLst;    // nach End-Psotionen sortierte Liste
+    HTMLStartEndPositions aStartLst;  // nach Anfangs-Psoitionen sortierte 
Liste
+    HTMLStartEndPositions aEndLst;    // nach End-Psotionen sortierte Liste
     std::deque<sal_Int32> aScriptChgLst;    // positions where script changes
                                     // 0 is not contained in this list,
                                     // but the text length
@@ -1122,12 +1122,12 @@ class HTMLEndPosLst
     bool bOutStyles : 1;    // werden Styles exportiert
 
     // die Position eines Items in der Start-/Ende-Liste suchen
-    sal_uInt16 _FindStartPos( const HTMLSttEndPos *pPos ) const;
-    sal_uInt16 _FindEndPos( const HTMLSttEndPos *pPos ) const;
+    sal_uInt16 _FindStartPos( const HTMLStartEndPos *pPos ) const;
+    sal_uInt16 _FindEndPos( const HTMLStartEndPos *pPos ) const;
 
     // Eine SttEndPos in die Start- und Ende-Listen eintragen bzw. aus
     // ihnen loeschen, wobei die Ende-Position bekannt ist
-    void _InsertItem( HTMLSttEndPos *pPos, sal_uInt16 nEndPos );
+    void _InsertItem( HTMLStartEndPos *pPos, sal_uInt16 nEndPos );
     void _RemoveItem( sal_uInt16 nEndPos );
 
     // die "Art" es Attributs ermitteln
@@ -1142,7 +1142,7 @@ class HTMLEndPosLst
                                           sal_Int32 nEndPos );
 
     // das Ende eines gesplitteten Items anpassen
-    void FixSplittedItem( HTMLSttEndPos *pPos, sal_Int32 nNewEnd,
+    void FixSplittedItem( HTMLStartEndPos *pPos, sal_Int32 nNewEnd,
                             sal_uInt16 nStartPos );
 
     // Ein Attribut in die Listen eintragen und ggf. aufteilen
@@ -1188,7 +1188,7 @@ public:
     bool IsHTMLMode( sal_uLong nMode ) const { return (nHTMLMode & nMode) != 
0; }
 };
 
-sal_uInt16 HTMLEndPosLst::_FindStartPos( const HTMLSttEndPos *pPos ) const
+sal_uInt16 HTMLEndPosLst::_FindStartPos( const HTMLStartEndPos *pPos ) const
 {
     sal_uInt16 i;
     for( i = 0; i < aStartLst.size() && aStartLst[i] != pPos;  i++ )
@@ -1199,7 +1199,7 @@ sal_uInt16 HTMLEndPosLst::_FindStartPos( const 
HTMLSttEndPos *pPos ) const
     return i==aStartLst.size() ? USHRT_MAX : i;
 }
 
-sal_uInt16 HTMLEndPosLst::_FindEndPos( const HTMLSttEndPos *pPos ) const
+sal_uInt16 HTMLEndPosLst::_FindEndPos( const HTMLStartEndPos *pPos ) const
 {
     sal_uInt16 i;
 
@@ -1211,7 +1211,7 @@ sal_uInt16 HTMLEndPosLst::_FindEndPos( const 
HTMLSttEndPos *pPos ) const
     return i==aEndLst.size() ? USHRT_MAX : i;
 }
 
-void HTMLEndPosLst::_InsertItem( HTMLSttEndPos *pPos, sal_uInt16 nEndPos )
+void HTMLEndPosLst::_InsertItem( HTMLStartEndPos *pPos, sal_uInt16 nEndPos )
 {
     // In der Start-Liste das Attribut hinter allen vorher und an
     // der gleichen Position gestarteten Attributen einfuegen
@@ -1229,7 +1229,7 @@ void HTMLEndPosLst::_InsertItem( HTMLSttEndPos *pPos, 
sal_uInt16 nEndPos )
 
 void HTMLEndPosLst::_RemoveItem( sal_uInt16 nEndPos )
 {
-    HTMLSttEndPos *pPos = aEndLst[nEndPos];
+    HTMLStartEndPos *pPos = aEndLst[nEndPos];
 
     // jetzt Suchen wir es in der Start-Liste
     sal_uInt16 nStartPos = _FindStartPos( pPos );
@@ -1395,7 +1395,7 @@ bool HTMLEndPosLst::ExistsOnTagItem( sal_uInt16 nWhich, 
sal_Int32 nPos )
 {
     for( sal_uInt16 i=0; i<aStartLst.size(); i++ )
     {
-        HTMLSttEndPos *pTest = aStartLst[i];
+        HTMLStartEndPos *pTest = aStartLst[i];
 
         if( pTest->GetStart() > nPos )
         {
@@ -1431,7 +1431,7 @@ bool HTMLEndPosLst::ExistsOffTagItem( sal_uInt16 nWhich, 
sal_Int32 nStartPos,
 
     for( sal_uInt16 i=0; i<aStartLst.size(); i++ )
     {
-        HTMLSttEndPos *pTest = aStartLst[i];
+        HTMLStartEndPos *pTest = aStartLst[i];
 
         if( pTest->GetStart() > nStartPos )
         {
@@ -1460,7 +1460,7 @@ bool HTMLEndPosLst::ExistsOffTagItem( sal_uInt16 nWhich, 
sal_Int32 nStartPos,
     return false;
 }
 
-void HTMLEndPosLst::FixSplittedItem( HTMLSttEndPos *pPos, sal_Int32 nNewEnd,
+void HTMLEndPosLst::FixSplittedItem( HTMLStartEndPos *pPos, sal_Int32 nNewEnd,
                                         sal_uInt16 nStartPos )
 {
     // die End-Position entsprechend fixen
@@ -1481,7 +1481,7 @@ void HTMLEndPosLst::FixSplittedItem( HTMLSttEndPos *pPos, 
sal_Int32 nNewEnd,
     // jetzt noch die spaeter gestarteten Attribute anpassen
     for( sal_uInt16 i=nStartPos+1; i<aStartLst.size(); i++ )
     {
-        HTMLSttEndPos *pTest = aStartLst[i];
+        HTMLStartEndPos *pTest = aStartLst[i];
         sal_Int32 nTestEnd = pTest->GetEnd();
         if( pTest->GetStart() >= nNewEnd )
         {
@@ -1518,7 +1518,7 @@ void HTMLEndPosLst::InsertItem( const SfxPoolItem& rItem, 
sal_Int32 nStart,
     sal_uInt16 i;
     for( i = 0; i < aEndLst.size(); i++ )
     {
-        HTMLSttEndPos *pTest = aEndLst[i];
+        HTMLStartEndPos *pTest = aEndLst[i];
         sal_Int32 nTestEnd = pTest->GetEnd();
         if( nTestEnd <= nStart )
         {
@@ -1531,7 +1531,7 @@ void HTMLEndPosLst::InsertItem( const SfxPoolItem& rItem, 
sal_Int32 nStart,
             {
                 // das Test-Attribut endet, bevor das neue endet. Das
                 // neue Attribut muss deshalb aufgesplittet werden
-                _InsertItem( new HTMLSttEndPos( rItem, nStart, nTestEnd ), i );
+                _InsertItem( new HTMLStartEndPos( rItem, nStart, nTestEnd ), i 
);
                 nStart = nTestEnd;
             }
         }
@@ -1544,7 +1544,7 @@ void HTMLEndPosLst::InsertItem( const SfxPoolItem& rItem, 
sal_Int32 nStart,
     }
 
     // ein Attribut muss noch eingefuegt werden
-    _InsertItem( new HTMLSttEndPos( rItem, nStart, nEnd ), i );
+    _InsertItem( new HTMLStartEndPos( rItem, nStart, nEnd ), i );
 }
 
 void HTMLEndPosLst::SplitItem( const SfxPoolItem& rItem, sal_Int32 nStart,
@@ -1557,7 +1557,7 @@ void HTMLEndPosLst::SplitItem( const SfxPoolItem& rItem, 
sal_Int32 nStart,
 
     for( sal_uInt16 i=0; i<aStartLst.size(); i++ )
     {
-        HTMLSttEndPos *pTest = aStartLst[i];
+        HTMLStartEndPos *pTest = aStartLst[i];
         sal_Int32 nTestStart = pTest->GetStart();
         sal_Int32 nTestEnd = pTest->GetEnd();
 
@@ -1960,7 +1960,7 @@ void HTMLEndPosLst::OutStartAttrs( SwHTMLWriter& rHWrt, 
sal_Int32 nPos,
     // die Attribute in der Start-Liste sind aufsteigend sortiert
     for( sal_uInt16 i=0; i< aStartLst.size(); i++ )
     {
-        HTMLSttEndPos *pPos = 0;
+        HTMLStartEndPos *pPos = 0;
         if( nCharBoxIndex < aStartLst.size() )
         {
             if( i == 0 )
@@ -2010,7 +2010,7 @@ void HTMLEndPosLst::OutEndAttrs( SwHTMLWriter& rHWrt, 
sal_Int32 nPos,
     sal_uInt16 i=0;
     while( i < aEndLst.size() )
     {
-        HTMLSttEndPos *pPos = aEndLst[i];
+        HTMLStartEndPos *pPos = aEndLst[i];
         sal_Int32 nEnd = pPos->GetEnd();
 
         if( SAL_MAX_INT32 == nPos || nEnd == nPos )
@@ -2026,7 +2026,7 @@ void HTMLEndPosLst::OutEndAttrs( SwHTMLWriter& rHWrt, 
sal_Int32 nPos,
             {
                 for(sal_uInt16 nIndex = _FindStartPos(pPos) + 1; nIndex < 
aStartLst.size(); ++nIndex )
                 {
-                    HTMLSttEndPos *pEndPos = aStartLst[nIndex];
+                    HTMLStartEndPos *pEndPos = aStartLst[nIndex];
                     if( pEndPos->GetItem()->Which() == RES_CHRATR_BOX &&
                         *static_cast<const SvxBoxItem*>(pEndPos->GetItem()) ==
                         *static_cast<const SvxBoxItem*>(pPos->GetItem()) )
commit 379ada9ed447a71bee2ffd81dbd09214ce3dcd8d
Author: Matteo Casalin <matteo.casa...@yahoo.com>
Date:   Sun May 31 12:38:32 2015 +0200

    Simplify and optimize (no need to count footnotes/endnotes)
    
    Change-Id: I4b539ec929e62a3d65c8a3fa2e9eb7794abf2a37

diff --git a/sw/source/filter/html/css1atr.cxx 
b/sw/source/filter/html/css1atr.cxx
index c9c1061..574b4b2 100644
--- a/sw/source/filter/html/css1atr.cxx
+++ b/sw/source/filter/html/css1atr.cxx
@@ -123,7 +123,7 @@ static Writer& OutCSS1_SwPageDesc( Writer& rWrt, const 
SwPageDesc& rFormat,
                                    sal_uInt16 nRefPoolId, bool bExtRef,
                                    bool bPseudo=true );
 static Writer& OutCSS1_SwFootnoteInfo( Writer& rWrt, const SwEndNoteInfo& 
rInfo,
-                                  SwDoc *pDoc, sal_uInt16 nNotes, bool 
bEndNote );
+                                  SwDoc *pDoc, bool bHasNotes, bool bEndNote );
 static void OutCSS1_SwFormatDropAttrs( SwHTMLWriter& rHWrt,
                                     const SwFormatDrop& rDrop,
                                      const SfxItemSet *pCharFormatItemSet=0 );
@@ -622,17 +622,26 @@ void SwHTMLWriter::OutStyleSheet( const SwPageDesc& 
rPageDesc, bool bUsed )
             OutCSS1_SwFormat( *this, *pCFormat, 
&pDoc->getIDocumentStylePoolAccess(), pTemplate );
     }
 
+    bool bHasEndNotes {false};
+    bool bHasFootNotes {false};
     const SwFootnoteIdxs& rIdxs = pDoc->GetFootnoteIdxs();
-    sal_uInt16 nEnd = 0, nFootnote = 0;
     for( auto pIdx : rIdxs )
     {
         if( pIdx->GetFootnote().IsEndNote() )
-            nEnd++;
+        {
+            bHasEndNotes = true;
+            if (bHasFootNotes)
+                break;
+        }
         else
-            nFootnote++;
+        {
+            bHasFootNotes = true;
+            if (bHasEndNotes)
+                break;
+        }
     }
-    OutCSS1_SwFootnoteInfo( *this, pDoc->GetFootnoteInfo(), pDoc, nFootnote, 
false );
-    OutCSS1_SwFootnoteInfo( *this, pDoc->GetEndNoteInfo(), pDoc, nEnd, true );
+    OutCSS1_SwFootnoteInfo( *this, pDoc->GetFootnoteInfo(), pDoc, 
bHasFootNotes, false );
+    OutCSS1_SwFootnoteInfo( *this, pDoc->GetEndNoteInfo(), pDoc, bHasEndNotes, 
true );
 
     if( !bFirstCSS1Rule )
     {
@@ -1775,13 +1784,13 @@ static Writer& OutCSS1_SwPageDesc( Writer& rWrt, const 
SwPageDesc& rPageDesc,
 }
 
 static Writer& OutCSS1_SwFootnoteInfo( Writer& rWrt, const SwEndNoteInfo& 
rInfo,
-                                  SwDoc *pDoc, sal_uInt16 nNotes, bool 
bEndNote )
+                                  SwDoc *pDoc, bool bHasNotes, bool bEndNote )
 {
     SwHTMLWriter & rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
 
     OUString aSelector;
 
-    if( nNotes > 0 )
+    if( bHasNotes )
     {
         aSelector = OOO_STRING_SVTOOLS_HTML_anchor "." +
                     ( bEndNote ? 
OUString(OOO_STRING_SVTOOLS_HTML_sdendnote_anc)
@@ -1804,7 +1813,7 @@ static Writer& OutCSS1_SwFootnoteInfo( Writer& rWrt, 
const SwEndNoteInfo& rInfo,
         // exported, so that Netscape displays the document correctly.
         // Otherwise it is sufficient, to export the differences to the
         // footnote and endnote template.
-        if( nNotes == 0 && rHTMLWrt.pTemplate )
+        if( !bHasNotes && rHTMLWrt.pTemplate )
         {
             SwFormat *pRefFormat = 
rHTMLWrt.pTemplate->getIDocumentStylePoolAccess().GetCharFormatFromPool(
                         static_cast< sal_uInt16 >(bEndNote ? 
RES_POOLCHR_ENDNOTE : RES_POOLCHR_FOOTNOTE) );
commit 1348dde6cea4bd3f436ee7657fa51b580ce50787
Author: Matteo Casalin <matteo.casa...@yahoo.com>
Date:   Sun May 31 11:22:31 2015 +0200

    Use more proper types and range-based for loops
    
    Change-Id: I9e891923a1301e4b3d19c75102943f30f42965a1

diff --git a/sw/source/filter/html/css1atr.cxx 
b/sw/source/filter/html/css1atr.cxx
index 9f7bc09..c9c1061 100644
--- a/sw/source/filter/html/css1atr.cxx
+++ b/sw/source/filter/html/css1atr.cxx
@@ -600,10 +600,8 @@ void SwHTMLWriter::OutStyleSheet( const SwPageDesc& 
rPageDesc, bool bUsed )
 
     // the Default-TextStyle is not also exported !!
     // 0-Style is the Default; is never exported !!
-    sal_uInt16 nArrLen = pDoc->GetTextFormatColls()->size();
-    sal_uInt16 i;
-
-    for( i = 1; i < nArrLen; i++ )
+    const size_t nTextFormats = pDoc->GetTextFormatColls()->size();
+    for( size_t i = 1; i < nTextFormats; ++i )
     {
         const SwTextFormatColl* pColl = (*pDoc->GetTextFormatColls())[i];
         sal_uInt16 nPoolId = pColl->GetPoolFormatId();
@@ -613,8 +611,8 @@ void SwHTMLWriter::OutStyleSheet( const SwPageDesc& 
rPageDesc, bool bUsed )
     }
 
     // the Default-TextStyle is not also exported !!
-    nArrLen = pDoc->GetCharFormats()->size();
-    for( i=1; i<nArrLen; i++ )
+    const size_t nCharFormats = pDoc->GetCharFormats()->size();
+    for( size_t i = 1; i < nCharFormats; ++i )
     {
         const SwCharFormat *pCFormat = (*pDoc->GetCharFormats())[i];
         sal_uInt16 nPoolId = pCFormat->GetPoolFormatId();
@@ -625,11 +623,10 @@ void SwHTMLWriter::OutStyleSheet( const SwPageDesc& 
rPageDesc, bool bUsed )
     }
 
     const SwFootnoteIdxs& rIdxs = pDoc->GetFootnoteIdxs();
-    nArrLen = rIdxs.size();
     sal_uInt16 nEnd = 0, nFootnote = 0;
-    for( i=0; i < nArrLen; i++ )
+    for( auto pIdx : rIdxs )
     {
-        if( rIdxs[i]->GetFootnote().IsEndNote() )
+        if( pIdx->GetFootnote().IsEndNote() )
             nEnd++;
         else
             nFootnote++;
@@ -1213,10 +1210,10 @@ bool SwHTMLWriter::HasScriptDependentItems( const 
SfxItemSet& rItemSet,
         0,                      0,                          0
     };
 
-    for( sal_uInt16 i=0; aWhichIds[i]; i += 3 )
+    for( int i=0; aWhichIds[i]; i += 3 )
     {
         const SfxPoolItem *pItem = 0, *pItemCJK = 0, *pItemCTL = 0, *pTmp;
-        sal_uInt16 nItemCount = 0;
+        int nItemCount = 0;
         if( SfxItemState::SET == rItemSet.GetItemState( aWhichIds[i], false,
                                                    &pTmp ) )
         {
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to