Thread (1 message) 1 message, 1 author, 2016-06-15

Re: [PATCH v2] mingw: emulate write(2) that fails with a EPIPE

From: Junio C Hamano <hidden>
Date: 2016-06-15 23:07:32

Johannes Sixt [off-list ref] writes:
quoted
+#undef write
+ssize_t mingw_write(int fd, const void *buf, size_t len)
+{
+	ssize_t result = write(fd, buf, len);
+
+	if (result < 0 && errno == EINVAL && buf) {
+		/* check if fd is a pipe */
+		HANDLE h = (HANDLE) _get_osfhandle(fd);
+		if (GetFileType(h) == FILE_TYPE_PIPE)
+			errno = EPIPE;
+		else
+			errno = EINVAL;
+	}
+
+	return result;
+}
+
  int mingw_access(const char *filename, int mode)
  {
  	wchar_t wfilename[MAX_PATH];
Looks good. I tested the patch, and it fixes the failure exposed by
t5571.11.

Acked-by: Johannes Sixt <redacted>

Thanks!
Thanks, both.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help