diff options
Diffstat (limited to 'Build/source/libs/zziplib/zziplib-src/bins/unzzipshow.c')
-rw-r--r-- | Build/source/libs/zziplib/zziplib-src/bins/unzzipshow.c | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/Build/source/libs/zziplib/zziplib-src/bins/unzzipshow.c b/Build/source/libs/zziplib/zziplib-src/bins/unzzipshow.c deleted file mode 100644 index 58d1add95a8..00000000000 --- a/Build/source/libs/zziplib/zziplib-src/bins/unzzipshow.c +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Copyright (c) 2003 Guido Draheim <guidod@gmx.de> - * Use freely under the restrictions of the ZLIB license. - * - * This file is used as an example to clarify zzipfseeko api usage. - */ - -#include <zzip/fseeko.h> -#include <stdlib.h> -#include <string.h> - -#ifdef ZZIP_HAVE_FNMATCH_H -#include <fnmatch.h> -#else -#define fnmatch(x,y,z) strcmp(x,y) -#endif - -#ifndef O_BINARY -#define O_BINARY 0 -#endif - -static const char usage[] = -{ - "unzzipshow <zip> [names].. \n" - " - unzzip data content of files contained in a zip archive.\n" -}; - -static void zzip_entry_fprint(ZZIP_ENTRY* entry, FILE* out) -{ - ZZIP_ENTRY_FILE* file = zzip_entry_fopen (entry, 0); - if (file) - { - char buffer[1024]; int len; - while ((len = zzip_entry_fread (buffer, 1024, 1, file))) - fwrite (buffer, len, 1, out); - - zzip_entry_fclose (file); - } -} - -static void zzip_cat_file(FILE* disk, char* name, FILE* out) -{ - ZZIP_ENTRY_FILE* file = zzip_entry_ffile (disk, name); - if (file) - { - char buffer[1024]; int len; - while ((len = zzip_entry_fread (buffer, 1024, 1, file))) - fwrite (buffer, len, 1, out); - - zzip_entry_fclose (file); - } -} - -int -main (int argc, char ** argv) -{ - int argn; - FILE* disk; - - if (argc <= 1 || ! strcmp (argv[1], "--help")) - { - printf (usage); - return 0; - } - if (! strcmp (argv[1], "--version")) - { - printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n"); - return 0; - } - - disk = fopen (argv[1], "rb"); - if (! disk) { - perror(argv[1]); - return -1; - } - - if (argc == 2) - { /* print directory list */ - ZZIP_ENTRY* entry = zzip_entry_findfirst(disk); - if (! entry) puts("no first entry!\n"); - for (; entry ; entry = zzip_entry_findnext(entry)) - { - char* name = zzip_entry_strdup_name (entry); - printf ("%s\n", name); - free (name); - } - return 0; - } - - if (argc == 3) - { /* list from one spec */ - ZZIP_ENTRY* entry = 0; - while ((entry = zzip_entry_findmatch(disk, argv[2], entry, 0, 0))) - zzip_entry_fprint (entry, stdout); - - return 0; - } - - for (argn=1; argn < argc; argn++) - { /* list only the matching entries - each in order of commandline */ - ZZIP_ENTRY* entry = zzip_entry_findfirst(disk); - for (; entry ; entry = zzip_entry_findnext(entry)) - { - char* name = zzip_entry_strdup_name (entry); - if (! fnmatch (argv[argn], name, - FNM_NOESCAPE|FNM_PATHNAME|FNM_PERIOD)) - zzip_cat_file (disk, name, stdout); - free (name); - } - } - return 0; -} - -/* - * Local variables: - * c-file-style: "stroustrup" - * End: - */ |