+void CTortoiseGitBlameView::OnViewNext()\r
+{\r
+ FindNextLine(this->m_SelectedHash,false);\r
+}\r
+void CTortoiseGitBlameView::OnViewPrev()\r
+{\r
+ FindNextLine(this->m_SelectedHash,true);\r
+}\r
+\r
+int CTortoiseGitBlameView::FindNextLine(CString CommitHash,bool bUpOrDown)\r
+{\r
+ LONG_PTR line = SendEditor(SCI_GETFIRSTVISIBLELINE);\r
+ LONG_PTR startline =line;\r
+ bool findNoMatch =false;\r
+ while(line>=0 && line<m_CommitHash.size())\r
+ {\r
+ if(m_CommitHash[line]!=CommitHash)\r
+ {\r
+ findNoMatch=true;\r
+ }\r
+\r
+ if(m_CommitHash[line] == CommitHash && findNoMatch)\r
+ {\r
+ if( line == startline+2 )\r
+ {\r
+ findNoMatch=false;\r
+ }\r
+ else\r
+ {\r
+ if( bUpOrDown )\r
+ {\r
+ line=FindFirstLine(CommitHash,line);\r
+ }\r
+ SendEditor(SCI_LINESCROLL,0,line-startline-2);\r
+ return line;\r
+ }\r
+ }\r
+ if(bUpOrDown)\r
+ line--;\r
+ else\r
+ line++;\r
+ }\r
+ return -1;\r
+}
\ No newline at end of file