From owner-p4-projects@FreeBSD.ORG Wed Jul 9 16:46:12 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 53CE9106567E; Wed, 9 Jul 2008 16:46:12 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 182AC1065679 for ; Wed, 9 Jul 2008 16:46:12 +0000 (UTC) (envelope-from strauss@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 055CF8FC21 for ; Wed, 9 Jul 2008 16:46:12 +0000 (UTC) (envelope-from strauss@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m69GkB80092492 for ; Wed, 9 Jul 2008 16:46:11 GMT (envelope-from strauss@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m69GkBlI092490 for perforce@freebsd.org; Wed, 9 Jul 2008 16:46:11 GMT (envelope-from strauss@FreeBSD.org) Date: Wed, 9 Jul 2008 16:46:11 GMT Message-Id: <200807091646.m69GkBlI092490@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to strauss@FreeBSD.org using -f From: Anselm Strauss To: Perforce Change Reviews Cc: Subject: PERFORCE change 144955 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2008 16:46:12 -0000 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;