From f11743c4810420779ee0d8ab32afbc60e7e2caf9 Mon Sep 17 00:00:00 2001 From: Johan t Hart Date: Wed, 4 Feb 2009 00:35:20 +0100 Subject: [PATCH] CGit: Workaround: Flush git output when command should be aborted. Still waits for git.exe to exit --- src/Git/Git.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Git/Git.cpp b/src/Git/Git.cpp index 4daf111..eecb872 100644 --- a/src/Git/Git.cpp +++ b/src/Git/Git.cpp @@ -290,12 +290,16 @@ int CGit::Run(CGitCall* pcall) DWORD readnumber; BYTE data[CALL_OUTPUT_READ_CHUNK_SIZE]; + bool bAborted=false; while(ReadFile(hRead,data,CALL_OUTPUT_READ_CHUNK_SIZE,&readnumber,NULL)) { //Todo: when OnOutputData() returns 'true', abort git-command. Send CTRL-C signal? - pcall->OnOutputData(data,readnumber); + if(!bAborted)//For now, flush output when command aborted. + if(pcall->OnOutputData(data,readnumber)) + bAborted=true; } - pcall->OnEnd(); + if(!bAborted) + pcall->OnEnd(); CloseHandle(pi.hThread); -- 2.11.0