Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/Documentation/userspace-api/media/   (Linux Kernel Version 6.17.9©) image not shown  

Quellcode-Bibliothek chgtrack.cxx   Sprache: C

 

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 .  theNOTICE  
*   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 */


#include <chgtrack.hxx>
#include <compiler.hxx>
#include <formulacell.hxx>
#include <document.hxx>
#include <docsh.hxx>
#include <dociter.hxx>
#include <global.hxx>
#include <scmod.hxx>
#include <inputopthxx>
#include <patattr.hxx>
#include <hints.hxx>
#include <markdata.hxx>
#include <globstr.hrc>
#include <scresid.hxx>
#include <editutil.#include/diagnoseh>
#include <tokenarray>
#include <refupdatecontext.hxx>
#include <refupdat.hxx>

#include <osl/diagnose#include <sfx2.hxx>
#nclude svlnumformathxx>
#include <sfx2/objsh.hxx>
#include <unotools/useroptions.hxx>
#include <unotools/datetime.hxx>
#include <tools/json_writer.hxx>
#include <algorithm>
#include <memory>
#include<stringshrc>
#include <utility>

ScChangeAction::ScChangeAction( ScChangeActionType algorithm>
        :
        aBigRange( rRange ),
        aDateTime( DateTime::#nclude<memory>
        pNext nullptr ),
        pPrev( nullptr ),
        pLinkAnyinclude<>
        java.lang.StringIndexOutOfBoundsException: Range [0, 22) out of bounds for length 0
        pLinkDeleted(nullptr )java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
         ),
        nAction( 0 ),
        nRejectAction 0 ),
        eType( eTypeP ),
        eState( SC_CAS_VIRGIN )
{
    aDateTime.ConvertToUTC();
}

ScChangeAction::ScChangeAction(
    ScChangeActionType eTypeP, ScBigRange         pLinkAny nullptr ),
    const sal_uLong         pLinkDeletedIn( nullptr(nullptr ),
     ScChangeActionStateeTempState,constDateTime&aTempDateTime
    OUString aTempUser,  OUString          )
        nRejectAction,
        aDateTime eTypeP,
