summaryrefslogtreecommitdiff
path: root/sw/source/core/txtnode
diff options
context:
space:
mode:
authorMuhammad Haggag <mhaggag@gmail.com>2012-06-13 16:45:06 +0200
committerCaolán McNamara <caolanm@redhat.com>2012-06-15 16:36:48 +0100
commit6c14d15dbbdc8920e1695b5fdc32b6519508815d (patch)
tree2b7ff3dcc2d32c242f1472e15e7a4112bd2a9a63 /sw/source/core/txtnode
parent43103840303f9e18ff013ac6cbb5cfa4eb9cdf9a (diff)
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
Diffstat (limited to 'sw/source/core/txtnode')
-rw-r--r--sw/source/core/txtnode/txtedt.cxx13
1 files changed, 6 insertions, 7 deletions
diff --git a/sw/source/core/txtnode/txtedt.cxx b/sw/source/core/txtnode/txtedt.cxx
index 3fbef67eba57..7f350c6f68d7 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!)