summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Schindelin <johannes.schindelin@gmx.de>2009-06-01 06:04:16 (GMT)
committerJunio C Hamano <gitster@pobox.com>2009-06-01 07:08:54 (GMT)
commit492f70913e11de19bc4cb197b1fe195c645b89c9 (patch)
tree2f564c3827c5d3b169e83bb3a7582106cf626da5
parent900a5d075e8b48025439966dc3863189874bae3b (diff)
downloadgit-492f70913e11de19bc4cb197b1fe195c645b89c9.zip
git-492f70913e11de19bc4cb197b1fe195c645b89c9.tar.gz
git-492f70913e11de19bc4cb197b1fe195c645b89c9.tar.bz2
Work around a regression in Windows 7, causing erase_in_line() to crash sometimes
The function FillConsoleOutputCharacterA() was pretty content in XP to take a NULL pointer if we did not want to store the number of written columns. In Windows 7, it crashes, but only when called from within Git Bash, not from within cmd.exe. Go figure. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Steffen Prohaska <prohaska@zib.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--compat/winansi.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/compat/winansi.c b/compat/winansi.c
index 44dc293..9217c24 100644
--- a/compat/winansi.c
+++ b/compat/winansi.c
@@ -80,6 +80,7 @@ static void set_console_attr(void)
static void erase_in_line(void)
{
CONSOLE_SCREEN_BUFFER_INFO sbi;
+ DWORD dummy; /* Needed for Windows 7 (or Vista) regression */
if (!console)
return;
@@ -87,7 +88,7 @@ static void erase_in_line(void)
GetConsoleScreenBufferInfo(console, &sbi);
FillConsoleOutputCharacterA(console, ' ',
sbi.dwSize.X - sbi.dwCursorPosition.X, sbi.dwCursorPosition,
- NULL);
+ &dummy);
}