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
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!)