=== cd /home/kraai/src/abiword/abi/src/text/fmt/xp/ === /usr/bin/cvs diff -u fp_Line.cpp Index: fp_Line.cpp =================================================================== RCS file: /cvsroot/abi/src/text/fmt/xp/fp_Line.cpp,v retrieving revision 1.66 diff -u -r1.66 fp_Line.cpp --- fp_Line.cpp 2000/02/01 10:32:24 1.66 +++ fp_Line.cpp 2000/03/30 07:30:53 @@ -538,10 +538,11 @@ UT_uint32 iCountRuns = m_vecRuns.getItemCount(); UT_sint32 iX = 0; + UT_sint32 iStartX; UT_uint32 i; UT_Bool bLineErased = UT_FALSE; - iX = pAlignment->getStartPosition(); + iStartX = iX = pAlignment->getStartPosition(); for (i=0; i(pRun); @@ -574,8 +575,8 @@ switch ( iTabType ) { case FL_TAB_LEFT: - pTabRun->setWidth(iPos - iX); - iX = iPos; + pTabRun->setWidth(iPos - (iX - iStartX)); + iX = iPos + iStartX; break; case FL_TAB_CENTER: @@ -586,11 +587,11 @@ iScanWidth += pScanRun->getWidth(); } - if ( iScanWidth / 2 > iPos - iX ) + if ( iScanWidth / 2 > iPos - (iX - iStartX) ) pTabRun->setWidth(0); else { - int tabWidth = iPos - iX - iScanWidth / 2 ; + int tabWidth = iPos - (iX - iStartX) - iScanWidth / 2 ; pTabRun->setWidth( tabWidth ); iX += tabWidth; } @@ -605,11 +606,11 @@ iScanWidth += pScanRun->getWidth(); } - if ( iScanWidth > iPos - iX ) + if ( iScanWidth > iPos - (iX - iStartX) ) pTabRun->setWidth(0); else { - int tabWidth = iPos - iX - iScanWidth ; + int tabWidth = iPos - (iX - iStartX) - iScanWidth ; pTabRun->setWidth( tabWidth ); iX += tabWidth; } @@ -667,9 +668,9 @@ } UT_DEBUGMSG((" tabrun iX=%d iPos=%d iScanWidth=%d tabwidth=%d newX=%d\n", - iX, iPos, iScanWidth, iPos-iX-iScanWidth,iPos-iScanWidth)); - pTabRun->setWidth(iPos - iX - iScanWidth); - iX = iPos - iScanWidth; + iX, iPos, iScanWidth, iPos-(iX-iStartX)-iScanWidth,iPos-iScanWidth)); + pTabRun->setWidth(iPos - (iX - iStartX) - iScanWidth); + iX = iPos - iScanWidth + iStartX; FREEP(pDecimalStr); break; === Exit status: 1