Skip to content
Snippets Groups Projects
Commit 2b86292e authored by Johannes Schindelin's avatar Johannes Schindelin Committed by Junio C Hamano
Browse files

mingw: emulate write(2) that fails with a EPIPE

On Windows, when writing to a pipe fails, errno is always
EINVAL. However, Git expects it to be EPIPE.

According to the documentation, there are two cases in which write()
triggers EINVAL: the buffer is NULL, or the length is odd but the mode
is 16-bit Unicode (the broken pipe is not mentioned as possible cause).
Git never sets the file mode to anything but binary, therefore we know
that errno should actually be EPIPE if it is EINVAL and the buffer is
not NULL.

See https://msdn.microsoft.com/en-us/library/1570wh78.aspx

 for more
details.

This works around t5571.11 failing with v2.6.4 on Windows.

Signed-off-by: default avatarJohannes Schindelin <johannes.schindelin@gmx.de>
Acked-by: default avatarJohannes Sixt <j6t@kdbg.org>
Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
parent 1ff88560
Branches
Tags
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment