#endif
#include "wimlib.h"
-#include "wimlib/buffer_io.h"
+#include "wimlib/endianness.h"
#include "wimlib/error.h"
#include "wimlib/file_io.h"
#include "wimlib/lookup_table.h"
write_flags &= WIMLIB_WRITE_MASK_PUBLIC;
- ret = wim_checksum_unhashed_streams(w);
- if (ret)
- return ret;
-
swm_name_len = tstrlen(swm_name);
tchar swm_base_name[swm_name_len + 20];
for (int i = 1; i <= total_parts; i++) {
const tchar *part_name;
int part_fd;
- u8 part_data_buf[4];
- size_t bytes_written;
+ int ret2;
if (i == 1) {
part_name = swm_name;
ret = WIMLIB_ERR_OPEN;
goto out;
}
- put_u16(&part_data_buf[0], i);
- put_u16(&part_data_buf[2], total_parts);
- bytes_written = full_pwrite(part_fd, part_data_buf,
- sizeof(part_data_buf), 40);
- ret = close(part_fd);
- if (bytes_written != sizeof(part_data_buf) || ret != 0) {
+ ret = write_header_part_data(i, total_parts, part_fd);
+ ret2 = close(part_fd);
+ if (ret == 0 && ret2 != 0)
+ ret = WIMLIB_ERR_WRITE;
+ if (ret) {
ERROR_WITH_ERRNO("Error updating header of `%"TS"'",
part_name);
- ret = WIMLIB_ERR_WRITE;
goto out;
}
}