From f43789cef38b1bb816f487593c8b96a582840fff Mon Sep 17 00:00:00 2001 From: Muhammad Haggag Date: Wed, 13 Jun 2012 16:45:06 +0200 Subject: [PATCH] fdo#46757 Word/character count incorrect with record changes enabled We were ignoring redlined (deleted) text when counting characters, but not when counting words or characters without spaces. We now mask all redlined/hidden content from the expanded node text before operating on it. Change-Id: If882a6dde883a2ba0ca99909ca7ac2b9abd4a1fb --- sw/source/core/txtnode/txtedt.cxx | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/sw/source/core/txtnode/txtedt.cxx b/sw/source/core/txtnode/txtedt.cxx index 3fbef67..7f350c6 100644 --- a/sw/source/core/txtnode/txtedt.cxx +++ b/sw/source/core/txtnode/txtedt.cxx @@ -1856,13 +1856,6 @@ void SwTxtNode::CountWords( SwDocStat& rStat, return; } - // make a copy of the text - String rTextCopy = m_Text.Copy( ); - - // mask out the redlined and hidden text with ' ' - const xub_Unicode cChar(' '); - const sal_uInt16 nNumOfMaskedChars = lcl_MaskRedlinesAndHiddenText( *this, rTextCopy, nStt, nEnd, cChar, false ); - // expand text into pConversionMap for scanner rtl::OUString aExpandText; const ModelToViewHelper::ConversionMap* pConversionMap = BuildConversionMap( aExpandText ); @@ -1877,6 +1870,12 @@ void SwTxtNode::CountWords( SwDocStat& rStat, return; } + // make a copy of the expanded text for masking redlined/hidden text with ' ' + String textCopy = aExpandText; + const xub_Unicode cChar(' '); + const sal_uInt16 nNumOfMaskedChars = lcl_MaskRedlinesAndHiddenText( *this, textCopy, nExpandBegin, nExpandEnd, cChar, false ); + aExpandText = textCopy; + //do the count // all counts exclude hidden paras and hidden+redlined within para // definition of space/white chars in SwScanner (and BreakIter!) -- 1.7.9.5