summaryrefslogtreecommitdiff
path: root/gcc/java/zextract.c
diff options
context:
space:
mode:
authorgreen <green@138bc75d-0d04-0410-961f-82ee72b054a4>2000-09-06 02:13:28 +0000
committergreen <green@138bc75d-0d04-0410-961f-82ee72b054a4>2000-09-06 02:13:28 +0000
commitfad14b728e1d9972d915ebff92123ee25239c7f0 (patch)
treef11498ff99199cfd9ecb821a470faf66c9a566dd /gcc/java/zextract.c
parent113d69fe69bfb51624e25133194636f1e00cd5eb (diff)
downloadgcc-fad14b728e1d9972d915ebff92123ee25239c7f0.tar.gz
2000-09-02 Anthony Green <green@redhat.com>
* jcf-io.c: Include zlib.h. (open_in_zip): Read compressed class file archives. * zipfile.h (ZipDirectory): Add uncompressed_size and compression_method fields. * zextract.c (read_zip_archive): Collect file compression info. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36175 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/java/zextract.c')
-rw-r--r--gcc/java/zextract.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/java/zextract.c b/gcc/java/zextract.c
index b7ced1562a1..f381f92c57f 100644
--- a/gcc/java/zextract.c
+++ b/gcc/java/zextract.c
@@ -318,6 +318,8 @@ read_zip_archive (zipf)
for (i = 0; i < zipf->count; i++)
{
ZipDirectory *zipd = (ZipDirectory*)(dir_ptr + dir_last_pad);
+ int compression_method = (int) dir_ptr[4+C_COMPRESSION_METHOD];
+ long size = makelong (&dir_ptr[4+C_COMPRESSED_SIZE]);
long uncompressed_size = makelong (&dir_ptr[4+C_UNCOMPRESSED_SIZE]);
long filename_length = makeword (&dir_ptr[4+C_FILENAME_LENGTH]);
long extra_field_length = makeword (&dir_ptr[4+C_EXTRA_FIELD_LENGTH]);
@@ -326,7 +328,9 @@ read_zip_archive (zipf)
return -1;
zipd->filename_length = filename_length;
- zipd->size = uncompressed_size;
+ zipd->compression_method = compression_method;
+ zipd->size = size;
+ zipd->uncompressed_size = uncompressed_size;
#ifdef __GNUC__
#define DIR_ALIGN __alignof__(ZipDirectory)
#else