X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=unpack-objects.c;h=815a1b382b1f92686efd00bee5794a8480d7f7b7;hb=84f11a43358b77a936770b908cb245ae1ad86c58;hp=cfd61ae6b08c0635da4044ec3ab09f40c3178632;hpb=53228a5fb8e80f87803e4a3ba8ed25b70fb4871d;p=git.git diff --git a/unpack-objects.c b/unpack-objects.c index cfd61ae6..815a1b38 100644 --- a/unpack-objects.c +++ b/unpack-objects.c @@ -31,12 +31,10 @@ static void * fill(int min) offset = 0; } do { - int ret = read(0, buffer + len, sizeof(buffer) - len); + int ret = xread(0, buffer + len, sizeof(buffer) - len); if (ret <= 0) { if (!ret) die("early EOF"); - if (errno == EAGAIN || errno == EINTR) - continue; die("read error on input: %s", strerror(errno)); } len += ret; @@ -248,13 +246,12 @@ static void unpack_all(void) { int i; struct pack_header *hdr = fill(sizeof(struct pack_header)); - unsigned version = ntohl(hdr->hdr_version); unsigned nr_objects = ntohl(hdr->hdr_entries); if (ntohl(hdr->hdr_signature) != PACK_SIGNATURE) die("bad pack file"); - if (version != PACK_VERSION) - die("unable to handle pack file version %d", version); + if (!pack_version_ok(hdr->hdr_version)) + die("unknown pack file version %d", ntohl(hdr->hdr_version)); fprintf(stderr, "Unpacking %d objects\n", nr_objects); use(sizeof(struct pack_header)); @@ -271,6 +268,8 @@ int main(int argc, char **argv) setup_git_directory(); + quiet = !isatty(2); + for (i = 1 ; i < argc; i++) { const char *arg = argv[i]; @@ -299,14 +298,9 @@ int main(int argc, char **argv) /* Write the last part of the buffer to stdout */ while (len) { - int ret = write(1, buffer + offset, len); - if (!ret) + int ret = xwrite(1, buffer + offset, len); + if (ret <= 0) break; - if (ret < 0) { - if (errno == EAGAIN || errno == EINTR) - continue; - break; - } len -= ret; offset += ret; }