diff options
author | Junio C Hamano <gitster@pobox.com> | 2014-01-27 10:44:59 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-01-27 10:44:59 -0800 |
commit | 7b4e2b7e6aba677fcefffde79d0d3a53ae623b4f (patch) | |
tree | ece06476fdfbb8ea18973ff3b1eddd62cea1ca39 | |
parent | de20e4472157d0ed53bdc6374185a2ce3c7c9f3d (diff) | |
parent | c9df6f4574c0174efd5000e0e99dca97ddb5034c (diff) | |
download | git-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.c | 2 | ||||
-rw-r--r-- | compat/mingw.c | 17 | ||||
-rw-r--r-- | compat/mingw.h | 3 | ||||
-rw-r--r-- | streaming.c | 2 | ||||
-rw-r--r-- | transport-helper.c | 5 |
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) { |