]> granicus.if.org Git - zziplib/commitdiff
This commit was generated by cvs2svn to compensate for changes in r132,
authorGuido Draheim <guidod@gmx.de>
Fri, 12 Dec 2003 04:16:31 +0000 (04:16 +0000)
committerGuido Draheim <guidod@gmx.de>
Fri, 12 Dec 2003 04:16:31 +0000 (04:16 +0000)
which included commits to RCS files with non-trunk default branches.

SDL/zzip-sdl-rwops.pc
zzip/stat.c
zzipwrap/zzipwrap.pc

index 23a9b3f3eac98e6aacd35f7dc26007bedc69bd1b..6a4b1d043779f4092e2e72267d98aead42e36ce6 100644 (file)
@@ -2,7 +2,7 @@ zzipdatadir=/usr/local/share/zziplib
 zzipsdlrwops=${zzipdatadir}/SDL
  
 Name: zzip-sdl-rwops
-Version: 0.13.23
+Version: 0.13.24
 Description: SDL_rwops for ZZipLib
 Requires: zzip-sdl-config, zziplib
 Cflags: -I${zzipsdlrwops}
index 43b4bfc49bdc6e1abc419ecd8b34344799c02a90..0395c67b60a325d75fa98a4582e774f62364ab85 100644 (file)
  */
 
 #include <zzip/lib.h>                                   /* exported...*/
+#include <zzip/file.h>
 #include <string.h>
+#include <sys/stat.h>
+
+#define ZZIP_USE_INTERNAL
+#include <zzip/info.h>
 
 /**
  * obtain information about a filename in an opened zip-archive without 
@@ -69,6 +74,44 @@ zzip_dir_stat(ZZIP_DIR * dir, zzip_char_t* name, ZZIP_STAT * zs, int flags)
     return 0;
 }
 
+/** => zzip_dir_stat
+ * This function will obtain information about a opened file _within_ a 
+ * zip-archive. The file is supposed to be open (otherwise -1 is returned). 
+ * The st_size stat-member contains the uncompressed size. The optional 
+ * d_name is never set here. 
+ */
+int zzip_file_stat (ZZIP_FILE* file, ZZIP_STAT* zs)
+{
+    if (! file) return -1;
+    zs->d_compr = file->method;
+    zs->d_csize = file->csize;
+    zs->st_size = file->usize;
+    zs->d_name  = 0;
+    return 0;
+}
+
+/** => zzip_dir_stat
+ * This function will obtain information about a opened file which may be
+ * either real/zipped. The file is supposed to be open (otherwise -1 is 
+ * returned). The st_size stat-member contains the uncompressed size. 
+ * The optional d_name is never set here. For a real file, we do set the
+ * d_csize := st_size and d_compr := 0 for meaningful defaults.
+ */
+int zzip_fstat (ZZIP_FILE* file, ZZIP_STAT* zs)
+{
+    if (ZZIP_file_real(file))
+    {
+       struct stat st;
+       if (fstat (file->fd, &st) < 0) return -1;
+       zs->st_size = st.st_size;
+       zs->d_csize = st.st_size;
+       zs->d_compr = 0;
+       return 0;
+    }else{
+       return zzip_file_stat (file, zs);
+    }
+}
+
 /* 
  * Local variables:
  * c-file-style: "stroustrup"
index 970213572162da515a0de85013e696ed1aee3eea..281188693de19f31650c6f285dd44ab04a88ac81 100644 (file)
@@ -3,7 +3,7 @@ libdir=/usr/local/lib
 includedir=/usr/local/include
  
 Name: zzipwrap
-Version: 0.13.23
+Version: 0.13.24
 Description: Callback Wrappers for ZZipLib
 Requires: zziplib
 Libs: -L${libdir} -lzzipwrap