Windows: correct detection of EISDIR in mingw_open()
commitba6fad02b6cbbfbf5acf3303b4d8ddfd8624fdb2
authorJohannes Sixt <j6t@kdbg.org>
Sun, 16 Nov 2014 21:06:26 +0000 (16 22:06 +0100)
committerJunio C Hamano <gitster@pobox.com>
Mon, 17 Nov 2014 16:45:50 +0000 (17 08:45 -0800)
treea60a2929fd97c96f05f7122df9667a7a727a81d1
parent7fa1365c54c28b3cd9375539f381b54061a1880d
Windows: correct detection of EISDIR in mingw_open()

According to the Linux open(2) man page, open() must return EISDIR
if a directory was attempted to be opened for writing. Our emulation
in mingw_open() does not get this right: it checks only for O_CREAT.

Fix it to check for a write request.

This fixes a failure in reflog handling, which opens files with
O_APPEND|O_WRONLY, but without O_CREAT, and expects EISDIR when the
named file happens to be a directory.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
compat/mingw.c