tdf#79717 save/restore character style on selection overwrite

Change-Id: Ie423e72014734bc188ffb585150dcb024d377d1b
Reviewed-on: https://gerrit.libreoffice.org/69323
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
diff --git a/sw/source/uibase/wrtsh/wrtsh1.cxx b/sw/source/uibase/wrtsh/wrtsh1.cxx
index 8ea0524..5d5745b 100644
--- a/sw/source/uibase/wrtsh/wrtsh1.cxx
+++ b/sw/source/uibase/wrtsh/wrtsh1.cxx
@@ -89,6 +89,7 @@
#include <editeng/acorrcfg.hxx>
#include <IMark.hxx>
#include <sfx2/bindings.hxx>
#include <fchrfmt.hxx>

// -> #111827#
#include <SwRewriter.hxx>
@@ -188,7 +189,8 @@

    SfxItemSet aCharAttrSet(
        GetAttrPool(),
        svl::Items<RES_CHRATR_BEGIN, RES_CHRATR_END - 1>{});
        svl::Items<RES_CHRATR_BEGIN, RES_CHRATR_END - 1,
                   RES_TXTATR_CHARFMT, RES_TXTATR_CHARFMT>{});

    if( bHasSel || ( !m_bIns && SelectHiddenRange() ) )
    {
@@ -235,6 +237,7 @@
        for (sal_uInt16 i = RES_CHRATR_BEGIN; i < RES_CHRATR_END; ++i)
            if (i != sal_uInt16(RES_CHRATR_RSID))
                aAttribs.insert(aAttribs.end(), i);
        aAttribs.insert(aAttribs.end(), RES_TXTATR_CHARFMT);
        ResetAttr(aAttribs, &aPaM);

        SetAttrSet(aCharAttrSet, SetAttrMode::DEFAULT, &aPaM);