Changeset View
Changeset View
Standalone View
Standalone View
head/usr.bin/ar/write.c
Show First 20 Lines • Show All 580 Lines • ▼ Show 20 Lines | |||||
} | } | ||||
/* | /* | ||||
* Wrapper for archive_write_data(). | * Wrapper for archive_write_data(). | ||||
*/ | */ | ||||
static void | static void | ||||
write_data(struct bsdar *bsdar, struct archive *a, const void *buf, size_t s) | write_data(struct bsdar *bsdar, struct archive *a, const void *buf, size_t s) | ||||
{ | { | ||||
ssize_t written; | |||||
prefault_buffer(buf, s); | prefault_buffer(buf, s); | ||||
if (archive_write_data(a, buf, s) != (ssize_t)s) | while (s > 0) { | ||||
written = archive_write_data(a, buf, s); | |||||
if (written < 0) | |||||
bsdar_errc(bsdar, EX_SOFTWARE, 0, "%s", | bsdar_errc(bsdar, EX_SOFTWARE, 0, "%s", | ||||
archive_error_string(a)); | archive_error_string(a)); | ||||
buf = (const char *)buf + written; | |||||
s -= written; | |||||
} | |||||
} | } | ||||
/* | /* | ||||
* Write the resulting archive members. | * Write the resulting archive members. | ||||
*/ | */ | ||||
static void | static void | ||||
write_objs(struct bsdar *bsdar) | write_objs(struct bsdar *bsdar) | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 312 Lines • Show Last 20 Lines |