fdo#53929: Pivot table uses case insensitive string comparison.

Change-Id: I65fa22ceeba37a15b70fe41b1dee26f1dde7d759
Signed-off-by: Michael Meeks <michael.meeks@suse.com>
diff --git a/sc/source/core/data/dpcache.cxx b/sc/source/core/data/dpcache.cxx
index a11db55..f1e4531 100644
--- a/sc/source/core/data/dpcache.cxx
+++ b/sc/source/core/data/dpcache.cxx
@@ -282,7 +282,7 @@ struct EqualByValue : std::binary_function<Bucket, Bucket, bool>
{
    bool operator() (const Bucket& left, const Bucket& right) const
    {
        return left.maValue == right.maValue;
        return left.maValue.IsCaseInsEqual(right.maValue);
    }
};

@@ -338,7 +338,7 @@ void processBuckets(std::vector<Bucket>& aBuckets, ScDPCache::Field& rField)
        it->mnOrderIndex = nCurIndex;
        for (++it; it != itEnd; ++it)
        {
            if (aPrev != it->maValue)
            if (!aPrev.IsCaseInsEqual(it->maValue))
                ++nCurIndex;

            it->mnOrderIndex = nCurIndex;
diff --git a/sc/source/core/data/dpitemdata.cxx b/sc/source/core/data/dpitemdata.cxx
index 1641572..bb22894 100644
--- a/sc/source/core/data/dpitemdata.cxx
+++ b/sc/source/core/data/dpitemdata.cxx
@@ -210,8 +210,9 @@ bool ScDPItemData::IsCaseInsEqual(const ScDPItemData& r) const
            ;
    }

    if (mbStringInterned && r.mbStringInterned)
        return mpString == r.mpString;
    if (mbStringInterned && r.mbStringInterned && mpString == r.mpString)
        // Fast equality check for interned strings.
        return true;

    return ScGlobal::GetpTransliteration()->isEqual(GetString(), r.GetString());
}