}
break;
}
- case 0x414C:
+ case 0x6c65:
{
- /* Experimental 'LA' field */
+ /* Experimental 'el' field */
int bitmap, bitmap_last;
if (datasize < 1)
archive_le16enc(zip64_start + 2, e - (zip64_start + 4));
}
- { /* Experimental 'LA' extension to improve streaming. */
+ { /* Experimental 'el' extension to improve streaming. */
unsigned char *external_info = e;
- memcpy(e, "LA\000\000", 4); // 0x414C + 2-byte length
+ memcpy(e, "el\000\000", 4); // 0x6c65 + 2-byte length
e += 4;
- e[0] = 5; /* bitmap of included fields */
+ e[0] = 7; /* bitmap of included fields */
e += 1;
archive_le16enc(e, /* "Version created by" */
3 * 256 + version_needed);
archive_le32enc(e, /* external file attributes */
archive_entry_mode(zip->entry) << 16);
e += 4;
+ // Libarchive does not currently support file comments.
+
archive_le16enc(external_info + 2, e - (external_info + 4));
}
assertEqualInt(i4(q + 11), file_gid); /* 'Ux' GID */
q = q + 4 + i2(q + 2);
- assertEqualInt(i2(q), 0x414c); /* 'LA' experimental extension header */
+ assertEqualInt(i2(q), 0x6c65); /* 'el' experimental extension header */
assertEqualInt(i2(q + 2), 9); /* size */
assertEqualInt(q[4], 7); /* Bitmap of fields included. */
assertEqualInt(i2(q + 5) >> 8, 3); /* system & version made by */
assertEqualInt(i4(q + 11), folder_gid); /* 'ux' GID */
q = q + 4 + i2(q + 2);
- assertEqualInt(i2(q), 0x414c); /* 'LA' experimental extension header */
+ assertEqualInt(i2(q), 0x6c65); /* 'el' experimental extension header */
assertEqualInt(i2(q + 2), 9); /* size */
assertEqualInt(q[4], 7); /* bitmap of fields */
assertEqualInt(i2(q + 5) >> 8, 3); /* system & version made by */
assertEqualInt(i4(p + 11), file_gid); /* 'Ux' GID */
p += 4 + i2(p + 2);
- assertEqualInt(i2(p), 0x414c); /* 'LA' experimental extension block */
+ assertEqualInt(i2(p), 0x6c65); /* 'el' experimental extension block */
assertEqualInt(i2(p + 2), 9); /* size */
assertEqualInt(p[4], 7); /* bitmap of fields in this block */
assertEqualInt(i2(p + 5) >> 8, 3); /* System & version made by */
/* compressed file size we can't verify here */
p += 4 + i2(p + 2);
- assertEqualInt(i2(p), 0x414c); /* 'LA' experimental extension header */
+ assertEqualInt(i2(p), 0x6c65); /* 'el' experimental extension header */
assertEqualInt(i2(p + 2), 9); /* size */
assertEqualInt(p[4], 7); /* bitmap of included fields */
assertEqualInt(i2(p + 5) >> 8, 3); /* system & version made by */