OSDN Git Service

PR java/33765:
[pf3gnuchains/gcc-fork.git] / gcc / java / zipfile.h
index 0d955a3..d78226a 100644 (file)
@@ -1,32 +1,37 @@
 /* Definitions for using a zipped' archive.
+   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2007
+   Free Software Foundation, Inc.
 
-   Copyright (C) 1996  Free Software Foundation, Inc.
+This file is part of GCC.
 
-This program is free software; you can redistribute it and/or modify
+GCC is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
+the Free Software Foundation; either version 3, or (at your option)
 any later version.
 
-This program is distributed in the hope that it will be useful,
+GCC is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING.  If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  
 
 Java and all Java-based marks are trademarks or registered trademarks
 of Sun Microsystems, Inc. in the United States and other countries.
 The Free Software Foundation is independent of Sun Microsystems, Inc.  */
 
 struct ZipFile {
+  char *name;
   int fd;
   long size;
   long count;
   long dir_size;
   char *central_directory;
+
+  /* Chain together in SeenZipFiles. */
+  struct ZipFile *next;
 };
 
 typedef struct ZipFile ZipFile;
@@ -34,9 +39,12 @@ typedef struct ZipFile ZipFile;
 struct ZipDirectory {
   int direntry_size;
   int filename_offset;
-  long size; /* length of file */
-  long filestart;  /* start of file in archive */
-  long filename_length;
+  int compression_method;
+  unsigned size; /* length of file */
+  unsigned uncompressed_size; /* length of uncompressed data */
+  unsigned filestart;  /* start of file in archive */
+  ZipFile *zipf;
+  int filename_length;
   /* char mid_padding[...]; */
   /* char filename[filename_length]; */
   /* char end_padding[...]; */
@@ -44,18 +52,17 @@ struct ZipDirectory {
 
 typedef struct ZipDirectory ZipDirectory;
 
-struct ZipFileCache {
-  struct ZipFile z;
-  struct ZipFileCache *next;
-  char *name;
-};
-
-extern struct ZipFileCache *SeenZipFiles;
+extern struct ZipFile *SeenZipFiles;
 
 #define ZIPDIR_FILENAME(ZIPD) ((char*)(ZIPD)+(ZIPD)->filename_offset)
 #define ZIPDIR_NEXT(ZIPD) \
    ((ZipDirectory*)((char*)(ZIPD)+(ZIPD)->direntry_size))
 #define ZIPMAGIC 0x504b0304    
+#define ZIPEMPTYMAGIC 0x504b0506
 
-extern ZipFile * opendir_in_zip ();
-extern int read_zip_archive PROTO ((ZipFile *));
+extern ZipFile * opendir_in_zip (const char *, int);
+extern int read_zip_archive (ZipFile *);
+#ifdef GCC_JCF_H
+extern int read_zip_member (JCF*, ZipDirectory*, ZipFile *);
+extern int open_in_zip (struct JCF *, const char *, const char *, int);
+#endif