summaryrefslogtreecommitdiff
path: root/t/check-non-portable-shell.pl
diff options
context:
space:
mode:
authorLibravatar Johannes Schindelin <johannes.schindelin@gmx.de>2015-12-17 18:08:15 +0100
committerLibravatar Junio C Hamano <gitster@pobox.com>2015-12-21 08:59:04 -0800
commit2b86292ed1756a66439f79ceda88dfc86a10dfa9 (patch)
treec0ff36f0a1ddf08a2d08d16f5a96d379f2deb5f5 /t/check-non-portable-shell.pl
parentMerge branch 'sg/lock-file-commit-error' into maint (diff)
downloadtgif-2b86292ed1756a66439f79ceda88dfc86a10dfa9.tar.xz
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: Johannes Schindelin <johannes.schindelin@gmx.de> Acked-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/check-non-portable-shell.pl')
0 files changed, 0 insertions, 0 deletions