[Libreoffice-commits] .: binfilter/bf_sw

Caolán McNamara caolan at kemper.freedesktop.org
Fri Sep 23 06:03:24 PDT 2011


 binfilter/bf_sw/source/core/inc/drawfont.hxx     |    5 
 binfilter/bf_sw/source/core/layout/sw_flycnt.cxx |    5 
 binfilter/bf_sw/source/core/text/inftxt.hxx      |    9 
 binfilter/bf_sw/source/core/text/sw_frmform.cxx  |    2 
 binfilter/bf_sw/source/core/text/sw_porlay.cxx   |  114 -------
 binfilter/bf_sw/source/core/text/sw_pormulti.cxx |  373 -----------------------
 6 files changed, 508 deletions(-)

New commits:
commit 21eb5cb817082d46491cea84fd3b82a3931a6a52
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Sep 23 13:51:08 2011 +0100

    callcatcher: remove newly unused methods

diff --git a/binfilter/bf_sw/source/core/inc/drawfont.hxx b/binfilter/bf_sw/source/core/inc/drawfont.hxx
index bf5cbfb..4274542 100644
--- a/binfilter/bf_sw/source/core/inc/drawfont.hxx
+++ b/binfilter/bf_sw/source/core/inc/drawfont.hxx
@@ -163,11 +163,6 @@ public:
     // examines the range [ nStart, nStart + nEnd ] if there are kanas
     // returns start index of kana entry in array, otherwise USHRT_MAX
     USHORT HasKana( xub_StrLen nStart, const xub_StrLen nEnd ) const;
-
-    // modifies the kerning array according to a given compress value
-    long Compress( sal_Int32* pKernArray, xub_StrLen nIdx, xub_StrLen nLen,
-                   const USHORT nCompress, const USHORT nFontHeight,
-                   Point* pPoint = NULL ) const;
 };
 
 inline void SwScriptInfo::SetInvalidity( const xub_StrLen nPos )
diff --git a/binfilter/bf_sw/source/core/layout/sw_flycnt.cxx b/binfilter/bf_sw/source/core/layout/sw_flycnt.cxx
index 568ee53..3cc2395 100644
--- a/binfilter/bf_sw/source/core/layout/sw_flycnt.cxx
+++ b/binfilter/bf_sw/source/core/layout/sw_flycnt.cxx
@@ -249,11 +249,6 @@ namespace binfilter {
 /*?*/       SwOszControl::pStk5 = 0;
 /*N*/ }
 
-/*N*/ bool IsInProgress( const SwFlyFrm* /*pFly*/ )
-/*N*/ {
-        DBG_BF_ASSERT(0, "STRIP"); return FALSE;
-/*N*/ }
-
 /*N*/ bool SwOszControl::IsInProgress( const SwFlyFrm *pFly )
 /*N*/ {
 /*N*/   if ( SwOszControl::pStk1 && !pFly->IsLowerOf( SwOszControl::pStk1 ) )
diff --git a/binfilter/bf_sw/source/core/text/inftxt.hxx b/binfilter/bf_sw/source/core/text/inftxt.hxx
index 4d9f9be..cb38c31 100644
--- a/binfilter/bf_sw/source/core/text/inftxt.hxx
+++ b/binfilter/bf_sw/source/core/text/inftxt.hxx
@@ -232,15 +232,6 @@ public:
                    const xub_StrLen _nLen = STRING_LEN )
            { CtorInit( _pFrm, _pFnt, _nIdx, _nLen ); }
 
-    // GetMultiAttr returns the text attribute of the multiportion,
-    // if rPos is inside any multi-line part.
-    // rPos will set to the end of the multi-line part.
-#ifdef BIDI
-    SwMultiCreator* GetMultiCreator( xub_StrLen &rPos, SwMultiPortion* pM ) const;
-#else
-    SwMultiCreator* GetMultiCreator( xub_StrLen &rPos ) const;
-#endif
-
     inline sal_Bool OnWin() const { return bOnWin; }
     inline void SetOnWin( const sal_Bool bNew ) { bOnWin = bNew; }
     inline sal_Bool NotEOL() const { return bNotEOL; }
diff --git a/binfilter/bf_sw/source/core/text/sw_frmform.cxx b/binfilter/bf_sw/source/core/text/sw_frmform.cxx
index 0ef23bd..09a5171 100644
--- a/binfilter/bf_sw/source/core/text/sw_frmform.cxx
+++ b/binfilter/bf_sw/source/core/text/sw_frmform.cxx
@@ -56,8 +56,6 @@
 
 namespace binfilter {
 
-extern bool IsInProgress( const SwFlyFrm *pFly );
-
 class FormatLevel
 {
     static MSHORT nLevel;
diff --git a/binfilter/bf_sw/source/core/text/sw_porlay.cxx b/binfilter/bf_sw/source/core/text/sw_porlay.cxx
index cf78792..a6eb583 100644
--- a/binfilter/bf_sw/source/core/text/sw_porlay.cxx
+++ b/binfilter/bf_sw/source/core/text/sw_porlay.cxx
@@ -915,120 +915,6 @@ SwLinePortion *SwLineLayout::Insert( SwLinePortion *pIns )
 /*N*/ }
 
 /*************************************************************************
- *                      SwScriptInfo::Compress()
- *************************************************************************/
-
-/*N*/ long SwScriptInfo::Compress( sal_Int32* pKernArray, xub_StrLen nIdx, xub_StrLen nLen,
-/*N*/                              const USHORT nCompress, const USHORT nFontHeight,
-/*N*/                              Point* pPoint ) const
-/*N*/ {
-/*N*/   OSL_ENSURE( nCompress, "Compression without compression?!" );
-/*N*/   OSL_ENSURE( nLen, "Compression without text?!" );
-/*N*/     USHORT nCompCount = CountCompChg();
-/*N*/
-/*N*/     // In asian typography, there are full width and half width characters.
-/*N*/     // Full width punctuation characters can be compressed by 50 %
-/*N*/     // to determine this, we compare the font width with 75 % of its height
-/*N*/     USHORT nMinWidth = ( 3 * nFontHeight ) / 4;
-/*N*/
-/*N*/     USHORT nCompIdx = HasKana( nIdx, nLen );
-/*N*/
-/*N*/     if ( USHRT_MAX == nCompIdx )
-/*N*/         return 0;
-/*N*/
-/*N*/     xub_StrLen nChg = GetCompStart( nCompIdx );
-/*N*/     xub_StrLen nCompLen = GetCompLen( nCompIdx );
-/*N*/     USHORT nI = 0;
-/*N*/     nLen += nIdx;
-/*N*/
-/*N*/     if( nChg > nIdx )
-/*N*/     {
-/*N*/         nI = nChg - nIdx;
-/*N*/         nIdx = nChg;
-/*N*/     }
-/*N*/     else if( nIdx < nChg + nCompLen )
-/*N*/         nCompLen -= nIdx - nChg;
-/*N*/
-/*N*/     if( nIdx > nLen || nCompIdx >= nCompCount )
-/*N*/       return 0;
-/*N*/
-/*N*/     long nSub = 0;
-/*N*/   long nLast = nI ? pKernArray[ nI - 1 ] : 0;
-/*N*/   do
-/*N*/   {
-/*N*/         USHORT nType = GetCompType( nCompIdx );
-/*N*/         OSL_ENSURE( nType == CompType( nIdx ), "Gimme the right type!" );
-/*N*/       nCompLen += nIdx;
-/*N*/       if( nCompLen > nLen )
-/*N*/           nCompLen = nLen;
-/*N*/
-/*N*/         // are we allowed to compress the character?
-/*N*/         if ( pKernArray[ nI ] - nLast < nMinWidth )
-/*N*/         {
-/*N*/             nIdx++; nI++;
-/*N*/         }
-/*N*/         else
-/*N*/         {
-/*N*/             while( nIdx < nCompLen )
-/*N*/             {
-/*N*/                 OSL_ENSURE( SwScriptInfo::NONE != nType, "None compression?!" );
-/*N*/
-/*N*/                 // nLast is width of current character
-/*N*/                 nLast -= pKernArray[ nI ];
-/*N*/
-/*N*/                 nLast *= nCompress;
-/*N*/                 long nMove = 0;
-/*N*/                 if( SwScriptInfo::KANA != nType )
-/*N*/                 {
-/*N*/                     nLast /= 20000;
-/*N*/                     if( pPoint && SwScriptInfo::SPECIAL_LEFT == nType )
-/*N*/                     {
-/*N*/                         if( nI )
-/*N*/                             nMove = nLast;
-/*N*/                         else
-/*N*/                         {
-/*N*/                             pPoint->X() += nLast;
-/*N*/                             nLast = 0;
-/*N*/                         }
-/*N*/                     }
-/*N*/                 }
-/*N*/                 else
-/*N*/                     nLast /= 100000;
-/*N*/                 nSub -= nLast;
-/*N*/                 nLast = pKernArray[ nI ];
-/*N*/                 if( nMove )
-/*N*/                     pKernArray[ nI - 1 ] += nMove;
-/*N*/                 pKernArray[ nI++ ] -= nSub;
-/*N*/                 ++nIdx;
-/*N*/             }
-/*N*/         }
-/*N*/
-/*N*/         if( nIdx < nLen )
-/*N*/       {
-/*N*/           xub_StrLen nChg1;
-/*N*/           if( ++nCompIdx < nCompCount )
-/*N*/           {
-/*N*/                 nChg1 = GetCompStart( nCompIdx );
-/*N*/               if( nChg1 > nLen )
-/*N*/                   nChg1 = nLen;
-/*N*/                 nCompLen = GetCompLen( nCompIdx );
-/*N*/           }
-/*N*/           else
-/*N*/               nChg1 = nLen;
-/*N*/           while( nIdx < nChg1 )
-/*N*/           {
-/*N*/               nLast = pKernArray[ nI ];
-/*N*/               pKernArray[ nI++ ] -= nSub;
-/*N*/               ++nIdx;
-/*N*/           }
-/*N*/       }
-/*N*/       else
-/*N*/           break;
-/*N*/   } while( nIdx < nLen );
-/*N*/   return nSub;
-/*N*/ }
-
-/*************************************************************************
  *                      class SwParaPortion
  *************************************************************************/
 
diff --git a/binfilter/bf_sw/source/core/text/sw_pormulti.cxx b/binfilter/bf_sw/source/core/text/sw_pormulti.cxx
index c2dc44b..0df5771 100644
--- a/binfilter/bf_sw/source/core/text/sw_pormulti.cxx
+++ b/binfilter/bf_sw/source/core/text/sw_pormulti.cxx
@@ -160,379 +160,6 @@ extern BYTE WhichFont( xub_StrLen nIdx, const String* pTxt,
 /*N*/   return sal_False;
 /*N*/ }
 
-/*N*/ #ifdef BIDI
-/*N*/ SwMultiCreator* SwTxtSizeInfo::GetMultiCreator( xub_StrLen &rPos,
-/*N*/                                                 SwMultiPortion* pMulti ) const
-/*N*/ #else
-/*N*/ SwMultiCreator* SwTxtSizeInfo::GetMultiCreator( xub_StrLen &rPos ) const
-/*N*/ #endif
-/*N*/ {
-/*N*/ #ifdef BIDI
-/*N*/     SwScriptInfo& rSI = ((SwParaPortion*)GetParaPortion())->GetScriptInfo();
-/*N*/
-/*N*/     // get the last embedding level
-/*N*/     BYTE nCurrLevel;
-/*N*/     if ( !pMulti )
-/*N*/         // no nested bidi portion required
-/*N*/         nCurrLevel = GetTxtFrm()->IsRightToLeft() ? 1 : 0;
-/*N*/
-/*N*/     // check if there is a field at rPos:
-/*N*/     BYTE nNextLevel = nCurrLevel;
-/*N*/     sal_Bool bFldBidi = sal_False;
-/*N*/
-/*N*/     if ( CH_TXTATR_BREAKWORD == GetChar( rPos ) )
-              bFldBidi = sal_True;
-/*N*/     else
-/*N*/         nNextLevel = rSI.DirType( rPos );
-/*N*/
-/*N*/     if ( GetTxt().Len() != rPos && nNextLevel > nCurrLevel )
-/*N*/     {
-/*?*/         rPos = bFldBidi ? rPos + 1 : rSI.NextDirChg( rPos, &nCurrLevel );
-/*?*/         if ( STRING_LEN == rPos )
-/*?*/             return NULL;
-/*?*/         SwMultiCreator *pRet = new SwMultiCreator;
-/*?*/       pRet->pItem = NULL;
-/*?*/         pRet->pAttr = NULL;
-/*?*/         pRet->nId = SW_MC_BIDI;
-/*?*/         pRet->nLevel = nCurrLevel + 1;
-/*?*/       return pRet;
-/*N*/     }
-/*N*/
-/*N*/     // a bidi portion can only contain other bidi portions
-/*N*/     if ( pMulti )
-/*N*/         return NULL;
-/*N*/ #endif
-/*N*/
-/*N*/   const SvxCharRotateItem* pRotate = NULL;
-/*N*/   const SfxPoolItem* pRotItem;
-/*N*/   if( SFX_ITEM_SET == pFrm->GetTxtNode()->GetSwAttrSet().
-/*N*/       GetItemState( RES_CHRATR_ROTATE, TRUE, &pRotItem ) &&
-/*N*/       ((SvxCharRotateItem*)pRotItem)->GetValue() )
-/*?*/       pRotate = (SvxCharRotateItem*)pRotItem;
-/*N*/   else
-/*N*/       pRotItem = NULL;
-/*N*/   const SvxTwoLinesItem* p2Lines = NULL;
-/*N*/   const SfxPoolItem* pItem;
-/*N*/   if( SFX_ITEM_SET == pFrm->GetTxtNode()->GetSwAttrSet().
-/*N*/       GetItemState( RES_CHRATR_TWO_LINES, TRUE, &pItem ) &&
-/*N*/       ((SvxTwoLinesItem*)pItem)->GetValue() )
-/*N*/       p2Lines = (SvxTwoLinesItem*)pItem;
-/*N*/   else
-/*N*/       pItem = NULL;
-/*N*/
-/*N*/   const SwpHints *pHints = pFrm->GetTxtNode()->GetpSwpHints();
-/*N*/   if( !pHints && !p2Lines && !pRotate )
-/*N*/       return NULL;
-/*N*/   const SwTxtAttr *pRuby = NULL;
-/*N*/   sal_Bool bTwo = sal_False;
-/*N*/   sal_Bool bRot = sal_False;
-/*N*/   USHORT n2Lines = USHRT_MAX;
-/*N*/   USHORT nRotate = USHRT_MAX;
-/*N*/   USHORT nCount = pHints ? pHints->Count() : 0;
-/*N*/   USHORT i;
-/*N*/   for( i = 0; i < nCount; ++i )
-/*N*/   {
-/*N*/       const SwTxtAttr *pTmp = (*pHints)[i];
-/*N*/       xub_StrLen nStart = *pTmp->GetStart();
-/*N*/       if( rPos < nStart )
-/*N*/           break;
-/*N*/       if( *pTmp->GetAnyEnd() > rPos )
-/*N*/       {
-/*N*/           if( RES_TXTATR_CJK_RUBY == pTmp->Which() )
-/*N*/               pRuby = pTmp;
-/*N*/           else
-/*N*/           {
-/*N*/               const SvxCharRotateItem* pRoTmp = NULL;
-/*N*/               if( lcl_HasRotation( *pTmp, pRoTmp, bRot ) )
-/*N*/               {
-/*N*/                   nRotate = bRot ? i : nCount;
-/*N*/                   pRotate = pRoTmp;
-/*N*/               }
-/*N*/               const SvxTwoLinesItem* p2Tmp = NULL;
-/*N*/               if( lcl_Has2Lines( *pTmp, p2Tmp, bTwo ) )
-/*N*/               {
-/*N*/                   n2Lines = bTwo ? i : nCount;
-/*N*/                   p2Lines = p2Tmp;
-/*N*/               }
-/*N*/           }
-/*N*/       }
-/*N*/   }
-/*N*/   if( pRuby )
-/*N*/   {   // The winner is ... a ruby attribute and so
-/*N*/       // the end of the multiportion is the end of the ruby attribute.
-/*?*/       rPos = *pRuby->GetEnd();
-/*?*/       SwMultiCreator *pRet = new SwMultiCreator;
-/*?*/       pRet->pItem = NULL;
-/*?*/       pRet->pAttr = pRuby;
-/*?*/       pRet->nId = SW_MC_RUBY;
-/*?*/ #ifdef BIDI
-/*?*/         pRet->nLevel = GetTxtFrm()->IsRightToLeft() ? 1 : 0;
-/*?*/ #endif
-/*?*/       return pRet;
-/*N*/   }
-/*N*/   if( n2Lines < nCount || ( pItem && pItem == p2Lines &&
-/*N*/       rPos < GetTxt().Len() ) )
-/*N*/   {   // The winner is a 2-line-attribute,
-/*?*/       // the end of the multiportion depends on the following attributes...
-/*?*/       SwMultiCreator *pRet = new SwMultiCreator;
-/*?*/
-/*?*/       // We note the endpositions of the 2-line attributes in aEnd as stack
-/*?*/       SvXub_StrLens aEnd;
-/*?*/
-/*?*/       // The bOn flag signs the state of the last 2-line attribute in the
-/*?*/       // aEnd-stack, it is compatible with the winner-attribute or
-/*?*/       // it interrupts the other attribute.
-/*?*/       sal_Bool bOn = sal_True;
-/*?*/
-/*?*/       if( n2Lines < nCount )
-/*?*/       {
-/*?*/           pRet->pItem = NULL;
-/*?*/           pRet->pAttr = (*pHints)[n2Lines];
-/*?*/           aEnd.Insert( *pRet->pAttr->GetEnd(), 0 );
-/*?*/           if( pItem )
-/*?*/           {
-/*?*/               aEnd[ 0 ] = GetTxt().Len();
-/*?*/               bOn = ((SvxTwoLinesItem*)pItem)->GetEndBracket() ==
-/*?*/                       p2Lines->GetEndBracket() &&
-/*?*/                     ((SvxTwoLinesItem*)pItem)->GetStartBracket() ==
-/*?*/                       p2Lines->GetStartBracket();
-/*?*/           }
-/*?*/       }
-/*?*/       else
-/*?*/       {
-/*?*/           pRet->pItem = pItem;
-/*?*/           pRet->pAttr = NULL;
-/*?*/           aEnd.Insert( GetTxt().Len(), 0 );
-/*?*/       }
-/*?*/       pRet->nId = SW_MC_DOUBLE;
-/*?*/ #ifdef BIDI
-/*?*/         pRet->nLevel = GetTxtFrm()->IsRightToLeft() ? 1 : 0;
-/*?*/ #endif
-/*?*/
-/*?*/       // n2Lines is the index of the last 2-line-attribute, which contains
-/*?*/       // the actual position.
-/*?*/       i = 0;
-/*?*/       // At this moment we know that at position rPos the "winner"-attribute
-/*?*/       // causes a 2-line-portion. The end of the attribute is the end of the
-/*?*/       // portion, if there's no interrupting attribute.
-/*?*/       // There are two kinds of interruptors:
-/*?*/       // - ruby attributes stops the 2-line-attribute, the end of the
-/*?*/       //   multiline is the start of the ruby attribute
-/*?*/       // - 2-line-attributes with value "Off" or with different brackets,
-/*?*/       //   these attributes may interrupt the winner, but they could be
-/*?*/       //   neutralized by another 2-line-attribute starting at the same
-/*?*/       //   position with the same brackets as the winner-attribute.
-/*?*/
-/*?*/       // In the following loop rPos is the critical position and it will be
-/*?*/       // evaluated, if at rPos starts a interrupting or a maintaining
-/*?*/       // continuity attribute.
-/*?*/       while( i < nCount )
-/*?*/       {
-/*?*/           const SwTxtAttr *pTmp = (*pHints)[i++];
-/*?*/           if( *pTmp->GetAnyEnd() <= rPos )
-/*?*/               continue;
-/*?*/           if( rPos < *pTmp->GetStart() )
-/*?*/           {
-/*?*/               // If bOn is FALSE and the next attribute starts later than rPos
-/*?*/               // the winner attribute is interrupted at rPos.
-/*?*/               // If the start of the next atribute is behind the end of
-/*?*/               // the last attribute on the aEnd-stack, this is the endposition
-/*?*/               // on the stack is the end of the 2-line portion.
-/*?*/               if( !bOn || aEnd[ aEnd.Count()-1 ] < *pTmp->GetStart() )
-/*?*/                   break;
-/*?*/               // At this moment, bOn is TRUE and the next attribute starts
-/*?*/               // behind rPos, so we could move rPos to the next startpoint
-/*?*/               rPos = *pTmp->GetStart();
-/*?*/               // We clean up the aEnd-stack, endpositions equal to rPos are
-/*?*/               // superfluous.
-/*?*/               while( aEnd.Count() && aEnd[ aEnd.Count()-1 ] <= rPos )
-/*?*/               {
-/*?*/                   bOn = !bOn;
-/*?*/                   aEnd.Remove( aEnd.Count()-1, 1 );
-/*?*/               }
-/*?*/               // If the endstack is empty, we simulate an attribute with
-/*?*/               // state TRUE and endposition rPos
-/*?*/               if( !aEnd.Count() )
-/*?*/               {
-/*?*/                   aEnd.Insert( rPos, 0 );
-/*?*/                   bOn = sal_True;
-/*?*/               }
-/*?*/           }
-/*?*/           // A ruby attribute stops the 2-line immediately
-/*?*/           if( RES_TXTATR_CJK_RUBY == pTmp->Which() )
-/*?*/               return pRet;
-/*?*/           if( lcl_Has2Lines( *pTmp, p2Lines, bTwo ) )
-/*?*/           {   // We have an interesting attribute..
-/*?*/               if( bTwo == bOn )
-/*?*/               {   // .. with the same state, so the last attribute could
-/*?*/                   // be continued.
-/*?*/                   if( aEnd[ aEnd.Count()-1 ] < *pTmp->GetEnd() )
-/*?*/                       aEnd[ aEnd.Count()-1 ] = *pTmp->GetEnd();
-/*?*/               }
-/*?*/               else
-/*?*/               {   // .. with a different state.
-/*?*/                   bOn = bTwo;
-/*?*/                   // If this is smaller than the last on the stack, we put
-/*?*/                   // it on the stack. If it has the same endposition, the last
-/*?*/                   // could be removed.
-/*?*/                   if( aEnd[ aEnd.Count()-1 ] > *pTmp->GetEnd() )
-/*?*/                       aEnd.Insert( *pTmp->GetEnd(), aEnd.Count() );
-/*?*/                   else if( aEnd.Count() > 1 )
-/*?*/                       aEnd.Remove( aEnd.Count()-1, 1 );
-/*?*/                   else
-/*?*/                       aEnd[ aEnd.Count()-1 ] = *pTmp->GetEnd();
-/*?*/               }
-/*?*/           }
-/*?*/       }
-/*?*/       if( bOn && aEnd.Count() )
-/*?*/           rPos = aEnd[ aEnd.Count()-1 ];
-/*?*/       return pRet;
-/*N*/   }
-/*N*/   if( nRotate < nCount || ( pRotItem && pRotItem == pRotate &&
-/*N*/       rPos < GetTxt().Len() ) )
-/*N*/   {   // The winner is a rotate-attribute,
-/*?*/       // the end of the multiportion depends on the following attributes...
-/*?*/       SwMultiCreator *pRet = new SwMultiCreator;
-/*?*/       pRet->nId = SW_MC_ROTATE;
-/*?*/
-/*?*/       // We note the endpositions of the 2-line attributes in aEnd as stack
-/*?*/       SvXub_StrLens aEnd;
-/*?*/
-/*?*/       // The bOn flag signs the state of the last 2-line attribute in the
-/*?*/       // aEnd-stack, which could interrupts the winning rotation attribute.
-/*?*/       sal_Bool bOn = pItem ? sal_True : sal_False;
-/*?*/       aEnd.Insert( GetTxt().Len(), 0 );
-/*?*/       // n2Lines is the index of the last 2-line-attribute, which contains
-/*?*/       // the actual position.
-/*?*/       i = 0;
-/*?*/       xub_StrLen n2Start = rPos;
-/*?*/       while( i < nCount )
-/*?*/       {
-/*?*/           const SwTxtAttr *pTmp = (*pHints)[i++];
-/*?*/           if( *pTmp->GetAnyEnd() <= n2Start )
-/*?*/               continue;
-/*?*/           if( n2Start < *pTmp->GetStart() )
-/*?*/           {
-/*?*/               if( bOn || aEnd[ aEnd.Count()-1 ] < *pTmp->GetStart() )
-/*?*/                   break;
-/*?*/               n2Start = *pTmp->GetStart();
-/*?*/               while( aEnd.Count() && aEnd[ aEnd.Count()-1 ] <= n2Start )
-/*?*/               {
-/*?*/                   bOn = !bOn;
-/*?*/                   aEnd.Remove( aEnd.Count()-1, 1 );
-/*?*/               }
-/*?*/               if( !aEnd.Count() )
-/*?*/               {
-/*?*/                   aEnd.Insert( n2Start, 0 );
-/*?*/                   bOn = sal_False;
-/*?*/               }
-/*?*/           }
-/*?*/           // A ruby attribute stops immediately
-/*?*/           if( RES_TXTATR_CJK_RUBY == pTmp->Which() )
-/*?*/           {
-/*?*/               bOn = sal_True;
-/*?*/               break;
-/*?*/           }
-/*?*/           p2Lines = NULL;
-/*?*/           if( lcl_Has2Lines( *pTmp, p2Lines, bTwo ) )
-/*?*/           {
-/*?*/               if( bTwo == bOn )
-/*?*/               {
-/*?*/                   if( aEnd[ aEnd.Count()-1 ] < *pTmp->GetEnd() )
-/*?*/                       aEnd[ aEnd.Count()-1 ] = *pTmp->GetEnd();
-/*?*/               }
-/*?*/               else
-/*?*/               {
-/*?*/                   bOn = bTwo;
-/*?*/                   if( aEnd[ aEnd.Count()-1 ] > *pTmp->GetEnd() )
-/*?*/                       aEnd.Insert( *pTmp->GetEnd(), aEnd.Count() );
-/*?*/                   else if( aEnd.Count() > 1 )
-/*?*/                       aEnd.Remove( aEnd.Count()-1, 1 );
-/*?*/                   else
-/*?*/                       aEnd[ aEnd.Count()-1 ] = *pTmp->GetEnd();
-/*?*/               }
-/*?*/           }
-/*?*/       }
-/*?*/       if( !bOn && aEnd.Count() )
-/*?*/           n2Start = aEnd[ aEnd.Count()-1 ];
-/*?*/
-/*?*/       if( aEnd.Count() )
-/*?*/           aEnd.Remove( 0, aEnd.Count() );
-/*?*/
-/*?*/       bOn = sal_True;
-/*?*/       if( nRotate < nCount )
-/*?*/       {
-/*?*/           pRet->pItem = NULL;
-/*?*/           pRet->pAttr = (*pHints)[nRotate];
-/*?*/           aEnd.Insert( *pRet->pAttr->GetEnd(), 0 );
-/*?*/           if( pRotItem )
-/*?*/           {
-/*?*/               aEnd[ 0 ] = GetTxt().Len();
-/*?*/               bOn = ((SvxCharRotateItem*)pRotItem)->GetValue() ==
-/*?*/                       pRotate->GetValue();
-/*?*/           }
-/*?*/       }
-/*?*/       else
-/*?*/       {
-/*?*/           pRet->pItem = pRotItem;
-/*?*/           pRet->pAttr = NULL;
-/*?*/           aEnd.Insert( GetTxt().Len(), 0 );
-/*?*/       }
-/*?*/       i = 0;
-/*?*/       while( i < nCount )
-/*?*/       {
-/*?*/           const SwTxtAttr *pTmp = (*pHints)[i++];
-/*?*/           if( *pTmp->GetAnyEnd() <= rPos )
-/*?*/               continue;
-/*?*/           if( rPos < *pTmp->GetStart() )
-/*?*/           {
-/*?*/               if( !bOn || aEnd[ aEnd.Count()-1 ] < *pTmp->GetStart() )
-/*?*/                   break;
-/*?*/               rPos = *pTmp->GetStart();
-/*?*/               while( aEnd.Count() && aEnd[ aEnd.Count()-1 ] <= rPos )
-/*?*/               {
-/*?*/                   bOn = !bOn;
-/*?*/                   aEnd.Remove( aEnd.Count()-1, 1 );
-/*?*/               }
-/*?*/               if( !aEnd.Count() )
-/*?*/               {
-/*?*/                   aEnd.Insert( rPos, 0 );
-/*?*/                   bOn = sal_True;
-/*?*/               }
-/*?*/           }
-/*?*/           if( RES_TXTATR_CJK_RUBY == pTmp->Which() )
-/*?*/           {
-/*?*/               bOn = sal_False;
-/*?*/               break;
-/*?*/           }
-/*?*/           if( lcl_HasRotation( *pTmp, pRotate, bTwo ) )
-/*?*/           {
-/*?*/               if( bTwo == bOn )
-/*?*/               {
-/*?*/                   if( aEnd[ aEnd.Count()-1 ] < *pTmp->GetEnd() )
-/*?*/                       aEnd[ aEnd.Count()-1 ] = *pTmp->GetEnd();
-/*?*/               }
-/*?*/               else
-/*?*/               {
-/*?*/                   bOn = bTwo;
-/*?*/                   if( aEnd[ aEnd.Count()-1 ] > *pTmp->GetEnd() )
-/*?*/                       aEnd.Insert( *pTmp->GetEnd(), aEnd.Count() );
-/*?*/                   else if( aEnd.Count() > 1 )
-/*?*/                       aEnd.Remove( aEnd.Count()-1, 1 );
-/*?*/                   else
-/*?*/                       aEnd[ aEnd.Count()-1 ] = *pTmp->GetEnd();
-/*?*/               }
-/*?*/           }
-/*?*/       }
-/*?*/       if( bOn && aEnd.Count() )
-/*?*/           rPos = aEnd[ aEnd.Count()-1 ];
-/*?*/       if( rPos > n2Start )
-/*?*/           rPos = n2Start;
-/*?*/       return pRet;
-/*N*/   }
-/*N*/   return NULL;
-/*N*/ }
-
 /*--------------------------------------------------
  * SwTxtFormatter::MakeRestPortion(..)
  * When a fieldportion at the end of line breaks and needs a following


More information about the Libreoffice-commits mailing list