t9100-git-svn-basic.sh: use the $( ... ) construct for command substitution
[gitweb.git] / compat / mingw.c
index a168800ae0d1a6ffe741dfda26dbe5133cc4c4fc..5edea29508d06fdc2daea540edadffdebd54173e 100644 (file)
@@ -394,6 +394,23 @@ int mingw_fflush(FILE *stream)
        return ret;
 }
 
+#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];
@@ -2131,7 +2148,7 @@ void mingw_startup()
 
 int uname(struct utsname *buf)
 {
-       DWORD v = GetVersion();
+       unsigned v = (unsigned)GetVersion();
        memset(buf, 0, sizeof(*buf));
        xsnprintf(buf->sysname, sizeof(buf->sysname), "Windows");
        xsnprintf(buf->release, sizeof(buf->release),