aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2014-01-27 10:44:59 -0800
committerJunio C Hamano <gitster@pobox.com>2014-01-27 10:44:59 -0800
commit7b4e2b7e6aba677fcefffde79d0d3a53ae623b4f (patch)
treeece06476fdfbb8ea18973ff3b1eddd62cea1ca39
parentde20e4472157d0ed53bdc6374185a2ce3c7c9f3d (diff)
parentc9df6f4574c0174efd5000e0e99dca97ddb5034c (diff)
downloadgit-7b4e2b7e6aba677fcefffde79d0d3a53ae623b4f.tar.gz
git-7b4e2b7e6aba677fcefffde79d0d3a53ae623b4f.tar.xz
Merge branch 'ef/mingw-write'
* ef/mingw-write: mingw: remove mingw_write prefer xwrite instead of write
-rw-r--r--builtin/merge.c2
-rw-r--r--compat/mingw.c17
-rw-r--r--compat/mingw.h3
-rw-r--r--streaming.c2
-rw-r--r--transport-helper.c5
5 files changed, 4 insertions, 25 deletions
diff --git a/builtin/merge.c b/builtin/merge.c
index 4941a6c36..e576a7fdc 100644
--- a/builtin/merge.c
+++ b/builtin/merge.c
@@ -367,7 +367,7 @@ static void squash_message(struct commit *commit, struct commit_list *remotehead
sha1_to_hex(commit->object.sha1));
pretty_print_commit(&ctx, commit, &out);
}
- if (write(fd, out.buf, out.len) < 0)
+ if (write_in_full(fd, out.buf, out.len) != out.len)
die_errno(_("Writing SQUASH_MSG"));
if (close(fd))
die_errno(_("Finishing SQUASH_MSG"));
diff --git a/compat/mingw.c b/compat/mingw.c
index fecb98bcf..e9892f8ee 100644
--- a/compat/mingw.c
+++ b/compat/mingw.c
@@ -304,23 +304,6 @@ int mingw_open (const char *filename, int oflags, ...)
return fd;
}
-#undef write
-ssize_t mingw_write(int fd, const void *buf, size_t count)
-{
- /*
- * While write() calls to a file on a local disk are translated
- * into WriteFile() calls with a maximum size of 64KB on Windows
- * XP and 256KB on Vista, no such cap is placed on writes to
- * files over the network on Windows XP. Unfortunately, there
- * seems to be a limit of 32MB-28KB on X64 and 64MB-32KB on x86;
- * bigger writes fail on Windows XP.
- * So we cap to a nice 31MB here to avoid write failures over
- * the net without changing the number of WriteFile() calls in
- * the local case.
- */
- return write(fd, buf, min(count, 31 * 1024 * 1024));
-}
-
static BOOL WINAPI ctrl_ignore(DWORD type)
{
return TRUE;
diff --git a/compat/mingw.h b/compat/mingw.h
index 92cd728d3..e033e720c 100644
--- a/compat/mingw.h
+++ b/compat/mingw.h
@@ -180,9 +180,6 @@ int mingw_rmdir(const char *path);
int mingw_open (const char *filename, int oflags, ...);
#define open mingw_open
-ssize_t mingw_write(int fd, const void *buf, size_t count);
-#define write mingw_write
-
int mingw_fgetc(FILE *stream);
#define fgetc mingw_fgetc
diff --git a/streaming.c b/streaming.c
index 9659f18be..d7c9f32f0 100644
--- a/streaming.c
+++ b/streaming.c
@@ -538,7 +538,7 @@ int stream_blob_to_fd(int fd, unsigned const char *sha1, struct stream_filter *f
goto close_and_exit;
}
if (kept && (lseek(fd, kept - 1, SEEK_CUR) == (off_t) -1 ||
- write(fd, "", 1) != 1))
+ xwrite(fd, "", 1) != 1))
goto close_and_exit;
result = 0;
diff --git a/transport-helper.c b/transport-helper.c
index 087f617d3..ad72fbd53 100644
--- a/transport-helper.c
+++ b/transport-helper.c
@@ -1135,9 +1135,8 @@ static int udt_do_write(struct unidirectional_transfer *t)
return 0; /* Nothing to write. */
transfer_debug("%s is writable", t->dest_name);
- bytes = write(t->dest, t->buf, t->bufuse);
- if (bytes < 0 && errno != EWOULDBLOCK && errno != EAGAIN &&
- errno != EINTR) {
+ bytes = xwrite(t->dest, t->buf, t->bufuse);
+ if (bytes < 0 && errno != EWOULDBLOCK) {
error("write(%s) failed: %s", t->dest_name, strerror(errno));
return -1;
} else if (bytes > 0) {