From: "Randall S. Becker" <rsbecker@xxxxxxxxxxxxx> This change is required because some platforms do not support file writes of arbitrary sizes (e.g, NonStop). xwrite ends up truncating the output to the maximum single I/O size possible for the destination device if the supplied len value exceeds the supported value. Replacing xwrite with write_in_full corrects this problem. Future optimisations could remove the loop in favour of just calling write_in_full. Signed-off-by: Randall S. Becker <rsbecker@xxxxxxxxxxxxx> --- builtin/unpack-objects.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builtin/unpack-objects.c b/builtin/unpack-objects.c index e0a701f2b3..6935c4574e 100644 --- a/builtin/unpack-objects.c +++ b/builtin/unpack-objects.c @@ -680,7 +680,7 @@ int cmd_unpack_objects(int argc, const char **argv, const char *prefix UNUSED) /* Write the last part of the buffer to stdout */ while (len) { - int ret = xwrite(1, buffer + offset, len); + int ret = write_in_full(1, buffer + offset, len); if (ret <= 0) break; len -= ret; -- 2.42.1