+ pWnd->PostMessage(MSG_PROGRESSDLG_UPDATE_UI,MSG_PROGRESSDLG_START,0);\r
+\r
+ if(pdata)\r
+ pdata->clear();\r
+ \r
+ for(int i=0;i<cmdlist.size();i++)\r
+ {\r
+ if(cmdlist[i].IsEmpty())\r
+ continue;\r
+\r
+ if (bShowCommand)\r
+ {\r
+ CString str;\r
+ str+= cmdlist[i]+_T("\n\n");\r
+ for(int j=0;j<str.GetLength();j++)\r
+ {\r
+ if(pdata)\r
+ pdata->push_back(str[j]);\r
+ else\r
+ pWnd->PostMessage(MSG_PROGRESSDLG_UPDATE_UI,MSG_PROGRESSDLG_RUN,str[j]);\r
+ }\r
+ if(pdata)\r
+ pWnd->PostMessage(MSG_PROGRESSDLG_UPDATE_UI,MSG_PROGRESSDLG_RUN,0);\r
+ }\r
+\r
+ g_Git.RunAsync(cmdlist[i],&pi, &hRead,pfilename);\r
+\r
+ DWORD readnumber;\r
+ char buffer[2];\r
+ CString output;\r
+ while(ReadFile(hRead,buffer,1,&readnumber,NULL))\r
+ {\r
+ buffer[readnumber]=0;\r
+ \r
+ if(pdata)\r
+ {\r
+ pdata->push_back((TCHAR)buffer[0]);\r
+\r
+ if(buffer[0] == '\r' || buffer[0] == '\n')\r
+ pWnd->PostMessage(MSG_PROGRESSDLG_UPDATE_UI,MSG_PROGRESSDLG_RUN,0);\r
+ }else\r
+ pWnd->PostMessage(MSG_PROGRESSDLG_UPDATE_UI,MSG_PROGRESSDLG_RUN,buffer[0]);\r
+ }\r
+ \r
+ CloseHandle(pi.hThread);\r
+\r
+ WaitForSingleObject(pi.hProcess, INFINITE);\r
+ \r
+ DWORD status=0;\r
+ if(!GetExitCodeProcess(pi.hProcess,&status) || *bAbort)\r
+ {\r
+ CloseHandle(pi.hProcess);\r
+\r
+ CloseHandle(hRead);\r
+\r
+ pWnd->PostMessage(MSG_PROGRESSDLG_UPDATE_UI,MSG_PROGRESSDLG_FAILED,0);\r
+ return GIT_ERROR_GET_EXIT_CODE;\r
+ }\r
+ ret |= status;\r
+ }\r
+\r
+ CloseHandle(pi.hProcess);\r
+\r
+ CloseHandle(hRead);\r
+\r
+ pWnd->PostMessage(MSG_PROGRESSDLG_UPDATE_UI,MSG_PROGRESSDLG_END,0);\r
+\r
+ return ret;\r
+\r
+}\r
+\r
+UINT CProgressDlg::ProgressThread()\r
+{\r
+ \r
+ m_GitCmdList.push_back(m_GitCmd);\r