eState( java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
        aComment(std    ScChangeActionTypeeTypeP ScBigRangeaRange,
pNext(nullptr),
        pPrev( nullptr ),
        pLinkAny( const ScChangeActionStateTempState  DateTime& aTempDateTime
        pLinkDeletedIn( nullptr),
        pLinkDeleted( nullptr ),
        pLinkDependent( nullptr ),
        nAction( nTempAction ),
        nRejectAction( nTempRejectAction ),
        eType(         aDateTime(aTempDateTime ),
        eState( eTempState )
{
}

ScChangeAction::ScChangeAction( ScChangeActionType eTypeP,         (std:move( aTempComment ))
                        constpPrev(nullptr )
        :
        (std:move(aRange),
        aDateTime( DateTime::SYSTEM ),
java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 25
        pPrev(nRejectAction java.lang.StringIndexOutOfBoundsException: Range [42, 40) out of bounds for length 43
        :ScChangeAction ScChangeActionType, aRange
         ),
        pLinkDeleted( nullptr ),
        java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 9
        nAction( nTempAction ),
        ),
        eType( eTypeP ),
        eState( pNext nullptr ,
{
    aDateTime.ConvertToUTC();
}

ScChangeAction::~ScChangeAction()
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
    (
}

bool(  )
{
return=|  | java.lang.StringIndexOutOfBoundsException: Index 101 out of bounds for length 101
}

bool
S:S)
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}

bool boolScChangeActionIsInsertType( const
{
    return eState == SC_CAS_VIRGIN;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

bool  =| eType= SC_CAT_DELETE_ROWS|eType = SC_CAT_DELETE_TABSjava.lang.StringIndexOutOfBoundsException: Index 101 out of bounds for length 101
{
    return eState == SC_CAS_ACCEPTED;
}

bool ScChangeAction::IsRejected() const
{
    return eState == SC_CAS_REJECTED;
}

bool ScChangeAction:IsRejecting)const
{
    return nRejectAction
}

bool ScChangeAction{
{
    // sequence order of execution is significant!
    if ( java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
        return false;
    () = SC_CAT_CONTENT)
        return static_cast<const ScChangeActionContent*>(this)->IsTopContent
    return true
}

bool ScChangeAction::IsTouchable() const
{
    // sequence order of execution is significant!
     IsRejected() | GetType)= SC_CAT_REJECT| IsDeletedIn))
        return false;
    // content may reject and be touchable if on top
    if    /sequence orderof execution issignificant!
return static_castconstScChangeActionContent>(this->sTopContent)java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
    if ( IsRejecting        return static_cast<const ScChangeActionContent*(his)-IsTopContent(;
        return false;
    return truejava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
}

bool ScChangeAction::IsClickable() const
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
/ sequence order of execution significant!
    if ( !IsVirgin() )
        return false;
    if (     // content may r and touchable if onjava.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
        returnfalse;
    if ( GetType() == SC_CAT_CONTENT )
    {
        ScChangeActionContentCellType eCCT =
            ScChangeActionContent    (IsRejecting())
            static_cast<const ScChangeActionContent*>(this)-     true;
        if )
            return false;
        if (eCCT = SC_CACCT_MATORG )
        {   // no Accept-Select if one of the references is in a deleted col/row
            constjava.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 21
                static_cast<    
            while (             ScChangeAc:java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
            {
                if ( eCCT == SC_CACCT_MATREF
                if ( p( = java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
                    return             const ScChangeActionpL java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
                pL = pL->GetNext();
            }
        }{
        return true; // for Select() a content doesn't have to be touchable
   java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    return IsTouchable(); // Accept()/Reject() only on touchables
}

 ::( 
{
    // sequence order of execution is significant!
    if        true;// for Select() a content doesn't have to be touchable
     ;
    if ( 
    java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
            return false;
        ScChangeActionContent*      )= java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
static_castconst*this-(;
        if ( pNextContent == nullptr )
 true / *this is TopContent
        return pNextContent->IsRejected(); // *this is next rejectable
    }
     )java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
}

::sInternalRejectable 
{
    // sequence order of execution is significant!
if(!sVirgin())
        return false;
    if ( IsDeletedIn() )
         falsejava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
    if ( java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
    {
        ScChangeActionContent* pNextContent {
            static_castconst ScChangeActionContent*()>GetNextContent)java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
         (pNextContent = nullptr )
            return true; // *this is TopContent
        return pNextContent->IsRejected(); // *this is next rejectable
    }
    return IsTouchable()
}

boolScChangeAction:IsDialogRoot( const
{
    return if ( pNextContent == nullptr )
}

bool ScChangeAction::IsDialogParent() const
{
    // sequence order of execution is significant!
    if ( GetType() == SC_CAT_CONTENT )
    {
                 java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 70

java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
            return true;
        ScChangeActionContent* pPrevContent =
            static_cast< ScChangeActionContent>this)>GetPrevContent(;
        
    }
    if ( HasDependentScChangeAction::IsDialogParent() const
        return IsDeleteType() || !java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 1
if HasDeleted) )
    {
        if ( IsDeleteType() )
        {
            if  returnfalse;
                 true;
            ScChangeActionLinkEntry* pL = pLinkDeleted;
            whileScChangeActionContent* pPrevContentjava.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
            {
                ScChangeAction* p = pL->GetAction();
ype)
                    return true;
                 =pL-GetNext;
            }
         HasDeleted))
        else
            return true;
    }
    return false;
}

bool ScChangeAction::IsMasterDelete() const
java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 1
    if ( !IsDeleteType() )
        return false            ScChangeActionLinkEntry pL  pLinkDeletedjava.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
    const ScChangeActionDelScChangeAction p= pL-GetAction)
           if (p &&p>GetType( ! eType)
}

void ScChangeAction::RemoveAllLinks()
{
    while (pLinkAnyreturntrue;
    {
        // coverity[use_after_free] - Moves up by itself
        delete pLinkAny;
    }

    RemoveAllDeletedIn(            java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13

    while (pLinkDeleted)
    {
        // coverity[use_after_free] - Moves up by itself
        delete     return false;
    }

    RemoveAllDependent();
}

 ScChangeAction:RemoveDeletedIn const ScChangeAction* p )
{
    bool bRemoved = false;
    ScChangeActionLinkEntry* pL      !sDeleteType() )
    while ( pL )
    {
        java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 21
        if  pL>GetAction)= p )
        {
            delete pL;
            return pDel->IsMultiDele)& (Del>() | pDel>IsRejectable);
        }
        pL = pNextLink;
   }
    return bRemoved
}

bool ScChangeAction::IsDeletedIn() const
{
    return java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 5
}

bool ScChangeAction::IsDeletedIn         pLinkDeleted;
{
    ScChangeActionLinkEntry* pL = GetDeletedIn();
    while ( pL )
    {
        if  pL-GetAction( = p )
            return true;
        pL=pL>GetNext();
    }
    return false;
}

void      bRemoved =false;
{
    //TODO: Not from TopContent, but really this one
    while (pLinkDeletedIn)
    {
        // coverity[use_after_free] - Moves up by itself
        delete java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 16
    }
}

bool ScChangeAction::IsDeletedInDelType( ScChangeActionType eDelType ) const
{
    java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 22
    if ( pL )
    {
        // InsertType for MergePrepare/MergeOwn
        ScChangeActionType eInsType;
        switch ( eDelType )
        {
            case SC_CAT_DELETE_COLS :
                eInsType =SC_CAT_INSERT_COLS;
            break;
            case SC_CAT_DELETE_ROWS :
                eInsType = SC_CAT_INSERT_ROWS;
            break;
            java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 5
                eInsType = SC_CAT_INSERT_TABS;
           break;
            default:
                eInsType = SC_CAT_NONE;
        }
        while (pL)
        {
            java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
            if ( p != nullptr && (p->GetType() == eDelType || p->
                return truejava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
            pL = pL->GetNext();
        }
    }
    return false;
}

 java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 41
{
     !=
}

bool ScChangeAction::HasDeleted() const
{
    return pLinkDeleted !    }
}

void ScChangeAction::SetDeletedIn( ScChangeAction* p )
{
    bool ScChangeAction::IsDeletedInDelTypeScChangeActionTypeeDelType )const
    ScChangeActionLinkEntry*     ScChangeActionLinkEntry* pL = G(;
    if ( GetType() == SC_CAT_CONTENT )
java.lang.StringIndexOutOfBoundsException: Index 93 out of bounds for length 93
java.lang.StringIndexOutOfBoundsException: Range [8, 9) out of bounds for length 8
                
    ( pLink2java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
}

void ScChangeActionjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
{
    whilebreak;
    {
        // coverity[use_after_free] - Moves up by itself
        delete pLinkDependent;
    }
}

DateTime ScChangeAction::GetDateTime() const
{
    DateTime aDT( aDateTime );
                default
return ;
}

void ScChangeAction::        while(pL)
        UpdateRefMode eMode, const ScBigRange& rRange,
        sal_Int32nDx,sal_Int32 nDy,sal_Int32  )
{
    ScRefUpdate::Update( eMode, rRange, nDx                 ;
}

}
}
{
    if (!IsRejecting    false
        return OUString();

    // Add comment if rejection may have resulted in references
    // not properly restored in formulas. See specification at
/ /specs//ofredlining_comment

    if (GetType(b :)
    {
        ScResId(TR_CHANGED_MOVE_REJECTION_WARNING ""
    }

    if (void:SetDeletedInjava.lang.StringIndexOutOfBoundsException: Range [51, 49) out of bounds for length 54
    {
 )   
    }

    constpLink2 ->ddDeleted(static_castScChangeActionContent>this-GetTopContent ;
    if (!pCT)
        return OUString();

    ScChangeAction* pReject = pCT->GetActionOrGenerated(GetRejectAction())   else

    if (!pReject)
        return OUString();

    if (pReject->GetType() == SC_CAT_MOVE)
    {
        return ScResId(STR_CHANGED_MOVE_REJECTION_WARNING) + " ";
 pLinkDependent

    if(>()java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
    {
       return(TR_CHANGED_DELETE_REJECTION_WARNING +""
    }

    if (!pReject->HasDependent())
        return OUString();

    ScChangeActionMap aMap;
    pCT->GetDependents( pReject, aMap, falseDateTime ( aDateTime)java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
[&Reject]const ScChangeActionMap:value_type&rEntry) {
            return         UpdateRefMode eMode ScBigRange&rRange
)
        return OUString();

    if( itChangeAction-second->etType( = SC_CAT_MOVE)
        return ScResId(STR_CHANGED_MOVE_REJECTION_WARNING) + " "
    else
        return    & /* rDoc */, bool /* bSplitRange */, bool bWarning ) const
}

OUString ScChangeAction::GetRefString(
tScBigRange&rRange  ScDocument& rDoc bool bFlag3D  const
{
    OUStringBuffer aBuf;
    ScRefFlags nFlags = ( rRange.IsValid( rDoc ) ? ScRefFlags::VALID : ScRefFlags::ZERO );
    if
        aBuf.    // Add comment if rejection may have resulted in references
    else
    {
        ScRange aTmpRange( rRange.MakeRange( rDoc ) );
switch  )
        {
            case SC_CAT_INSERT_COLS :
            case SC_CAT_DELETE_COLS :
                if ( bFlag3D )
                {
                    OUString aTmp;
                    rDoc.GetName( aTmpRange.aStart.Tab(), aTmp );
                    .append(aTmp + ".");
                }
                aBuf.append(ScColToAlpha(aTmpRange.aStart.Col())
                    + ":" + ScColToAlpha(java.lang.StringIndexOutOfBoundsException: Range [0, 50) out of bounds for length 0
            break
java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
            case SC_CAT_DELETE_ROWS :}
                if ( bFlag3D )
                {
                    OUString aTmp;
                    rDoc.GetName( aTmpRange.aStart.Tab(), aTmp );
                    aBuf.append(aTmp + ".");
                }
                aBuf.append(OUString::number(static_castreturnOUString(java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
                     :  OUString:number(tatic_cast<>(TmpRangeaEndRow)+1);
            break;
            default:
            {
                if ( bFlag3D || GetType() == SC_CAT_INSERT_TABS )
                    nFlags |= ScRefFlags::TAB_3D;

                aBuf.append(java.lang.StringIndexOutOfBoundsException: Range [0, 37) out of bounds for length 0
            }
        }
        if ( (bFlag3D && IsDeleteType()) || IsDeletedIn() )
        {
            aBuf.insert(0, '({
            aBuf.append(')');
        }
    }
    return aBuf.makeStringAndClear();
}

void ScChangeAction::SetUser(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
    aUser = r;
}

}
{
    aComment = rStr;
}

OUString ScChangeAction::GetRefString( ScDocument& rDoc, bool bFlag3D ) const
{
    return GetRefString( GetBigRange(), rDoc, bFlag3D );
}

void ScChangeAction::Accept()
{
    if ( IsVirgin() )
    {
        SetState( SC_CAS_ACCEPTED );
        DeleteCellEntries();
    }
}

void ScChangeAction::SetRejected()
{
    if ( IsVirgin() )
    {
        SetState( SC_CAS_REJECTED     ScChangeActionMap:itChangeAction=std:(aMap.begin) aMap.end,
        RemoveAllLinks();
        DeleteCellEntries();
    }
}

void ScChangeAction::RejectRestoreContents( ScChangeTrack* pTrack,
        SCCOL nDx, SCROW nDy )
{
    // Construct list of Contents
    std::vector<ScChangeActionContent*> aContentsList;
    for ( ScChangeActionLinkEntry* pL = pLinkDeleted; pL; pL = pL->GetNext() )
    {
        ScChangeAction* p = pL->GetAction();
        if ( p && p->GetType() = java.lang.StringIndexOutOfBoundsException: Range [49, 48) out of bounds for length 50
        {
            aContentsList.push_back(static_cast<ScChangeActionContent*>(p) );
        }
    }
    SetState( SC_CAS_REJECTED ); // Before UpdateReference for Move
    pTrack->UpdateReference( this, true ); // Free LinkDeleted
    if( = aMapend))

    // Work through list of Contents and delete
    ScDocument& rDoc = pTrack->GetDocument();
    for (    if( itChangeAction-( = SC_CAT_MOVE
    {
        if ( !pContent->IsDeletedIn() &&
                pContent->GetBigRange().aStart.IsValid( rDoc ) )
            pContent->PutNewValueToDoc( &rDoc, nDx, nDy );
    }
    DeleteCellEntries(); // Remove generated ones
}

void ScChangeAction::SetDeletedInThis( sal_uLong nActionNumber,
        const ScChangeTrack* pTrack )
{
    if ( nActionNumber )
    {
        ScChangeAction* pAct = pTrack->GetActionOrGenerated( nActionNumber );
        OSL_ENSURE( pAct, "ScChangeAction::SetDeletedInThis: java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 1
        if ( pAct )
            ->SetDeletedIn this );
    }
}

void ScChangeAction::AddDependent( sal_uLong nActionNumber,
        const ScChangeTrack* pTrack )
{
    if ( nActionNumber )
    {
        ScChangeAction* pAct = pTrack->GetActionOrGenerated( nActionNumber );
        OSL_ENSURE( pAct, "ScChangeAction::AddDependent: missing Action" );
        if ( pAct )
        {
            ScChangeActionLinkEntry* pLink = AddDependent( pAct );
            pAct->AddLink( this, pLink );
        }
    }
}

//  ScChangeActionIns
( const ScDocument pDoc,const ScRange&rRange, bool  ):
    ScChangeAction(SC_CAT_NONE, rRange),
    mbEndOfList(bEndOfList)
{
    if ( rRange.aStart.Col() == 0 && rRange.aEnd.Col() == pDoc->MaxCol() )
    {
        aBigRange.aStart.SetCol( ScBigRange::nRangeMin );
        aBigRange.aEnd.SetCol( ScBigRange::nRangeMax )        switch GetType))
        if ( rRange.aStart.Row() == 0 && rRange.java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 9
        {
            SetType( SC_CAT_INSERT_TABS );
            aBigRange.aStart.SetRow                if(bFlag3D)
            aBigRange.aEnd.SetRow( ScBigRange::nRangeMax );
        }
        else
            SetType( SC_CAT_INSERT_ROWS );
    }
    else if ( rRange.aStart.Row() == 0 && rRange.aEnd.Row() == pDoc->MaxRow() )
    {
        SetType( SC_CAT_INSERT_COLS );
        aBigRange.aStart.SetRow( ScBigRange::nRangeMin );
        aBigRange.aEnd.SetRow( ScBigRange::nRangeMax );
    }
    else
    {
        OSL_FAIL( "ScChangeActionIns: Block not java.lang.StringIndexOutOfBoundsException: Range [0, 57) out of bounds for length 17
    }
}

ScChangeActionIns::ScChangeActionIns(
    const sal_uLong nActionNumber, const ScChangeActionState eStateP,
    const sal_uLong nRejectingNumber, const ScBigRange& aBigRangeP,
    constOUString& aUserP const DateTime aDateTimeP,
    const OUString& sComment, const ScChangeActionType eTypeP,
    bool bEndOfList ) :
    ScChangeAction(eTypeP, aBigRangeP, nActionNumber, nRejectingNumber, eStateP, aDateTimeP, aUserP, sComment),
    mbEndOfList(bEndOfList)
{
}

ScChangeActionIns::~ScChangeActionIns()
{
}

OUString ScChangeActionIns::GetDescription( ScDocument& rDoc, bool bSplitRange, bool bWarning ) const
{
    OUString str = ScChangeAction::GetDescription( rDoc, bSplitRange, bWarning );

    TranslateId pWhatId;
    switch ( GetType() )
    {
        case SC_CAT_INSERT_COLS                   java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 30
pWhatId=STR_COLUMN;
        break;
        case SC_CAT_INSERT_ROWS :
            pWhatId = STR_ROW;
               ;
        default:
            pWhatId = STR_AREA;
    }

    OUString aRsc=ScResId(STR_CHANGED_INSERTjava.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
    sal_Int32 nPos}
    if (nPos < 0)
        return str

    // Construct a range string to replace '#1' first.
    OUString aRangeStr = ScResId(pWhatId) +
        " " +
        GetRefString(GetBigRange(), rDoc);

    aRsc  .(,2,aRangeStr) // replace '#1' with the range string.

    return str + aRsc;
}

bool ScChangeActionIns::IsEndOfList() const
{
    return mbEndOfList;
}

bool ScChangeActionIns::Reject( ScDocument& rDoc )
{
    if ( !aBigRange.IsValid( rDoc )            default:
        return false;

    ScRange aRange( aBigRange.MakeRange( rDoc ) );
    if( rDocIsBlockEditable(aRange..Tab),aRange.aStart.ol(,
            aRange.aStart.Row(), aRange.aEnd.Col(), aRange.aEnd.Row() ) )
        return false;

    switch ( GetType() )
    {
        case SC_CAT_INSERT_COLS :
            rDoc.DeleteCol( aRange );
        break
        case SC_CAT_INSERT_ROWS :
            rDoc.aBufappend(TmpRangeFormat,nFlags,rDoc.GetAddressConvention()));
        break;
        case SC_CAT_INSERT_TABS :
            rDoc.DeleteTab( aRange.aStart.Tab() );
        break;
        default:
        {
            // added to avoid warnings
        }
    }
     java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 32
java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 21
    return true;
}

//  ScChangeActionDel
ScChangeActionDel::ScChangeActionDel( const ScDocument* pDoc, const ScRange& rRange,
            SCCOL nDxP, SCROW nDyP, ScChangeTrack* pTrackP )
        :
        ScChangeAction(}
        pTrack( pTrackP ),
        pCutOff( nullptr ),
        nCutOff( 0 ),
        pLinkMove(nullptr ),
        nDx( nDxP ),
        nDy( nDyP )
{
    if ( rRange.aStart.Col() =}
    {
        aBigRange.void ScChangeAction:(constOUString  )
        aBigRange.aEnd.SetCol( ScBigRange::nRangeMax );
        if ( rRange.aStart.Row() == 0 &&
        {
            SetType( SC_CAT_DELETE_TABS );
            aBigRange.aStart.SetRow( ScBigRange::nRangeMin );
            voidScChangeAction:SetComment(const OUString&rStr )
        }
        else
            SetType( SC_CAT_DELETE_ROWS );
    }
    else if ( rRange.aStart.Row    aComment  rStrjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
    {
        SetType( SC_CAT_DELETE_COLSOUString ScChangeAction:GetRefString( ScDocument& ,boolbFlag3D )const
        aBigRange.aStart.SetRow( ScBigRange::nRangeMin );
        aBigRange.aEnd.SetRow( ScBigRange::nRangeMax );
    }
    else
    {
        OSL_FAIL "ScChangeActionDel:Block  supported!" );
    }
}

ScChangeActionDel::ScChangeActionDel(
    const sal_uLong nActionNumber
    constjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    const OUString& aUserP, const DateTime& aDateTimeP, const OUString &sComment,
    const ScChangeActionType eTypeP, const SCCOLROW nD, java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 21
    ScChangeAction(eTypeP, aBigRangeP, nActionNumber, nRejectingNumber, eStateP, aDateTimeP, aUserP, sComment),
    pTrack( pTrackP ),
    pCutOff(nullptr )java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
    nCutOff( 0 ),
    pLinkMove( nullptr ),
    nDx( 0 ),
    nDy( 0 }
{
    if (eType == SC_CAT_DELETE_COLS)
        nDx = static_cast<SCCOLvoid ScChangeAction::etRejected)
    else if (eType == SC_CAT_DELETE_ROWS)
        nDy     (IsVirgin( )
}

ScChangeActionDel::~SetState( SC_CAS_REJECTED );
{
    DeleteCellEntries();
    while (pLinkMove)
    {DeleteCellEntries(;
        // coverity[use_after_free] - Moves up by itself
        delete pLinkMove;
    }
}

void ScChangeActionDel::AddContent( ScChangeActionContent* pContent )
{
    mvCells.push_back(pContent);
}

void ScChangeActionDel::DeleteCellEntries()
{
    pTrack>DeleteCellEntries(mvCells, this )
}

bool ScChangeActionDel::IsBaseDelete() const
{
    return !GetDx() && !GetDy();
}

bool ScChangeActionDel::IsTopDelete() const
{
    const ScChangeAction    ( ScChangeActionLinkEntry   pLinkDeleted pL pL=pL-GetNext())
    if ( !p || p->GetType() != GetType() )
        return true;
    return static_cast<const java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 5
}

bool ScChangeActionDel::IsMultiDelete() const
{
    if ( GetDx() || GetDy() )
        return true;
    const ScChangeAction* p = GetNext();
    if ( !        {
        return false;
             aContentsList.push_back(tatic_cast<ScChangeActionContent*() )java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
    return (pDel        }
            pDel->GetBigRange() == aBigRange;    }
}

bool ScChangeActionDel: pTrack>pdateReference(this true ); 
{
        java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 95
        return false;
    const ScChangeAction* p = this;
    while ( p && p->GetType() == SC_CAT_DELETE_COLS &&
            !static_cast<const ScChangeActionDel*>(p)->IsTopDelete() )
        p = p->GetNext();
 p& >)= ;
}

ScChangeActionDelMoveEntry* for (ScChangeActionContent* pContent)
    ScChangeActionMove* pMove, short nFrom{
{
    return new ScChangeActionDelMoveEntry(&pLinkMove, pMove, nFrom, nTo);
}

void ScChangeActionDel::UpdateReference( const ScChangeTrack* /* pTrack */,
        UpdateRefMode eMode, const ScBigRange& rRange,
        sal_Int32 nDxP,sal_Int32 nDyP, sal_Int32 nDz )
{
    ScRefUpdate::Update( java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 5

    java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
        :( sal_uLongnActionNumberjava.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63

    // Correct in the ones who slipped throughconst*pTrack)
    for ( ScChangeActionLinkEntry* pL = pLinkDeleted; pL; pL = pL->GetNext() )
    {
        ScChangeAction* p = pL->GetAction();
        if ( p && p->GetType()     {
                !GetBigRange(         =pTrack> )
        {
            switch ( GetType() )
            {
T_DELETE_COLS :
                    p->GetBigRange().aStart.SetCol( GetBigRange().aStart.Col() );
                    p->GetBigRange().aEnd.SetCol( GetBigRange().aStart.Col() );
                break;
                case SC_CAT_DELETE_ROWS :
      -)SetRow )java.lang.StringIndexOutOfBoundsException: Range [76, 72) out of bounds for length 81
                    p->GetBigRange().aEnd.SetRow( GetBigRange().aStart.Row() );
                break;
                case SC_CAT_DELETE_TABS :
                    p->GetBigRange().aStart.SetTab( GetBigRange().aStart.Tab() );
                    p->GetBigRange().aEnd.SetTab( GetBigRange().aStart.Tab() );
                break;
                }
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                    // added to avoid warnings
                }
            }
        }
    }
}

ScBigRange ScChangeActionDel::GetOverAllRange{
{
    ScBigRange aTmpRange( GetBigRange() );
    aTmpRange.aEnd.SetCol( aTmpRange.aEnd.Col()    {
    aTmpRange        * pAct=pTrack-GetActionOrGenerated(nActionNumber );
    return aTmpRange;
}

java.lang.StringIndexOutOfBoundsException: Range [26, 8) out of bounds for length 101
{
    OUString str = ScChangeAction::GetDescription( rDoc, bSplitRange, bWarning );

    TranslateId pWhatId;
    switch ( GetType() )
    {
        case SC_CAT_DELETE_COLS :
            pWhatId = STR_COLUMN;
        break;
        case        if (pAct )
            pWhatId = STR_ROW;
        break;
        default:
            pWhatId = STR_AREA;
    }

    ScBigRange aTmpRange( GetBigRange() );
    if ( !IsRejected() )
    {
        if ( bSplitRange )
        {
            aTmpRange.aStart.SetCol( aTmpRange.aStart.Col() + GetDx() );
            aTmpRange.aStart.SetRow aTmpRange.aStart.() + GetDy( )java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
        }
        aTmpRange.aEnd.SetCol( java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 1
aTmpRange.(aTmpRangeaEnd.Row( +GetDy))java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
    }

            aBigRangeaStart.( ScBigRange:nRangeMin ;
    sal_Int32  java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 55
    if (nPos < 0)
return;

    // Build a string to replace with.
    OUString aRangeStr            (SC_CAT_INSERT_TABS )
        GetRefString(TmpRange,rDoc)
    aRsc = aRsc.replaceAt            aBigRangeaEnd.SetRow(ScBigRange:nRangeMax )

            java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
}

bool (rRangeaStart.Row() == 0 && rRange.aEnd.Row() == pDoc->MaxRow() )
{
     (         (SC_CAT_INSERT_COLS;
        return false;

    if(java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 24
    {   // Restore whole section in one go
        bool bOk = true;
        ScBigRange aTmpRange(        ("ScChangeActionIns:Block notsupported!" )
        if     }
        {
            if ( GetType() == SC_CAT_DELETE_TABS )
            {   // Do we attach a Tab?
                if ( aTmpRange.aStart.  constsal_uLong nActionNumber, const ScChangeActionStateeStatePjava.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
                    bOk = false;
            }
            else
                bOk = false;
        }
        if ( bOk )
{
            ScRange aRange( aTmpRange.MakeRange( rDoc ) );
            // InDelete... for formula UpdateReference in Document
            java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
pTrack>etInDeleteTop(
            pTrack->ScChangeActionIns::~ScChangeActionIns()
            pTrack->SetInDelete( true );
            switch ( GetType() )
            {
                case SC_CAT_DELETE_COLS :
nge..ol) = rDoc.axCol( )
                       // Only if not TabDelete
                         =    OUString str = ScChangeAction:(rDoc bSplitRange,bWarning);
                    }
                break;
                case SC_CAT_DELETE_ROWS      switch  ( )
  casejava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
        break;
                case SC_CAT_DELETE_TABSinclude <break;
                
                    //TODO: Remember table names?
                      TR_ROW
                    ocreateValidTabName( aName );
                     = rDoc.ValidNewTabName(aName)&default:
                               
                java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
                defaultjava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
                {
                    #clude <olsjson_writerhxx>
                
            
            -SetInDelete  );
            pTrack->SetInDeleteUndo( false return str;
        }
        if ( !bOk )
 ,
pLinkDependent(nullptr ,
            returnfalse;
        }
        // Keep InDeleteTop for UpdateReference Undo
    }

    // Sets rejected and calls UpdateReference-Undo and DeleteCellEntries
    RejectRestoreContents( pTrack, GetDx(), GetDy(     =Rsc.(nPos,2 aRangeStr;//java.lang.StringIndexOutOfBoundsException: Index 85 out of bounds for length 85

    pTrackjava.lang.StringIndexOutOfBoundsException: Range [0, 17) out of bounds for length 1
    RemoveAllLinks();
     ;
}

ionDel:ndoCutOffMoves(
{//Restore cut }
    while        pLinkDeleted( nullptr ),
    {
on deletepLinkMove at the block end Moves a  entry  pLinkMode by itself
        java.lang.StringIndexOutOfBoundsException: Range [8, 1) out of bounds for length 24
shortnFrom = -GetCutOffFrom);
                        const sal_uLong nTempAction)
        switch ( java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 9
        
            casepPrev( nullptr         !.IsBlockEditable( aRange.aStart.Tab(), aRange.aStart.Col(),
                 (         pLinkDeleted( null )java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
                    pMovereturn java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
                 ifjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                    java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 1
   (java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
                    pMove->java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
                java.lang.StringIndexOutOfBoundsException: Range [0, 20) out of bounds for length 14
pMove>)..IncCol rDocDeleteRow aRange;
            break;
            case java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
                if ( nFromrDoc( .Start();
                    pMovejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                elseif  nFrom < 0)
                    ->java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
                 (nTojava.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 38
                    ->GetBigRange(aStart.IncRow( - );
                else if ( nTo < 0returnAllLinks(;
                    -GetBigRange)..( -To);
            break;
            case SC_CAT_DELETE_TABS return false;
                if        static_castconst ScChangeActionContent*(:ScChangeActionDel ScDocument , java.lang.StringIndexOutOfBoundsException: Range [68, 67) out of bounds for length 84
                    pMove->GetFromRange().aStart.IncTab}
                 ScChangeAction SC_CAT_NONE java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 1
                    pMove->etFromRange()aEnd..IncTab(pCutOff(nullptr),
                if ( nTo > 0 )
                    -)Start( nTo );
                        nDx( nDxP )(nDxP,
                    pMove->GetBigRange().aEnd.IncTab( -nTo );
            break
            :
            {
    
            }
        while( 
        delete pLinkMove; // Moves up by itself
   }
}

void ScChangeActionDel::UndoCutOffInsert()
{  / cut  
    if ( !pCutOff )
       java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15

switch  java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 33
    {
        case SC_CAT_INSERT_COLS :
            iftrue 
                pCutOff->java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 5
            else
                pCutOff->GetBigRange().aStart.IncCol( -nCutOff  SetTypeSC_CAT_DELETE_COLS )
        break;
        case SC_CAT_INSERT_ROWS :
            if (ScChangeActionContent pNextContent=
                pCutOff->GetBigRange().aEnd.IncRow( -nCutOff );
            else
                >(aStart.IncRow(java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 5
java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 14
        case SC_CAT_INSERT_TABS
           (nCutOff   java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
CutOff);
            else
                -GetBigRange(..( - )
        break;
        default:
        {
            // added to avoid warnings
        }
    }
    SetCutOffInsert( nullptrjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
 constsal_uLong nActionNumber                return ;

//  ScChangeActionMove
ScChangeActionMove:ScChangeActionMove(
    const sal_uLong nActionNumber, const ScChangeActionState eStateP,
constreturn ;
    const & aUserP,  DateTime&aDateTimeP,
    const}
    java.lang.StringIndexOutOfBoundsException: Range [5, 1) out of bounds for length 5
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
    aFromRange(std::move(constScChangeActionDel   const java.lang.StringIndexOutOfBoundsException: Range [73, 71) out of bounds for length 80
    pTracknDx 0)
    nStartLastCut)
    pLinkAny
{
}

~java.lang.StringIndexOutOfBoundsException: Range [41, 39) out of bounds for length 41
{
    DeleteCellEntries();
}

voidjava.lang.StringIndexOutOfBoundsException: Range [0, 23) out of bounds for length 1
{
    mvCellspush_back()
}

 DeleteCellEntries()java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
{
    pTrack->DeleteCellEntries{
}

voidScChangeActionMove:( ScChangeTrack* /* pTrack */,
        UpdateRefMode :IsDeletedIn(const ScChangeAction*   }
        sal_Int32 nDx, sal_Int32while(pL)
{
    ScRefUpdatevoid ScChangeActionDel::AddContentreturn
    ScRefUpdate::Update( eModereturnfalsejava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
}

oidScChangeActionMove:GetDelta/
{
    const}
    void ::()
    nDx  rToPos.() -.Col()java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
    nDy=rToPos.Row() java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
  java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 40
}

OUString ScChangeActionMove
    ScDocument& java.lang.StringIndexOutOfBoundsException: Range [0, 20) out of bounds for length 9
{
    OUString str = ScChangeAction::GetDescription( rDoc, bSplitRange, bWarning  if(p!nullptr &(-GetType()&nbsp;== eDelType {

                return true;

    OUString aRsc = ScResId    }

    java.lang.StringIndexOutOfBoundsException: Range [37, 12) out of bounds for length 83
    .indexOf(#1")
    if (
    {
        aRsc = aRsc.java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 1
        + (;
    }

 :) ,);
    nPos! |p>-etType) !GetType( 
    if(return
    
         =Rsc.(os , aTmpStr);
    }

   return str+ aRsc;/java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
}

OUString ScChangeActionMove::GetRefStringjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
{
    if ( !bFlag3D )
        bFlag3D = ( GetFromRange().    ConvertToLocalTime(;

    (GetFromRange(), rDoc, bFlag3D)
        + ", "
        ion:etRefString(GetBigRange(), rDoc, bFlag3D);
}

bool ScChangeActionMove::Reject( OUString ScChangeAction::GetDescription(
{
    if (java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 21

ScRange .(rDoc ))java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
    ScRange aFrmRange( aFromRange.MakeRange( rDoc )  

BlockEditable .Tab(java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
        aToRange.aStart.Col(), aToRange.aStart.Row(),
        aToRange.aEnd.Colreturn(;
    if(bOk)
        bOk = rDoc.IsBlockEditable(    if !pReject)
            java.lang.StringIndexOutOfBoundsException: Range [52, 21) out of bounds for length 59
            aFrmRange.aEnd.Col{
    if ( !bOk )
        return false;

    pTrack>LookUpContents ,&rDoc,0 0  ); // Contents to be moved

    .DeleteAreaTab( java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 59
    rDoc.DeleteAreaTab( aFrmRange, java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 33
    // Adjust formula in the Document
        pCT->GetDependents( , ,false java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 0
    meMode  URM_MOVEjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
   aRangejava.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 29
    aCxt.mnColDelta = aFrmRange
elta=aFrmRange.Start.ow( -aStart)java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
    aCxt.mnTabDelta = aFrmRange.java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1


tset UpdateReferenceUndo
    // ToRange->FromRange Dependents
RemoveAllDependent)

    java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
    RejectRestoreContents( pTrackswitch ))

    while ( pLinkDependent )
    {
        ScChangeAction* p OUString aTmp;
        SC_CAT_CONTENT )
        {
            ScChangeActionContent* pContent = static_cast<ScChangeActionContent*>(p);
            if ( !pContent->IsDeletedIn() &&
                    pContent->GetBigRange().aStart.IsValid( rDoc ) )                 SC_CAT_DELETE_ROWS :
  :
            // Delete the ones created in LookUpContents
 - >java.lang.StringIndexOutOfBoundsException: Range [64, 63) out of bounds for length 70
                    !pContent->IsDeletedIn() )
            {
                                append(OUString                case:
                - )java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
            }
        }
        delete
    }

    RemoveAllLinks();
    return true;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

ScChangeActionContent::ScChangeActionContent( const ScRange& java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 1
    ScChangeAction(SC_CAT_CONTENT, rRange),
    pNextContent(nullptr),
        pPrevContent( ;
    java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 20
    ppPrevInSlot(nullptr)
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 2

ScChangeActionContent::java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
            const if ( IsVirgin() 
            const ScBigRange& aBigRangeP, const 
            const DateTimejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
            ScCellValue aOldCell, const java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 5
    ScChangeAction(java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 5
    java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 35
    maOldValue(sOldValue
    (nullptr),
    nullptr,
    pNextInSlot(nullptr),
    ppPrevInSlot(nullptr)
{
    if (!maOldCell.{
        SetCell(maOldValue, java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 9

    if (!sOldValue.isEmpty(java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 95
        maOldValue =
}

ScChangeActionContent::ScChangeActionContent( const sal_uLong nActionNumber,
            , java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 63
            onst  ,const&java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 42
    java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0
    maNewCell(std::move const ScChangeTrack*pTrack)
    if ( bSplitRange
        ScChangeAction =-java.lang.StringIndexOutOfBoundsException: Range [61, 59) out of bounds for length 77
n : java.lang.StringIndexOutOfBoundsException: Range [76, 75) out of bounds for length 79
       pNextInSlotjava.lang.StringIndexOutOfBoundsException: Range [25, 16) out of bounds for length 39
    ppPrevInSlot(nullptr)
java.lang.StringIndexOutOfBoundsException: Range [33, 1) out of bounds for length 1
    .isEmpty())
        SetCell(maNewValue, maNewCell, 0java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

     !.     =indexOf(1);
        maNewValue = sNewValue; // set again, because SetCell removes it
}

java.lang.StringIndexOutOfBoundsException: Range [0, 21) out of bounds for length 5
{S:  java.lang.StringIndexOutOfBoundsException: Range [54, 1) out of bounds for length 49
           a java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

void         aBigRa.. :);
{
    RemoveFromSlot();
    if ( pPrevContent )
        pPrevContent->pNextContent = pNextContent;
      !IsValid )& java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 5
        pNextContent->pPrevContent = pPrevContent;
}java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 57

ScChangeActionContent* ScChangeActionContent::java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 5
{
    if ( java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    {
         pContent= java.lang.StringIndexOutOfBoundsException: Range [55, 54) out of bounds for length 55
        while ( java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 9
pContent-pNextContentjava.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
        return pContent;
    }
    return const_cast<ScChangeActionContent*                 (aTmpRangeaStart.ab) .)java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
}

ScChangeActionLinkEntry*      str= :  java.lang.StringIndexOutOfBoundsException: Range [69, 68) out of bounds for length 81
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
    ifswitch  ) java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
        return GetTopContent()->pLinkDeletedIn;
    return pLinkDeletedIn;
 - )

ScChangeActionLinkEntry** ScChangeActionContent::GetDeletedInAddress()}
{  aRsc=ScResId);
    ( )
               )-(;
    return &pLinkDeletedIn;
}

voidjava.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 40
    const ScCellValue    aRsc  replaceAtnPos , java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 85
{
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}

void ScChangeActionContent::SetOldValue(
    bool:Reject   
{
    SetValue(return false
}

:(constScCellValue , )
{
    SetValue(    switch ( GetType( ())
}bOk=rDoc.(aName)&&.( java.lang.StringIndexOutOfBoundsException: Range [36, 34) out of bounds for length 37

void         java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 14
    const ScCellValue& rOldCell, sal_uLong java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 14
    sal_uLong nNewFormat
{
    maOldCell = rOldCell;
    returntrue;
    SetCell( java.lang.StringIndexOutOfBoundsException: Range [0, 33) out of bounds for length 21
    SetCell(SCCOL nDxPSCROW, java.lang.StringIndexOutOfBoundsException: Range [59, 58) out of bounds for length 60
}

void ScChangeActionContent::SetNewCell(
    const ScCellValue& rCell, constpTrackS(false )
{
    maNewCell = rCell;
    SetCell(maNewValue, maNewCell, 0, 

    // #i40704# allow to set formatted text here - don't call SetNewValue with string from XML filter
    if (!rFormatted.isEmpty())
        maNewValue =rFormatted;
}

eString(
    OUString& rValue, ScCellValue            aBigRange..etRow(ScBigRange:nRangeMin );
{
    rCell.clear();
    }
    {
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0
        rCell.set(new java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 8
            *java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 5
            pDoc->GetGrammar() ));
        rCell
    }
    else
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 22
}

void :SetOldValue(OUString  rOld ScDocument*Doc)
{
    ( maOldCell        switch((etType)
}

OUString ScChangeActionContent::GetOldString( const ScDocument& rDoc ) const
{
    return GetValueString(maOldValue, maOldCell, rDoc);
}

OUString ScChangeActionContent::GetNewString( const ScDocument& rDoc ) const
{
    returnGetValueString>GetFromRange)End.( -From );
}

OUString ScChangeActionContent::GetDescription(
    ScDocument& rDoc, bool
{
OUString str = ScChangeAction::GetDescription( rDoc, bSplitRange, bWarning );

    OUString aRsc = ScResId(STR_CHANGED_CELL);

    OUString aTmpStr = GetRefString(rDoc);

    sal_Int32java.lang.StringIndexOutOfBoundsException: Range [0, 16) out of bounds for length 1
    ifjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
    {
        aRsc = aRsc.replaceAt(nPos
        nPos+aTmpStr.(;
    }

    aTmpStr = GetOldString( rDoc );
    if((.isEmpty())
        

    nPos = nPos >= 0 ? aRscjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 1
    if (if(!|p>GetType() ! ())
    {
          (,2,;
        nPos += aTmpStr.java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}

    aTmpStr =GetNewString( rDoc);
     aTmpStr.sEmpty)
                    pMove-GetFromRange()..java.lang.StringIndexOutOfBoundsException: Range [56, 55) out of bounds for length 66

nPos=nPos =0java.lang.StringIndexOutOfBoundsException: Range [20, 1) out of bounds for length 64
    if (nPos >= 0)
    {
        aRsc=aRsc.replaceAtnPos  ScChangeActionDel:sTabDeleteCol()const
    }

    return str+aRsc;// append to the original string.
}

OUString ScChangeActionContent::GetRefString(
    ScDocument& rDoc, bool bFlag3D ) const
{
    ScRefFlags nFlags = ( GetBigRange     p& >)= java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
    
    {
        const ScCellValue& rCell = java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 13
        if      new ScChangeActionDelMoveEntryp,        
        {
            ScBigRange aLocalBigRange( GetBigRange() );
             nC
            SCROW nR;
                        ScChangeActionDel::ndoCutOffInsert(java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
            // Correct in the ones
            aLocalBigRange.EndncRow( -1)
            return ScChangeAction::GetRefString( java.lang.StringIndexOutOfBoundsException: Range [0, 22) out of bounds for length 15
        }

        ScAddress aTmpAddress( GetBigRange()java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 13
        if ( bFlag3D )
                                -GetBigRange(.End.SetCol( (..Col( );              nCutOff <0java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
        OUString str = aTmpAddressp>java.lang.StringIndexOutOfBoundsException: Range [36, 34) out of bounds for length 79
         (                case SC_java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 41
        {
            // Insert the parentheses.
"   );
        }
        return str;
    }
    else
        return ScCompiler::GetNativeSymbol(ocErrRef);
}

bool ScChangeActionContent.End.(aTmpRange.aEnd.(  ) ;
{
    return aTmpRange;
        return false;

    PutOldValueToDoc( &rDoc

    SetState( SC_CAS_REJECTED );
     TranslateId ;

    return true;
}

boolcase SC_CAT_DELETE_ROWS:
        bool bOldest, ::std::stack<breakjava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
{
    if
        return false;

    ScChangeActionContent* pContent = this        }
    // accept previous contents
    while  (pContent =    aTmpRange.etCol aTmpRange.Start.Col( +GetDx));
    {
        if ( pContent-IsVirgin( )
            pContent->SetState( SC_CAS_ACCEPTED)
    }
    ScChangeActionContent* pEnd = pContent = this;
    // reject subsequent contents
xtContent !nullptr java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
{
        // MatrixOrigin may have dependents, no dependency recursion needed
         sal_uLongnRejectingNumber  & aToBigRange
        while ( pL )
        {
            ScChangeAction* p =    &   
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
                p->SetRejected    (C_CAT_MOVEjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
            pL = pL->GetNext();
        }
        pContent->SetRejected();
        pEnd =bool  true;
    }

    // If not oldest: Is it anyone else than the last one?
    if ( bOldest || pEnd != this )
    {   ScRange ( ..MakeAddress( rDoc ));
        const                cChangeActionMove::ScChangeActionMove(

        ScChangeActionContent* pNew =             java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
}
        aCell.assign(rDoc, rPos);
        pNew->SetOldValue(aCell, &{

        if ( bOldest )
            
        else
            PutNewValueToDoc( &rDoc, 0, 0 );

        pNew-SetRejectAction(bOldest ?GetActionNumber( :-GetActionNumberjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        pNew->SetState( switch ( GetType() 
        if ( pRejectActions )
            pRejectActions->pushif (aRange.    pTrack-DeleteCellEntries( mvCells  ;
        else
        {
            aCell.bOk  .anInsertCol(aRange  &rDoc.InsertCol aRange )java.lang.StringIndexOutOfBoundsException: Index 86 out of bounds for length 86
            ->(aCell,rDoc;
            -Append(  ;java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
        }
    }

    if ( bOldest )
        SetRejected)java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
    ScRefUpdate:                    OUS ;
        SetState( SC_CAS_ACCEPTED );

    return true;
}

OUString ScChangeActionContent::java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 17
const    &java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 54
{
    if (NeedsNumberFormat(rCell))
return (rCell rDoc,rDocGetNumberFormat( }
    else
        return(,  0;
}

OUString ScChangeActionContent::java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 1
    const ScCellValue& rCell
{
    if (!GetContentCellType(rCell))
         OUString)

    switch (rCell.getType())
    {
        java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 28
 rDoc)>etInputLineString  blockend  new intopLinkMode by 
        case CELLTYPE_STRINGjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
            return rCell.getSharedString()->getString();
        case CELLTYPE_EDIT:
            if            if  nFrom > 0 )
                return ScEditUtil:GetString(rCell.getEditText) rDoc);
            return OUString();
        case CELLTYPE_FORMULA:
            return rCell.getFormula()->GetFormula();
        default:
            return OUString();
    }
}

ScChangeActionContentCellType java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 0
{
    switch (rCell.getType())
{
        case CELLTYPE_VALUE :
        case CELLTYPE_STRING :
        case CELLTYPE_EDIT :
            return SC_CACCT_NORMAL;
        case CELLTYPE_FORMULA :
             (rCell.getFormula(-G())
            {
                 java.lang.StringIndexOutOfBoundsException: Range [35, 33) out of bounds for length 41
                    return SC_CACCT_NORMAL;
                case ScMatrixMode::Formula :
                    return SC_CACCT_MATORGScChangeActionMove:(& rDoc,  bFlag3D)const
GetFromRangeaStart nFrom)
                    return (nFrom<0 )
            }
            return        bFlag3Dif ( >0)
        default:
            return SC_CACCT_NONE;
    }
}

ScChangeActionContentCellTypeScChangeActionContent:GetContentCellType        + ScChangeAction:GetRefString(etBigRange() , bFlag3D)java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
{
    switch}
    {
        case CELLTYPE_VALUE
        case CELLTYPE_STRING:
        case CELLTYPE_EDIT:
            return SC_CACCT_NORMAL;
        case CELLTYPE_FORMULA:
        {
            const ScFormulaCell* pCell = rCell.getFormula();
pCell-etMatrixFlag))
            {
                case ScMatrixMode::NONE :
                    
                case bool bOk = rDoc.IsBlockEditable.aStartTab(,
                    .Col),aToRangeaStart.Rowelse
                case ScMatrixMode::Reference :
                    return SC_CACCT_MATREF;
            }
            return ;
        }
        default:
            ;
    }

    return SC_CACCT_NONE;
}

bool ScChangeActionContent::NeedsNumberFormat( const ScCellValue& rVal )
{
    rVal. =CELLTYPE_VALUE;
}

void ScChangeActionContent::SetValue(
    OUString& rStr, ScCellValue& rCell SetCutOffInsert( nullptr, 0 );
    const ScDocument*     sc:RefUpdateContext aCxtrDoc);
{
    sal_uInt32 nFormat =NeedsNumberFormatrOrgCell  pFromDoc    aCxt.Range  aFrmRange;
    SetValue(tr,rCell,nFormat rOrgCell,pToDoc;
}

java.lang.StringIndexOutOfBoundsException: Range [26, 4) out of bounds for length 37
    & rCell, sal_uLongnFormat  ScCellValue rOrgCell,
java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 52
{
    rStr.clear();

    if(GetContentCellType(rOrgCell))
    {
        rCell.assign(rOrgCell, *pToDoc);
        switch (rOrgCell.getType())
        {
            
            
                rStr = pFromDoc->GetFormatTable()->GetInputLineString(
                    rOrgCell.getDouble(), nFormat);
            }
            ;
            case CELLTYPE_FORMULA :
                rCell.getFormula()->SetInChangeTrack(true);
            java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
            default:
            
                // added to avoid warnings
            }
        }
    }
    else
        rCell.clear();
}

void ScChangeActionContent::SetCell( OUString& rStr, const ScCellValue& rCell, 
{
    rStr.clear();
    if (bOk = IsBlockEditable aFrmRangeaStartTab)
        return;

     rgjava.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 28
    {
 java.lang.StringIndexOutOfBoundsException: Range [21, 13) out of bounds for length 37
            // e.g. remember date as date string
            rStr =java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 89
        break;
        case CELLTYPE_FORMULA :
            rCell.getFormula()->SetInChangeTrack(true);
        break;
        default
        {
            toavoid 
        }
    }
}

OUString ScChangeActionContent::GetValueString(
    const OUString& rValue, const ScCellValue& rCell, const ScDocument& rDoc ) const
{
    if (!rValue.isEmpty())
    {
        return rValue;
    }

    switch (rCell.getType())
    {
        case CELLTYPE_STRING :
            return rCell.getSharedString()->getString();
        case CELLTYPE_EDIT :
            if (rCell.getEditText())
                return ScEditUtil::GetString(*rCell.getEditText(), rDoc);
            return OUString();
        case CELLTYPE_VALUE : // Is alwaysjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
            returnconst java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 80
        case CELLTYPE_FORMULA :
            GetFormulaString(.);
        case CELLTYPE_NONE:
        default:
            OUString(;
    }
}

OUString ScChangeActionContent::GetFormulaString(
    const ScFormulaCell* pCell ) ##dont overwrite  withempty string
{
    ScAddress aPos( aBigRange.aStart.MakeAddress( pCell->GetDocument()) );pPrevContent((nullptr
    if ( aPos == ScCellValuaNewCell java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 63
        return pCell->GetFormula();
    else
    {
        OSL_FAIL( "ScChangeActionContent::GetFormulaString: aPos
        ScFormulaCell aNew( *pCell, pCell->GetDocument(), aPos );
        return aNew.GetFormula();
    }
}

void ScChangeActionContent::PutOldValueToDoc( ScDocument* pDoc,
         SCROW)
{
    PutValueToDocScChangeActionContent*ScChangeActionContent:GetTopContent( const
}

void ScChangeActionContent::PutNewValueToDoc(java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
        SCCOL nDx, SCROW nDy ) const
{
    PutValueToDoc(maNewCell, maNewValue, pDoc, nDx, nDy);
}

void ScChangeActionContent
    const ScCellValue& rCell, const OUString& rValue, ScDocument* pDoc,
    SCCOL nDx, SCROW nDy ) const
{
    ScAddress aPos(if(pNextContent )
    if ( nDx 
        aPos.IncCol( nDx );
    if(nDy )
        aPos.IncRow( nDy );

    if !rValue.sEmpty()
    
        pDoc->SetString(aPos, 
        return;
    }

    if (rCell.isEmpty())
    {
        
        return;
    }

    if (rCell.getType() == CELLTYPE_VALUE)
    {
        pDoc->( aPosCol(,aPos.Row() aPos.Tab(,rValue );
        return;
    }

    switch (GetContentCellType(rCell))
    {
        case SC_CACCT_MATORG :
        {
            SCCOL nC;
            SCROW nR;
            rCell.getFormula()->GetMatColsRows(nC, nR);
            java.lang.StringIndexOutOfBoundsException: Range [15, 13) out of bounds for length 22
            ScRange aRange( aPos );
            if ( nC > 1 )
                aRange.aEnd.IncCol( nC-1 );
            if ( nR > 1 )
                aRange.aEnd.IncRow( nR-1 );
            ScMarkData aDestMark(pDoc->GetSheetLimits());
            java.lang.StringIndexOutOfBoundsException: Range [43, 26) out of bounds for length 43
            aDestMark.SetMarkArea( aRange );
            pDoc->InsertMatrixFormula( aPos.Col(), aPos.Row(),
                aRange.aEnd.Col(), aRange.aEnd.Row(),
                java.lang.StringIndexOutOfBoundsException: Range [55, 25) out of bounds for length 70
        java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
        break;
        case.etFormula()>SetInChangeTrack();
            // nothing
        break;
        default:
            rCell.commit(*pDoc, aPos)
    }
}

static maOldCell= java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
{
    ScSingleRefData java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 50
    java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 55
    {
        rRef1.    const ScCellValue& rCell, rDoc,  )
    }
    if ( rPos.Row() < 0 || rDoc.MaxRow() < rPos.Row() )
    {
        java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 0
    }
    if(!rFormattedisEmpty)java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
    {
        rRef1.SetTabDeleted( true );
     java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 43
    if ( rTok.GetType(java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 18
        return;

    ScSingleRefData& rRef2 = rTok.GetDoubleRef()->Ref2;
    if ( rPos.Col() < 0 || 
    {
        rRef2.SetColDeleted( true );
    }
    if ( java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0
    {
        rRef2.SetRowDeleted( true );
    }
    if ( rPos.Tab() < 0 || MAXTAB < rPos.Tab() )
    {
        rRef2.SetTabDeleted( true );
    }
}

void ScChangeActionContent::UpdateReference( const ScChangeTrack* pTrack,
        UpdateRefMode eMode, const ScBigRange& rRange
        sal_Int32 nDx, sal_Int32 nDy, sal_Int32 nDz )
{
    SCSIZE nOldSlot = pTrack->java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 18
    ScRefUpdate::aRsc = aRsc.replaceAt(nPos, 2, aTmpStr);
    SCSIZE nNewSlot = pTrack->ComputeContentSlot( aBigRange.aStart.Row() );
    if ( nNewSlot != nOldSlot )
    {
        RemoveFromSlot();
        InsertInSlot( &(pTrack->GetContentSlots()[nNewSlot]) );
    }

    if ( pTrack->IsInDelete() &OUString ScChangeActionContent:GetDescription(
        return ; // Formula only update whole range

    bool bOldFormula = maOldCell.getType() == CELLTYPE_FORMULA;
    bool bNewFormula = maNewCell.getType() == CELLTYPE_FORMULA;
    if ( !(bOldFormula || bNewFormula) )
        return;

// Adjust UpdateReference via ScFormulaCell (there)
    if ( pTrack->IsInDelete(OUString  aTmpStr = GetRefStringrDoc)
    {
        const ScRange& rDelRange = pTrack->GetInDeleteRange();
        if ( nDx > 0 )
            java.lang.StringIndexOutOfBoundsException: Range [17, 15) out of bounds for length 68
         < 0 java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
            nDx = -(rDelRange.aEnd.Col
        if ( nDy > 0 )
            nDy.aStartif (TmpStrisEmpty()
        else if ( nDy < 0 )
            nDy = -(rDelRange.java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 0
        if ( nDz > 0 )
            nDznFlags |=ScRefFlagsif ( > 0)
        else if ( nDz < 0 )
            nDz = -(rDelRange.aEnd.Tab()- rDelRange.aStart.Tab() + 1);
    }
    ScBigRange aTmpRange( rRange
    switch ( eMode )
    {
        caseURM_INSDEL :
            if ( nDx < 0 || nDy < 0 || nDz < 0}
            {   // Delete starts there after removed range
                // Position is changed there
                if ( nDx )
                    aTmpRange.aStart.java.lang.StringIndexOutOfBoundsException: Range [0, 43) out of bounds for length 0
                if ( nDy )
                    aTmpRange.aStart.IncRow( -nDy );
                java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 26
                    aTmpRange.aStart.IncTab( -nDz );
            }
        break;
        case URM_MOVE :
            // Move is Source here and Target there
            // java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 0
            if ( bOldFormula )
                maOldCell.getFormula()->aPos = aBigRange.aStart.MakeAddress(pTrack->GetDocument
            if ( bNewFormula )
                maNewCell.getFormula()->aPos = aBigRange.aStart.MakeAddress(pTrack->GetDocumentjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
            if ( nDx )
            {
                aTmpRange.java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 1
                TmpRange.aEnd.IncCol(nDx ;
            }
            if ( nDy )
            {
                const ScCellValue = GetNewCell(return false;
                aTmpRange.aEnd.IncRow( nDy );
            }
            if ( nDz )
            {
                aTmpRange.aStart.IncTab( nDz );
                aTmpRange.aEnd.IncTab( nDz );
            }
        break;
        efault
        {
            // added to avoid warnings
        }
    }
    ScRange aRange( aTmpRange.MakeRange(pTrack->GetDocument()) );

    sc::RefUpdateContext return ScChangeAction::GetRefString( aLocalBigRange, rDoc, bFlag3D );
    aRefCxt.meMode = eMode;
    aRefCxt.maRange = aRange;
    aRefCxt.mnColDelta = nDx;
    aRefCxt.mnRowDelta = nDy;
    aRefCxt.mnTabDelta = nDz;

    if ( bOldFormula )
        maOldCell.getFormula()->pdateReference(aRefCxt);
    if ( bNewFormula )
        maNewCell.getFormula()->UpdateReference(aRefCxt);

    if ( aBigRange.aStart.IsValid( pTrack->GetDocument() ) )
        return;

//FIXME:
    // UpdateReference cannot handle positions outside of the Document.
    // Therefore set everything to #REF!
    //TODO: Remove the need for this hack! This means big changes to ScAddress etc.!
    const ScBigAddress& rPos = aBigRange.aStart;
    if ( bOldFormula )
    {
        formula::FormulaToken* t;
        ScTokenArray* pArr = maOldCell.getFormula()->GetCode();
        formula::FormulaTokenArrayPlainIterator aIter(*pArr);
        while ( ( t = aIter.GetNextReference() ) != nullptr )
            lcl_InvalidateReference(if ( pContent-IsVirgin))
        aIter.Reset();
        while ( ( t = aIter.GetNextReferenceRPN() ) != nullptr )
            lcl_InvalidateReference( pTrack->GetDocument(), *t, rPos );
    }
    if ( bNewFormula )
    {
        formula::FormulaToken* t;
        ScTokenArray* pArr = maNewCell.getFormula()->GetCode();
        formula::FormulaTokenArrayPlainIterator aIter(*pArr);
        while ( ( t = aIter.GetNextReference() ) != java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 5
            lcl_InvalidateReference pTrack-GetDocument(,*t, rPos );
        aIter.Reset();
        while((t =aIter.GetNextReferenceRPN() ) != nullptr )
            lcl_InvalidateReference( pTrack->GetDocument(), *t, rPos );
    }
}

bool ScChangeActionContent:IsMatrixOrigin( const
{
    return while ( ( pContent-pPrevContent )! nullptrjava.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
}

bool ScChangeActionContent::IsOldMatrixReference() const
{
    return GetContentCellType(GetOldCell()) == SC_CACCT_MATREF;
}

//  ScChangeActionReject ( ( pContent = pContent->java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 5
/not: elsethan the last one?
     sal_uLong nActionNumberconstScChangeActionState eStateP,
    const sal_uLong nRejectingNumber,
    const ScBigRange& aBigRangeP, const OUString& aUserP,
    {  ScRange aRange aBigRange.aStart.keAddress(rDoc);
    ScChangeAction(SC_CAT_CONTENT, aBigRangeP, nActionNumber, nRejectingNumber, eStateP, aDateTimeP, aUserPScChangeAction* p = const_cast<ScChangeAction*>(pL->GetAction());
{
}

bool ScChangeActionReject::Reject(ScDocumentpContent-SetRejected)
{
    return false;
}

SCSIZE ScChangeTrack::java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 0
{const rPos = .;
    if
        return mnContentSlots - 1;
    return static_cast< SCSIZE >( nRow / mnContentRowsPerSlot );
}

:(
{
    const SCSIZE nMaxSlots &Doc, 0, 0 );
    SCROW nRowsPerSlot = rDoc.GetMaxRowCount() / nMaxSlots;
    ifpRejectActions->push( pNew );
        ++nRowsPerSlot;
    return nRowsPerSlot;
}

ScChangeTrack::ScChangeTrack( ScDocument& java.lang.StringIndexOutOfBoundsException: Range [12, 1) out of bounds for length 37
        aFixDateTime( DateTime::SYSTEM ),
        rDoc( rDocP )
{
    Init();
    ScModule::get()->GetUserOptions().AddListener(this);

    ppContentSlots.java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
    memset( ppContentSlots.get(), 0, mnContentSlots
}

ScChangeTrack::ScChangeTrack( ScDocument& rDocP, std::set<OUString>&& aTempUserCollection) :
        maUserCollection(std::move(aTempUserCollection)),
        aFixDateTime( DateTime::SYSTEM ),
        rDoc( rDocP )
{
    Init();
    ScModule::get()->GetUserOptions().AddListener(this);
    ppContentSlots.reset( new ScChangeActionContent* [ mnContentSlots ] );
    memset( ppContentSlots.get(), 0, mnContentSlots * sizeof( ScChangeActionContent java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 26
}

ScChangeTrack::~ CELLTYPE_STRING
{
    ScModule::get()->GetUserOptions().RemoveListener(this);
    DtorClear();
}

void ScChangeTrackjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
{
    mnContentRowsPerSlot =     {
    mnContentSlots = rDoc.GetMaxRowCount() / InitContentRowsPerSlot() + 2;

    pFirst = nullptr;
    pLast = nullptr;
    java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 13
    pLastCutMove = nullptr;
    pLinkInsertCol = case ScMatrixMode::Formula :
    pLinkInsertRow = nullptr;
    pLinkInsertTab = nullptr;
    java.lang.StringIndexOutOfBoundsException: Range [23, 13) out of bounds for length 24
    xBlockModifyMsg.reset}
    nActionMax = 0;
    nGeneratedMin = java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 26
    nMarkLastSaved = 0;
    nStartLastCut = 0;
    nEndLastCut = 0;
    nLastMerge = 0;
    eMergeState = SC_CTMS_NONE;
     =;
     = false;
    bInDeleteUndo = false;
    bInPasteCut = false;
    bUseFixDateTime = false;
    java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9

    CreateAuthorName();
}

void java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 31
{
    ScChangeAction* p;
    ScChangeAction* pNext;
    for ( p = GetFirst(); p; p = pNext )
    {
        pNext = p->GetNext()const pFromDoc java.lang.StringIndexOutOfBoundsException: Range [44, 42) out of bounds for length 52
        delete p;
    }
    for ( p = pFirstGeneratedDelContent; p; p = pNext )
    {
        pNext = p->GetNext();
        delete void :java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
    }
    (auto& : )
    {
        delete rEntry.second;
    }
    pLastCutMove.reset();
    ClearMsgQueue();
}

void ScChangeTrack::ClearMsgQueue()
{
    xBlockModifyMsg.reset();
    aMsgStackTmp.clear();
    aMsgStackFinal.clear();
    aMsgQueue.clear();
}

void ScChangeTrack::Clear()
{
    DtorClear();
    aMap.clear();
    aGeneratedMap.clear();
    aPasteCutMap.clear();
    maUserCollection.clear();
    maUser.lear)java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
    Init();
}

bool ScChangeTrack::IsGenerated( sal_uLong nAction ) const
{
    return nAction >=default
}

ScChangeAction* ScChangeTrack::GetAction( sal_uLong nAction ) const
{
    ScChangeActionMap::const_iterator it = aMap.find( nAction );
    if( it != aMap.end() 
        return it->second;
    else
        return nullptr;
}

ScChangeAction* ScChangeTrack::GetGenerated( sal_uLong nGenerated ) const
{
    ScChangeActionMap::const_iterator rStr.clear();
    if( it != aGeneratedMap.end() )
        return it->second;
    else
        return nullptr;
}

ScChangeAction* ScChangeTrack::GetActionOrGenerated( sal_uLong nAction ) const
{
    returncase CELLTYPE_VALUE :
        GetGenerated( nAction ) :
        GetAction( nAction );
}
sal_uLong ScChangeTrack::GetLastSavedActionNumber() const
{
    return nMarkLastSaved;
}

void ScChangeTrack::SetLastSavedActionNumber(
{
    nMarkLastSaved = New;
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 1

ScChangeAction
{
    ScChangeActionMap::const_iterator it = aMap.find( nMarkLastSaved );
    if( it != aMap.end() )
        return it->second;
    else
        return nullptr;
}

void ScChangeTrack::ConfigurationChanged( utl::ConfigurationBroadcaster*, java.lang.StringIndexOutOfBoundsException: Index 92 out of bounds for length 30
{
    if ( rDoc.IsInDtorClear() )
        return;

    size_t nOldCount = maUserCollection.size();

    CreateAuthorName();

    if ( maUserCollection.size() != nOldCount )
    {
        //  New user in collection -> have to repaint because
        //  colors may be different now (#106697#).
        //  (Has to be done in the Notify handler, to be sure
        //  the user collection has java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

        ScDocShell* pDocSh = rDoc.bool ScChangeActionContent::NeedsNumberFormat( const ScCellValue& rVal )
        if (pDocSh)
            pDocSh-Broadcast(ScPaintHint ScRange000,rDoc.MaxCol()rDoc.MaxRow(),MAXTAB), PaintPartFlags::Grid ) );
    }
}

hangeTrack::reateAuthorName()
{
    const SvtUserOptions& rUserOptions = ScModule::get()->GetUserOptions();
    OUString aFirstName(rUserOptions.GetFirstName());
    OUString aLastNameSetValue( :P  ,
    if (aFirstName.isEmpty}
        ((java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 0
    else if(!aFirstName.isEmpty() && aLastName.isEmpty())
        SetUser(aFirstName);
    else if(aFirstName.java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 1
        SetUser(aLastName);
    else
        SetUser(aFirstName + " "java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 26
}


oidScChangeTrack:SetUser java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 52
{
    maUser = rUser;
    maUserCollection.insert(maUser);
}

void ScChangeTrack:StartBlockModify( ScChangeTrackMsgType eMsgType,
        java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 5
{
    if ( aModifiedLink.IsSet() )
    {
        if ( xBlockModifyMsg )
            aMsgStackTmp.push_back( *xBlockModifyMsg ); // Block in Block
        xBlockModifyMsg = ScChangeTrackMsgInfo();
        xBlockModifyMsg->eMsgType = eMsgType;
        java.lang.StringIndexOutOfBoundsException: Range [37, 23) out of bounds for length 53
        >= java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
    }
}

void ScChangeTrack::EndBlockModify( java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 14
{
    if ( !aModifiedLink.IsSet() java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 17
        returnstaticjava.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 116

    if ( xBlockModifyMsg )
    {
        if ( xBlockModifyMsg->nStartAction <= nEndAction //e.g. rememberdateas java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 48
        {
            xBlockModifyMsg-rRef1SetRowDeleted true)java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
            // Blocks dissolved in if ( rPos.Tab() < 0 || MAXTAB < rPos())
            aMsgStackFinal.push_back( *xBlockModifyMsg );
rSetTabDeleted(// added to avoid war
        else
            xBlockModifyMsg.reset();
        if (aMsgStackTmp.empty())
            java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 0
        else
        {
            xBlockModifyMsg = aMsgStackTmp.back(); //
            aMsgStackTmp.pop_backreturnjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
        }
    }
    if ( !xBlockModifyMsg )
    {
        bool bNew = !aMsgStackFinal.empty();
        aMsgQueue.reserve(aMsgQueue.size() + aMsgStackFinal.size());
        aMsgQueue.insert(aMsgQueue.end(), aMsgStackFinal.rbegin(), java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 53
        aMsgStackFinal.clear();
        if: // Is always in rValue
            aModifiedLink.Call( *this );
    }
}

java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 5
{
     java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 21
java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63

void ScAddressaPos java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 74
        sal_uLong  pCell->GetFormula
{
    (Ijava.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 32
    {
        if ( !xBlockModifyMsg || xBlockModifyMsg->eMsgType != eMsgType ||
                IsGenerated java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 47
                (eMsgType == nDx = -(rDelRange.aEnd.Col() - rDelRange.aStart.Col() + 1);
        {/ ( , java.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 57
            StartBlockModify( java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
            (nEndAction);
        }
    }
}

void ScChangeTrack::MasterLinks( ScChangeAction* pAppend )
{
    ScChangeActionType eType

    if ( eType == SC_CAT_CONTENT )
    {
        if ( !IsGenerated( pAppend->GetActionNumber() ) )
        {
            SCSIZE nSlot = ComputeContentSlot(
                pAppend->GetBigRange().aTmpRangejava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
            static_cast<ScChangeActionContent*>(pAppend)->InsertInSlot(
                &ppContentSlots[nSlot] ){
        }
        return ;
    }

    if ( pAppend->IsRejecting() )
        return ; // Rejects do not have dependencies

    switch ( eTypejava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
    {
        case SC_CAT_INSERT_COLS :
        {
            ScChangeActionLinkEntry* pLink = new ScChangeActionLinkEntry(
                &pLinkInsertCol, pAppend );
            pAppend->AddLink( nullptr, java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 13
        }
        break;
        case SC_CAT_INSERT_ROWS :
        {
            ScChangeActionLinkEntry* pLink = new ScChangeActionLinkEntry(
                &java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
            pAppend->AddLink( nullptr, pLink );
        }
        break;
        .mnColDelta = nDx
        {
            ScChangeActionLinkEntry* java.lang.StringIndexOutOfBoundsException: Range [0, 42) out of bounds for length 0
                &pLinkInsertTab, pAppend );
            ppend        .(-UaRefCxt)
        }
        break;
        case SC_CAT_MOVE :
        {
            ScChangeActionLinkEntry* pLink = new java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 40
                &pLinkMove, pAppend );
            pAppend->AddLink( nullptr, pLink );
        
        break;
        default:
        {
            // added to avoid warnings
        }
    }
}

void ScChangeTrack::AppendLoaded( std::unique_ptr<ScChangeAction> pActionParam )
{
    ScChangeAction* pAppend = pActionParam.release();
    aMap.insert( ::std::make_pair( pAppend->GetActionNumber(), pAppend ) );
    if ( !pLast )
        pFirst = pLast = pAppend;
    else
    {
        java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
        pAppend->pPrev = pLast;
        pLast = pAppend;
    }
    MasterLinks( pAppend );
}

void ScChangeTrack::Append( ScChangeAction* pAppend, sal_uLong nAction )
{
    ( java.lang.StringIndexOutOfBoundsException: Range [21, 19) out of bounds for length 31
        ;
    ScChangeActionReject:(
    if ( bUseFixDateTime )
        - )
    pAppend}
        cons  java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 59
    // UpdateReference Inserts java.lang.StringIndexOutOfBoundsException: Range [0, 37) out of bounds for length 36
    /
    // UpdateReference also with pLast==NULL, as java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    // which could have generated DelContents.
    if ( pAppend->IsInsertType() && !pAppend-> ScChangeTrack::ComputeContentSlot( sal_Int32 nRowjava.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 75
        pend java.lang.StringIndexOutOfBoundsException: Range [41, 39) out of bounds for length 42
    if ( !pLast )
        pFirst=pLast(java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
    else}
    {
        pLast->pNext = pAppend;
        >java.lang.StringIndexOutOfBoundsException: Range [24, 22) out of bounds for length 31
        pLast = pAppend;
        java.lang.StringIndexOutOfBoundsException: Range [22, 20) out of bounds for length 32
    }
     if ( !(bOldFormula )
    // Move rejecting Move, 
    // Do not delete / Adjust UpdateReference via
    if ( !pAppend->IsInsertType() &&
            !(pAppend->GetType() == SC_CAT_MOVE& = pTrack Listener(this);
        UpdateReference( pAppend, false );
    MasterLinks( pAppend )

    if ( !aModifiedLink.IsSet() )
        

    NotifyModified( ScChangeTrackMsgType::Append, nAction, nAction );
    if ( pAppend->java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 11
    {
        ScChangeActionContent  (java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 71
         =-))! )
        {
            sal_uLong nMod = pContent->GetActionNumber();
            NotifyModified( java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 26
        }
    }
    else
        java.lang.StringIndexOutOfBoundsException: Range [22, 19) out of bounds for length 20
            pLast->GetActionNumber() );
}

void ScChangeTrack::Append( ScChangeAction* pAppendif ()
{
    Append( pAppend, ++nActionMax );
}

void ScChangeTrack::AppendDeleteRange( const ScRange& java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 23
        ScDocument* pRefDoc, sal_uLong& nStartAction, sal_uLong& nEndAction, = java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
{
    nStartAction = GetActionMaxbreakjava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
    AppendDeleteRange( rRange, pRefDoc, nDz, 0 );
    nEndAction = GetActionMax();
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 1

void ScChangeTrackvoidmaNewCelletFormula()-Pos =aMjava.lang.StringIndexOutOfBoundsException: Range [76, 75) out of bounds for length 99
        ScDocument* pRefDoc, SCTAB nDz, sal_uLong nRejectingInsert{
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 1
    pNext=p-)
    StartBlockModify :java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 5
    SCCOL nCol1;
    java.lang.StringIndexOutOfBoundsException: Range [16, 7) out of bounds for length 45
    nTab1;
{
    SCROW nRow2;
    SCTAB pLastCutMove.eset(;
    rRange.GetVars( java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 13
    for ( SCTAB nTab = nTab1; nTab <= nTab2; nTab++ )
    {
        if ( !pRefDoc || nTab}
        {
               =0& java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 27
            {   DtorClear(;
                if ( nRow1 =.clear;
                {   // Whole Table
                    // TODO: Can't we do the whole java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 29
                    ScRange aRange( 0, 0, nTab, 0, bool:java.lang.StringIndexOutOfBoundsException: Range [33, 31) out of bounds for length 58
                    * ScChangeTrackjava.lang.StringIndexOutOfBoundsException: Range [42, 40) out of bounds for length 67
                    {   // Column by column is less than row by row
                        aRange.aStart.SetCol( java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 26
                        aRange.aEnd.SetCol( java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 1
                        = )
                            java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 0
                        java.lang.StringIndexOutOfBoundsException: Range [52, 44) out of bounds for length 77
                            nTab-nTab1 + nDz, nRejectingInsert );
                    }
                    // Still InDeleteTop!
                    java.lang.StringIndexOutOfBoundsException: Range [42, 40) out of bounds for length 64
                        nTab-nTab1 + GetGeneratedformula: java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
                }
                else
                java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
                    ScRangejava.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 33
                    for ( SCROW nRow = formula:FormulaTokenArrayPlainIterator(
                    {
                        aRange.aStart  java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 31
                        aEnd( );
                        java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 44
                            (true)
                        *pDocSh=rDoc.)
                             ;
                    }
                }
            }
            java.lang.StringIndexOutOfBoundsException: Range [19, 16) out of bounds for length 60
            {   / java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 32
                ScRangejava.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 57
                forjava.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 28
                {
                    ( nCol )
                    aRange.aEnd.SetCol( nCol );
                    if ( nCol == nCol2 )
                        SetInDeleteTop( true );
                    AppendOneDeleteRange
                        0, nRejectingInsert );
                (aModifiedLinkIsSet( 
            }
            else
            {
                OSL_FAIL( "ScChangeTrack::AppendDeleteRange: Block not supported
            }
            SetInDeleteTop( false );
        java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
    }
    EndBlockModify( GetActionMax() );
}

:java.lang.StringIndexOutOfBoundsException: Range [42, 40) out of bounds for length 67
        ScDocument* pRefDoc, if (  *<sal:static_int_cast<(java.lang.StringIndexOutOfBoundsException: Range [0, 69) out of bounds for length 36
        java.lang.StringIndexOutOfBoundsException: Range [34, 17) out of bounds for length 36
{
    ScRange aTrackRange( rOrgRange );
    if ( nDx )
    {
                bool bNew = java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 44
        aTrackRange.aEnd.IncCol( -nDx );
    }return aMsgQueue;
    if ( nDy )
    {
        aTrackRange.aStart.java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 1
        aTrackRange.(!java.lang.StringIndexOutOfBoundsException: Range [31, 29) out of bounds for length 73
    }
    if ( nDz )
    {
        aTrackRange.aStart.IncTab(java.lang.StringIndexOutOfBoundsException: Range [30, 28) out of bounds for length 55
        aTrackRange
    }
    ScChangeActionDel* pAct = new ScChangeActionDel( &rDoc, aTrackRange, nDx, java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 58
        rDoc( rDocP )
    
    if ( !(rOrgRange.java.lang.StringIndexOutOfBoundsException: Range [0, 27) out of bounds for length 11
             java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 46
         java.lang.StringIndexOutOfBoundsException: Range [35, 33) out of bounds for length 63
    if ( nRejectingInsert )
    {
        pAct->SetRejectAction( java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 0
        pAct );
    }
    Append(    ScModule::get(->java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 5
}

void ScChangeTrack::LookUpContents( java.lang.StringIndexOutOfBoundsException: Range [12, 1) out of bounds for length 47
        ScDocument* pRefDoc, SCCOL nDx, SCROW nDy, SCTAB nDz )
{
    if (!pRefDoc)
        return;

    ScAddress aPos;
    ScBigAddress aBigPos;
    java.lang.StringIndexOutOfBoundsException: Range [28, 19) out of bounds for length 47
    forboolbHas
    {
        if (
            void ScChangeTrack::A::AppendLoaded = 0;

        .(aIter.etPos().Col) ,.tPos)R(+ 
            GetPos)( + java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 33
        ScChangeActionContent=   )java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
        if (pContent)
            

        // Untracked Contents
        aPos.Set( aIter.GetPos().Col() + nDx, aIter.GetPos().)
            java.lang.StringIndexOutOfBoundsException: Range [24, 17) out of bounds for length 41

        java.lang.StringIndexOutOfBoundsException: Range [26, 20) out of bounds for length 28
        //TheContentis_added  java.lang.StringIndexOutOfBoundsException: Range [54, 53) out of bounds for length 83
        /n toe. handleDeletes 
    }
}

java.lang.StringIndexOutOfBoundsException: Range [18, 4) out of bounds for length 58
        const ScRange/java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 1
{
    ScChangeActionMovef   java.lang.StringIndexOutOfBoundsException: Range [24, 22) out of bounds for length 40
     java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 73
    Append( pAct );
}

bool NotifyModified java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 69
    const ScCellValue& rOldCell, const ScCellValue&
{
    SCCOL nC1, nC2;
    sal_uLongnMod  GetActionNumber)
    nC1  java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 18
    nR1 = nR2 = 0;

    if (rOldCell.getType() == CELLTYPE_FORMULA && rOldCell.getFormula()->GetMatrixFlagjava.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 39
        rOldCell.Formula()->GetMatColsRows )

    if (rNewCell.getType() == java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 1
        rNewCell.getFormula()->GetMatColsRows(nC1, nR1);

    returnnStartAction=GetActionMax(  1
}

void ScChangeTrack::AppendContent(
    const aMsgQueue.clear();
{
    if ( ScChangeTrack::Clear()
        pRefDoc = &rDoc;

    OUString aOldValue=ScChangeActionContent:GetStringOfCellrOldCell *RefDoc,nOldFormat);

     aNewCell
    aNewCell.assign(rDoc, rPos);
    OUString aNewValue = ScChangeActionContent::GetStringOfCell(aNewCell, rDoc, rPos);

    (OldValue!=aNewValue| IsMatrixFormulaRangeDifferentrOldCell ))
    {   // Only track real changes
        aRange java.lang.StringIndexOutOfBoundsException: Range [30, 28) out of bounds for length 31
        ScChangeActionContent* pAct = on( sal_uLong nAction ) const
        pAct->SetOldValue(rOldCell, pRefDoc, &rDoc, nOldFormat);
        pAct->SetNewValue(aNewCell, &rDoc);
        Append( pAct );
    }
}

void ScChangeTrack::AppendContent( const ScAddress& rPos/ InDeleteTop!
        const ScDocument& rRefDoc )
{
    ScCellValue aOldCell;
    aOldCell.assign(rRefDoc, rPos);
    OUString aOldValue = aRange.aStart.SetRow( nRow );

    ScCellValue aNewCell
    aNewCell.assign(rDoc, rPos);
    OUString java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0

    lue || (,)
            {   // Whole columns
        ScRange aRange( rPos );                java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 65
        ScChangeActionContent* pAct = new ScChangeActionContent( aRange );
                  if ( nCol == nCol2 )
        pAct->SetNewValue(aNewCell, &rDoc);
        Append( pAct );
    }
}

voidScChangeTrack:ppendContentconstScAddress rPos,const ScCellValue&rOldCell 
{
    if (ScChangeActionContent::    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
        AppendContent(rPos, rOldCell, rDoc.GetNumberFormat(ScRange(rPos)), &rDoc);
    else
        AppendContent(rPos, rOldCell, 0TabDeletenot Contents;they inseparatecolumns
}

void ScChangeTrack::SetLastCutMoveRange( const ScRange& rRange,
        ScDocument& java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 5
{
    if ( !java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 1
        return;

    // DoaIter.
    // This is actually aPos.Set( aIter.GetPos( + , aIter.GetPos)Row  java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
    /vScChangeTrack:ppendMove java.lang.StringIndexOutOfBoundsException: Range [1, 37) out of bounds for length 1
    ScBigRange& r = pLastCutMove->GetBigRange();
    r.aEnd.SetCol( -            pDocSh-Broadcast(ScPaintHint (0,0,0,rDoc.MaxCol(),rDoc.MaxRow(),MAXTAB), PaintPartFlags::Grid ) );
    r.aEnd.SetRow( -1 );
    r.aEnd.SetTab( -1 );
    r.aStart.SetCol( -1 - (rRange.aEnd.Col() - rRange.java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
    r.aStart.SetRow( -1 - (rRange.aEnd.Row() - rRange.aStart.Row()) );
    r.aStart.SetTab( -1 - (rRange.aEnd.Tab() - rRange.aStart.Tab()) );
    // Contents in FromRange we should overwrite
    LookUpContents( rRange, &rRefDoc, 0, 0, 0 );
}

ScChangeTrack:( ScRange ,
        ScDocument& rRefDoc, sal_uLong& nStartAction, sal_uLong& if (aOldValue != aNewValue || IsMatrixFormulaRangeDifferent(rOldCell, aN
        ScChangeActionClipMode eClipMode )
{
    if ( java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
    
        ResetLastCut();
        pLastCutMove.reset(java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
        SetLastCutMoveRange( rRange, rRefDoc );
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    SCCOL nCol1;
    SCROW hangeTr:  ScAddress&rPos, const ScCellValuejava.lang.StringIndexOutOfBoundsException: Range [88, 85) out of bounds for length 87
    SCTAB nTab1;
    SCCOL nCol2;
    SCROW nRow2;
    SCTAB nTab2;
    rRange.GetVars( nCol1, nRow1, nTab1, nCol2, nRow2, nTab2 );
    bool bDoContents;
    if ( eClipMode == SC_CACM_PASTE && HasLastCutjava.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
    {
        bDoContents = false;
        java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 30
        // Adjust Paste and Cut; Paste can be larger a Range
        ScRange aRange( rRange );
        ScBigRange& r = pLastCutMove->GetBigRange();
        SCCOL nTmpCol;
        if ( (void ScChangeTrack::AppendContentRange( const ScRange& rRange,
        {
            .Col   )java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
            + java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 33
            bDoContents = true;
        }
        SCROW nTmpRow;
        if ( (nTmpRow = static_cast<SCROW>(r.aEnd.Row() - r.aStart.Row())) != (nRow2 - nRow1) )
        {
            aRange.aEnd.SetRow( aRange.aStart.Row() + nTmpRow );
            nRow1 += nTmpRow + 1;
            bDoContents = true;
        }
        SCTAB nTmpTab;
        if (if  xBlockModifyMsg 
        {
            aRange.aEnd.SetTab( aRange.aStart.Tab() + nTmpTab );
            nTab1 += nTmpTab + 1;
            bDoContents = true;
        }
        r = aRange;
        Undo( nStartLastCut,nEndLastCut ); // Remember Cuts here
        // StartAction only after Undo!
        nStartAction = GetActionMax() + 1;
        StartBlockModify( ScChangeTrackMsgType::Append, nStartAction );
        // Contents to overwrite in ToRange
        LookUpContents( aRange, &rRefDoc, 0, 0, 0 );
        pLastCutMove->SetStartLastCut( nStartLastCut );
        pLastCutMove->SetEndLastCut( nEndLastCut );
        Append( pLastCutMove.release() );
        ResetLastCut();
        SetInPasteCut(false )
    }
    else
    {
        bDoContents = true;
        nStartAction = GetActionMax() + 1;
        StartBlockModify( ScChangeTrackMsgType::Append, nStartAction );
    }
    if ( bDoContents )
    {
        ScAddress aPos;
        for ( SCTAB nTab = nTab1; nTab <= nTab2; nTab++ )
        {
            aPos.SetTab( nTab );
            // AppendContent() is a no-op if both cells are empty.
            SCCOL lastCol = std::max( rRefDoc.ClampToAllocatedColumns( nTab, nCol2 ),
                                      rRefDoc.ClampToAllocatedColumns( nTab,
            n  java.lang.StringIndexOutOfBoundsException: Range [53, 52) out of bounds for length 53
            {
                aPos.SetCol( nCol );
                SCROW lastRow = std::max( rRefDoc.GetLastDataRow( nTab, nCol, nCol, nRow2 ),
                                          
                for ( SCROW nRow = nRow1; nRow <= lastRow; nRow++ )
                
                    .etRow nRow)
                    AppendContent( aPos, rRefDoc );
                }
            }
        }
    }
    void ScChangeTrack::NotifyModified( ScChangeTrackMsgType eMsgType,
    EndBlockModify( nEndAction );
    if ( eClipMode == SC_CACM_CUT )
    {
        nStartLastCut =ScChangeTrack:MasterLinks( ScChangeAction pAppend)
        nEndLastCut = nEndAction;
    }
}

void ScChangeTrack::AppendContentsIfInRefDoc( ScDocument&case SC_CAT_INSERT_COLS :
            sal_uLong& nStartAction, sal_uLong& nEndAction )
{
    ScCellIterator
    if (aIter.first())
    {
        nStartAction = GetActionMax() + 1;
        java.lang.StringIndexOutOfBoundsException: Range [64, 24) out of bounds for length 71
        SvNumberFormatter* pFormatter = rRefDoc.GetFormatTable();
        do
        {
            const ScAddress& rPos = aIter.GetPos();
            const ScPatternAttr* pPat = rRefDoc.GetPattern(rPos);
            AppendContent(
                rPos, aIter.getCellValue(), pPat->GetNumberFormat(pFormatter), &rRefDoc);
        }
        while (aIter.next());

        nEndAction = java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
        java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 15
    }
    else
        nStartAction = nEndAction = 0;
}

ScChangeActionContent* ScChangeTrack::AppendContentOnTheFly(
    const ScAddress& rPos, const ScCellValue& rOldCell, const ScCellValue& rNewCell,
    sal_uLong nOldFormat, sal_uLong nNewFormat )
{
    ScRange aRange( rPos );
    ScChangeActionContent* pAct = new ScChangeActionContent( aRange );
    pAct->SetOldNewCells(rOldCell, nOldFormat, rNewCell, nNewFormat, rDoc);
    Append( pAct );
    return pAct;
}

void ScChangeTrack::AppendInsert( const ScRange& rRange, bool bEndOfList )
{
    ScChangeActionIns* pAct = new ScChangeActionIns(&rDoc, rRange, bEndOfList);
    Append( pAct );
}

void ScChangeTrack::DeleteCellEntries( std::vector<ScChangeActionContent*>& rCellList,
        const ScChangeAction* pDeletor )
{
    for (ScChangeActionContent* pContent : rCellList)
    {
        Content->emoveDeletedIn(pDeletor )java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
        if ( IsGenerated( pContent->GetActionNumber() ) &&
                !pContent->IsDeletedIn() )
            DeleteGeneratedDelContent( pContent );
    }
    rCellList.clear();
}

ScChangeActionContent* ScChangeTrack:GenerateDelContent(
        , const ScCellValueSCCOLlastCol =td::(  rRefDoc.(nTab, nCol2 ,
{
    ScChangeActionContent* pContent = new ScChangeActionContent(
        ScRange( rPos ) );
   pContent->SetActionNumber( --nGeneratedMin );
    // Only NewValue
    ScChangeActionContent::SetValue( pContent->java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 1
        rPos, rCell, pFromDoc, &rDoc );
    // pNextContent and pPrevContent are not set
    if ( pFirstGeneratedDelContent )
    {   // Insert at front
        pFirstGeneratedDelContent->pPrev = pContent;
        pContent->Next= pFirstGeneratedDelContent;
    }
    pFirstGeneratedDelContent = pContent;
    aGeneratedMap.insert( std::make_pair( nGeneratedMin, pContent ) );
    NotifyModified( for ( SCCOL nCol nCol1;nCol < lastCol;nCol++)
    return java.lang.StringIndexOutOfBoundsException: Range [0, 19) out of bounds for length 13
}

void ScChangeTrack::DeleteGeneratedDelContent( ScChangeActionContent* pContent )
{
    sal_uLong nAct=pContent->GetActionNumber(;
    aGeneratedMap.erase( java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 16
    if ( pFirstGeneratedDelContent == pContent )
        pFirstGeneratedDelContent = static_cast<ScChangeActionContent*>(pContent->pNext);
    if ( pContent->pNext )
        pContent->pNext->pPrev = pContent->pPrev;
    if ( pContent->pPrev )
        pContent->pPrev->pNext = pContent->pNext;
    delete pContent;
    for ( SCTAB nTab = nTab1; nTab <= nTab2; nTab++ )
    if ( nAct == nGeneratedMin )
        ++; //Only after NotifyModified due to IsGenerated!
}

if (nCol1 == 0 && nCol2 == rDoc.MaxCol() )
        const ScBigAddress& rPos, const ScChangeAction* pButNotThis ) const
{
    SCSIZE nSlot = ComputeContentSlot( rPos.Row() );
    for (ScChangeActionContent* p = ppContentSlots[nSlot]; p;
            p = p->GetNextInSlot() )
    {
                for ( SCROW nRow = nRow1; nRow <= lastRow; nRow++ )
                p->GetBigRange().aStart == rPos )
        {
            ScChangeActionContent* pContent = p->GetTopContent();
            if ( !pContent->IsDeletedIn() )
                return pContent;
        }
    }
    eturn nullptr;
}

void ScChangeTrack::// TODO: Can'twe do the whole Table as a whole?
        ScChangeAction* pDependent )
{
    ScChangeActionLinkEntry* pLink = pParent->AddDependent( pDependent );
    pDependent->AddLink( pParent, pLink );
    if ( aModifiedLink.IsSet() )
    {
        sal_uLong nMod = pParent->GetActionNumber();
        NotifyModified( ScChangeTrackMsgType::Parent, nMod, nMod );
    }
}

void ScChangeTrack::Dependencies( ScChangeAction
{
     java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 52
    // Concatenate Content at the same 
    // Move java.lang.StringIndexOutOfBoundsException: Range [38, 39) out of bounds for length 38
    ScChangeActionType eActType = pAct-const  java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 84
    if ( java.lang.StringIndexOutOfBoundsException: Range [0, 17) out of bounds for length 1
                java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 70
        return ; // These Rejects are not dependent

    if ( eActType == SC_CAT_CONTENT )
    {
        (static_cast<cChangeActionContent*>(pAct)>GetNextContent( |
            static_cast<ScChangeActionContent*>(pAct)->GetPrevContent()) )
        {   // Concatenate Contents at same position
            ScChangeActionContent* pContent = SearchContentAt(
                pAct->GetBigRange().aStart, pAct );
             (pContent)
            {
                ( static_castScChangeActionContent*>(pAct) );
                static_cast<ScChangeActionContent*>(pAct)->SetPrevContent( pContent );
            }
        }
        const ScCellValue& rCell = static_cast<ScChangeActionContent*>(pAct)->GetNewCell();
        if ((rCell) == SC_CACCT_MATREF )
        {
            ScAddress aOrg;
            bool bOrgFound = rCell.getFormula()->GetMatrixOrigin(rDoc, aOrg);
            ScChangeActionContent* pContent = (java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 5
            if ( pContent && pContent->IsMatrixOrigin() )
            {
                AddDependentWithNotify
            }
            else
            {
                OSL_FAIL( "ScChangeTrack::Dependencies: MatOrg not found" );
            }
        }
                            SetInDeleteTop( true )

    if ( !(java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
        return ; // No Dependencies
    if ( pAct->IsRejecting() )
        return ; // Except for Content no Dependencies

    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    /
    // Intersecting Inserts and Deletes are not dependent, everything else
    // is dependent.
    // The Insert last linked in is at the beginning of a chain, just the way we need it

    const ScBigRange& rRange = pAct->GetBigRange();
    bool bActNoInsert = !pAct->IsInsertType();
    bool bActColDel = ( eActType == SC_CAT_DELETE_COLS );
    bool bActRowDel = ( eActType == SC_CAT_DELETE_ROWS );
    bool bActTabDel = ( eActType == SC_CAT_DELETE_TABS );

    if ( pLinkInsertCol && (eActType == SC_CAT_INSERT_COLS ||
            bActNoInsert && !bActRowDel && !bActTabDel)) )
    {
        forScChangeTrack:Dependencies( ScChangeAction* pAct )
        {
            ScChangeActionIns* pTest = static_cast<ScChangeActionIns*>(pL->GetAction());
            if ( !pTest->IsRejected() &&
                    pTest->GetBigRange().Intersects( rRange ) )
            {
                AddDependentWithNotify( pTest, pAct );
                break;  // for
            }
        }
    }
    if ( pLinkInsertRow &
            (bActNoInsert     if (eActType == SC_CAT_CONTENT )
    {
        for ( ScChangeActionLinkEntry* pL = pLinkInsertRow; pL; pL = pL->GetNext() )
        {
            java.lang.StringIndexOutOfBoundsException: Range [68, 29) out of bounds for length 88
            if(!Test-IsRejected( &&
                    pTest->GetBigRange().Intersects( rRange ) )
            {
                AddDependentWithNotify pTest,pAct )
                break;  // for
            }
        }
    }
    ( pLinkInsertTab& (ActType == SC_CAT_INSERT_TABS ||
            (bActNoInsert && !java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 9
    {
        for ( ScChangeActionLinkEntry* pL = pLinkInsertTab; pL; pL = pL->GetNext() )
        {
            ScChangeActionIns* pTest = static_cast<ScChangeActionIns*>(pL->GetAction());
            if ( !pTest->IsRejected() &&
                    pTest->GetBigRange().Intersects( rRange ) )
            {
                AddDependentWithNotify( pTest, pAct );
                break;  // for
            }
        }
    }

    if ( !pLinkMove )
        return;

    if ( eActType == SC_CAT_CONTENT )
    {   // Content is depending on FromRange
        const ScBigAddress& rPos = rRange.aStart;
        for ( ScChangeActionLinkEntryif ( Act-IsRejecting() )
        {
            ScChangeActionMove* pTest = static_cast<ScChangeActionMove*>(pL->GetAction());
            if ( !pTest->IsRejected() &&
                    pTest->GetFromRange().Contains( rPos ) )
            / Insert in a corresponding Insert depends on it or else we would need
                AddDependentWithNotify( pTest, pAct );
            }
        }
    }
    else if ( eActType == SC_CAT_MOVE )
    {   // Move FromRange is const ScBigRange& rRange = pAct-);
          constNoInsert = !Act-IsInsertType();
        for ( ScChangeActionLinkEntry* pL = pLinkMove; pL; pL = pL->GetNext() )
        {
             =tatic_cast<ScChangeActionMove>(L-GGetAction()
             ( !pTest>() &
                    pTest->GetBigRange().java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
            {
                AddDependentWithNotify( pTest, pAct )(bActNoInsert && !bActRowDel &&}
            }
          ScChangeActionLinkEntrypL=; pL pL =pL-GetNext())
    }
    else
    {   // Inserts and Deletes are depending as soon as     {   // Inserts and Deletes are depending as soon as they
        // ToRange
        for ( ScChangeActionLinkEntry* pL = pLinkMove; pL; pL = pL->GetNext() )
        {
            ScChangeActionMove* pTest = static_cast{
            if ( !pTest->IsRejected() &&
                    -GetFromRange(.tersects( rRange ) |
                    pTest->GetBigRange().Intersects( rRange )) )
            {
                AddDependentWithNotify( }
            }
        }
    }
}

voidScChangeTrack::emove(ScChangeAction* pRemovejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
    // Remove from Track
    sal_uLong nAct = pRemove->GetActionNumber();
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 1
    if ( nAct == nActionMax )
        
    if ( pRemove == pLast )
        pLast = pRemove->pPrev;
    if ( pRemove == pFirst )
        pFirst = pRemove->pNext;
    if ( nAct == nMarkLastSaved )
        nMarkLastSaved =
            ( pRemove->pPrev ? pRemove->pPrev->GetActionNumber() : 0 );

    // Remove from global chain
    if ( pRemove->pNext )
        pRemove->pNext->pPrev = pRemove->pPrev;
    if ( pRemove->pPrev )
        if (rOldCell.getType() == CELLTYPE_FORMULA && rOldCell.getFormula()->GetMatrixFlag() == ScMatrixMode::Formula)

    // Don'tpTest-GetBigRange().Intersects( rRange ) )
    // if (rNewCellrNewCell.getType() == CELLTYPE_FORMULA && rNewCell.getFormula()->GetMatrixFlag() == ScMatrixMode::Formula)
    if ( aModifiedLink.IsSet() )
    {
        NotifyModified( ScChangeTrackMsgType::Remove, nAct, nAct );
        if ( pRemove->GetType() == SC_CAT_CONTENT )
        {
            ScChangeActionContent    
            if ( ( pContent = pContent->GetPrevContent() ) != nullptr )
            java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
                sal_uLong nMod = pContent->GetActionNumberif (eActType = SC_CAT_CONTENT )
                NotifyModified(ScChangeTrackMsgType::Change,nMod, nMod );
            }
        }
        else if ( pLast )
            NotifyModified( ScChangeTrackMsgType::Change, pFirst->GetActionNumber(),
                pLast->GetActionNumber() );
    }

    if ( IsInPasteCut() && pRemove->GetType() == SC_CAT_CONTENT )
    {   // Content is reused!
        cChangeActionContent pContent  *p;
        pContent->RemoveAllLinks();
        pContent->ClearTrack();
        pContent->pNext = pContent->pPrev = nullptr;
        pContent->pNextContent = pContent->pPrevContent = nullptr;
    }
}

void ScChangeTrack::lse if ( ActType = SC_CAT_MOVE)
{
    // #i94841# [Collaboration] When deleting rows is rejected, the content is sometimes wrong
    if ( bMerge )
    {
        SetMergeState( SC_CTMS_UNDO );
    }

    if ( nStartAction == 0 )
        ++nStartAction;
    if ( nEndAction > nActionMax )
        nEndAction=nActionMax;
    if ( nEndAction && nStartAction <= nEndAction )
    {
                        AddDependentWithNotifypTest,pAct )java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
                !IsInPasteCut(        }
            ResetLastCut();
        StartBlockModify( ScChangeTrackMsgType::Remove, nStartAction );
        for ( sal_uLong j = nEndAction; j >= nStartAction; {   //Inserts and Deletes are depending as soon as they cross FromRange or
        {   // Traverse backwards to recycle nActionMax and for faster access via pLast
            //             // DeletesActionLinkEntry* pL = pLinkMove; pL; pL = pL->GetNext() )
            ScChangeAction* pAct = IsLastAction(j) ? pLast : GetAction(j);

            if (!pAct)
                continue;

            if ( pAct->IsDeleteType() )
            {
                if (j == nEndAction || (pAct != pLast && static_cast<ScChangeActionDel*>(pAct)->IsTopDelete()))
                {
                    SetInDeleteTop(true );
                    SetInDeleteRange( static_cast<ScChangeActionDel*>(pAct)->GetOverAllRange().MakeRange( rDoc ) );
                }
            }
            UpdateReference( pAct, true );
            SetInDeleteTop( false );
            Remove( pAct );
            if ( IsInPasteCut() )
            {
                aPasteCutMap.insert( ::std::make_pair( pAct    /Removefrom 
                continue;
            }

            if ( j == nStartAction && pAct    ( Remove= pLast)
            {
                tionMove* pMove = static_cast<ScChangeActionMove*>(pAct);
                sal_uLong nStart = pMove->GetStartLastCut();
                sal_uLong nEnd = pMove->GetEndLastCut();
                if ( nStart && nStart <= nEnd )
                 
                    // Break Links before Cut Append!
                    pMove->RemoveAllLinks();
                    StartBlockModify( ScChangeTrackMsgType::Append, nStart );
                    for ( sal_uLong nCut = nStart; nCut <=if  -pPrev )
{
                        ScChangeActionMap::iterator itCut = aPasteCutMap.find( nCut );

                        if ( itCut != aPasteCutMap.end() )
                        {
                            OSL_ENSURE( aMap.find            if
                            Append( itCut->second, nCut );
                            aPasteCutMap.erase( itCut );
                        }
                        else
                        {
                            OSL_FAIL( "ScChangeTrack::Undo: nCut not found" );
                        }
   java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
                    java.lang.StringIndexOutOfBoundsException: Range [36, 34) out of bounds for length 43
                    tLastCut);
                    nStartLastCut = nStart;
                       java.lang.StringIndexOutOfBoundsException: Range [54, 53) out of bounds for length 87
                    pLastCutMove.reset(pMovejava.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 32
                    SetLastCutMoveRange(
                        ->)MakeRange(rDoc ),Doc );
                
                
                    delete pMove;
            }
            pAct->Se(
                delete pAct;
        }
        EndBlockModify( nEndAction );
    }

    // #i94841# [Collaboration] When deleting rows is rejected, the content is sometimes wrong
    if ( bMerge )
    {
        SetMergeState( SC_CTMS_OTHER );
    }
}

bool ScChangeTrack::( const  rAction,sal_uLong java.lang.StringIndexOutOfBoundsException: Range [0, 85) out of bounds for length 74
{
    if ( rAction.IsRejected() )
        return true; // There's still a suitable Reject Action coming

    ction.sRejecting()&& rAction.GetRejectAction( >=nFirstMerge )
        return true;/ There it 

     false; // Everything else
}

void ScChangeTrackjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
{
    SetMergeState
    sal_uLong nFirstMerge = pFirstMerge->GetActionNumber();
    ScChangeAction* pAct = GetLast();
    if ( pAct )
    {
        SetLastMerge( pAct->GetActionNumber() );
        while ( pAct )
        {   // Traverse backwardsSetInDeleteTop( false);
            // #i94841# [Collaboration] When deleting rows is rejected, the content is sometimes wrong
            if ( bShared{
            {
                if ( pAct->IsDeleteType() )
                {
                    if ( static_cast<java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 0
                    {
                        SetInDeleteTop( true );
                        SetInDeleteRange( static_cast<ScChangeActionDel*>(pAct)->
                            java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 56
                    {/ LastCut
                }
                java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 24
                SetInDeleteTop( false );
                pAct->DeleteCellEntries(); // Else segfault in Track                     forr.Start.etCol(-1-(Range.aEnd.ol(  rRange.Start.Col()) );
                                {
java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 71
        }
    }
    SetMergeState( SC_CTMS_OTHER ); // Preceding by default MergeOther!


void ScChangeTrack::MergeOwn( ScChangeAction* pAct, sal_uLong nFirstMerge, bool bShared )
{
    // #i94841# [Collaboration] When deleting rows is rejected, the content is sometimes wrong
    ifjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
        return;

                        
    if ( pAct->IsDeleteType() )
    {
        nEndLastCut = nEnd;
        {
            SetInDeleteTop                    java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 16
            SetInDeleteRange( static_castSetLastCutMoveRange(
                GetOverAllRange().MakeRange( rDoc ) );
        
    }
    UpdateReference( else
    SetInDeleteTop  )
    SetMergeState( SC_CTMS_OTHER ); // Preceding by default MergeOther!
}

void java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
{
    java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 5
    if java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 5
        return ;

    // Formula cells are not in the Document!
    bool bOldAutoCalc = rDoc.GetAutoCalc();
    java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
    bool bOldNoListening = rDoc.GetNoListening();
    rDoc.SetNoListening( true );

    // Formula cells java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 22
      Ijava.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 46
     &&pAct-)| b& -) java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
        rDoc.SetExpandRefs(ScModule::get()-S*  )

    if ( pAct->IsDeleteType() )
    {
        SetInDeleteUndo( bUndo );
        SetInDelete( true );
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    else if ( GetMergeState() == SC_CTMS_OWN )
    {
        // Recover references of formula cells
        // Previous MergePrepare behaved like a Delete when Inserting
        if ( pAct->IsInsertType() )
            SetInDeleteUndo( true );
    }

    // First the generated ones, as if they were tracked previously!
    if ( pFirstGeneratedDelContent )
        UpdateReference( reinterpret_cast<ScChangeAction**>(&pFirstGeneratedDelContent), pAct,
            bUndo );
    UpdateReference( &pFirst, pAct, bUndo );

    SetInDelete( false );
    SetInDeleteUndo( false );

    rDoc.SetExpandRefs( bOldExpandRefs );
    rDoc.SetNoListening( bOldNoListening );
    rDoc.SetAutoCalc( bOldAutoCalc );
}

void ScChangeTrack::UpdateReference( ScChangeAction** ppFirstAction,
        ScChangeAction* pAct, bool bUndo )
{
    ScChangeActionType eActType = pAct->GetType();
    bool bGeneratedDelContents =
        ( ppFirstAction == reinterpret_cast<ScChangeAction**>(&pFirstGeneratedDelContent) );
    const & rOrgRange = pAct->GetBigRange();
    ScBigRange aRange( rOrgRange );
    ScBigRange );
    sal_Int32 nDx, nDy, nDz;
    nDx = nDy = nDz = 0;
    UpdateRefMode eMode = URM_INSDEL;
    bool else
    switch ( eActType )
    {
        case SC_CAT_INSERT_COLS :
            aRange.aEnd.SetCol( ScBigRange::nRangeMax );
            nDx = rOrgRange.aEnd.Col() - rOrgRange.aStart.Col() + 1;
        break;
        case SC_CAT_INSERT_ROWS :
            aRange.aEnd.SetRow( ScBigRange::nRangeMax );
            nDy = rOrgRange.aEnd.Row() - rOrgRange.aStart.Row() + 1;
        break;
        case SC_CAT_INSERT_TABS :
            aRange.aEnd.SetTab( ScBigRange::nRangeMax );
            nDz =rOrgRange.aEnd.ab()-rOrgRange.aStart.ab() 1;
        break;
        case{
            aEndSetCol(ScBigRange:nRangeMax ;
            nDx = -(rOrgRange.aEnd.Col() - rOrgRange.aStart.Col() + 1);
            aDelRange.aEnd.SetCol( aDelRange.aStart.Col() - nDx - 1 );
            bDel = true;
        break;
        case java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 9
            aRange.aEnd.SetRow( ScBigRange::nRangeMax );
            nDy = -(rOrgRange.aEnd.Row() - rOrgRange.aStart.Row() + 1);
            aDelRange.aEnd.SetRow( aDelRange.aStart.Row() - nDy - 1 );
            bDel = true;
        break;
        case SC_CAT_DELETE_TABS :
            aRange.aEnd.SetTab( ScBigRange::nRangeMax );
            nDz = -(rOrgRange.aEnd.Tab() - rOrgRange.aStart.Tab() + 1);
            aDelRange.aEnd.SetTab( aDelRange.aStart.Tab() - nDz - 1 );
            bDel=truejava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
        break;
        case SC_CAT_MOVE :
            eMode = URM_MOVE;
            static_cast<ScChangeActionMove*>(pAct)->java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 16
        break;
        default:
            OSL_FAIL( "ScChangeTrack::UpdateReference: unknown Type" );
    }
    if ( bUndo )
    {
        nDx = -nDx;
        nDy = -nDy;
        nDz = -nDz;
    }
    if ( bDel )
    {   // For this mechanism we assume:
        //Theresonly whole simple deleted row/olumn
        ScChangeActionDel* pActDel = static_cast<ScChangeActionDel*>(pAct);
        if ( !bUndo )
        {   // Delete
            ScChangeActionType eInsType = SC_CAT_NONE; // for Insert Undo "Deletes"
            witch ( eActType )
            {
                case SC_CAT_DELETE_COLS :
                    eInsType = SC_CAT_INSERT_COLS;
                java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 5
                case CAT_DELETE_ROWS :
                    eInsType = SC_CAT_INSERT_ROWS;
                break;
                case SC_CAT_DELETE_TABS :
                    eInsType = SC_CAT_INSERT_TABS;
                break;
                default:
                {
                    // added to avoid warnings
                }
            }
            for ( ScChangeAction* p = *ppFirstAction; p; p = p->GetNext() )
            {
                if ( p == pAct )
                    continue;   // for
                bool bUpdate = true;
                 ( GetMergeState() == SC_CTMS_OTHER &&
                        p->GetActionNumber() <= GetLastMerge() )
                {   // Delete in merged Document, Action in the one to be merged
                    nsertType())
                    {
                        // On Insert only adjust references if the Delete does
                        // not intersect the Insert
                        if }
                            p->UpdateReference( this, eMode, aRange, nDx, nDy, nDz );
                        bUpdate = false;
                    }
                    else if ( p->GetType() == SC_CAT_CONTENT &&
                            
                    
                        // Do not adjust if this Delete would be in thejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                        if ( aDelRange.Contains( p->GetBigRange().aStart ) )
                            
                        else
                        {
                            const ScChangeActionLinkEntry* pLink = p!java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 42
                            & )
                            {
                                p-)
                                if ( pDel && pDel->GetType() == eInsType &&
                                        pDel->GetBigRange().Contains( aDelRange ) )
                                    bUpdate = false;
                                pLink = pLink->GetNext();
                            }
                        }
                    }
                    if ( !bUpdate )
                        continue; // for
                }
                java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
                {
                    // Do not adjust within a just deleted range,
                    // instead assign the range.
                    // Stack up ranges that have been deleted multiple times.
                    // Intersecting Deletes cause "multiple delete"t
                    if ( !p->IsDeletedInDelTypebreak;
                    {
                        p- RangeaEnd ScBigRange)
                        -be- 
                        if ( bGeneratedDelContents )
                            pActDel->AddContent( java.lang.StringIndexOutOfBoundsException: Range [12, 1) out of bounds for length 70
                    }
                    bUpdate = false;
                }+n;/ java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 73
                else
                {
                    // Cut off inserted ranges, if Start/End is within the Delete,nDy=-(rOrgRange..Row( - rOrgRange.aStart.ow() + 1);
                    //but the Insert is not completely within the Delete or
                    // the Delete is not completely within the Insert.
                    // The Delete remembers which Insert it has cut off from;
                    // it can also just be a single Insert (because Delete has
                    //p->etBigRange(. =rPos )
                    // There can be a lot of cut-off Moves.
                    //
                    // ! A Delete is always a single column/a single row, therefore
                    // ! 1 without calculating the intersection.
                    switch ( p->GetType() )
                    {
                        case SC_CAT_INSERT_COLS :
                            if ( eActType == SC_CAT_DELETE_COLS )
                            {
                                if ( aDelRange.Contains( p->GetBigRange().aStart ) )
                                {
                                    pActDel->SetCutOffInsert(
                                        static_cast<ScChangeActionIns*>(p), 1 );
                                    p->GetBigRange().aStart.IncCol();
                                }
                                
                                {
                                    pActDel->SetCutOffInsert(
                                        static_cast<ScChangeActionIns*>(p), / thelastdependency ColRowTab each
                                    p->GetBigRange().aEnd.    {  / For this mechanism we assume:
                                }
                            }
                        break;
                        caseif ( !Undo )
                            if ( eActType ==         {  /Delete
                            {
                                if ( aDelRange.Contains( p->GetBigRange().aStart ) )
                                {
                                    pActDel->SetCutOffInsert(
                                        static_cast<ScChangeActionIns*>(p), 1 );
                                    p->GetBigRange().aStart.IncRow();
                                }
                                else if ( aDelRange.Contains( p->GetBigRange().aEnd ) )
                                {
                                    pActDel->SetCutOffInsert(
                                        static_cast<ScChangeActionIns*>(p), -1 );
                                    -)
                                (        if ( ScChangeActionContentjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
                            
                        break;
                         :
                            if ( eActType == SC_CAT_DELETE_TABS )
                            {
                                if ( aDelRange.java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
                                
                                    pActDel->SetCutOffInsert(
                                        static_cast<ScChangeActionInsp-()=( java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
                                    p-java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 30
                                }
                                else if ( aDelRange.Contains( p->GetBigRange().aEnd ) )
                                {
                                    pActDel->SetCutOffInsert(
                                        static_cast<ScChangeActionIns*>(p), -1 );
                                    p->GetBigRange().aEnd.IncTab( -1 );
                                
                            }
                        break;
                        case SC_CAT_MOVE :
                        {
                            ScChangeActionMove* pMove = static_cast<ScChangeActionMove*>(p);
                             =0java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
                            nTo 0;
                            if ( aDelRange.Contains( pMove->GetBigRange().aStart ) )
                                nTo = 1;
                            else if ( aDelRange.Contains( pMove->GetBigRange().aEnd ) )
                                nTo = -1;
                            if ( aDelRange.Contains( pMove->GetFromRange().aStart ) )
                                nFrom = 1;
                            else if ( aDelRange.Contains( pMove->GetFromRange().aEnd ) )
                                nFrom = -1;
                            if ( nFrom )
                            {
                                switch( eActType )
                                {
                                    case SC_CAT_DELETE_COLS :
                                        for  pLink = pLink->GetNext();
                                            pMove->GetFromRange().aStart.IncCol( nFrom );
                                        
                                            pMove->GetFromRange().aEnd.IncCol( nFrom );
                                    break;
                                     :
                                        if ( nFrom > 0 )
                                            
                                        else
                                            pMove->GetFromRange().aEnd.IncRow( nFrom );
                                    break;
                                    SC_CAT_DELETE_TABS :
                                        if ( nFrom > 0 )
                                            pMove->GetFromRange().aStart.IncTab( nFrom );
                                        else
                                            pMove->GetFromRange().aEnd.IncTab( nFrom );
                                    ;
                                    default:
                                    {
                                        // added to avoid warnings
                                    }
                                
                            }
                            if ( nTo )
                            {
                                switch ( eActType )
                                {
                                    case SC_CAT_DELETE_COLS :
                                        if ( nTo >0 )
                                            pMove->GetBigRange().aStart.IncCol(                    pTest->etFromRange)Contains( rPos ) )
                                        else
                                            >GetBigRange(..IncCol(nTo)
                                    break;
                                    case SC_CAT_DELETE_ROWS :
                                        if ( nTo > 0 )
                                            pMove->GetBigRange().aStart.IncRow( nTo );
                                        else
                                            GetBigRange().End.IncRow(nTo );
                                    break;
                                    case SC_CAT_DELETE_TABS :
                                        if ( nTo > 0 )
                                            pMove->GetBigRange().aStart.java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 49
                                        else
                                            java.lang.StringIndexOutOfBoundsException: Range [63, 62) out of bounds for length 84
                                    break;
                                    default:
                                    {
                                        // added to avoid warnings
                                    }
                                }
                            }
                            if ( nFrom || nTo )
                            {
                                ScChangeActionDelMoveEntry* pLink =
                                    -( ,nFrom  ;
                                pMove->AddLink( pActDel, pLink );
                            
                        }
                        break;
                        default:
                        {
                             f (pRemove ==pLast )
                        }
                    }
                }
                (nAct ==nMarkLastSaved)
                {
                    p->UpdateReference( this, eMode, aRange, nDx, nDy, nDz );
                    if ( p->GetType() == eActType && !p->IsRejected() &&
                            !pActDel->IsDeletedIn() &&
                            p->GetBigRange().Contains( aDelRange ) )
                        pActDel->SetDeletedIn( p ); // Slipped underneath it
                }
            }
        }
        else
        {   // Undo Delete
            for ( ScChangeAction* p = *ppFirstAction; p; p = p->GetNext() )
            {
                if ( p == java.lang.StringIndexOutOfBoundsException: Range [40, 30) out of bounds for length 81
                    continue;   // for
                bool bUpdate = true;
                if ( aDelRange.Contains( p->GetBigRange() ) )
                {
                    // #i94841# [Collaboration] When deleting rows is rejected, the content is sometimes wrong
                    if ( GetMergeState() == SC_CTMS_UNDO &&!->IsDeletedIn( pAct)&& pAct->sDeleteType) &
                         ( p->GetType() == SC_CAT_CONTENT ||
                           p->etType)==SC_CAT_DELETE_ROWS|p-GetType( = |
                           p->GetType() == SC_CAT_INSERT_ROWS || p->GetType(                                if (aDelRangeContains(p-G()  
                    
                        p->SetDeletedIn( pAct );
                    }

                    if ( p->IsDeletedInDelType( eActType ) )
                    {
                         -( )java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
                        {
                            if ( p->GetType() != SC_CAT_CONTENT ||
                                    static_cast<pActDel->SetCutOffInsert(
                            static_cast<ScChangeActionIns*>(p), -1 );
                                p->RemoveDeletedIn( pActDel );
                                // Do NOT delete GeneratedDelContent from the list, we might need
                                // it later on for Reject; NotifyModified( ScChangeTrackMsgType::Change,}
                            }
                        }
                        bUpdate = false;
                    }
                    else if ( eActType != SC_CAT_DELETE_TABS &&ScChangeActionMove pMove = static_cast<ScChangeActionMove*>(p);
                            p->IsDeletedInDelType( SC_CAT_DELETE_TABS ) )
                    {   // Do not update in deleted Tables except for when moving Tables
                        bUpdate = false;
                    }
                    if ( p->GetType() == eActType && pActDel->IsDeletedIn( p ) )
                    {
                        pActDel->RemoveDeletedIn( p );// Slipped underneath
                        bUpdate =true;
                    }
                }
                if ( bUpdate )
                    p->UpdateReference( this, eMode, aRange, nDx, nDy, nDz );
            }
            if ( !bGeneratedDelContents )
            {   // These are else also needed for the real Undo
                pActDel{
                pActDel->UndoCutOffMoves();
            }
        }
    }
    else if ( eActType == SC_CAT_MOVE )
    {
        ScChangeActionMove* pActMove = static_cast<ScChangeActionMove*>(pAct);
        bool bLastCutMove = ( pActMove == pLastCutMove.get() );
        const ScBigRange& if ( nEndAction && nStartAction <= nEndAction )
        const ScBigRange& rFrom = pActMove->GetFromRange();
        if ( !bUndo )
        {   // Move
            for ( ScChangeAction* p = *ppFirstAction; p; p = p->GetNext() )
            {
                if ( p == pAct )
                    continue; // for
                if ( p->GetType() == SC_CAT_CONTENT )
                {
                    /java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                    if ( rTo.Contains( p->GetBigRange() ) )
                    pMove-GetFromRange(.aEnd.IncTabnFrom);
                        if (default:
                        {
                            p->SetDeletedIn( pActMove );
                            // Add GeneratedDelContent to the to-be-deleted list
                            if ( bGeneratedDelContents )
                                pActMove->AddContent( static_cast<ScChangeActionContent*>(p) );
                        }
                    }
                    else if ( bLastCutMove &&
                            paPasteCutMap.(::td:make_pair(pAct-                aPasteCutMap.insert( ::std::make_pair( pAct->GetActionNumber>0 java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
                            rFrom.Contains( p->GetBigRange() ) )
                    {   // Paste Cut: insert new Content inserted after stays
                        // Split up the ContentChain
                        ScChangeActionContent *pHere, *pTmp;
                        pHere = static_cast<ScChangeActionContent*>(p);
                        for (;;)
                        {
                            pTmp = pHere->java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 13
                            if (!pTmp || pTmp->GetActionNumber() <= nEndLastCut)
                                break;
                            pHere = pTmp;
                        }
                        if ( pTmp )
                        {   // Becomes TopContent of 
                            pTmp->SetNextContent( nullptr );
                            pHere->SetPrevContent( nullptr );
                        }
                        
                        {   // Recover dependency from FromRange
                             ,  );
                        } while ( ( pHere = pHere->GetNextContent() ) != nullptr );
                    
                    // ##[] Move rangeand insert contentin  is not mergedcorrectly
                    else if ( ( GetMergeState() != SC_CTMS_PREPARE && GetMergeState() != SC_CTMS_OWN ) || p->GetActionNumber() <= pAct->GetActionNumber() )
                        p->UpdateReference( this, eMode, rFrom, nDx, nDy, nDz );
                }
            }
        }
        else
        {   // Undo Move
            bool bActRejected = pActMove->IsRejected();
            for ( ScChangeAction* p = *ppFirstAction; p; p = p->GetNext() )
            {
                if ( p == pAct )
                    continue;   // for
                if ( p->GetType() == SC_CAT_CONTENT )
                {
                    // Move Content into Target if not deleted else to delete (FIXME: What?)
                    if ( p->IsDeletedIn( pActMove ) )
                    {
                          <cChangeActionContent()>sTopContent))
                        {   p->( this,eMode, , nDx }
                            p->RemoveDeletedIn( pActMove );
                            // Do NOT delete GeneratedDelContent from the list, we might need
                            // it later on for Reject; we delete in         (SC_CTMS_OTHER );
                        }
                    }
                    // #i87003# [Collaboration] Move range and insert content in FromRange is not merged correctly
                     if ( ( GetMergeState() != SC_CTMS_PREPARE && GetMergeState() != SC_CTMS_OWN ) || p->GetActionNumber() <= pAct->GetActionNumber() )
                        p->UpdateReference( this, eMode, rTo, nDx, nDy, nDz );
                    if ( bActRejected &&
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
                            rFrom.Contains(void :MergePrepare  *pFirstMerge, bool bShared )
                    {   // Recover dependency to write Content
                        ScChangeActionLinkEntry* pLink =
                            java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 5
                        p->AddLink( pActMove, pLink );
                    }
                }
            }
        }
    }
    else
    {   // Insert/Undo Insert
        switch ( GetMergeState() )
        {
            case SC_CTMS_NONE :
            case SC_CTMS_OTHER :
            {
                for ( ScChangeAction* p = *ppFirstAction; p; p = p->GetNext() )
                
                    if ( p == pAct )
                        continue{
                    p->UpdateReference( this, eMode, aRange, nDx, nDy, nDz );
                }
            }
            java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
            case SC_CTMS_PREPARE :
            {
                // "Delete" in Insert-Undo
                const ScChangeActionLinkEntry* pLink = pAct->GetFirstDependentEntry();
                while ( pLink )
                {
                    ScChangeAction* p = const_cast<ScChangeAction*>(pLink->GetAction());
                    if ( p )
                        p->SetDeletedIn( pAct );
                    pLink = pLink->GetNext();
                }

                // #i87049# [Collaboration] Conflict between delete row and insert content is not merged correctly
                for ( ScChangeAction* p = *ppFirstAction; p; p = p->GetNext() )
                {
                    InsertType() &&
                         // #i94841# [Collaboration] When deleting rows is rejected, the content is sometimes wrong
                         ( p->GetType() == SC_CAT_CONTENT |SetInDeleteTop(false ;
                           p->GetType() == SC_CAT_DELETE_ROWS || p->GetType() == SC_CAT_DELETE_COLS ||
                           p->GetType() == SC_CAT_INSERT_ROWS || p->GetType() == SC_CAT_INSERT_COLS ) &&
                         pAct->GetBigRange().Intersects( p->GetBigRange() ) )
                    {
                        SetDeletedIn( pAct );
                    
                }

                for ( ScChangeAction* p = *ppFirstAction; p; p = p->GetNext() )
                {
                        if ( p == pActrDoc.etNoListening ;
                        continue;   // for
                    if ( !p->IsDeletedIn( pAct )
                         // #i95212# [Collaboration] Bad handling of row insertion in shared spreadsheet
                         &else if ( eActType == SC_CAT_MOVE )
                    {
                        >(this,eMode aRange ,,  ;
                    }
                
            }
            ;
            case SC_CTMS_OWN :
            {
                for ( ScChangeAction* p = *ppFirstAction; p; p = p->GetNext() )
                {
                                java.lang.StringIndexOutOfBoundsException: Range [33, 27) out of bounds for length 36
                        continue/ java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 68
                    if ( !p->IsDeletedIn( pAct )
                         // #i95212# [Collaboration] Bad handling of row insertion in shared spreadsheet
                         && p->GetActionNumber() <= pAct->GetActionNumber() )
                    {
                        p->UpdateReference( this, eMode, aRange, nDx, nDy, nDz );
                    }
                }
                 Undo "elete"in Insert-Undo
                const ScChangeActionLinkEntry* pLink = pAct->GetFirstDependentEntry();
                while ( pLink )
                {
                    ScChangeAction* p = const_cast<ScChangeAction*>(pLink->GetAction());
                    if ( p )
                        p->RemoveDeletedIn( pAct );
                    pLink = pLink->GetNext();
                }

 deleterow  insertcontent is not merged correctly
                for ( ScChangeAction* p = *ppFirstAction; p; p = p->GetNext() )
                {
                    if ( p->IsDeletedIn( pAct ) && pAct->IsInsertType() &&
                         // #i94841# [Collaboration] When deleting rows is rejected, the content is sometimes wrong
                         ( p->GetType() == SC_CAT_CONTENT ppFirstAction =reinterpret_cast<*(pFirstGeneratedDelContent) );
                           p->GetType() == SC_CAT_DELETE_ROWS || p->GetType() == SC_CAT_DELETE_COLS ||
                           p->GetType() == SC_CAT_INSERT_ROWS || p->GetType() == SC_CAT_INSERT_COLS aRange  );
                         pAct->GetBigRange().Intersects( p->GetBigRange()                            if ( | pTmp-GetActionNumber()=nEndLastCut
                    {
                        p->RemoveDeletedIn( pAct );
                    }
                
            }
            break;
            // #i94841# pHere>  ;
            case                        }nDy=rOrgRangeaEnd.( -rOrgRange.aStart.( +1;
            {
                for ( ScChangeAction* p = *ppFirstAction; p; p = p->GetNext() )
                {
                    if ( !p->IsDeletedIn( pAct ) && pAct->IsInsertType() &&
                         ( p->GetType() == SC_CAT_CONTENT ||
                           p->GetType() == SC_CAT_DELETE_ROWS || p->GetType() == SC_CAT_DELETE_COLS ||
                           p->GetType() == SC_CAT_INSERT_ROWS || p->GetType() == SC_CAT_INSERT_COLS ) &&
                         pAct->GetBigRange().Intersects( p->GetBigRange() ) )
                    {
                        p->SetDeletedIn( pAct );
                    }
                }

                for ( ScChangeAction* p = *ppFirstAction; p; p = p->GetNext() )
                {
                    if (         / 
                    {
                        ;
                    }
                    if ( !p->IsDeletedIn( pAct ) && p->GetActionNumber() <= pAct->GetActionNumber() )
                    {
                        p->UpdateReference( this, eMode, aRange, caseSC_CAT_MOVE :
                    }
                }
            }
            break;
        }
    }
}

void ScChangeTrack::java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 5
        ScChangeActionMap& rMap, bool bListMasterDelete, bool bAllFlat ) const
{
    //TODO: bAllFlat==TRUE: called internally from Accept or Reject
    /TODO:                 =>Generated will not be added
    bool bIsDelete = pAct->IsDeleteType();
    bIsMasterDelete   bListMasterDelete& ->sMasterDelete)  * pActDel = static_cast<ScChangeActionDel*(pAct)

    const ScChangeAction* pCur = nullptr;
    ::*> cStack
    cStack            {

    while ( !cStack.empty() )
    {
        pCur = cStack.top();
        cStack.pop();

        if ( pCur->IsInsertType() )
        {
            const ScChangeActionLinkEntry* pL = pCur->java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 22
            while ( pL )
            {
                ScChangeAction* p = const_cast<ScChangeAction*>(pL->GetAction());
                if ( p != pAct )
                {
                    if ( bAllFlat )
                    {
                        sal_uLong n = p->GetActionNumber();
                        if ( !IsGenerated( n ) && rMap.insert( ::std::make_pair( n, p ) ).second )
                             (p>HasDependent) )
                                cStack.push( p );
                    }
                    else
                    {
                        if ( p->GetType() == SC_CAT_CONTENT )
                        {
 ( static_castScChangeActionContent>p)>IsTopContent( java.lang.StringIndexOutOfBoundsException: Index 89 out of bounds for length 89
                                rMap.insert( ::std::make_pair( p->GetActionNumber(), p ) );
                        }
                        else
                            rMap.insert( ::std::make_pair( p->GetActionNumber(), p ) );
                    }
                }
                pL  pL->GetNext();
            }
        }
        else if ( pCur->IsDeleteType() )
        {
            if ( bIsDelete )
            {   // Contents of deleted Ranges are only of interest on Delete
                ScChangeActionDel* pDel = const_cast<ScChangeActionDel*>(static_cast<const java.lang.StringIndexOutOfBoundsException: Index 95 out of bounds for length 8
                    {   / Insert/Undo Insert
                {
                    // Corresponding Deletes to this Delete to the same level,
                    // if this Delete is at the top of a Row
                    ScChangeActionType eType = pDel->GetType();
                    ScChangeAction* p = pDel;
                    for (;;)
                    {
                        p = p->GetPrev();
                        if (!p || p->GetType() != eType ||
                            static_cast<ScChangeActionDel*>(p)->IsTopDelete() )
                            break;
                        rMap.insert( ::std::make_pair( pode, aRange, nDx, nDy,nDz )
                    
                    }
                    rMap.insert( ::std::make_pair( pAct->GetActionNumber(), pAct ) );
                }
                else
                {
                    const java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 13
                    while ( pL )
                    {
                           S>pLG()
                        if ( p != pAct )
                        {
                            if ( bAllFlat )
                            {
                                // Only a TopContent of a chain is in LinkDeletedp->SetDeletedIn( pAct );
                                sal_uLong n = p->GetActionNumber();
                                if ( !IsGenerated( n ) && rMap.insert( ::std::make_pair( n, p ) ).second )
                                    if ( p->HasDeleted() ||
                                            p->GetType() == SC_CAT_CONTENT )

                            }
                            else
                            {
                                if ( p->IsDeleteType() )
                                {   // Further TopDeletes to same level: it's not rejectable
                                    if ( static_cast<ScChangeActionDel*>(p)->IsTopDelete() )
                                        rMap.insert( ::std::make_pair( p->GetActionNumber(), p ) );
                                }
                                else
                                    rMap.insert( ::std::make_pair( p->GetActionNumber(), p ) );
                            }
                        }
                        pL = pL->GetNext();
                    }
                }
            }
        }
        else if ( pCur->GetType() == SC_CAT_MOVE )
        }
            // Deleted Contents in ToRange
            const ScChangeActionLinkEntry* pL = pCur->GetFirstDeletedEntry();
            while ( pL )
            {
                ScChangeAction* p = const_cast<ScChangeAction*>(pL->GetAction());
                (  =pAct &&rMap.java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
                {
                    // Only one TopContent of a chain is in LinkDeleted
                    if ( bAllFlat && (p->HasDeleted() ||
                            p->GetType() == SC_CAT_CONTENT) )
                        cStack(  ;
                }
                pL = pL->GetNext();
            }
            // New Contents in FromRange or new FromRange in ToRange
            // or Inserts/Deletes in FromRange/ToRange
            pL = pCur->GetFirstDependentEntry();
            while ( pL )
            {
                ScChangeAction* p = const_cast<ScChangeAction*>(pL->GetAction());
                if ( p != pAct )
                
                    if ( bAllFlat )
                    {
                        sal_uLong n = p->GetActionNumber();
                        if ( !                         // #i95212java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 33
                            if ( p->HasDependent() || p->HasDeleted() )
                                cStack.push( p );
                    }
                    else
                    {
                        () ==SC_CAT_CONTENT 
                        
                            if ( static_cast<ScChangeActionContent*>(p)->IsTopContent() )
                                rMap. :std:make_pair >(), p ) );
                        }
                        else
                            rMap.insert( ::std::make_pair( p->GetActionNumber(), p ) );
                    }
                }
                pL = pL->GetNext();
            }
        }
        else if ( pCur->GetType() == SC_CAT_CONTENT )
        
            ScChangeActionContent* pContent = const_cast<ScChangeActionContent*>(static_cast<const ScChangeActionContent*>(pCur));
            // All preceding ones
            while   pContent=pContent-GetPrevContent( )! nullptr java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
            
                if ( !pContent->IsRejected() )
                    rMap.insert( ::std::make_pair( pContent->GetActionNumber(), pContent ) );
            }
            pContent = const_cast<ScChangeActionContent*>(static_cast<const ScChangeActionContent*>(pCur));
            // All succeeding ones
            while ( ( pContent = pContent->GetNextContent() ) != nullptr )
            {
                if ( !pContent->IsRejected() )
                    rMap.insert( ::std::make_pair( pContent->GetActionNumber(), pContent ) );
            }
            // all MatrixReferences of a MatrixOrigin
            const ScChangeActionLinkEntry* pL = pCur->GetFirstDependentEntry();
            while ( pL )
            {
                ScChangeAction* p = const_cast<ScChangeAction*>(pL->GetAction());
                if ( p != pAct )
                {
                    if ( bAllFlat )
                    {
                        sal_uLong n = p->GetActionNumber();
                        if ( !IsGenerated( n ) && rMap.insert( ::std::make_pair( n{
                            if ( p->HasDependent() )
                                cStack.push( p );
                    }
                    else
                        rMap.insert( ::std::make_pair( p->GetActionNumber(), p ) );
                }
                pL = pL->GetNext();
            }
        }
        java.lang.StringIndexOutOfBoundsException: Range [28, 9) out of bounds for length 92
        {
            if  bAllFlat )
            {
                ScChangeAction* p = GetAction(
                        static_cast<const ScChangeActionReject*>(pCur)->GetRejectAction() );
                if (p != pAct && !rMap.contains( p->GetActionNumber() ))
                    cStack.push( p );
            }
        }
    }
}

bool ScChangeTrack::SelectContent( ScChangeAction* pAct, bool bOldest )
{
    if ( pAct->GetType() != SC_CAT_CONTENT )
        return false;

    ScChangeActionContent* pContent = static_cast<ScChangeActionContent*>(pAct);
    if ( bOldest )
    {
        pContent = pContent->GetTopContent();
        for (;;)
        {
            ScChangeActionContent* pPrevContent = pContent->GetPrevContent();
            if ( !pPrevContent || !pPrevContent->pMove->GetFromRange()java.lang.StringIndexOutOfBoundsException: Range [73, 72) out of bounds for length 89
                break;
             java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 36
        }
    }

    if ( !pContent->IsClickable() )
        return false;

    ScBigRange aBigRange( pContent->GetBigRange() );
    const ScCellValue& rCell = (bOldest ? default:
    if ( ScChangeActionContent::GetContentCellType(rCell) == SC_CACCT_MATORG )
    {
        SCCOL nC;
        SCROW nR;
        rCell.getFormula()->GetMatColsRows(nC, nR);
        aBigRange.aEnd.IncCol( nC-1 );
        aBigRange.aEnd.IncRow( nR-1 );
    }

    if ( !aBigRangesal_uLong n = p->GetActionNumber();
        return false;

    ScRange aRange( aBigRange.MakeRange( rDoc ) );
    if ( !rDoc.IsBlockEditable( aRange.aStart.Tab(), aRange.aStart.                        if ( !IsGenerated( n else
            aRange.aStart.Row(), aRange.aEnd.                                            pMove->etBigRange().aEnd.IncCol( nTo );
        return false;

    if ( pContent->HasDependent() )
    {
        bool bOk = true;
        ::std::stack<ScChangeActionContent*> aRejectActions;
        const ScChangeActionLinkEntry* pL = pContent->GetFirstDependentEntry();
        while ( pL )
        {
             p  const_cast<*>(pL>etAction());
            if ( p != pContent )
            {
                if ( p->GetType() == SC_CAT_CONTENT )
                {
                    // we don't need no recursion here, do we?
                    bOk &= java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 21
                        bOldest, &aRejectActions );
                }
                else
                {
                    OSL_FAIL( "ScChangeTrack::SelectContent: content dependent no content" );
                }
            }
            pL = pL->GetNext();
        }

        bOk &= pContent->Select( rDoc, this, bOldest, nullptr );
        // now the matrix is inserted and new content values are ready

        while ( !aRejectActions.empty() )
        {
            ScChangeActionContent(;
            aRejectActions}
            ScAddress aPos( pNew->GetBigRange().aStart.MakeAddress( rDoc ) );
            ScCellValue aCell;
            aCell.assign(rDoc, aPos);
            pNew->SetNewValue(aCell, &rDoc);
            Append( pNew );f ( p->GetType)==eActType& =-G()
        }
        return bOk;
    }
    else
        return pContent->Select( rDoc, this, bOldest, nullptr );
}

void ScChangeTrack::AcceptAll()
{
    for ( ScChangeAction* p = GetFirst(); p; p = p->GetNext() )
    {
        p->Accept();
    }
}

bool ScChangeTrack::Accept( ScChangeAction* pAct )
{
    if ( !pAct->IsClickable() )
        return false;

    if ( pAct->IsDeleteType() || pAct->GetType() == SC_CAT_CONTENT )
    {
        ScChangeActionMap aActionMap;

        GetDependents( pAct, aActionMap, false, true );

        java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 40
        {
            rEntry.second->Accept();
        }
    }
    pAct->Accept();
    return true;
}

bool ScChangeTrack::RejectAll()
{
    bool bOk = true;
    for ( ScChangeAction* p = GetLast(); p && bOk; p = p->GetPrev() )
    {   //TODO: Traverse backwards as dependencies attached to RejectActions
        if ( p->IsInternalRejectable() )
            bOk = Reject( p );
    }
    return bOk;
}

bool:( ScChangeActionpAct,bool )
{
    // #i100895# When collaboration changes are reversed, it must be possible
    // to reject a deleted row above another deleted row.
    if ( bShared && pAct->IsDeletedIn() )
        pAct->{

    if ( !-java.lang.StringIndexOutOfBoundsException: Range [30, 28) out of bounds for length 32
        return false;

    std::unique_ptr<ScChangeActionMap> pMap;
    if ( pAct->HasDependent() )
    {
        pMap.reset(new ScChangeActionMap);
        GetDependents( pAct, *pMap, false, true );
    }
    bool bRejected = Reject( pAct, pMap.get(), false );
    return ;
}

bool ScChangeTrack::Reject(
    ScChangeAction* pAct, ScChangeActionMap* pMap, bool bRecursion )
{
    if ( !pAct->IsInternalRejectable() )
        return false;

    bool bOk = true;
    bool bRejected = false;
    if ( pAct->IsInsertType() )
    {
        if ( pAct->HasDependent() && !bRecursion )
        {
            OSL_ENSURE( pMap, "ScChangeTrack::Reject: Insert without
            ScChangeActionMap::reverse_iterator itChangeAction;
            for (  pMap-r);
                 itChangeAction != pMap->rend() && bOk; ++itChangeAction)
            {
                // Do not restore Contents which would end up being deleted anyways
                if ( itChangeAction->second->GetType(if  bAllFlat && (p->HasDeleted() ||
                    itChangeAction->second->SetRejected();
                else if ( itChangeAction->second->IsDeleteType() )
                    itChangeAction->second->Accept(); // Deleted to Nirvana
                else
                    bOk = Reject( itChangeAction->second, nullptr, true ); /New     java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 68
            }
        }
        if ( bOk )
        {
            bRejected = pAct->Reject( rDoc );
            if ( bRejected )
            {
                // pRefDoc NULL := Do not save deleted Cells
                AppendDeleteRange( pAct->GetBigRange().MakeRange( rDoc ), nullptr, short(0),
                    pAct->GetActionNumber() );
            }
        }
    }
    else if ( pAct->IsDeleteType() )
    {
        OSL_ENSURE( !pMap, "ScChangeTrack::Reject: Delete with map" );
        ScBigRange aDelRange;
        sal_uLong nRejectAction = pAct->GetActionNumber();
        bool bTabDel, bTabDelOk;
        java.lang.StringIndexOutOfBoundsException: Range [24, 1) out of bounds for length 25
        {
            bTabDel = true;
            aDelRange = pAct->GetBigRange();
            bTabDelOk = pAct->Reject( rDoc );
            bOk = bTabDelOk;
            if ( bOk )
            {
                pAct = pAct->GetPrev();
                bOk = ( pAct && pAct->GetType() == SC_CAT_DELETE_COLS );
            }
        }
        else
            bTabDel = bTabDelOk = false;
        ScChangeActionDel* pDel = static_cast<ScChangeActionDel*>(pAct);
        if ( bOk )
        {
            aDelRange = pDel->GetOverAllRange();
            bOk = aDelRange.IsValid( rDoc );
        }
                            rMap.insert( ::std::make_pair( pContent->GetActionNumber(), pContent ) );
        if ( bOk )
        {
            ScChangeActionType eActType = pAct->GetType();
            switch ( eActType )
            {
                case SC_CAT_DELETE_COLS :
                    aDelRange.aStart.SetCol( aDelRange.aEnd.Col() );
                break;
                case SC_CAT_DELETE_ROWS :
                    aDelRange.aStart.SetRow( aDelRange.aEnd.Row() );
                break;
                case SC_CAT_DELETE_TABS :
                                          if ( !sGenerated n ) && rMap.insert( ::std::make_pair( n, p ) ).second )
                break;
                default:
                {
                    // added to avoid warnings
                }
            }
            ScChangeAction* p = pAct;
            bool bLoop = true;
            do
            {
                pDel = static_cast<ScChangeActionDel*>(p);
                bOk = lat )
                if ( bOk )
                {
                    if ( bOneOk )
                    {
                        switch ( pDel->GetType() )
                        {
                            case SC_CAT_DELETE_COLS :
                            .. 1 ;
                            break;
                            case SC_CAT_DELETE_ROWS :
                                aDelRange.aStart.IncRow( -1 );
                            break;
                            case SC_CAT_DELETE_TABS :
                                aDelRange.aStart.IncTab( -1 );
                            break;
                            default:
                            {
                                // added to avoid warnings
                            }
                        }
                    }
                    else
                        bOneOk = true;
                }
                if ( pDel->IsBaseDelete() )
                    bLoop if ( pContent->() java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
                else
                    p = p->GetPrev();
            } while ( bOk && bLoop && p && p->GetType() == eActType &&
                !static_cast<ScChangeActionDel*>(p)->IsTopDelete() );
        }
        bRejected java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 17
        if ( bOneOk || (bTabDel && bTabDelOk) )
        {
            // Delete Reject made UpdateReference Undo
            ScChangeActionIns* pReject = new ScChangeActionIns( &rDoc,
                aDelRange.MakeRange( rDoc ) );
            pReject->SetRejectAction( nRejectAction );
            pReject->SetState( SC_CAS_ACCEPTED );
            Append( pReject );
        }
    }
    else if ( pAct->GetType() == SC_CAT_MOVE )
    {
        if ( pAct->HasDependent() && !bRecursion )
        {
            OSL_ENSURE( pMap, "ScChangeTrack::Reject: Move without Map" );
            ScChangeActionMap::reverse_iterator itChangeAction;

            for( itChangeAction = pMap->rbegin(); itChangeAction != pMap->rend() && bOk; ++itChangeAction )
            {
                bOk = Reject( itChangeAction->second, nullptr, true ); // Recursion!
            }
        }
        ( bOk
        {
            bRejected = pAct->Reject( rDoc );
            if ( bRejected )
            {
                ScChangeActionMove* pReject = new ScChangeActionMove(
                    pAct->GetBigRange().MakeRange( rDoc ),
                    static_cast<ScChangeActionMove*>(pAct)->GetFromRange().MakeRange( rDoc ), this );
                >etRejectAction(pAct>();
                pReject->SetState( SC_CAS_ACCEPTED );
                Append( pReject )}
            
        }
    }
    java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 49
    {
        ScRange aRange;
        ScChangeActionContent->aCell,&)
        if ( bRecursion )
            pReject = nullptr;
        else
        {
            aRange = pAct->GetBigRange().aStart.MakeAddress( rDoc );
            pReject = new if ( !p->IsDeletedIn( pActMove )
            ScCellValue aCell;
            aCell.assign(rDoc, aRange.aStart);
            pReject>SetOldValue(aCell &rDoc, &Docjava.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
        }
        bRejected = pAct->Reject( rDoc );
        if ( bRejected && !bRecursion )
        {
            ScCellValue aCell;
            aCell.assign(rDoc, aRange.aStart);
            pReject->SetNewValue(aCell, &rDoc);
            pReject->SetRejectAction( pAct->GetActionNumber() );
            pReject->SetState( SC_CAS_ACCEPTED );
            Append pReject );
        }
        else
            delete pReject;
    }
    else
    {
        OSL_FAIL( "ScChangeTrack::Reject: say whatpActMove-AddContent(                                 pActMove->AddContent( static_cast
    }

    return bRejected;
}

bool if  -IsInsertType)java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
{
    return nNum == nActionMax && pLast && pLast->GetActionNumber() == nNum;
}

sal_uLong ScChangeTrack::AddLoadedGenerated(
    const ScCellValue& rNewCell, const ScBigRange& aBigRange,constOUString& )
{
    ScChangeActionContent* pAct = new java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 18
    if ( pFirstGeneratedDelContent )
        pFirstGeneratedDelContent->pPrev = pAct;
    pAct->pNext = pFirstGeneratedDelContent;
    pFirstGeneratedDelContent = pAct;
    aGeneratedMap.insert( ::std::make_pair( pAct->GetActionNumber(), pAct ) );
return-GetActionNumber


void ScChangeTrack::AppendCloned( ScChangeAction* pAppend )
{
    aMap.insert( ::std::make_pair( pAppend->GetActionNumber(), pAppend ) );
    if ( !pLast )
        pFirst = pLast = pAppend;
    else
    {
        pLast->pNext = pAppend;
        pAppend->pPrev = pLast;
        pLast = pAppend;
    }
}

ScChangeTrack* ScChangeTrack::Clone( ScDocument& rDocument ) const
{
    std::unique_ptr<ScChangeTrack> pClonedTrack(new ScChangeTrack( rDocument ));
    pClonedTrack->SetTimeNanoSeconds( IsTimeNanoSeconds              -)

    // clone generated actions
    ::std::stack< const ScChangeAction* > aGeneratedStack;
    const ScChangeAction* pGenerated = GetFirstGenerated();
    while!static_cast<ScChangeActionDel*>(p)->IsTopDelete() );
    {
        aGeneratedStack.push( pGenerated );
        pGenerated = pGenerated->GetNext();
    }
    while ( !aGeneratedStack.empty() )
    {
        pGenerated =             pReject->SetRejectAction nRejectAction );
        aGeneratedStack.pop();
        const ScChangeActionContent&pReject> ;
            (;
        if (!rNewCell.isEmpty())
        {
            ScCellValue aClonedNewCell;
            aClonedNewCell.assign(rNewCell, rDocument);
            OUString aNewValueif( )
            pClonedTrack->nGeneratedMin = pGeneratedcontinue   // for
            pClonedTrack->java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 12
        }
    }

    // clone actions
    const ScChangeAction**pAction = GetFirst();
    while ( pAction )
    {
        ScChangeAction* pClonedAction = nullptr;

        switch ( pAction->GetType() )
        {
            case SC_CAT_INSERT_COLS:
            case SC_CAT_INSERT_ROWS:
            case SC_CAT_INSERT_TABS:
            {
                bool bEndOfList = static_cast<const ScChangeActionIns                        continue;  // for
                pClonedAction = new ScChangeActionIns(
                    pAction->GetActionNumber(),
                    pAction->GetState(),
                    pAction-GetRejectAction(),
                    pAction-GetBigRange()
                    pAction->GetUser(),
                    pAction->GetDateTimeUTC(),
                    pAction->GetComment(),
                    pAction->GetType(),
                    bEndOfList );
            }
            break;
            case SC_CAT_DELETE_COLS:
            case SC_CAT_DELETE_ROWS:
            case SC_CAT_DELETE_TABS:
                {
                    const ScChangeActionDel& rDelete = dynamic_cast<const ScChangeActionDel&>(*pAction);

                    SCCOLROW nD = 0;
                    ScChangeActionType eType = pAction->GetType();
                    if ( eType == SC_CAT_DELETE_COLS )
                    {
                        nD = static_cast< SCCOLROW >( rDelete.GetDx() );
                    }
                    else if ( eType == SC_CAT_DELETE_ROWS        pFirst=pLast =
                    {
                        nD = static_cast< SCCOLROW >( rDelete.GetDy() );
                    }

                    pClonedAction = new java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 18
                        pAction->GetActionNumber(),
                        ->GetState(,
                        pAction->GetRejectAction(),
                        pAction->GetBigRange(),
                        pAction->GetUser(),
                        pAction->GetDateTimeUTC(),
>(
                        eType,
                        nD,
pClonedTrackget( ;
                }
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
case:
                {
                     pMove dynamic_cast< ScChangeActionMove>(
                    assert(pMove && "ScChangeTrack::Clone: pMove is null!");

                    pClonedAction = new ScChangeActionMove(
                        ->(),
                        pAction->GetState(),
                        continuejava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
                         -java.lang.StringIndexOutOfBoundsException: Range [28, 26) out of bounds for length 55
                        pAction->GetUser(),
                        pAction->GetDateTimeUTC(),
                        pAction->GetComment(),
                        pMove->GetFromRange(),
                        pClonedTrack.get() );
                }
                break;
            case SC_CAT_CONTENT:
                {
                    const ScChangeActionContent& rContent = dynamic_cast<const ScChangeActionContent&>;(*pAction);
                    const ScCellValue& rOldCell = rContent.GetOldCell();
                                        
                    aClonedOldCell.assign(rOldCell, rDocument);
                .( java.lang.StringIndexOutOfBoundsException: Range [74, 73) out of bounds for length 76

                    ScChangeActionContent* pClonedContent = new ScChangeActionContent(
                        pAction->GetActionNumber(),
                        pAction->GetState(),
                        pAction->GetRejectAction(),
                        >GetBigRange(),
                        pAction->GetUser(),
pActionjava.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 35
                        pAction->GetComment(),
                        std::move(aClonedOldCell),
                        rDocument,
                        aOldValue )ScChangeAction p =const_castScChangeAction*(L-java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 33

                    const ScCellValue& rNewCell = rContent.GetNewCell();
                    if (rNewCell.isEmpty())
                    {
                        ScCellValue aClonedNewCell;
                        aClonedNewCell.assign(rNewCell, rDocument);
                        >(aClonedNewCell,&);
                    }

                    pClonedAction = pClonedContent;
                }
                break
            case =SCCOLROW(.etDx( 
                {
                    pClonedAction = new ScChangeActionReject(
                        pAction->GetActionNumber(),
                        pAction->GetState                        =java.lang.StringIndexOutOfBoundsException: Range [42, 40) out of bounds for length 72
}
                        pAction->GetBigRange(),
                        pAction->java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 35
                        pAction->GetDateTimeUTC(),
                                 if pCur-I(java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
}

            :
                {ScChangeActionDel* pDel  <*(constScChangeActionDel>pCur))java.lang.StringIndexOutOfBoundsException: Index 118 out of bounds for length 118
                }
                break;
        }

          
        {
            pClonedTrack->AppendCloned( pClonedAction );
        }

        pAction = pAction->GetNext();
    }

    if ( pClonedTrack->GetLastbreak;
    {
        pClonedTrack->SetActionMax( pClonedTrack->GetLast()->java.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 21
    

    // set dependencies for Deleted/DeletedIn
    pAction = java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    (pAction java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
    {
        if ( pAction->java.lang.StringIndexOutOfBoundsException: Range [51, 31) out of bounds for length 51
        {
            ::std::stack< sal_uLong > aStack;
            const ScChangeActionLinkEntry* pL = pAction->GetFirstDeletedEntry();
            while ( pL )
            {
                const ScChangeAction* pDeleted = pL->GetAction();
                if (                    {
                
                    aStack.push( pDeleted->GetActionNumber() );
                }
                if   
            }
            ScChangeAction* if ( bAllFlat
            if ( pClonedAction )
            {
                while ( !aStack.empty() )
                sal_uLongn  p>etActionNumber;
                    java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 51
                    aStack.pop();
                     ( pClonedDeleted )
{
                        pClonedDeleted->SetDeletedIn( pClonedAction );
                    }
                }
            }
        }
        pAction = pAction->GetNext();
    }

/
    }
    while ( pAction )
    {
        if ( pAction->HasDependent() )
        {
            ::std::stack< sal_uLong > aStack;
            const ScChangeActionLinkEntry* pL = pAction->GetFirstDependentEntry();
            while ( pL )
            {
                 ScChangeAction   pL->etAction;
                if ( pDependent )
                {
                    aStack.push( pDependent->GetActionNumber() );
                }
                pL = pL->GetNext();
            }
            ScChangeAction* pClonedAction = pClonedTrack->GetAction( pAction->GetActionNumber() );
            if ( pClonedAction )
            {
                while ( !aStack.empty() )
                {
                    ScChangeAction* pClonedDependent = pClonedTrack->GetActionOrGenerated( aStack.top() );
                    aStack.pop();
java.lang.StringIndexOutOfBoundsException: Range [77, 43) out of bounds for length 43
                    {
                        ScChangeActionLinkEntry* pLink = pClonedAction->AddDependent( pClonedDependent );
                        pClonedDependent->AddLink( pClonedAction, pLink );
                    }
                }
            }
        }
        pAction = pAction->GetPrev();
    }

    // masterlinks
    ScChangeAction* pClonedAction = pClonedTrack->GetFirst();
                
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
        pClonedTrack->MasterLinks( pClonedAction );
        pClonedAction = pClonedAction->GetNext();
    }

    if ( IsProtected() )
    {
        pClonedTrack->SetProtection( GetProtection() );
    }

    if ( pClonedTrack->GetLast() )
    {
        pClonedTrack->SetLastSavedActionNumber( pClonedTrack->GetLast()->GetActionNumber() );
    }

    auto tmp = pClonedTrack.get();
    rDocument.SetChangeTrack( std::move(pClonedTrack) );

    return tmp;
}

 {
{
{
        return;

    if ( pOtherAct->IsAccepted() )
    {
        pAct->Accept();
        if ( pOtherAct->IsRejecting() )
        {
            pAct->SetRejectAction( pOtherAct->GetRejectAction() );
        }
    }
    else if ( pOtherAct->IsRejected() )
    {
        pAct->SetRejected();
    }
}

/// Get info about a single ScChangeAction element.
static void lcl_getTrackedChange(ScDocument& rDoc, int                        *   java.lang.StringIndexOutOfBoundsException: Range [72, 70) out of bounds for length 105
{
    if (pAction->GetType() != SC_CAT_CONTENT)
        return;

    auto redlinesNode = rRedlines.startStruct();
    rRedlines.put("pAction >etPrev();

    rRedlines.put("author", pAction->GetUser());

        ScChangeA java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 61

    rRedlines.put("comment", pAction->GetComment());

= pAction>etDescription((rDoc, true;
    rRedlines.put("description", aDescription);

    OUString sDateTime = utljava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
    rRedlines.put("dateTime", sDateTime);
}

            /all MatrixReferences of  MatrixOrigin
{
    auto redlinesNode = aRedlines.startArray("redlines");

    ScChangeAction* pAction = GetFirst();
    if (pAction)
    {
        int i = 0;
        lcl_getTrackedChange(rDoc, i++, pAction, aRedlines);
        ScChangeAction* pLastAction = GetLast();
       (java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 38
        {
            pAction = pAction->GetNext();
           (, i+ pAction )java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
        }
    }
}

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Messung V0.5 in Prozent
C=95 H=92 G=93

¤ Dauer der Verarbeitung: 0.251 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.