From f874e5013fea5959abbf91c746b6b19cd0801f44 Mon Sep 17 00:00:00 2001 From: Frank Li Date: Thu, 23 Jul 2009 23:58:01 +0800 Subject: [PATCH] Sync Dialog progress command output correct handle \r Signed-off-by: Frank Li --- src/TortoiseProc/SyncDlg.cpp | 13 ++++++------- src/TortoiseProc/SyncDlg.h | 2 ++ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/TortoiseProc/SyncDlg.cpp b/src/TortoiseProc/SyncDlg.cpp index 9795415..e1185a6 100644 --- a/src/TortoiseProc/SyncDlg.cpp +++ b/src/TortoiseProc/SyncDlg.cpp @@ -35,6 +35,7 @@ CSyncDlg::CSyncDlg(CWnd* pParent /*=NULL*/) { m_pTooltip=&this->m_tooltips; m_bInited=false; + m_CmdOutCurrentPos=0; } CSyncDlg::~CSyncDlg() @@ -440,20 +441,18 @@ void CSyncDlg::ParserCmdOutput(TCHAR ch) if( ch == _T('\r') ) { if(linenum>0) - index = this->m_ctrlCmdOut.LineIndex(linenum-1); + m_CmdOutCurrentPos = this->m_ctrlCmdOut.LineIndex(linenum-1); else - index = 0; + m_CmdOutCurrentPos = 0; //TRACE(_T("line %d - %d\n"),index,m_ctrlCmdOut.GetTextLength()); }else - index = m_ctrlCmdOut.GetTextLength(); - - this->m_ctrlCmdOut.SetSel(index,m_ctrlCmdOut.GetTextLength()-1); + m_CmdOutCurrentPos++; + + this->m_ctrlCmdOut.SetSel(m_CmdOutCurrentPos,m_CmdOutCurrentPos+1); if( ch != _T('\r') ) this->m_ctrlCmdOut.ReplaceSel(CString(ch)); - else - this->m_ctrlCmdOut.ReplaceSel(CString(_T(""))); int firstline = m_ctrlCmdOut.GetFirstVisibleLine(); if( linenum - firstline > 4 ) diff --git a/src/TortoiseProc/SyncDlg.h b/src/TortoiseProc/SyncDlg.h index 03432d2..c40ba20 100644 --- a/src/TortoiseProc/SyncDlg.h +++ b/src/TortoiseProc/SyncDlg.h @@ -51,6 +51,7 @@ protected: CRegDWORD m_regPullButton; CRegDWORD m_regPushButton; CMFCTabCtrl m_ctrlTabCtrl; + CBalloon m_tooltips; BOOL m_bInited; @@ -64,6 +65,7 @@ protected: CRichEditCtrl m_ctrlCmdOut; CTGitPathList m_arOutChangeList; + int m_CmdOutCurrentPos; CWinThread* m_pThread; -- 2.11.0