From c847b0d46f90c4f962c19392e9feaf8fb2b3882d Mon Sep 17 00:00:00 2001 From: Takashi Sawanaka Date: Thu, 5 May 2016 17:54:55 +0900 Subject: [PATCH] GhostTextBuffer.*: Remove some duplicate code #2 --- Externals/crystaledit/editlib/ccrystaltextbuffer.cpp | 11 ++++++++--- Externals/crystaledit/editlib/ccrystaltextbuffer.h | 1 + Src/GhostTextBuffer.cpp | 13 +++++++++++++ Src/GhostTextBuffer.h | 1 + 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/Externals/crystaledit/editlib/ccrystaltextbuffer.cpp b/Externals/crystaledit/editlib/ccrystaltextbuffer.cpp index 5a35074ee..0db8f7aa2 100644 --- a/Externals/crystaledit/editlib/ccrystaltextbuffer.cpp +++ b/Externals/crystaledit/editlib/ccrystaltextbuffer.cpp @@ -1412,9 +1412,7 @@ Undo (CCrystalTextView * pSource, CPoint & ptCursorPos) } // restore line revision numbers - int naSavedRevisonNumbersSize = (int) ur.m_paSavedRevisonNumbers->GetSize(); - for (int i = 0; i < naSavedRevisonNumbersSize; i++) - m_aLines[ur.m_ptStartPos.y + i].m_dwRevisionNumber = (*ur.m_paSavedRevisonNumbers)[i]; + RestoreRevisionNumbers(ur.m_ptStartPos.y, ur.m_paSavedRevisonNumbers); if (ur.m_dwFlags & UNDO_BEGINGROUP) break; @@ -1699,6 +1697,13 @@ CopyRevisionNumbers(int nStartLine, int nEndLine) const return paSavedRevisonNumbers; } +void CCrystalTextBuffer:: +RestoreRevisionNumbers(int nStartLine, CDWordArray *paSavedRevisonNumbers) +{ + for (int i = 0; i < paSavedRevisonNumbers->GetSize(); i++) + m_aLines[nStartLine + i].m_dwRevisionNumber = (*paSavedRevisonNumbers)[i]; +} + bool CCrystalTextBuffer:: DeleteText2 (CCrystalTextView * pSource, int nStartLine, int nStartChar, int nEndLine, int nEndChar, int nAction, bool bHistory /*=true*/) diff --git a/Externals/crystaledit/editlib/ccrystaltextbuffer.h b/Externals/crystaledit/editlib/ccrystaltextbuffer.h index b8840f59f..2a9a8fb1d 100644 --- a/Externals/crystaledit/editlib/ccrystaltextbuffer.h +++ b/Externals/crystaledit/editlib/ccrystaltextbuffer.h @@ -187,6 +187,7 @@ public : virtual UndoRecord GetUndoRecord (int nUndoPos) const; virtual CDWordArray *CopyRevisionNumbers(int nStartLine, int nEndLine) const; + virtual void RestoreRevisionNumbers(int nStartLine, CDWordArray *psaSavedRevisionNumbers); // Overridable: provide action description virtual bool GetActionDescription (int nAction, CString & desc) const; diff --git a/Src/GhostTextBuffer.cpp b/Src/GhostTextBuffer.cpp index a21c38df9..8512a6ca8 100644 --- a/Src/GhostTextBuffer.cpp +++ b/Src/GhostTextBuffer.cpp @@ -367,6 +367,19 @@ CopyRevisionNumbers(int nStartLine, int nEndLine) const return paSavedRevisonNumbers; } +void CGhostTextBuffer:: +RestoreRevisionNumbers(int nStartLine, CDWordArray *paSavedRevisonNumbers) +{ + for (int i = 0, j = 0; i < paSavedRevisonNumbers->GetSize(); j++) + { + if ((GetLineFlags(nStartLine + j) & LF_GHOST) == 0) + { + m_aLines[nStartLine + j].m_dwRevisionNumber = (*paSavedRevisonNumbers)[i]; + ++i; + } + } +} + bool CGhostTextBuffer:: DeleteText2 (CCrystalTextView * pSource, int nStartLine, int nStartChar, int nEndLine, int nEndChar, int nAction, bool bHistory /*=true*/) diff --git a/Src/GhostTextBuffer.h b/Src/GhostTextBuffer.h index 3808f03f7..e4ba8f1e8 100644 --- a/Src/GhostTextBuffer.h +++ b/Src/GhostTextBuffer.h @@ -90,6 +90,7 @@ public : virtual UndoRecord GetUndoRecord(int nUndoPos) const; virtual CDWordArray *CopyRevisionNumbers(int nStartLine, int nEndLine) const; + virtual void RestoreRevisionNumbers(int nStartLine, CDWordArray *paSavedRevisonNumbers); public: //@{ -- 2.11.0