tdf#140986 hang in validity message

this doesn't fix the root of the problem (something generating an
insanely long validation message).
It just prevents that problem from locking up the UI.

Change-Id: I334729a30eca4a11d0150e3c89ff11c92a862061
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112461
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
diff --git a/sc/source/ui/view/hintwin.cxx b/sc/source/ui/view/hintwin.cxx
index f66fe8d..a913182 100644
--- a/sc/source/ui/view/hintwin.cxx
+++ b/sc/source/ui/view/hintwin.cxx
@@ -31,6 +31,7 @@
#include <vcl/outdev.hxx>
#include <vcl/settings.hxx>
#include <vcl/metric.hxx>
#include <sal/log.hxx>

#define HINT_LINESPACE  2
#define HINT_INDENT     3
@@ -102,9 +103,16 @@

    sal_Int32 nIndex = 0;
    Point aLineStart = aTextStart;
    sal_Int32 nLineCount = 0;
    while (nIndex != -1)
    {
        OUString aLine = m_aMessage.getToken( 0, '\r', nIndex );
        if (aLine.getLength() > 255)
        {
            // prevent silliness higher up from hanging up the program
            SAL_WARN("sc", "ridiculously long line, truncating, len=" << aLine.getLength());
            aLine = aLine.copy(0,255);
        }

        aTextMatrix = basegfx::utils::createScaleTranslateB2DHomMatrix(
                                aFontSize.getX(), aFontSize.getY(),
@@ -122,6 +130,13 @@
        aSeq.push_back(pMessage);

        aLineStart.AdjustY(nLineHeight );
        nLineCount++;
        if (nLineCount > 50)
        {
            // prevent silliness higher up from hanging up the program
            SAL_WARN("sc", "ridiculously long message, bailing out");
            break;
        }
    }

    rRange.expand(basegfx::B2DTuple(rRange.getMaxX() + aHintMargin.Width(),