Skip to content

Commit 0259f42

Browse files
pks-tgitster
authored andcommitted
compat/zlib: provide stubs for deflateSetHeader()
The function `deflateSetHeader()` has been introduced with zlib v1.2.2.1, so we don't use it when linking against an older version of it. Refactor the code to instead provide a central stub via "compat/zlib.h" so that we can adapt it based on whether or not we use zlib-ng in a subsequent commit. Signed-off-by: Patrick Steinhardt <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 9fef2ee commit 0259f42

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

archive-tar.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -473,9 +473,7 @@ static const char internal_gzip_command[] = "git archive gzip";
473473
static int write_tar_filter_archive(const struct archiver *ar,
474474
struct archiver_args *args)
475475
{
476-
#if ZLIB_VERNUM >= 0x1221
477476
struct gz_header_s gzhead = { .os = 3 }; /* Unix, for reproducibility */
478-
#endif
479477
struct strbuf cmd = STRBUF_INIT;
480478
struct child_process filter = CHILD_PROCESS_INIT;
481479
int r;
@@ -486,10 +484,8 @@ static int write_tar_filter_archive(const struct archiver *ar,
486484
if (!strcmp(ar->filter_command, internal_gzip_command)) {
487485
write_block = tgz_write_block;
488486
git_deflate_init_gzip(&gzstream, args->compression_level);
489-
#if ZLIB_VERNUM >= 0x1221
490487
if (deflateSetHeader(&gzstream.z, &gzhead) != Z_OK)
491488
BUG("deflateSetHeader() called too late");
492-
#endif
493489
gzstream.next_out = outbuf;
494490
gzstream.avail_out = sizeof(outbuf);
495491

compat/zlib-compat.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,17 @@
77
# define deflateBound(c,s) ((s) + (((s) + 7) >> 3) + (((s) + 63) >> 6) + 11)
88
#endif
99

10+
#if ZLIB_VERNUM < 0x1221
11+
struct gz_header_s {
12+
int os;
13+
};
14+
15+
static int deflateSetHeader(z_streamp strm, struct gz_header_s *head)
16+
{
17+
(void)(strm);
18+
(void)(head);
19+
return Z_OK;
20+
}
21+
#endif
22+
1023
#endif /* COMPAT_ZLIB_H */

0 commit comments

Comments
 (0)