Date: Wed, 9 Jul 2008 16:46:11 GMT From: Anselm Strauss <strauss@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 144955 for review Message-ID: <200807091646.m69GkBlI092490@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=144955 Change 144955 by strauss@strauss_marvelman on 2008/07/09 16:45:50 Forgot to write filename after header ... Affected files ... .. //depot/projects/soc2008/strauss_libarchive/TODO#8 edit .. //depot/projects/soc2008/strauss_libarchive/libarchive/archive_write_set_format_zip.c#7 edit Differences ... ==== //depot/projects/soc2008/strauss_libarchive/TODO#8 (text+ko) ==== @@ -1,6 +1,7 @@ To Be Done ========== +- How to enable '-Wall' in gcc when calling make? - Exception handling in ZIP writer - Update ZIP writer in docs - Integrate Libarchive 2.5.5 ==== //depot/projects/soc2008/strauss_libarchive/libarchive/archive_write_set_format_zip.c#7 (text+ko) ==== @@ -154,13 +154,21 @@ /* TODO: Append entry to central directory. */ - encode(archive_entry_size(entry), &d->compressed_size, sizeof(d->compressed_size)); - encode(archive_entry_size(entry), &d->uncompressed_size, sizeof(d->uncompressed_size)); + int64_t size = archive_entry_size(entry); + encode(size, &d->compressed_size, sizeof(d->compressed_size)); + encode(size, &d->uncompressed_size, sizeof(d->uncompressed_size)); ret = (a->compressor.write)(a, &h, sizeof(h)); if (ret != ARCHIVE_OK) return (ARCHIVE_FATAL); - + + /* Write filename and extra field (extra field is currently null). + * These are not included in the header structure due to variable size. */ + const char *path = archive_entry_pathname(entry); + ret = (a->compressor.write)(a, path, sizeof(*path)); + if (ret != ARCHIVE_OK) + return (ARCHIVE_FATAL); + return (ret); } @@ -179,6 +187,7 @@ static int archive_write_zip_finish_entry(struct archive_write *a) { + /* Write the data descripter after file data has been written. */ int ret; struct zip *zip = (struct zip *) a->format_data; struct zip_data_descriptor *d = (struct zip_data_descriptor *) &zip->data_descriptor;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200807091646.m69GkBlI092490>