tdf120965 Phantom control point line in Bézier curve

regression from
    commit f74b888244fcefa7c03fa25db4d42c839ebbf642
    simplify PlusHdl logic
restore the structure of the original code here, which is completely
opaque to me

Change-Id: I7b9e5732bd7ed0a92627503ea3c7d2d320a8a33b
Reviewed-on: https://gerrit.libreoffice.org/62989
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
diff --git a/svx/source/svdraw/svdopath.cxx b/svx/source/svdraw/svdopath.cxx
index 0e56b63..eda7c34 100644
--- a/svx/source/svdraw/svdopath.cxx
+++ b/svx/source/svdraw/svdopath.cxx
@@ -2021,14 +2021,33 @@

    if (nPntMax<=0)
        return;

    nPntMax--;
    for (sal_uInt32 nPlusNum = 0; nPlusNum <= nPntMax; ++nPlusNum)
    if (nPnt>nPntMax)
        return;

    // calculate the number of plus points
    sal_uInt16 nCnt = 0;
    if (rXPoly.GetFlags(nPnt)!=PolyFlags::Control)
    {
        if (nPnt==0 && IsClosed())
            nPnt=nPntMax;
        if (nPnt>0 && rXPoly.GetFlags(nPnt-1)==PolyFlags::Control)
            nCnt++;
        if (nPnt==nPntMax && IsClosed())
            nPnt=0;
        if (nPnt<nPntMax && rXPoly.GetFlags(nPnt+1)==PolyFlags::Control)
            nCnt++;
    }

    // construct the plus points
    for (sal_uInt32 nPlusNum = 0; nPlusNum < nCnt; ++nPlusNum)
    {
        nPnt = static_cast<sal_uInt16>(rHdl.GetPointNum());
        std::unique_ptr<SdrHdl> pHdl(new SdrHdlBezWgt(&rHdl));
        pHdl->SetPolyNum(rHdl.GetPolyNum());

        if (nPnt==0 && IsClosed()) nPnt=nPntMax;
        if (nPnt==0 && IsClosed())
            nPnt=nPntMax;
        if (nPnt>0 && rXPoly.GetFlags(nPnt-1)==PolyFlags::Control && nPlusNum==0)
        {
            pHdl->SetPos(rXPoly[nPnt-1]);
@@ -2036,7 +2055,8 @@
        }
        else
        {
            if (nPnt==nPntMax && IsClosed()) nPnt=0;
            if (nPnt==nPntMax && IsClosed())
                nPnt=0;
            if (nPnt<rXPoly.GetPointCount()-1 && rXPoly.GetFlags(nPnt+1)==PolyFlags::Control)
            {
                pHdl->SetPos(rXPoly[nPnt+1]);