diff options
author | René Scharfe <l.s.r@web.de> | 2022-06-15 19:01:14 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2022-06-15 22:19:47 +0200 |
commit | dfce1186c6034d6f4ea283f5178fd25cbd8f4fc0 (patch) | |
tree | 08043aaec98a9873740f1115bc35e7dced8131c8 /archive-tar.c | |
parent | archive: rename archiver data field to filter_command (diff) | |
download | git-dfce1186c6034d6f4ea283f5178fd25cbd8f4fc0.tar.xz git-dfce1186c6034d6f4ea283f5178fd25cbd8f4fc0.zip |
archive-tar: factor out write_block()
All tar archive writes have the same size and are done to the same file
descriptor. Move them to a common function, write_block(), to reduce
code duplication and make it easy to change the destination.
Original-patch-by: Rohit Ashiwal <rohit.ashiwal265@gmail.com>
Signed-off-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'archive-tar.c')
-rw-r--r-- | archive-tar.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/archive-tar.c b/archive-tar.c index 2717e34a1d..4e6a3deb80 100644 --- a/archive-tar.c +++ b/archive-tar.c @@ -38,11 +38,16 @@ static int write_tar_filter_archive(const struct archiver *ar, #define USTAR_MAX_MTIME 077777777777ULL #endif +static void write_block(const void *buf) +{ + write_or_die(1, buf, BLOCKSIZE); +} + /* writes out the whole block, but only if it is full */ static void write_if_needed(void) { if (offset == BLOCKSIZE) { - write_or_die(1, block, BLOCKSIZE); + write_block(block); offset = 0; } } @@ -66,7 +71,7 @@ static void do_write_blocked(const void *data, unsigned long size) write_if_needed(); } while (size >= BLOCKSIZE) { - write_or_die(1, buf, BLOCKSIZE); + write_block(buf); size -= BLOCKSIZE; buf += BLOCKSIZE; } @@ -101,10 +106,10 @@ static void write_trailer(void) { int tail = BLOCKSIZE - offset; memset(block + offset, 0, tail); - write_or_die(1, block, BLOCKSIZE); + write_block(block); if (tail < 2 * RECORDSIZE) { memset(block, 0, offset); - write_or_die(1, block, BLOCKSIZE); + write_block(block); } } |