| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 | 
							- //
 
- // unzip test
 
- //
 
- #include <string.h>
 
- #include <stdio.h>
 
- #include <stdlib.h>
 
- #include <stdint.h>
 
- #include "../src/unzip.h"
 
- #include "bmp_icons.h"
 
- void * myOpen(const char *filename, int32_t *size) {
 
-   printf("Attempting to open %s\n", filename);
 
-     FILE *f;
 
-     size_t filesize;
 
-     f = fopen(filename,"r+b");
 
-     if (f) {
 
-         fseek(f, 0, SEEK_END);
 
-         filesize = ftell(f);
 
-         fseek(f, 0, SEEK_SET);
 
-         *size = (int32_t) filesize;
 
-     }
 
-     return (void *)f;
 
- } /* myOpen() */
 
- void myClose(void *p) {
 
-     ZIPFILE *pzf = (ZIPFILE *)p;
 
-   if (pzf) fclose((FILE *)pzf->fHandle);
 
- } /* myClose() */
 
- int32_t myRead(void *p, uint8_t *buffer, int32_t length) {
 
-     ZIPFILE *pzf = (ZIPFILE *)p;
 
-   if (!pzf) return 0;
 
-     return (int32_t)fread(buffer, 1, length, (FILE *)pzf->fHandle);
 
- } /* myRead() */
 
- int32_t mySeek(void *p, int32_t position, int type) {
 
-     ZIPFILE *pzf = (ZIPFILE *)p;
 
-   if (!pzf) return 0;
 
-   return fseek((FILE *)pzf->fHandle, position, type);
 
- }
 
- int main(int argc, const char *argv[])
 
- {
 
- int rc, i;
 
- unzFile zHandle;
 
- char szTemp[1024];
 
- ZIPFILE zpf;
 
-     
 
-     if (argc != 3) // unzip <zip> <file to extract>
 
-     {
 
-        printf("Usage: unziptest <zip file> <file to unzip within the zip>\n");
 
-        return 0;
 
-     }
 
-     printf("Starting unzip test...reading file %s from zip archive %s\n", argv[2], argv[1]);
 
- //    zHandle = unzOpen(argv[1], NULL, 0, &zpf, myOpen, myRead, mySeek, myClose);
 
-     zHandle = unzOpen(NULL, bmp_icons, sizeof(bmp_icons), &zpf, NULL, NULL, NULL, NULL);
 
-     if (zHandle == NULL) {
 
-        printf("Error opening file: %s\n", argv[1]);
 
-        return -1;
 
-     }
 
-     // Display the global comment (if any)
 
-     rc = unzGetGlobalComment(zHandle, (char *)szTemp, sizeof(szTemp));
 
-     printf("Global Comment: %s\n", szTemp);
 
-     
 
- //    rc = unzLocateFile(zHandle, argv[2], 2);
 
-     rc = unzLocateFile(zHandle, "key.bmp", 2);
 
-     if (rc != UNZ_OK) /* Report the file not found */
 
-     {
 
-         printf("file %s not found within archive\n", argv[2]);
 
-         unzClose(zHandle);
 
-         return -1;
 
-     }
 
-     rc = unzOpenCurrentFile(zHandle); /* Try to open the file we want */
 
-     if (rc != UNZ_OK) {
 
-        printf("Error opening file = %d\n", rc);
 
-        unzClose(zHandle);
 
-        return -1;
 
-     }
 
-     printf("File located within archive.\n");
 
-     rc = 1;
 
-     i = 0;
 
-     while (rc > 0) {
 
-         rc = unzReadCurrentFile(zHandle, szTemp, sizeof(szTemp));
 
-         if (rc >= 0) {
 
-             i += rc;
 
-         } else {
 
-             printf("Error reading from file\n");
 
-             break;
 
-         }
 
-     }
 
-     printf("Total bytes read = %d\n", i);
 
-     rc = unzCloseCurrentFile(zHandle);
 
-     unzClose(zHandle);
 
-   return 0;
 
- } /* main() */ 
 
 
  |