OSDN Git Service

Export Progress Dialog Okay
[tortoisegit/TortoiseGitJp.git] / src / Git / Git.cpp
index 08f2f27..481079d 100644 (file)
@@ -15,10 +15,11 @@ CGit::~CGit(void)
 }\r
 \r
 char buffer[4096];\r
-int CGit::RunAsync(CString cmd,PROCESS_INFORMATION *piOut,HANDLE *hReadOut)\r
+int CGit::RunAsync(CString cmd,PROCESS_INFORMATION *piOut,HANDLE *hReadOut,CString *StdioFile)\r
 {\r
        SECURITY_ATTRIBUTES sa;\r
        HANDLE hRead, hWrite;\r
+       HANDLE hStdioFile;\r
 \r
        sa.nLength = sizeof(SECURITY_ATTRIBUTES);\r
        sa.lpSecurityDescriptor=NULL;\r
@@ -28,13 +29,23 @@ int CGit::RunAsync(CString cmd,PROCESS_INFORMATION *piOut,HANDLE *hReadOut)
                return GIT_ERROR_OPEN_PIP;\r
        }\r
        \r
+       if(StdioFile)\r
+       {\r
+               hStdioFile=CreateFile(*StdioFile,GENERIC_WRITE,FILE_SHARE_READ   |   FILE_SHARE_WRITE,   \r
+                       &sa,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);  \r
+       }\r
+\r
        STARTUPINFO si;\r
        PROCESS_INFORMATION pi;\r
        si.cb=sizeof(STARTUPINFO);\r
        GetStartupInfo(&si);\r
 \r
        si.hStdError=hWrite;\r
-       si.hStdOutput=hWrite;\r
+       if(StdioFile)\r
+               si.hStdOutput=hStdioFile;\r
+       else\r
+               si.hStdOutput=hWrite;\r
+\r
        si.wShowWindow=SW_HIDE;\r
        si.dwFlags=STARTF_USESTDHANDLES|STARTF_USESHOWWINDOW;\r
 \r