X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=archive-zip.c;h=444e1623db66fe4f5d8983e1e9e2cf4083b005b4;hb=2abd31b07864049f0352d86c0c90413123f40945;hp=7c4984886f14aaba5d6a71c3b9213934b45d713a;hpb=2603fa5fb358ee7834bc9e1a2e391f69d8fce815;p=git.git diff --git a/archive-zip.c b/archive-zip.c index 7c4984886..444e1623d 100644 --- a/archive-zip.c +++ b/archive-zip.c @@ -182,10 +182,10 @@ static int write_zip_entry(const unsigned char *sha1, goto out; } - if (S_ISDIR(mode)) { + if (S_ISDIR(mode) || S_ISGITLINK(mode)) { method = 0; attr2 = 16; - result = READ_TREE_RECURSIVE; + result = (S_ISDIR(mode) ? READ_TREE_RECURSIVE : 0); out = NULL; uncompressed_size = 0; compressed_size = 0; @@ -195,7 +195,7 @@ static int write_zip_entry(const unsigned char *sha1, if (S_ISREG(mode) && zlib_compression_level != 0) method = 8; result = 0; - buffer = read_sha1_file(sha1, &type, &size); + buffer = convert_sha1_file(path, sha1, mode, &type, &size); if (!buffer) die("cannot read %s", sha1_to_hex(sha1)); crc = crc32(crc, buffer, size);