OSDN Git Service

Fix crash when input character at filter box
authorFrank Li <lznuaa@gmail.com>
Tue, 12 Jan 2010 13:09:36 +0000 (21:09 +0800)
committerFrank Li <lznuaa@gmail.com>
Tue, 12 Jan 2010 13:09:36 +0000 (21:09 +0800)
Signed-off-by: Frank Li <lznuaa@gmail.com>
src/TortoiseProc/GitLogListBase.cpp
src/TortoiseProc/LogDlg.cpp

index 3bd3f97..cb46112 100644 (file)
@@ -1763,7 +1763,7 @@ int CGitLogListBase::BeginFetchLog()
        int mask;\r
        mask = CGit::LOG_INFO_ONLY_HASH | CGit::LOG_INFO_BOUNDARY;\r
 //     if(this->m_bAllBranch)\r
-       mask |= m_ShowMask;\r
+       mask |= m_ShowMask |CGit::LOG_INFO_ALL_BRANCH;\r
        \r
        this->m_arShownList.RemoveAll();\r
 \r
@@ -2341,7 +2341,7 @@ void CGitLogListBase::RecalculateShownList(CPtrArray * pShownlist)
                                ATLTRACE(_T("messge = \"%s\"\n"),m_logEntries.GetGitRevAt(i).m_Subject);\r
                                if (regex_search(wstring((LPCTSTR)m_logEntries.GetGitRevAt(i).m_Subject), pat, flags)&&IsEntryInDateRange(i))\r
                                {\r
-                                       pShownlist->Add(&m_logEntries[i]);\r
+                                       pShownlist->Add(&m_logEntries.GetGitRevAt(i));\r
                                        continue;\r
                                }\r
 \r
@@ -2394,7 +2394,7 @@ void CGitLogListBase::RecalculateShownList(CPtrArray * pShownlist)
                        }\r
                        if ((m_nSelectedFilter == LOGFILTER_ALL)||(m_nSelectedFilter == LOGFILTER_REVS))\r
                        {\r
-                               sRev.Format(_T("%s"), m_logEntries.GetGitRevAt(i).m_CommitHash);\r
+                               sRev.Format(_T("%s"), m_logEntries.GetGitRevAt(i).m_CommitHash.ToString());\r
                                if (regex_search(wstring((LPCTSTR)sRev), pat, flags)&&IsEntryInDateRange(i))\r
                                {\r
                                        pShownlist->Add(&m_logEntries.GetGitRevAt(i));\r
@@ -2434,7 +2434,7 @@ void CGitLogListBase::RecalculateShownList(CPtrArray * pShownlist)
                                msg = msg.MakeLower();\r
                                if ((msg.Find(find) >= 0)&&(IsEntryInDateRange(i)))\r
                                {\r
-                                       pShownlist->Add(&m_logEntries[i]);\r
+                                       pShownlist->Add(&m_logEntries.GetGitRevAt(i));\r
                                        continue;\r
                                }\r
                        }\r
index b67f3ea..c693349 100644 (file)
@@ -2515,14 +2515,15 @@ void CLogDlg::OnBnClickedCheckStoponcopy()
 void CLogDlg::UpdateLogInfoLabel()\r
 {\r
 \r
-       git_revnum_t rev1 ;\r
-       git_revnum_t rev2 ;\r
+       CGitHash rev1 ;\r
+       CGitHash rev2 ;\r
        long selectedrevs = 0;\r
        int count =m_LogList.m_arShownList.GetCount();\r
        int start = 0;\r
        if (count)\r
        {\r
-               if(this->m_LogList.m_bShowWC)\r
+               rev1 = (reinterpret_cast<GitRev*>(m_LogList.m_arShownList.GetAt(0)))->m_CommitHash;\r
+               if(this->m_LogList.m_bShowWC && rev1.IsEmpty())\r
                        start = 1;\r
                rev1 = (reinterpret_cast<GitRev*>(m_LogList.m_arShownList.GetAt(start)))->m_CommitHash;\r
                //pLogEntry = reinterpret_cast<PLOGENTRYDATA>(m_arShownList.GetAt(m_arShownList.GetCount()-1));\r
@@ -2530,7 +2531,10 @@ void CLogDlg::UpdateLogInfoLabel()
                selectedrevs = m_LogList.GetSelectedCount();\r
        }\r
        CString sTemp;\r
-       sTemp.Format(_T("Showing %ld revision(s), from revision %s to revision %s - %ld revision(s) selected"), count - start, rev2.Left(6), rev1.Left(6), selectedrevs);\r
+       sTemp.Format(_T("Showing %ld revision(s), from revision %s to revision %s - %ld revision(s) selected"), \r
+               count - start,\r
+               rev2.ToString().Left(6), rev1.ToString().Left(6), selectedrevs);\r
+\r
        m_sLogInfo = sTemp;\r
 \r
        UpdateData(FALSE);\r