texlive[44647] Build/source/libs: zziplib 0.13.66

commits+kakuto at tug.org commits+kakuto at tug.org
Tue Jun 20 02:49:02 CEST 2017


Revision: 44647
          http://tug.org/svn/texlive?view=revision&revision=44647
Author:   kakuto
Date:     2017-06-20 02:49:02 +0200 (Tue, 20 Jun 2017)
Log Message:
-----------
zziplib 0.13.66

Modified Paths:
--------------
    trunk/Build/source/libs/README
    trunk/Build/source/libs/zziplib/ChangeLog
    trunk/Build/source/libs/zziplib/Makefile.am
    trunk/Build/source/libs/zziplib/Makefile.in
    trunk/Build/source/libs/zziplib/README
    trunk/Build/source/libs/zziplib/TLpatches/ChangeLog
    trunk/Build/source/libs/zziplib/TLpatches/TL-Changes
    trunk/Build/source/libs/zziplib/TLpatches/patch-01-binary
    trunk/Build/source/libs/zziplib/TLpatches/patch-02-bugfix
    trunk/Build/source/libs/zziplib/TLpatches/patch-03-w64-ptr
    trunk/Build/source/libs/zziplib/configure
    trunk/Build/source/libs/zziplib/version.ac
    trunk/Build/source/libs/zziplib/zziplib-src/ChangeLog
    trunk/Build/source/libs/zziplib/zziplib-src/Makefile.am
    trunk/Build/source/libs/zziplib/zziplib-src/Makefile.in
    trunk/Build/source/libs/zziplib/zziplib-src/SDL/Makefile.in
    trunk/Build/source/libs/zziplib/zziplib-src/bins/Makefile.am
    trunk/Build/source/libs/zziplib/zziplib-src/bins/Makefile.in
    trunk/Build/source/libs/zziplib/zziplib-src/bins/unzip-mem.c
    trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzip.c
    trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-mem.c
    trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-mem.c
    trunk/Build/source/libs/zziplib/zziplib-src/bins/zzip.c
    trunk/Build/source/libs/zziplib/zziplib-src/bins/zziptest.c
    trunk/Build/source/libs/zziplib/zziplib-src/config.h.in
    trunk/Build/source/libs/zziplib/zziplib-src/configure
    trunk/Build/source/libs/zziplib/zziplib-src/configure.ac
    trunk/Build/source/libs/zziplib/zziplib-src/docs/Makefile.in
    trunk/Build/source/libs/zziplib/zziplib-src/docs/zziplib.html
    trunk/Build/source/libs/zziplib/zziplib-src/test/Makefile.am
    trunk/Build/source/libs/zziplib/zziplib-src/test/Makefile.in
    trunk/Build/source/libs/zziplib/zziplib-src/test/test.zip
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/Makefile.in
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/__dirent.h
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/__mmap.h
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/conf.h
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/dir.c
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/err.c
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/fetch.c
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/fetch.h
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/file.c
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/file.h
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/format.h
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/fseeko.c
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/fseeko.h
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/info.c
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/info.h
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/lib.h
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/memdisk.c
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/memdisk.h
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/mmapped.c
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/mmapped.h
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/plugin.c
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/plugin.h
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/stat.c
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/types.h
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/write.c
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/write.h
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/zip.c
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/zzip.h
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/zzip32.h
    trunk/Build/source/libs/zziplib/zziplib-src/zziplib.spec
    trunk/Build/source/libs/zziplib/zziplib-src/zzipwrap/Makefile.in
    trunk/Build/source/libs/zziplib/zziplib-src/zzipwrap/wrap.h
    trunk/Build/source/libs/zziplib/zziplib-src/zzipwrap/zzipwrap.pc

Added Paths:
-----------
    trunk/Build/source/libs/zziplib/zziplib-src/SDL/zzip-sdl-config.pc
    trunk/Build/source/libs/zziplib/zziplib-src/SDL/zzip-sdl-rwops.pc
    trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzip.h
    trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-big.c
    trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-mix.c
    trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-zip.c
    trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-big.c
    trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-mix.c
    trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-zip.c
    trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipshow.c
    trunk/Build/source/libs/zziplib/zziplib-src/docs/cpp2markdown-1.py
    trunk/Build/source/libs/zziplib/zziplib-src/docs/cpp2markdown.py
    trunk/Build/source/libs/zziplib/zziplib-src/docs/dir-zzip-192.png
    trunk/Build/source/libs/zziplib/zziplib-src/docs/dir-zzip-64.png
    trunk/Build/source/libs/zziplib/zziplib-src/docs/site.htm
    trunk/Build/source/libs/zziplib/zziplib-src/m4/ax_enable_builddir.m4
    trunk/Build/source/libs/zziplib/zziplib-src/msvc7/README.TXT
    trunk/Build/source/libs/zziplib/zziplib-src/msvc7/zip.exe
    trunk/Build/source/libs/zziplib/zziplib-src/ports/
    trunk/Build/source/libs/zziplib/zziplib-src/ports/symbian-S60/
    trunk/Build/source/libs/zziplib/zziplib-src/ports/symbian-S60/zziplib-symbian.zip
    trunk/Build/source/libs/zziplib/zziplib-src/test/zziptests.py

Removed Paths:
-------------
    trunk/Build/source/libs/zziplib/zziplib-src/SDL/SDL_rwops_zzip.c
    trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-seeko.c
    trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat.c
    trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir.c
    trunk/Build/source/libs/zziplib/zziplib-src/docs/zzipfseeko.html
    trunk/Build/source/libs/zziplib/zziplib-src/docs/zziplib-manpages.tar
    trunk/Build/source/libs/zziplib/zziplib-src/docs/zzipmmapped.html
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/zzip-zlib-config.pc
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/zzipfseeko.pc
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/zziplib.pc
    trunk/Build/source/libs/zziplib/zziplib-src/zzip/zzipmmapped.pc

Modified: trunk/Build/source/libs/README
===================================================================
--- trunk/Build/source/libs/README	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/README	2017-06-20 00:49:02 UTC (rev 44647)
@@ -65,5 +65,5 @@
 zlib 1.2.11 - checked 15jan17
   http://www.zlib.net/ - used by many
 
-zziplib 0.13.62 - checked 31mar16
+zziplib 0.13.66 - checked 20jun17
   http://zziplib.sourceforge.net/ - used by luatex

Modified: trunk/Build/source/libs/zziplib/ChangeLog
===================================================================
--- trunk/Build/source/libs/zziplib/ChangeLog	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/ChangeLog	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,3 +1,8 @@
+2017-06-20  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+
+	* Import zziplib 0.13.66.
+	version.ac, Makefile.am: Adapted.
+
 2017-03-27  Karl Berry  <karl at freefriends.org>
 
 	* Makefile.am (AM_TESTS_ENVIRONMENT): use instead of TESTS_ENVIRONMENT.

Modified: trunk/Build/source/libs/zziplib/Makefile.am
===================================================================
--- trunk/Build/source/libs/zziplib/Makefile.am	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/Makefile.am	2017-06-20 00:49:02 UTC (rev 44647)
@@ -52,7 +52,8 @@
 distclean-local:
 	rm -rf test
 
-nodist_unzzip_SOURCES = @ZZIPLIB_TREE@/bins/unzzip.c
+nodist_unzzip_SOURCES = @ZZIPLIB_TREE@/bins/unzzip.c \
+ at ZZIPLIB_TREE@/bins/unzzipcat-zip.c @ZZIPLIB_TREE@/bins/unzzipdir-zip.c
 unzzip_LDADD = libzzip.a $(ZLIB_LIBS)
 
 ## Rebuild zlib

Modified: trunk/Build/source/libs/zziplib/Makefile.in
===================================================================
--- trunk/Build/source/libs/zziplib/Makefile.in	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/Makefile.in	2017-06-20 00:49:02 UTC (rev 44647)
@@ -130,7 +130,9 @@
 	@ZZIPLIB_TREE@/zzip/write.$(OBJEXT) \
 	@ZZIPLIB_TREE@/zzip/zip.$(OBJEXT)
 libzzip_a_OBJECTS = $(nodist_libzzip_a_OBJECTS)
-nodist_unzzip_OBJECTS = @ZZIPLIB_TREE@/bins/unzzip.$(OBJEXT)
+nodist_unzzip_OBJECTS = @ZZIPLIB_TREE@/bins/unzzip.$(OBJEXT) \
+ at ZZIPLIB_TREE@/bins/unzzipcat-zip.$(OBJEXT) \
+ at ZZIPLIB_TREE@/bins/unzzipdir-zip.$(OBJEXT)
 unzzip_OBJECTS = $(nodist_unzzip_OBJECTS)
 am__DEPENDENCIES_1 =
 unzzip_DEPENDENCIES = libzzip.a $(am__DEPENDENCIES_1)
@@ -599,7 +601,8 @@
 AM_TESTS_ENVIRONMENT = ZZIPLIB_TREE=$(ZZIPLIB_TREE); export ZZIPLIB_TREE;
 @build_TRUE at TESTS = zziplib.test
 @build_TRUE at dist_check_SCRIPTS = zziplib.test
-nodist_unzzip_SOURCES = @ZZIPLIB_TREE@/bins/unzzip.c
+nodist_unzzip_SOURCES = @ZZIPLIB_TREE@/bins/unzzip.c \
+ at ZZIPLIB_TREE@/bins/unzzipcat-zip.c @ZZIPLIB_TREE@/bins/unzzipdir-zip.c
 unzzip_LDADD = libzzip.a $(ZLIB_LIBS)
 
 # Reconfig
@@ -716,6 +719,12 @@
 @ZZIPLIB_TREE@/bins/unzzip.$(OBJEXT):  \
 	@ZZIPLIB_TREE@/bins/$(am__dirstamp) \
 	@ZZIPLIB_TREE@/bins/$(DEPDIR)/$(am__dirstamp)
+ at ZZIPLIB_TREE@/bins/unzzipcat-zip.$(OBJEXT):  \
+	@ZZIPLIB_TREE@/bins/$(am__dirstamp) \
+	@ZZIPLIB_TREE@/bins/$(DEPDIR)/$(am__dirstamp)
+ at ZZIPLIB_TREE@/bins/unzzipdir-zip.$(OBJEXT):  \
+	@ZZIPLIB_TREE@/bins/$(am__dirstamp) \
+	@ZZIPLIB_TREE@/bins/$(DEPDIR)/$(am__dirstamp)
 
 unzzip$(EXEEXT): $(unzzip_OBJECTS) $(unzzip_DEPENDENCIES) $(EXTRA_unzzip_DEPENDENCIES) 
 	@rm -f unzzip$(EXEEXT)
@@ -730,6 +739,8 @@
 	-rm -f *.tab.c
 
 @AMDEP_TRUE@@am__include@ @am__quote@@ZZIPLIB_TREE@/bins/$(DEPDIR)/unzzip.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote@@ZZIPLIB_TREE@/bins/$(DEPDIR)/unzzipcat-zip.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote@@ZZIPLIB_TREE@/bins/$(DEPDIR)/unzzipdir-zip.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@ZZIPLIB_TREE@/zzip/$(DEPDIR)/dir.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@ZZIPLIB_TREE@/zzip/$(DEPDIR)/err.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@ZZIPLIB_TREE@/zzip/$(DEPDIR)/fetch.Po at am__quote@

Modified: trunk/Build/source/libs/zziplib/README
===================================================================
--- trunk/Build/source/libs/zziplib/README	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/README	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,4 +1,4 @@
-	Building zziplib-0.13.62 as part of the TL tree
+	Building zziplib-0.13.66 as part of the TL tree
 	===============================================
 
 This directory libs/zziplib/ uses a proxy Makefile.am to build the zziplib
@@ -5,7 +5,7 @@
 library from the unmodified (*) source tree in libs/zziplib/zziplib-src/,
 bypassing the original build system.
 
-(*) The directory zziplib-PATCHES contains patches (if any) applied to
+(*) The directory TLpatches contains patches (if any) applied to
 the original source tree.
 
 As far as applicable, the tests in libs/zziplib-src/configure.ac have been
@@ -14,4 +14,4 @@
 =============================
 
 2010-01-30	Peter Breitenlohner <peb at mppmu.mpg.de>
-2016-02-22	Akira Kakuto <kakuto at fuk.kindai.ac.jp>
+2017-??-??	Akira Kakuto <kakuto at fuk.kindai.ac.jp>

Modified: trunk/Build/source/libs/zziplib/TLpatches/ChangeLog
===================================================================
--- trunk/Build/source/libs/zziplib/TLpatches/ChangeLog	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/TLpatches/ChangeLog	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,3 +1,8 @@
+2017-06-20  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+
+	* Import zziplib-0.13.66.
+	* patch-01-binary, patch-02-bugfix, patch-03-w64-ptr: Adapted.
+
 2015-03-29  Peter Breitenlohner  <peb at mppmu.mpg.de>
 
 	* patch-02-bugfix: More fix mmap for WIN32/WIN64, from Akira.

Modified: trunk/Build/source/libs/zziplib/TLpatches/TL-Changes
===================================================================
--- trunk/Build/source/libs/zziplib/TLpatches/TL-Changes	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/TLpatches/TL-Changes	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,4 +1,4 @@
-Changes applied to the zziplib-0.13.62/ tree as obtained from:
+Changes applied to the zziplib-0.13.66/ tree as obtained from:
 	http://zziplib.sourceforge.net/
 
 Copied:
@@ -6,9 +6,12 @@
 	m4/ac_sys_largefile_sensitive.m4 -> ../m4/
 
 Removed:
+	.cdtproject
+	.gitignore
+	.pydevproject
 	aclocal.m4
+	msvc/
 	uses/
-	zzip/_config.h
 	zzip/_msvc.h
 
 Converted Dos/Win line ends to native:
@@ -20,7 +23,4 @@
 	msvc7/*.vcproj
 	msvc8/*.sln
 	msvc8/*.vcproj
-	zzip/file.h
-	zzip/stdint.h
 	zzip/zziplib.wpj
-

Modified: trunk/Build/source/libs/zziplib/TLpatches/patch-01-binary
===================================================================
--- trunk/Build/source/libs/zziplib/TLpatches/patch-01-binary	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/TLpatches/patch-01-binary	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,15 +1,205 @@
-diff -ur zziplib-0.13.62.orig/bins/unzzip.c zziplib-0.13.62/bins/unzzip.c
---- zziplib-0.13.62.orig/bins/unzzip.c	2009-08-23 13:38:22.000000000 +0200
-+++ zziplib-0.13.62/bins/unzzip.c	2014-07-11 09:50:50.000000000 +0200
-@@ -72,7 +72,11 @@
- 		continue;
- 	    }
+diff -ur zziplib-0.13.66.orig/bins/unzip-mem.c zziplib-0.13.66/bins/unzip-mem.c
+--- zziplib-0.13.66.orig/bins/unzip-mem.c	Mon Apr 24 08:46:28 2017
++++ zziplib-0.13.66/bins/unzip-mem.c	Wed May 24 21:13:24 2017
+@@ -100,7 +100,7 @@
+ static void zzip_mem_entry_make(ZZIP_MEM_DISK* disk, 
+ 				ZZIP_MEM_ENTRY* entry)
+ {
+-    FILE* file = fopen (entry->zz_name, "w");
++    FILE* file = fopen (entry->zz_name, "wb");
+     if (file) { zzip_mem_entry_pipe (disk, entry, file); fclose (file); }
+     perror (entry->zz_name);
+     if (status < EXIT_WARNINGS) status = EXIT_WARNINGS;
+diff -ur zziplib-0.13.66.orig/bins/unzzipcat-big.c zziplib-0.13.66/bins/unzzipcat-big.c
+--- zziplib-0.13.66.orig/bins/unzzipcat-big.c	Mon Apr 24 08:46:28 2017
++++ zziplib-0.13.66/bins/unzzipcat-big.c	Wed May 24 21:13:24 2017
+@@ -62,6 +62,21 @@
+     }
+ }
  
-+#ifdef _WIN32
-+	    output = _open (d.d_name, _O_CREAT | _O_BINARY | _O_RDWR);
-+#else
- 	    output = creat (d.d_name, 0664);
++#if !defined(HAVE_STRNDUP)
++static char *
++strndup(char *p, size_t maxlen)
++{
++  char *r;
++  if (!p)
++    return 0;
++  r = malloc(maxlen + 1);
++  if (!r)
++    return r;
++  strncpy(r, p, maxlen);
++  r[maxlen] = '\0';
++  return r;
++}
 +#endif
- 	    if (output == -1)
+ 
+ static FILE* create_fopen(char* name, char* mode, int subdirs)
+ {
+@@ -83,7 +98,7 @@
+     int argn;
+     FILE* disk;
+ 
+-    disk = fopen (argv[1], "r");
++    disk = fopen (argv[1], "rb");
+     if (! disk) {
+ 	perror(argv[1]);
+ 	return -1;
+@@ -96,7 +111,7 @@
+ 	{
+ 	    char* name = zzip_entry_strdup_name (entry);
+ 	    FILE* out = stdout;
+-	    if (extract) out = create_fopen(name, "w", 1);
++	    if (extract) out = create_fopen(name, "wb", 1);
+ 	    unzzip_cat_file (disk, name, out);
+ 	    if (extract) fclose(out);
+ 	    free (name);
+@@ -125,7 +140,7 @@
+ 			   FNM_NOESCAPE|FNM_PATHNAME|FNM_PERIOD))
  	    {
- 		fprintf (stderr, "|output file %s: \n", d.d_name);
+ 	        FILE* out = stdout;
+-	        if (extract) out = create_fopen(name, "w", 1);
++	        if (extract) out = create_fopen(name, "wb", 1);
+ 		unzzip_cat_file (disk, name, out);
+ 		if (extract) fclose(out);
+ 		break; /* match loop */
+diff -ur zziplib-0.13.66.orig/bins/unzzipcat-mem.c zziplib-0.13.66/bins/unzzipcat-mem.c
+--- zziplib-0.13.66.orig/bins/unzzipcat-mem.c	Mon Apr 24 08:46:28 2017
++++ zziplib-0.13.66/bins/unzzipcat-mem.c	Wed May 24 21:13:24 2017
+@@ -57,6 +57,22 @@
+     }
+ }
+ 
++#if !defined(HAVE_STRNDUP)
++static char *
++strndup(char *p, size_t maxlen)
++{
++  char *r;
++  if (!p)
++    return 0;
++  r = malloc(maxlen + 1);
++  if (!r)
++    return r;
++  strncpy(r, p, maxlen);
++  r[maxlen] = '\0';
++  return r;
++}
++#endif
++
+ static FILE* create_fopen(char* name, char* mode, int subdirs)
+ {
+    if (subdirs)
+@@ -97,7 +113,7 @@
+ 	{
+ 	    char* name = zzip_mem_entry_to_name (entry);
+ 	    FILE* out = stdout;
+-	    if (extract) out = create_fopen(name, "w", 1);
++	    if (extract) out = create_fopen(name, "wb", 1);
+ 	    unzzip_mem_disk_cat_file (disk, name, out);
+ 	    if (extract) fclose(out);
+ 	}
+@@ -125,7 +141,7 @@
+ 			   FNM_NOESCAPE|FNM_PATHNAME|FNM_PERIOD))
+ 	    {
+ 	        FILE* out = stdout;
+-	        if (extract) out = create_fopen(name, "w", 1);
++	        if (extract) out = create_fopen(name, "wb", 1);
+ 		unzzip_mem_disk_cat_file (disk, name, out);
+ 		if (extract) fclose(out);
+ 		break; /* match loop */
+diff -ur zziplib-0.13.66.orig/bins/unzzipcat-mix.c zziplib-0.13.66/bins/unzzipcat-mix.c
+--- zziplib-0.13.66.orig/bins/unzzipcat-mix.c	Mon Apr 24 08:46:28 2017
++++ zziplib-0.13.66/bins/unzzipcat-mix.c	Wed May 24 21:13:24 2017
+@@ -30,7 +30,7 @@
+ 
+ static void unzzip_cat_file(ZZIP_DIR* disk, char* name, FILE* out)
+ {
+-    ZZIP_FILE* file = zzip_fopen(name, "r");
++    ZZIP_FILE* file = zzip_fopen(name, "rb");
+     if (file) 
+     {
+ 	char buffer[1024]; int len;
+@@ -43,6 +43,22 @@
+     }
+ }
+ 
++#if !defined(HAVE_STRNDUP)
++static char *
++strndup(char *p, size_t maxlen)
++{
++  char *r;
++  if (!p)
++    return 0;
++  r = malloc(maxlen + 1);
++  if (!r)
++    return r;
++  strncpy(r, p, maxlen);
++  r[maxlen] = '\0';
++  return r;
++}
++#endif
++
+ static FILE* create_fopen(char* name, char* mode, int subdirs)
+ {
+    if (subdirs)
+@@ -82,7 +98,7 @@
+ 	{
+ 	    char* name = entry->d_name;
+ 	    FILE* out = stdout;
+-	    if (extract) out = create_fopen(name, "w", 1);
++	    if (extract) out = create_fopen(name, "wb", 1);
+ 	    unzzip_cat_file (disk, name, out);
+ 	    if (extract) fclose(out);
+ 	}
+@@ -108,7 +124,7 @@
+ 	             memcpy(mix_name, zip_name, zip_name_len);
+ 	             mix_name[zip_name_len] = '/';
+ 	             strcpy(mix_name + zip_name_len + 1, name);
+-	             if (extract) out = create_fopen(name, "w", 1);
++	             if (extract) out = create_fopen(name, "wb", 1);
+ 		     fprintf(stderr, "%s %s -> %s\n", zip_name, name, mix_name);
+ 		     /* 'test1.zip' 'README' -> 'test1/README' */
+ 		     unzzip_cat_file (disk, mix_name, out);
+diff -ur zziplib-0.13.66.orig/bins/unzzipcat-zip.c zziplib-0.13.66/bins/unzzipcat-zip.c
+--- zziplib-0.13.66.orig/bins/unzzipcat-zip.c	Mon Apr 24 08:46:28 2017
++++ zziplib-0.13.66/bins/unzzipcat-zip.c	Wed May 24 21:13:24 2017
+@@ -43,6 +43,22 @@
+     }
+ }
+ 
++#if !defined(HAVE_STRNDUP)
++static char *
++strndup(char *p, size_t maxlen)
++{
++  char *r;
++  if (!p)
++    return 0;
++  r = malloc(maxlen + 1);
++  if (!r)
++    return r;
++  strncpy(r, p, maxlen);
++  r[maxlen] = '\0';
++  return r;
++}
++#endif
++
+ static FILE* create_fopen(char* name, char* mode, int subdirs)
+ {
+    if (subdirs)
+@@ -83,7 +99,7 @@
+ 	{
+ 	    char* name = entry.d_name;
+ 	    FILE* out = stdout;
+-	    if (extract) out = create_fopen(name, "w", 1);
++	    if (extract) out = create_fopen(name, "wb", 1);
+ 	    unzzip_cat_file (disk, name, out);
+ 	    if (extract) fclose(out);
+ 	}
+@@ -100,7 +116,7 @@
+ 			       FNM_NOESCAPE|FNM_PATHNAME|FNM_PERIOD))
+ 	        {
+ 	             FILE* out = stdout;
+-	             if (extract) out = create_fopen(name, "w", 1);
++	             if (extract) out = create_fopen(name, "wb", 1);
+ 		     unzzip_cat_file (disk, name, out);
+ 		     if (extract) fclose(out);
+ 		     break; /* match loop */

Modified: trunk/Build/source/libs/zziplib/TLpatches/patch-02-bugfix
===================================================================
--- trunk/Build/source/libs/zziplib/TLpatches/patch-02-bugfix	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/TLpatches/patch-02-bugfix	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,7 +1,7 @@
-diff -ur zziplib-0.13.62.orig/zzip/__mmap.h zziplib-0.13.62/zzip/__mmap.h
---- zziplib-0.13.62.orig/zzip/__mmap.h	2009-08-23 13:38:22.000000000 +0200
-+++ zziplib-0.13.62/zzip/__mmap.h	2015-03-29 12:44:43.000000000 +0200
-@@ -50,43 +50,60 @@
+diff -ur zziplib-0.13.66.orig/zzip/__mmap.h zziplib-0.13.66/zzip/__mmap.h
+--- zziplib-0.13.66.orig/zzip/__mmap.h	Mon Apr 24 08:46:28 2017
++++ zziplib-0.13.66/zzip/__mmap.h	Wed May 24 21:14:48 2017
+@@ -45,43 +45,61 @@
  #define MAP_FAILED 0
  #endif
  /* we (ab)use the "*user" variable to store the FileMapping handle */
@@ -50,7 +50,7 @@
      UnmapViewOfFile (fd_map);
      CloseHandle (*(HANDLE*)user); *user = 1;
  }
--
+ 
 +#ifdef _WIN64
 +#define _zzip_mmap(user, fd, offs, len) \
 +        win32_mmap ((__int64*) &(user), fd, offs, len)
@@ -67,10 +67,10 @@
  #else   /* disable */
  #define USE_MMAP 0
  /* USE_MAP is intentional: we expect the compiler to do some "code removal"
-diff -ur zziplib-0.13.62.orig/zzip/mmapped.h zziplib-0.13.62/zzip/mmapped.h
---- zziplib-0.13.62.orig/zzip/mmapped.h	2009-08-23 13:38:22.000000000 +0200
-+++ zziplib-0.13.62/zzip/mmapped.h	2014-07-14 11:25:47.000000000 +0200
-@@ -42,7 +42,11 @@
+diff -ur zziplib-0.13.66.orig/zzip/mmapped.h zziplib-0.13.66/zzip/mmapped.h
+--- zziplib-0.13.66.orig/zzip/mmapped.h	Mon Apr 24 08:46:28 2017
++++ zziplib-0.13.66/zzip/mmapped.h	Wed May 24 21:14:48 2017
+@@ -37,7 +37,11 @@
      void* reserved;    /* - for later extensions (might be renamed) */
      void* user;        /* - free for applications (use this!) */
      long  flags;       /* bit 0: findfile searches case-insensitive */
@@ -82,10 +82,10 @@
      long  unused;      /* - for later extensions (might be renamed) */
      long  code;        /* - free for applications (use this!) */
  };
-diff -ur zziplib-0.13.62.orig/zzip/plugin.c zziplib-0.13.62/zzip/plugin.c
---- zziplib-0.13.62.orig/zzip/plugin.c	2010-12-27 02:14:27.000000000 +0100
-+++ zziplib-0.13.62/zzip/plugin.c	2014-07-14 11:23:23.000000000 +0200
-@@ -43,7 +43,7 @@
+diff -ur zziplib-0.13.66.orig/zzip/plugin.c zziplib-0.13.66/zzip/plugin.c
+--- zziplib-0.13.66.orig/zzip/plugin.c	Mon Apr 24 08:46:28 2017
++++ zziplib-0.13.66/zzip/plugin.c	Wed May 24 21:14:48 2017
+@@ -38,7 +38,7 @@
      return st.st_size;
  }
  
@@ -94,10 +94,10 @@
      &open,
      &close,
      &_zzip_read,
-diff -ur zziplib-0.13.62.orig/zzip/plugin.h zziplib-0.13.62/zzip/plugin.h
---- zziplib-0.13.62.orig/zzip/plugin.h	2010-12-27 02:12:54.000000000 +0100
-+++ zziplib-0.13.62/zzip/plugin.h	2014-07-14 11:23:23.000000000 +0200
-@@ -47,7 +47,11 @@
+diff -ur zziplib-0.13.66.orig/zzip/plugin.h zziplib-0.13.66/zzip/plugin.h
+--- zziplib-0.13.66.orig/zzip/plugin.h	Mon Apr 24 08:46:28 2017
++++ zziplib-0.13.66/zzip/plugin.h	Wed May 24 21:14:48 2017
+@@ -42,7 +42,11 @@
      zzip_ssize_t (*read)(int fd, void* buf, zzip_size_t len);
      zzip_off_t   (*seeks)(int fd, zzip_off_t offset, int whence);
      zzip_off_t   (*filesize)(int fd);

Modified: trunk/Build/source/libs/zziplib/TLpatches/patch-03-w64-ptr
===================================================================
--- trunk/Build/source/libs/zziplib/TLpatches/patch-03-w64-ptr	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/TLpatches/patch-03-w64-ptr	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,7 +1,7 @@
-diff -ur zziplib-0.13.62.orig/zzip/zip.c zziplib-0.13.62/zzip/zip.c
---- zziplib-0.13.62.orig/zzip/zip.c	2010-12-29 17:22:29.000000000 +0100
-+++ zziplib-0.13.62/zzip/zip.c	2014-07-14 17:05:48.000000000 +0200
-@@ -374,15 +374,19 @@
+diff -ur zziplib-0.13.66.orig/zzip/zip.c zziplib-0.13.66/zzip/zip.c
+--- zziplib-0.13.66.orig/zzip/zip.c	Mon Apr 24 08:46:28 2017
++++ zziplib-0.13.66/zzip/zip.c	Wed May 24 21:14:48 2017
+@@ -369,15 +369,19 @@
   * making pointer alignments to values that can be handled as structures
   * is tricky. We assume here that an align(4) is sufficient even for
   * 64 bit machines. Note that binary operations are not usually allowed
@@ -24,4 +24,3 @@
 +#endif
      return p;
  }
- 

Modified: trunk/Build/source/libs/zziplib/configure
===================================================================
--- trunk/Build/source/libs/zziplib/configure	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/configure	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for zziplib (TeX Live) 0.13.62.
+# Generated by GNU Autoconf 2.69 for zziplib (TeX Live) 0.13.66.
 #
 # Report bugs to <tex-k at tug.org>.
 #
@@ -580,8 +580,8 @@
 # Identity of this package.
 PACKAGE_NAME='zziplib (TeX Live)'
 PACKAGE_TARNAME='zziplib--tex-live-'
-PACKAGE_VERSION='0.13.62'
-PACKAGE_STRING='zziplib (TeX Live) 0.13.62'
+PACKAGE_VERSION='0.13.66'
+PACKAGE_STRING='zziplib (TeX Live) 0.13.66'
 PACKAGE_BUGREPORT='tex-k at tug.org'
 PACKAGE_URL=''
 
@@ -1295,7 +1295,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures zziplib (TeX Live) 0.13.62 to adapt to many kinds of systems.
+\`configure' configures zziplib (TeX Live) 0.13.66 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1366,7 +1366,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of zziplib (TeX Live) 0.13.62:";;
+     short | recursive ) echo "Configuration of zziplib (TeX Live) 0.13.66:";;
    esac
   cat <<\_ACEOF
 
@@ -1472,7 +1472,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-zziplib (TeX Live) configure 0.13.62
+zziplib (TeX Live) configure 0.13.66
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2078,7 +2078,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by zziplib (TeX Live) $as_me 0.13.62, which was
+It was created by zziplib (TeX Live) $as_me 0.13.66, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4001,7 +4001,7 @@
 
 # Define the identity of the package.
  PACKAGE='zziplib--tex-live-'
- VERSION='0.13.62'
+ VERSION='0.13.66'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -7365,7 +7365,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by zziplib (TeX Live) $as_me 0.13.62, which was
+This file was extended by zziplib (TeX Live) $as_me 0.13.66, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -7431,7 +7431,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-zziplib (TeX Live) config.status 0.13.62
+zziplib (TeX Live) config.status 0.13.66
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 

Modified: trunk/Build/source/libs/zziplib/version.ac
===================================================================
--- trunk/Build/source/libs/zziplib/version.ac	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/version.ac	2017-06-20 00:49:02 UTC (rev 44647)
@@ -8,4 +8,4 @@
 dnl --------------------------------------------------------
 dnl
 dnl  m4-include this file to define the current zziplib version
-m4_define([zziplib_version], [0.13.62])
+m4_define([zziplib_version], [0.13.66])

Modified: trunk/Build/source/libs/zziplib/zziplib-src/ChangeLog
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/ChangeLog	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/ChangeLog	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,3 +1,23 @@
+
+2017-04-24  guidod  <guidod at gmx.de>
+    * common frontend 'unzzip.c' for example code in unzzip*-xx.c
+    * expand testcases to cover all of big/mem/mix/zap variants
+    * release v0.13.66
+
+2017-04-23  guidod  <guidod at gmx.de>
+    * turn the testsuite from makefile into python unittest format
+    * extend 'make check' testsuite to cover non-libzzip extensions
+    * fix unzzipcat-seeko and unzzipcat-mem to match the testsuite
+    * release v0.13.65
+
+2017-04-20  guidod  <guidod at gmx.de>
+    * check patches in opensuse builds, mostly for some CVE reports
+
+2012-09-15  guidod  <guidod at gmx.de>
+    * zzip.h, plugin.h: "};" at end of extern-C produces build errors with
+       the default --pedantic-errors on newer CMake. Thanks to Keith Thompson
+       recognizing it - see http://stackoverflow.com/questions/12384280/ 
+
 2012-03-11  guidod  <guidod at gmx.de>
 
 	* configure.ac: fallback to libtool -export-dynamic unless being sure to

Modified: trunk/Build/source/libs/zziplib/zziplib-src/Makefile.am
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/Makefile.am	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/Makefile.am	2017-06-20 00:49:02 UTC (rev 44647)
@@ -74,7 +74,7 @@
 
 check-test0 check-test1 check-zzdir check-zzcat \
 check-zzxor check-zzxordir check-zzxorcat \
-check-sfx     check-readme : \
+check-sfx check-readme check-tests tests: 
 	(cd test && $(MAKE) `basename $@`)
 
 MSVC8 =   msvc8/README.TXT msvc8/zip.exe msvc8/test1.zip msvc8/test.zip \

Modified: trunk/Build/source/libs/zziplib/zziplib-src/Makefile.in
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/Makefile.in	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/Makefile.in	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,6 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -35,11 +79,15 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = .
-DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(srcdir)/config.h.in \
-	$(top_srcdir)/configure COPYING.LIB ChangeLog TODO \
-	uses/config.guess uses/config.sub uses/depcomp uses/install-sh \
-	uses/ltmain.sh uses/missing uses/mkinstalldirs
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/configure $(am__configure_deps) \
+	$(srcdir)/config.h.in $(top_srcdir)/uses/mkinstalldirs \
+	COPYING.LIB ChangeLog README TODO uses/config.guess \
+	uses/config.sub uses/depcomp uses/install-sh uses/missing \
+	uses/mkinstalldirs uses/ltmain.sh \
+	$(top_srcdir)/uses/config.guess $(top_srcdir)/uses/config.sub \
+	$(top_srcdir)/uses/install-sh $(top_srcdir)/uses/ltmain.sh \
+	$(top_srcdir)/uses/missing
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_compile_check_sizeof.m4 \
 	$(top_srcdir)/m4/ac_set_default_paths_system.m4 \
@@ -52,7 +100,7 @@
 	$(top_srcdir)/m4/ax_check_aligned_access_required.m4 \
 	$(top_srcdir)/m4/ax_configure_args.m4 \
 	$(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \
-	$(top_srcdir)/m4/ax_enable_builddir_uname.m4 \
+	$(top_srcdir)/m4/ax_enable_builddir.m4 \
 	$(top_srcdir)/m4/ax_expand_prefix.m4 \
 	$(top_srcdir)/m4/ax_maintainer_mode_auto_silent.m4 \
 	$(top_srcdir)/m4/ax_not_enable_frame_pointer.m4 \
@@ -78,29 +126,72 @@
 CONFIG_HEADER = config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
-	distdir dist dist-all distcheck
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+	cscope distdir dist dist-all distcheck
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
+	$(LISP)config.h.in
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+CSCOPE = cscope
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
 am__remove_distdir = \
-  { test ! -d "$(distdir)" \
-    || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
-         && rm -fr "$(distdir)"; }; }
+  if test -d "$(distdir)"; then \
+    find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+      && rm -rf "$(distdir)" \
+      || { sleep 5 && rm -rf "$(distdir)"; }; \
+  else :; fi
+am__post_remove_distdir = $(am__remove_distdir)
 am__relativize = \
   dir0=`pwd`; \
   sed_first='s,^\([^/]*\)/.*$$,\1,'; \
@@ -128,10 +219,14 @@
   reldir="$$dir2"
 DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
 GZIP_ENV = --best
+DIST_TARGETS = dist-bzip2 dist-gzip
 distuninstallcheck_listfiles = find . -type f -print
+am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
+  | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
 distcleancheck_listfiles = find . -type f -print
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -331,7 +426,7 @@
 	$(MAKE) $(AM_MAKEFLAGS) all-recursive
 
 .SUFFIXES:
-am--refresh:
+am--refresh: Makefile
 	@:
 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
@@ -367,10 +462,8 @@
 $(am__aclocal_m4_deps):
 
 config.h: stamp-h1
-	@if test ! -f $@; then \
-	  rm -f stamp-h1; \
-	  $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
-	else :; fi
+	@if test ! -f $@; then rm -f stamp-h1; else :; fi
+	@if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
 
 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
 	@rm -f stamp-h1
@@ -393,22 +486,25 @@
 	-rm -f libtool config.lt
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -423,57 +519,12 @@
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -489,12 +540,7 @@
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -506,15 +552,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -523,9 +565,31 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscope: cscope.files
+	test ! -s cscope.files \
+	  || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
+clean-cscope:
+	-rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-recursive
 
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
+
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+	-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
 
 distdir: $(DISTFILES)
 	$(am__remove_distdir)
@@ -561,13 +625,10 @@
 	done
 	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
-	    test -d "$(distdir)/$$subdir" \
-	    || $(MKDIR_P) "$(distdir)/$$subdir" \
-	    || exit 1; \
-	  fi; \
-	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
+	    $(am__make_dryrun) \
+	      || test -d "$(distdir)/$$subdir" \
+	      || $(MKDIR_P) "$(distdir)/$$subdir" \
+	      || exit 1; \
 	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
 	    $(am__relativize); \
 	    new_distdir=$$reldir; \
@@ -596,36 +657,35 @@
 	|| chmod -R a+r "$(distdir)"
 dist-gzip: distdir
 	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 dist-bzip2: distdir
-	tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
-	$(am__remove_distdir)
+	tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+	$(am__post_remove_distdir)
 
-dist-lzma: distdir
-	tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
-	$(am__remove_distdir)
+dist-lzip: distdir
+	tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
+	$(am__post_remove_distdir)
 
 dist-xz: distdir
-	tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
-	$(am__remove_distdir)
+	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
+	$(am__post_remove_distdir)
 
 dist-tarZ: distdir
 	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 
 dist-shar: distdir
 	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 
 dist-zip: distdir
 	-rm -f $(distdir).zip
 	zip -rq $(distdir).zip $(distdir)
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 
-dist dist-all: distdir
-	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-	tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
-	$(am__remove_distdir)
+dist dist-all:
+	$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
+	$(am__post_remove_distdir)
 
 # This target untars the dist file and tries a VPATH configuration.  Then
 # it guarantees that the distribution is self-contained by making another
@@ -636,8 +696,8 @@
 	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
 	*.tar.bz2*) \
 	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
-	*.tar.lzma*) \
-	  lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
+	*.tar.lz*) \
+	  lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
 	*.tar.xz*) \
 	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\
 	*.tar.Z*) \
@@ -647,9 +707,9 @@
 	*.zip*) \
 	  unzip $(distdir).zip ;;\
 	esac
-	chmod -R a-w $(distdir); chmod a+w $(distdir)
-	mkdir $(distdir)/_build
-	mkdir $(distdir)/_inst
+	chmod -R a-w $(distdir)
+	chmod u+w $(distdir)
+	mkdir $(distdir)/_build $(distdir)/_inst
 	chmod a-w $(distdir)
 	test -d $(distdir)/_build || exit 0; \
 	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
@@ -657,6 +717,7 @@
 	  && am__cwd=`pwd` \
 	  && $(am__cd) $(distdir)/_build \
 	  && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+	    $(AM_DISTCHECK_CONFIGURE_FLAGS) \
 	    $(DISTCHECK_CONFIGURE_FLAGS) \
 	  && $(MAKE) $(AM_MAKEFLAGS) \
 	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
@@ -680,13 +741,21 @@
 	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
 	  && cd "$$am__cwd" \
 	  || exit 1
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 	@(echo "$(distdir) archives ready for distribution: "; \
 	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
 	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
 distuninstallcheck:
-	@$(am__cd) '$(distuninstallcheck_dir)' \
-	&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+	@test -n '$(distuninstallcheck_dir)' || { \
+	  echo 'ERROR: trying to run $@ with an empty' \
+	       '$$(distuninstallcheck_dir)' >&2; \
+	  exit 1; \
+	}; \
+	$(am__cd) '$(distuninstallcheck_dir)' || { \
+	  echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
+	  exit 1; \
+	}; \
+	test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
 	   || { echo "ERROR: files left after uninstall:" ; \
 	        if test -n "$(DESTDIR)"; then \
 	          echo "  (check DESTDIR support)"; \
@@ -717,10 +786,15 @@
 
 installcheck: installcheck-recursive
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
@@ -802,24 +876,24 @@
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
-	ctags-recursive install-am install-strip tags-recursive
+.MAKE: $(am__recursive_targets) all install-am install-strip
 
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am am--refresh check check-am clean clean-generic \
-	clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
-	dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \
-	distcheck distclean distclean-generic distclean-hdr \
-	distclean-libtool distclean-tags distcleancheck distdir \
-	distuninstallcheck dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	installdirs-am maintainer-clean maintainer-clean-generic \
-	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
-	ps ps-am tags tags-recursive uninstall uninstall-am
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
+	am--refresh check check-am clean clean-cscope clean-generic \
+	clean-libtool cscope cscopelist-am ctags ctags-am dist \
+	dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \
+	dist-xz dist-zip distcheck distclean distclean-generic \
+	distclean-hdr distclean-libtool distclean-tags distcleancheck \
+	distdir distuninstallcheck dvi dvi-am html html-am info \
+	info-am install install-am install-data install-data-am \
+	install-dvi install-dvi-am install-exec install-exec-am \
+	install-html install-html-am install-info install-info-am \
+	install-man install-pdf install-pdf-am install-ps \
+	install-ps-am install-strip installcheck installcheck-am \
+	installdirs installdirs-am maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+	uninstall-am
 
 
 rpm: dist-bzip2 $(PACKAGE).spec
@@ -875,7 +949,7 @@
 
 check-test0 check-test1 check-zzdir check-zzcat \
 check-zzxor check-zzxordir check-zzxorcat \
-check-sfx     check-readme : \
+check-sfx check-readme check-tests tests: 
 	(cd test && $(MAKE) `basename $@`)
 # ------------------------------------------------------------------------
 

Modified: trunk/Build/source/libs/zziplib/zziplib-src/SDL/Makefile.in
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/SDL/Makefile.in	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/SDL/Makefile.in	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,6 +16,51 @@
 
 
 VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -38,8 +82,9 @@
 target_triplet = @target@
 check_PROGRAMS = zzcatsdl$(EXEEXT)
 subdir = SDL
-DIST_COMMON = $(pkgconfig_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/uses/mkinstalldirs $(top_srcdir)/uses/depcomp \
+	$(pkgconfig_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_compile_check_sizeof.m4 \
 	$(top_srcdir)/m4/ac_set_default_paths_system.m4 \
@@ -52,7 +97,7 @@
 	$(top_srcdir)/m4/ax_check_aligned_access_required.m4 \
 	$(top_srcdir)/m4/ax_configure_args.m4 \
 	$(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \
-	$(top_srcdir)/m4/ax_enable_builddir_uname.m4 \
+	$(top_srcdir)/m4/ax_enable_builddir.m4 \
 	$(top_srcdir)/m4/ax_expand_prefix.m4 \
 	$(top_srcdir)/m4/ax_maintainer_mode_auto_silent.m4 \
 	$(top_srcdir)/m4/ax_not_enable_frame_pointer.m4 \
@@ -80,6 +125,22 @@
 	SDL_rwops_zzip.$(OBJEXT)
 zzcatsdl_OBJECTS = $(am_zzcatsdl_OBJECTS)
 zzcatsdl_LDADD = $(LDADD)
+AM_V_lt = $(am__v_lt_ at AM_V@)
+am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/uses/depcomp
 am__depfiles_maybe = depfiles
@@ -86,15 +147,29 @@
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_ at AM_V@)
+am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(zzcatsdl_SOURCES)
 DIST_SOURCES = $(zzcatsdl_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -116,15 +191,39 @@
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(zzipsdldir)" \
 	"$(DESTDIR)$(pkgconfigdir)"
 DATA = $(zzipsdl_DATA)
 HEADERS = $(pkgconfig_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -328,9 +427,10 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
-zzcatsdl$(EXEEXT): $(zzcatsdl_OBJECTS) $(zzcatsdl_DEPENDENCIES) 
+
+zzcatsdl$(EXEEXT): $(zzcatsdl_OBJECTS) $(zzcatsdl_DEPENDENCIES) $(EXTRA_zzcatsdl_DEPENDENCIES) 
 	@rm -f zzcatsdl$(EXEEXT)
-	$(LINK) $(zzcatsdl_OBJECTS) $(zzcatsdl_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(zzcatsdl_OBJECTS) $(zzcatsdl_LDADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -342,25 +442,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/SDL_rwops_zzip.Po at am__quote@
 
 .c.o:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
- at am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -369,8 +469,11 @@
 	-rm -rf .libs _libs
 install-zzipsdlDATA: $(zzipsdl_DATA)
 	@$(NORMAL_INSTALL)
-	test -z "$(zzipsdldir)" || $(MKDIR_P) "$(DESTDIR)$(zzipsdldir)"
 	@list='$(zzipsdl_DATA)'; test -n "$(zzipsdldir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(zzipsdldir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(zzipsdldir)" || exit 1; \
+	fi; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
@@ -384,13 +487,14 @@
 	@$(NORMAL_UNINSTALL)
 	@list='$(zzipsdl_DATA)'; test -n "$(zzipsdldir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(zzipsdldir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(zzipsdldir)" && rm -f $$files
+	dir='$(DESTDIR)$(zzipsdldir)'; $(am__uninstall_files_from_dir)
 install-pkgconfigHEADERS: $(pkgconfig_HEADERS)
 	@$(NORMAL_INSTALL)
-	test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)"
 	@list='$(pkgconfig_HEADERS)'; test -n "$(pkgconfigdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \
+	fi; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
@@ -404,30 +508,17 @@
 	@$(NORMAL_UNINSTALL)
 	@list='$(pkgconfig_HEADERS)'; test -n "$(pkgconfigdir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files
+	dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -439,15 +530,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -456,7 +543,22 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
 
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
+
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
@@ -508,10 +610,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
@@ -597,9 +704,9 @@
 
 .MAKE: check-am install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean \
-	clean-checkPROGRAMS clean-generic clean-libtool ctags \
-	distclean distclean-compile distclean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
+	clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \
+	ctags ctags-am distclean distclean-compile distclean-generic \
 	distclean-libtool distclean-tags distdir dvi dvi-am html \
 	html-am info info-am install install-am install-data \
 	install-data-am install-dvi install-dvi-am install-exec \
@@ -609,7 +716,7 @@
 	install-strip install-zzipsdlDATA installcheck installcheck-am \
 	installdirs maintainer-clean maintainer-clean-generic \
 	mostlyclean mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
 	uninstall-am uninstall-pkgconfigHEADERS uninstall-zzipsdlDATA
 
 

Deleted: trunk/Build/source/libs/zziplib/zziplib-src/SDL/SDL_rwops_zzip.c
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/SDL/SDL_rwops_zzip.c	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/SDL/SDL_rwops_zzip.c	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,62 +0,0 @@
-/*
- *      Copyright (c) 2001 Guido Draheim <guidod at gmx.de>
- *      Use freely under the restrictions of the ZLIB License
- *
- *      (this example uses errno which might not be multithreaded everywhere)
- */
-
-#include <SDL_rwops_zzip.h>
-#include <zzip/zzip.h>
-#include <string.h> /* strchr */
-
-/* MSVC can not take a casted variable as an lvalue ! */
-#define SDL_RWOPS_ZZIP_DATA(_context) \
-             ((_context)->hidden.unknown.data1)
-#define SDL_RWOPS_ZZIP_FILE(_context)  (ZZIP_FILE*) \
-             ((_context)->hidden.unknown.data1)
-
-static int _zzip_seek(SDL_RWops *context, int offset, int whence)
-{
-    return zzip_seek(SDL_RWOPS_ZZIP_FILE(context), offset, whence);
-}
-
-static int _zzip_read(SDL_RWops *context, void *ptr, int size, int maxnum)
-{
-    return zzip_read(SDL_RWOPS_ZZIP_FILE(context), ptr, size*maxnum) / size;
-}
-
-static int _zzip_write(SDL_RWops *context, const void *ptr, int size, int num)
-{
-    return 0; /* ignored */
-}
-
-static int _zzip_close(SDL_RWops *context)
-{
-    if (! context) return 0; /* may be SDL_RWclose is called by atexit */
-
-    zzip_close (SDL_RWOPS_ZZIP_FILE(context));
-    SDL_FreeRW (context);
-    return 0;
-}
-
-SDL_RWops *SDL_RWFromZZIP(const char* file, const char* mode)
-{
-    register SDL_RWops* rwops;
-    register ZZIP_FILE* zzip_file;
-
-    if (! strchr (mode, 'r'))
-	return SDL_RWFromFile(file, mode);
-
-    zzip_file = zzip_fopen (file, mode);
-    if (! zzip_file) return 0;
-
-    rwops = SDL_AllocRW ();
-    if (! rwops) { errno=ENOMEM; zzip_close (zzip_file); return 0; }
-
-    SDL_RWOPS_ZZIP_DATA(rwops) = zzip_file;
-    rwops->read = _zzip_read;
-    rwops->write = _zzip_write;
-    rwops->seek = _zzip_seek;
-    rwops->close = _zzip_close;
-    return rwops;
-}

Added: trunk/Build/source/libs/zziplib/zziplib-src/SDL/zzip-sdl-config.pc
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/SDL/zzip-sdl-config.pc	                        (rev 0)
+++ trunk/Build/source/libs/zziplib/zziplib-src/SDL/zzip-sdl-config.pc	2017-06-20 00:49:02 UTC (rev 44647)
@@ -0,0 +1,10 @@
+prefix=/usr
+sdl_static_libs=-L/usr/lib -lSDL -lpthread -lm -ldl -lasound -laudio -lXt -L/usr/X11R6/lib -lX11 -lXext
+sdl_libs=-L/usr/lib -lSDL -lpthread
+sdl_cflags=-I/usr/include/SDL -D_REENTRANT
+ 
+Name: zzip-sdl-config
+Version: 1.2.5
+Description: SDL Config (for ZZipLib)
+Libs: ${sdl_libs}
+Cflags: ${sdl_cflags}

Added: trunk/Build/source/libs/zziplib/zziplib-src/SDL/zzip-sdl-rwops.pc
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/SDL/zzip-sdl-rwops.pc	                        (rev 0)
+++ trunk/Build/source/libs/zziplib/zziplib-src/SDL/zzip-sdl-rwops.pc	2017-06-20 00:49:02 UTC (rev 44647)
@@ -0,0 +1,8 @@
+zzipdatadir=/usr/local/share/zziplib
+zzipsdlrwops=${zzipdatadir}/SDL
+ 
+Name: zzip-sdl-rwops
+Version: 0.13.24
+Description: SDL_rwops for ZZipLib
+Requires: zzip-sdl-config, zziplib
+Cflags: -I${zzipsdlrwops}

Modified: trunk/Build/source/libs/zziplib/zziplib-src/bins/Makefile.am
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/bins/Makefile.am	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/bins/Makefile.am	2017-06-20 00:49:02 UTC (rev 44647)
@@ -4,8 +4,7 @@
 DEFS = @DEFS@ -I$(top_builddir) -I$(top_srcdir) # also for automake 1.4
 
 bin_PROGRAMS = zzcat zzdir zzxorcat zzxordir zzxorcopy \
-               unzzip unzzipdir unzzipcat unzzipcat-seeko \
-               unzzipdir-mem unzzipcat-mem unzip-mem
+               unzzip unzzip-mix unzzip-mem unzzip-big unzip-mem
 noinst_PROGRAMS = zziptest zzobfuscated zzip
 aclocaldir = $(datadir)/aclocal
 aclocal_DATA = zziplib.m4
@@ -17,10 +16,9 @@
 
 WCC10_CLEAN = *.obj *.lk1 *.mk1 *.mk *.sym *.tgt
 
-EXTRA_DIST = $(aclocal_DATA)
+EXTRA_DIST = $(aclocal_DATA) unzzip.h
 CLEANFILES = $(WCC10_CLEAN)
 
-unzzip_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz
 zzip_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz
 zziptest_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz
 zzcat_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz
@@ -29,14 +27,16 @@
 zzxordir_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz
 zzobfuscated_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz
 
-# these use the simplified mmapped disk version
-unzzipdir_LDADD = ../zzip/libzzipmmapped.la @RESOLVES@ -lz
-unzzipcat_LDADD = ../zzip/libzzipmmapped.la @RESOLVES@ -lz
-unzzipdir_mem_LDADD = ../zzip/libzzipmmapped.la @RESOLVES@ -lz
-unzzipcat_mem_LDADD = ../zzip/libzzipmmapped.la @RESOLVES@ -lz
+unzzip_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz
+unzzip_SOURCES = unzzip.c unzzipcat-zip.c unzzipdir-zip.c
+unzzip_mix_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz
+unzzip_mix_SOURCES = unzzip.c unzzipcat-mix.c unzzipdir-mix.c
+unzzip_mem_LDADD = ../zzip/libzzipmmapped.la @RESOLVES@ -lz
+unzzip_mem_SOURCES = unzzip.c unzzipcat-mem.c unzzipdir-mem.c
+unzzip_big_LDADD = ../zzip/libzzipfseeko.la @RESOLVES@ -lz
+unzzip_big_SOURCES = unzzip.c unzzipcat-big.c unzzipdir-big.c
+
 unzip_mem_LDADD = ../zzip/libzzipmmapped.la @RESOLVES@ -lz
-# and this uses the simplified fseeko stdio version
-unzzipcat_seeko_LDADD = ../zzip/libzzipfseeko.la @RESOLVES@ -lz
 
 ../zzip/libzzip.la : @top_srcdir@/zzip/*.c
 	(cd ../zzip && $(MAKE) `basename $@`)

Modified: trunk/Build/source/libs/zziplib/zziplib-src/bins/Makefile.in
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/bins/Makefile.in	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/bins/Makefile.in	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,6 +16,51 @@
 
 
 VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -38,13 +82,13 @@
 target_triplet = @target@
 bin_PROGRAMS = zzcat$(EXEEXT) zzdir$(EXEEXT) zzxorcat$(EXEEXT) \
 	zzxordir$(EXEEXT) zzxorcopy$(EXEEXT) unzzip$(EXEEXT) \
-	unzzipdir$(EXEEXT) unzzipcat$(EXEEXT) unzzipcat-seeko$(EXEEXT) \
-	unzzipdir-mem$(EXEEXT) unzzipcat-mem$(EXEEXT) \
+	unzzip-mix$(EXEEXT) unzzip-mem$(EXEEXT) unzzip-big$(EXEEXT) \
 	unzip-mem$(EXEEXT)
 noinst_PROGRAMS = zziptest$(EXEEXT) zzobfuscated$(EXEEXT) \
 	zzip$(EXEEXT)
 subdir = bins
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/uses/mkinstalldirs $(top_srcdir)/uses/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_compile_check_sizeof.m4 \
 	$(top_srcdir)/m4/ac_set_default_paths_system.m4 \
@@ -57,7 +101,7 @@
 	$(top_srcdir)/m4/ax_check_aligned_access_required.m4 \
 	$(top_srcdir)/m4/ax_configure_args.m4 \
 	$(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \
-	$(top_srcdir)/m4/ax_enable_builddir_uname.m4 \
+	$(top_srcdir)/m4/ax_enable_builddir.m4 \
 	$(top_srcdir)/m4/ax_expand_prefix.m4 \
 	$(top_srcdir)/m4/ax_maintainer_mode_auto_silent.m4 \
 	$(top_srcdir)/m4/ax_not_enable_frame_pointer.m4 \
@@ -86,24 +130,26 @@
 unzip_mem_SOURCES = unzip-mem.c
 unzip_mem_OBJECTS = unzip-mem.$(OBJEXT)
 unzip_mem_DEPENDENCIES = ../zzip/libzzipmmapped.la
-unzzip_SOURCES = unzzip.c
-unzzip_OBJECTS = unzzip.$(OBJEXT)
+AM_V_lt = $(am__v_lt_ at AM_V@)
+am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+am_unzzip_OBJECTS = unzzip.$(OBJEXT) unzzipcat-zip.$(OBJEXT) \
+	unzzipdir-zip.$(OBJEXT)
+unzzip_OBJECTS = $(am_unzzip_OBJECTS)
 unzzip_DEPENDENCIES = ../zzip/libzzip.la
-unzzipcat_SOURCES = unzzipcat.c
-unzzipcat_OBJECTS = unzzipcat.$(OBJEXT)
-unzzipcat_DEPENDENCIES = ../zzip/libzzipmmapped.la
-unzzipcat_mem_SOURCES = unzzipcat-mem.c
-unzzipcat_mem_OBJECTS = unzzipcat-mem.$(OBJEXT)
-unzzipcat_mem_DEPENDENCIES = ../zzip/libzzipmmapped.la
-unzzipcat_seeko_SOURCES = unzzipcat-seeko.c
-unzzipcat_seeko_OBJECTS = unzzipcat-seeko.$(OBJEXT)
-unzzipcat_seeko_DEPENDENCIES = ../zzip/libzzipfseeko.la
-unzzipdir_SOURCES = unzzipdir.c
-unzzipdir_OBJECTS = unzzipdir.$(OBJEXT)
-unzzipdir_DEPENDENCIES = ../zzip/libzzipmmapped.la
-unzzipdir_mem_SOURCES = unzzipdir-mem.c
-unzzipdir_mem_OBJECTS = unzzipdir-mem.$(OBJEXT)
-unzzipdir_mem_DEPENDENCIES = ../zzip/libzzipmmapped.la
+am_unzzip_big_OBJECTS = unzzip.$(OBJEXT) unzzipcat-big.$(OBJEXT) \
+	unzzipdir-big.$(OBJEXT)
+unzzip_big_OBJECTS = $(am_unzzip_big_OBJECTS)
+unzzip_big_DEPENDENCIES = ../zzip/libzzipfseeko.la
+am_unzzip_mem_OBJECTS = unzzip.$(OBJEXT) unzzipcat-mem.$(OBJEXT) \
+	unzzipdir-mem.$(OBJEXT)
+unzzip_mem_OBJECTS = $(am_unzzip_mem_OBJECTS)
+unzzip_mem_DEPENDENCIES = ../zzip/libzzipmmapped.la
+am_unzzip_mix_OBJECTS = unzzip.$(OBJEXT) unzzipcat-mix.$(OBJEXT) \
+	unzzipdir-mix.$(OBJEXT)
+unzzip_mix_OBJECTS = $(am_unzzip_mix_OBJECTS)
+unzzip_mix_DEPENDENCIES = ../zzip/libzzip.la
 zzcat_SOURCES = zzcat.c
 zzcat_OBJECTS = zzcat.$(OBJEXT)
 zzcat_DEPENDENCIES = ../zzip/libzzip.la
@@ -128,26 +174,52 @@
 zzxordir_SOURCES = zzxordir.c
 zzxordir_OBJECTS = zzxordir.$(OBJEXT)
 zzxordir_DEPENDENCIES = ../zzip/libzzip.la
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 depcomp = $(SHELL) $(top_srcdir)/uses/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_ at AM_V@)
+am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
-SOURCES = unzip-mem.c unzzip.c unzzipcat.c unzzipcat-mem.c \
-	unzzipcat-seeko.c unzzipdir.c unzzipdir-mem.c zzcat.c zzdir.c \
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = unzip-mem.c $(unzzip_SOURCES) $(unzzip_big_SOURCES) \
+	$(unzzip_mem_SOURCES) $(unzzip_mix_SOURCES) zzcat.c zzdir.c \
 	zzip.c zziptest.c zzobfuscated.c zzxorcat.c zzxorcopy.c \
 	zzxordir.c
-DIST_SOURCES = unzip-mem.c unzzip.c unzzipcat.c unzzipcat-mem.c \
-	unzzipcat-seeko.c unzzipdir.c unzzipdir-mem.c zzcat.c zzdir.c \
+DIST_SOURCES = unzip-mem.c $(unzzip_SOURCES) $(unzzip_big_SOURCES) \
+	$(unzzip_mem_SOURCES) $(unzzip_mix_SOURCES) zzcat.c zzdir.c \
 	zzip.c zziptest.c zzobfuscated.c zzxorcat.c zzxorcopy.c \
 	zzxordir.c
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -169,12 +241,36 @@
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 DATA = $(aclocal_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -327,9 +423,8 @@
 aclocal_DATA = zziplib.m4
 #
 WCC10_CLEAN = *.obj *.lk1 *.mk1 *.mk *.sym *.tgt
-EXTRA_DIST = $(aclocal_DATA)
+EXTRA_DIST = $(aclocal_DATA) unzzip.h
 CLEANFILES = $(WCC10_CLEAN)
-unzzip_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz
 zzip_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz
 zziptest_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz
 zzcat_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz
@@ -337,15 +432,15 @@
 zzxorcat_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz
 zzxordir_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz
 zzobfuscated_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz
-
-# these use the simplified mmapped disk version
-unzzipdir_LDADD = ../zzip/libzzipmmapped.la @RESOLVES@ -lz
-unzzipcat_LDADD = ../zzip/libzzipmmapped.la @RESOLVES@ -lz
-unzzipdir_mem_LDADD = ../zzip/libzzipmmapped.la @RESOLVES@ -lz
-unzzipcat_mem_LDADD = ../zzip/libzzipmmapped.la @RESOLVES@ -lz
+unzzip_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz
+unzzip_SOURCES = unzzip.c unzzipcat-zip.c unzzipdir-zip.c
+unzzip_mix_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz
+unzzip_mix_SOURCES = unzzip.c unzzipcat-mix.c unzzipdir-mix.c
+unzzip_mem_LDADD = ../zzip/libzzipmmapped.la @RESOLVES@ -lz
+unzzip_mem_SOURCES = unzzip.c unzzipcat-mem.c unzzipdir-mem.c
+unzzip_big_LDADD = ../zzip/libzzipfseeko.la @RESOLVES@ -lz
+unzzip_big_SOURCES = unzzip.c unzzipcat-big.c unzzipdir-big.c
 unzip_mem_LDADD = ../zzip/libzzipmmapped.la @RESOLVES@ -lz
-# and this uses the simplified fseeko stdio version
-unzzipcat_seeko_LDADD = ../zzip/libzzipfseeko.la @RESOLVES@ -lz
 all: all-am
 
 .SUFFIXES:
@@ -382,14 +477,19 @@
 $(am__aclocal_m4_deps):
 install-binPROGRAMS: $(bin_PROGRAMS)
 	@$(NORMAL_INSTALL)
-	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
 	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+	fi; \
 	for p in $$list; do echo "$$p $$p"; done | \
 	sed 's/$(EXEEXT)$$//' | \
-	while read p p1; do if test -f $$p || test -f $$p1; \
-	  then echo "$$p"; echo "$$p"; else :; fi; \
+	while read p p1; do if test -f $$p \
+	 || test -f $$p1 \
+	  ; then echo "$$p"; echo "$$p"; else :; fi; \
 	done | \
-	sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+	sed -e 'p;s,.*/,,;n;h' \
+	    -e 's|.*|.|' \
 	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
 	sed 'N;N;N;s,\n, ,g' | \
 	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@@ -410,7 +510,8 @@
 	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
 	files=`for p in $$list; do echo "$$p"; done | \
 	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-	      -e 's/$$/$(EXEEXT)/' `; \
+	      -e 's/$$/$(EXEEXT)/' \
+	`; \
 	test -n "$$list" || exit 0; \
 	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
 	cd "$(DESTDIR)$(bindir)" && rm -f $$files
@@ -432,51 +533,58 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
-unzip-mem$(EXEEXT): $(unzip_mem_OBJECTS) $(unzip_mem_DEPENDENCIES) 
+
+unzip-mem$(EXEEXT): $(unzip_mem_OBJECTS) $(unzip_mem_DEPENDENCIES) $(EXTRA_unzip_mem_DEPENDENCIES) 
 	@rm -f unzip-mem$(EXEEXT)
-	$(LINK) $(unzip_mem_OBJECTS) $(unzip_mem_LDADD) $(LIBS)
-unzzip$(EXEEXT): $(unzzip_OBJECTS) $(unzzip_DEPENDENCIES) 
+	$(AM_V_CCLD)$(LINK) $(unzip_mem_OBJECTS) $(unzip_mem_LDADD) $(LIBS)
+
+unzzip$(EXEEXT): $(unzzip_OBJECTS) $(unzzip_DEPENDENCIES) $(EXTRA_unzzip_DEPENDENCIES) 
 	@rm -f unzzip$(EXEEXT)
-	$(LINK) $(unzzip_OBJECTS) $(unzzip_LDADD) $(LIBS)
-unzzipcat$(EXEEXT): $(unzzipcat_OBJECTS) $(unzzipcat_DEPENDENCIES) 
-	@rm -f unzzipcat$(EXEEXT)
-	$(LINK) $(unzzipcat_OBJECTS) $(unzzipcat_LDADD) $(LIBS)
-unzzipcat-mem$(EXEEXT): $(unzzipcat_mem_OBJECTS) $(unzzipcat_mem_DEPENDENCIES) 
-	@rm -f unzzipcat-mem$(EXEEXT)
-	$(LINK) $(unzzipcat_mem_OBJECTS) $(unzzipcat_mem_LDADD) $(LIBS)
-unzzipcat-seeko$(EXEEXT): $(unzzipcat_seeko_OBJECTS) $(unzzipcat_seeko_DEPENDENCIES) 
-	@rm -f unzzipcat-seeko$(EXEEXT)
-	$(LINK) $(unzzipcat_seeko_OBJECTS) $(unzzipcat_seeko_LDADD) $(LIBS)
-unzzipdir$(EXEEXT): $(unzzipdir_OBJECTS) $(unzzipdir_DEPENDENCIES) 
-	@rm -f unzzipdir$(EXEEXT)
-	$(LINK) $(unzzipdir_OBJECTS) $(unzzipdir_LDADD) $(LIBS)
-unzzipdir-mem$(EXEEXT): $(unzzipdir_mem_OBJECTS) $(unzzipdir_mem_DEPENDENCIES) 
-	@rm -f unzzipdir-mem$(EXEEXT)
-	$(LINK) $(unzzipdir_mem_OBJECTS) $(unzzipdir_mem_LDADD) $(LIBS)
-zzcat$(EXEEXT): $(zzcat_OBJECTS) $(zzcat_DEPENDENCIES) 
+	$(AM_V_CCLD)$(LINK) $(unzzip_OBJECTS) $(unzzip_LDADD) $(LIBS)
+
+unzzip-big$(EXEEXT): $(unzzip_big_OBJECTS) $(unzzip_big_DEPENDENCIES) $(EXTRA_unzzip_big_DEPENDENCIES) 
+	@rm -f unzzip-big$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(unzzip_big_OBJECTS) $(unzzip_big_LDADD) $(LIBS)
+
+unzzip-mem$(EXEEXT): $(unzzip_mem_OBJECTS) $(unzzip_mem_DEPENDENCIES) $(EXTRA_unzzip_mem_DEPENDENCIES) 
+	@rm -f unzzip-mem$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(unzzip_mem_OBJECTS) $(unzzip_mem_LDADD) $(LIBS)
+
+unzzip-mix$(EXEEXT): $(unzzip_mix_OBJECTS) $(unzzip_mix_DEPENDENCIES) $(EXTRA_unzzip_mix_DEPENDENCIES) 
+	@rm -f unzzip-mix$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(unzzip_mix_OBJECTS) $(unzzip_mix_LDADD) $(LIBS)
+
+zzcat$(EXEEXT): $(zzcat_OBJECTS) $(zzcat_DEPENDENCIES) $(EXTRA_zzcat_DEPENDENCIES) 
 	@rm -f zzcat$(EXEEXT)
-	$(LINK) $(zzcat_OBJECTS) $(zzcat_LDADD) $(LIBS)
-zzdir$(EXEEXT): $(zzdir_OBJECTS) $(zzdir_DEPENDENCIES) 
+	$(AM_V_CCLD)$(LINK) $(zzcat_OBJECTS) $(zzcat_LDADD) $(LIBS)
+
+zzdir$(EXEEXT): $(zzdir_OBJECTS) $(zzdir_DEPENDENCIES) $(EXTRA_zzdir_DEPENDENCIES) 
 	@rm -f zzdir$(EXEEXT)
-	$(LINK) $(zzdir_OBJECTS) $(zzdir_LDADD) $(LIBS)
-zzip$(EXEEXT): $(zzip_OBJECTS) $(zzip_DEPENDENCIES) 
+	$(AM_V_CCLD)$(LINK) $(zzdir_OBJECTS) $(zzdir_LDADD) $(LIBS)
+
+zzip$(EXEEXT): $(zzip_OBJECTS) $(zzip_DEPENDENCIES) $(EXTRA_zzip_DEPENDENCIES) 
 	@rm -f zzip$(EXEEXT)
-	$(LINK) $(zzip_OBJECTS) $(zzip_LDADD) $(LIBS)
-zziptest$(EXEEXT): $(zziptest_OBJECTS) $(zziptest_DEPENDENCIES) 
+	$(AM_V_CCLD)$(LINK) $(zzip_OBJECTS) $(zzip_LDADD) $(LIBS)
+
+zziptest$(EXEEXT): $(zziptest_OBJECTS) $(zziptest_DEPENDENCIES) $(EXTRA_zziptest_DEPENDENCIES) 
 	@rm -f zziptest$(EXEEXT)
-	$(LINK) $(zziptest_OBJECTS) $(zziptest_LDADD) $(LIBS)
-zzobfuscated$(EXEEXT): $(zzobfuscated_OBJECTS) $(zzobfuscated_DEPENDENCIES) 
+	$(AM_V_CCLD)$(LINK) $(zziptest_OBJECTS) $(zziptest_LDADD) $(LIBS)
+
+zzobfuscated$(EXEEXT): $(zzobfuscated_OBJECTS) $(zzobfuscated_DEPENDENCIES) $(EXTRA_zzobfuscated_DEPENDENCIES) 
 	@rm -f zzobfuscated$(EXEEXT)
-	$(LINK) $(zzobfuscated_OBJECTS) $(zzobfuscated_LDADD) $(LIBS)
-zzxorcat$(EXEEXT): $(zzxorcat_OBJECTS) $(zzxorcat_DEPENDENCIES) 
+	$(AM_V_CCLD)$(LINK) $(zzobfuscated_OBJECTS) $(zzobfuscated_LDADD) $(LIBS)
+
+zzxorcat$(EXEEXT): $(zzxorcat_OBJECTS) $(zzxorcat_DEPENDENCIES) $(EXTRA_zzxorcat_DEPENDENCIES) 
 	@rm -f zzxorcat$(EXEEXT)
-	$(LINK) $(zzxorcat_OBJECTS) $(zzxorcat_LDADD) $(LIBS)
-zzxorcopy$(EXEEXT): $(zzxorcopy_OBJECTS) $(zzxorcopy_DEPENDENCIES) 
+	$(AM_V_CCLD)$(LINK) $(zzxorcat_OBJECTS) $(zzxorcat_LDADD) $(LIBS)
+
+zzxorcopy$(EXEEXT): $(zzxorcopy_OBJECTS) $(zzxorcopy_DEPENDENCIES) $(EXTRA_zzxorcopy_DEPENDENCIES) 
 	@rm -f zzxorcopy$(EXEEXT)
-	$(LINK) $(zzxorcopy_OBJECTS) $(zzxorcopy_LDADD) $(LIBS)
-zzxordir$(EXEEXT): $(zzxordir_OBJECTS) $(zzxordir_DEPENDENCIES) 
+	$(AM_V_CCLD)$(LINK) $(zzxorcopy_OBJECTS) $(zzxorcopy_LDADD) $(LIBS)
+
+zzxordir$(EXEEXT): $(zzxordir_OBJECTS) $(zzxordir_DEPENDENCIES) $(EXTRA_zzxordir_DEPENDENCIES) 
 	@rm -f zzxordir$(EXEEXT)
-	$(LINK) $(zzxordir_OBJECTS) $(zzxordir_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(zzxordir_OBJECTS) $(zzxordir_LDADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -486,11 +594,14 @@
 
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/unzip-mem.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/unzzip.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/unzzipcat-big.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/unzzipcat-mem.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/unzzipcat-seeko.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/unzzipcat.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/unzzipcat-mix.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/unzzipcat-zip.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/unzzipdir-big.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/unzzipdir-mem.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/unzzipdir.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/unzzipdir-mix.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/unzzipdir-zip.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/zzcat.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/zzdir.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/zzip.Po at am__quote@
@@ -501,25 +612,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/zzxordir.Po at am__quote@
 
 .c.o:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
- at am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -528,8 +639,11 @@
 	-rm -rf .libs _libs
 install-aclocalDATA: $(aclocal_DATA)
 	@$(NORMAL_INSTALL)
-	test -z "$(aclocaldir)" || $(MKDIR_P) "$(DESTDIR)$(aclocaldir)"
 	@list='$(aclocal_DATA)'; test -n "$(aclocaldir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(aclocaldir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(aclocaldir)" || exit 1; \
+	fi; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
@@ -543,30 +657,17 @@
 	@$(NORMAL_UNINSTALL)
 	@list='$(aclocal_DATA)'; test -n "$(aclocaldir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(aclocaldir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(aclocaldir)" && rm -f $$files
+	dir='$(DESTDIR)$(aclocaldir)'; $(am__uninstall_files_from_dir)
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -578,15 +679,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -595,7 +692,22 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
 
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
+
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
@@ -646,10 +758,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
@@ -735,20 +852,21 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
-	clean-generic clean-libtool clean-noinstPROGRAMS ctags \
-	distclean distclean-compile distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-aclocalDATA install-am \
-	install-binPROGRAMS install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags uninstall uninstall-aclocalDATA \
-	uninstall-am uninstall-binPROGRAMS
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
+	clean-binPROGRAMS clean-generic clean-libtool \
+	clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-aclocalDATA install-am install-binPROGRAMS \
+	install-data install-data-am install-dvi install-dvi-am \
+	install-exec install-exec-am install-html install-html-am \
+	install-info install-info-am install-man install-pdf \
+	install-pdf-am install-ps install-ps-am install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags tags-am uninstall uninstall-aclocalDATA uninstall-am \
+	uninstall-binPROGRAMS
 
 
 ../zzip/libzzip.la : @top_srcdir@/zzip/*.c

Modified: trunk/Build/source/libs/zziplib/zziplib-src/bins/unzip-mem.c
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/bins/unzip-mem.c	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/bins/unzip-mem.c	2017-06-20 00:49:02 UTC (rev 44647)
@@ -100,7 +100,7 @@
 static void zzip_mem_entry_make(ZZIP_MEM_DISK* disk, 
 				ZZIP_MEM_ENTRY* entry)
 {
-    FILE* file = fopen (entry->zz_name, "w");
+    FILE* file = fopen (entry->zz_name, "wb");
     if (file) { zzip_mem_entry_pipe (disk, entry, file); fclose (file); }
     perror (entry->zz_name);
     if (status < EXIT_WARNINGS) status = EXIT_WARNINGS;

Modified: trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzip.c
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzip.c	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzip.c	2017-06-20 00:49:02 UTC (rev 44647)
@@ -8,24 +8,32 @@
 #include <zzip/zzip.h>
 #include <stdio.h>
 #include <string.h>
+#include "unzzip.h"
 
-#ifdef ZZIP_HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef ZZIP_HAVE_IO_H
-#include <io.h>
-#endif
+extern int unzzip_list(int argc, char** argv);
+extern int unzzip_print(int argc, char** argv);
+extern int unzzip_extract(int argc, char** argv);
 
-#ifndef O_BINARY
-#define O_BINARY 0
-#endif
-
 static const char usage[] = 
 {
     "unzzip <dir>.. \n"
     "  - unzzip the files contained in a zip archive.\n"
+    "  -p            print content of files to pipe\n"
+    "  -l            list names in archive (short format)\n"
 };
 
+static int unzzip_version(void)
+{
+    printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n");
+    return 0;
+}
+
+static int unzzip_help(void)
+{
+    printf (usage);
+    return 0;
+}
+
 int 
 main (int argc, char ** argv)
 {
@@ -35,77 +43,37 @@
 
     if (argc <= 1 || ! strcmp (argv[1], "--help"))
     {
-        printf (usage);
-        return 0;
+        return unzzip_help();
     }
     if (! strcmp (argv[1], "--version"))
     {
-	printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n");
-	return 0;
+        return unzzip_version();
     }
-  
-    for (argn=1; argn < argc; argn++)
+    if (! strcmp (argv[1], "-l") || ! strcmp(argv[1], "--list"))
     {
-        ZZIP_DIR * dir;
-        ZZIP_DIRENT d;
+        argc -= 1; argv += 1;
+        return unzzip_list(argc, argv);
+    }
+    if (! strcmp (argv[1], "-v") || ! strcmp(argv[1], "--versions"))
+    {
+        if (argc == 2)
+            return unzzip_version(); /* compatible with info-zip */
+        argc -= 1; argv += 1;
+        return unzzip_list(argc, argv); /* short format here */
+    }
+    if (! strcmp (argv[1], "-p") || ! strcmp(argv[1], "--pipe"))
+    {
+        argc -= 1; argv += 1;
+        return unzzip_print(argc, argv);
+    }
 
-        dir = zzip_dir_open(argv[argn], &error);
-        if (! dir)
-        {
-            fprintf (stderr, "did not open %s: \n", argv[argn]);
-	    fprintf (stderr, "%s: %s\n", argv[argn], zzip_strerror(error));
-	    exitcode++;
-            continue;
-        }
-  
-        if (argc > 2) printf ("%s: \n", argv[argn]);
-
-	/* read each dir entry and show one line of info per file */
-        while (zzip_dir_read (dir, &d))
-        {
-	    int output;
-	    ZZIP_FILE* input = zzip_file_open (dir, d.d_name, O_RDONLY);
-	    if (! input)
-	    {
-		fprintf (stderr, "|did not open %s: \n", d.d_name);
-		fprintf (stderr, "|%s: %s\n", d.d_name, zzip_strerror_of(dir));
-		continue;
-	    }
-
-#ifdef _WIN32
-	    output = _open (d.d_name, _O_CREAT | _O_BINARY | _O_RDWR);
-#else
-	    output = creat (d.d_name, 0664);
-#endif
-	    if (output == -1)
-	    {
-		fprintf (stderr, "|output file %s: \n", d.d_name);
-		perror(d.d_name);
-		zzip_file_close (input);
-		continue;
-	    }
-
-	    printf("%s\n", d.d_name);
-	    
-	    { 
-		char buf[17]; zzip_ssize_t n;
-		/* read chunks of 16 bytes into buf */
-		while (0 < (n = zzip_read (input, buf, 16)))
-		{
-		    write (output, buf, n);
-		}
-
-		if (n == -1)
-		    perror (d.d_name);
-	    }
-	    close (output);
-	    zzip_file_close (input);
-        }
-
-        zzip_dir_close(dir);
+    if (! strcmp (argv[1], "-"))
+    {
+        fprintf(stderr, "unknown option %s", argv[1]);
+        return -1;
     }
-    
-    return exitcode;
+ 
+    return unzzip_extract(argc, argv);
 } 
 
 /* 

Added: trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzip.h
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzip.h	                        (rev 0)
+++ trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzip.h	2017-06-20 00:49:02 UTC (rev 44647)
@@ -0,0 +1,11 @@
+/*
+ *	Copyright (c) 2003 Guido Draheim <guidod at gmx.de>
+ *      Use freely under the restrictions of the ZLIB license.
+ *
+ *      This file is used as an example to clarify zzip api usage.
+ */
+
+extern int unzzip_list(int argc, char** argv);
+extern int unzzip_print(int argc, char** argv);
+extern int unzzip_extract(int argc, char** argv);
+


Property changes on: trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzip.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Added: trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-big.c
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-big.c	                        (rev 0)
+++ trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-big.c	2017-06-20 00:49:02 UTC (rev 44647)
@@ -0,0 +1,168 @@
+/*
+ *	Copyright (c) 2003 Guido Draheim <guidod at 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>
+#include "unzzip.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
+
+#ifdef DEBUG
+#define debug1(msg) do { fprintf(stderr, "%s : " msg "\n", __func__); } while(0)
+#define debug2(msg, arg1) do { fprintf(stderr, "%s : " msg "\n", __func__, arg1); } while(0)
+#define debug3(msg, arg1, arg2) do { fprintf(stderr, "%s : " msg "\n", __func__, arg1, arg2); } while(0)
+#else
+#define debug1(msg) 
+#define debug2(msg, arg1) 
+#define debug3(msg, arg1, arg2) 
+#endif
+
+static void unzzip_big_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)))
+	{
+	    debug2("entry read %i", len);
+	    fwrite (buffer, len, 1, out);
+	}
+	debug2("entry done %s", strerror(errno));
+	zzip_entry_fclose (file);
+    } else
+    {
+        debug2("could not open entry: %s", strerror(errno));
+    }
+}
+
+static void unzzip_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);
+    }
+}
+
+#if !defined(HAVE_STRNDUP)
+static char *
+strndup(char *p, size_t maxlen)
+{
+  char *r;
+  if (!p)
+    return 0;
+  r = malloc(maxlen + 1);
+  if (!r)
+    return r;
+  strncpy(r, p, maxlen);
+  r[maxlen] = '\0';
+  return r;
+}
+#endif
+
+static FILE* create_fopen(char* name, char* mode, int subdirs)
+{
+   if (subdirs)
+   {
+      char* p = strrchr(name, '/');
+      if (p) {
+          char* dir_name = strndup(name, p-name);
+          // makedirs(dir_name); // TODO
+          free (dir_name);
+      }
+   }
+   return fopen(name, mode);      
+}
+
+
+static int unzzip_cat (int argc, char ** argv, int extract)
+{
+    int argn;
+    FILE* disk;
+
+    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);
+	for (; entry ; entry = zzip_entry_findnext(entry))
+	{
+	    char* name = zzip_entry_strdup_name (entry);
+	    FILE* out = stdout;
+	    if (extract) out = create_fopen(name, "wb", 1);
+	    unzzip_cat_file (disk, name, out);
+	    if (extract) fclose(out);
+	    free (name);
+	}
+	return 0;
+    }
+
+    if (argc == 3 && !extract)
+    {  /* list from one spec */
+	ZZIP_ENTRY* entry = 0;
+	while ((entry = zzip_entry_findmatch(disk, argv[2], entry, 0, 0)))
+	{
+	     unzzip_big_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);
+	    debug3(".. check '%s' to zip '%s'", argv[argn], name);
+	    if (! fnmatch (argv[argn], name, 
+			   FNM_NOESCAPE|FNM_PATHNAME|FNM_PERIOD))
+	    {
+	        FILE* out = stdout;
+	        if (extract) out = create_fopen(name, "wb", 1);
+		unzzip_cat_file (disk, name, out);
+		if (extract) fclose(out);
+		break; /* match loop */
+	    }
+	    free (name);
+	}
+    }
+    return 0;
+} 
+
+int unzzip_print (int argc, char ** argv)
+{
+    return unzzip_cat(argc, argv, 0);
+}
+
+int unzzip_extract (int argc, char ** argv)
+{
+    return unzzip_cat(argc, argv, 1);
+}
+
+/* 
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */


Property changes on: trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-big.c
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Modified: trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-mem.c
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-mem.c	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-mem.c	2017-06-20 00:49:02 UTC (rev 44647)
@@ -9,6 +9,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include "unzzip.h"
 
 #ifdef ZZIP_HAVE_UNISTD_H
 #include <unistd.h>
@@ -27,13 +28,7 @@
 #define O_BINARY 0
 #endif
 
-static const char usage[] = 
-{
-    "unzzipdir-mem <zip> [names].. \n"
-    "  - unzzip data content of files contained in a zip archive.\n"
-};
-
-static void zzip_mem_entry_fprint(ZZIP_MEM_DISK* disk, 
+static void unzzip_mem_entry_fprint(ZZIP_MEM_DISK* disk, 
 				  ZZIP_MEM_ENTRY* entry, FILE* out)
 {
     ZZIP_DISK_FILE* file = zzip_mem_entry_fopen (disk, entry);
@@ -47,7 +42,7 @@
     }
 }
 
-static void zzip_mem_disk_cat_file(ZZIP_MEM_DISK* disk, char* name, FILE* out)
+static void unzzip_mem_disk_cat_file(ZZIP_MEM_DISK* disk, char* name, FILE* out)
 {
     ZZIP_DISK_FILE* file = zzip_mem_disk_fopen (disk, name);
     if (file) 
@@ -62,21 +57,46 @@
     }
 }
 
-int 
-main (int argc, char ** argv)
+#if !defined(HAVE_STRNDUP)
+static char *
+strndup(char *p, size_t maxlen)
 {
+  char *r;
+  if (!p)
+    return 0;
+  r = malloc(maxlen + 1);
+  if (!r)
+    return r;
+  strncpy(r, p, maxlen);
+  r[maxlen] = '\0';
+  return r;
+}
+#endif
+
+static FILE* create_fopen(char* name, char* mode, int subdirs)
+{
+   if (subdirs)
+   {
+      char* p = strrchr(name, '/');
+      if (p) {
+          char* dir_name = strndup(name, p-name);
+          // makedirs(dir_name); // TODO
+          free (dir_name);
+      }
+   }
+   return fopen(name, mode);      
+}
+
+
+static int unzzip_cat (int argc, char ** argv, int extract)
+{
     int argn;
     ZZIP_MEM_DISK* disk;
 
-    if (argc <= 1 || ! strcmp (argv[1], "--help"))
+    if (argc == 1)
     {
-        printf (usage);
-        return 0;
-    }
-    if (! strcmp (argv[1], "--version"))
-    {
 	printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n");
-	return 0;
+	return -1; /* better provide an archive argument */
     }
 
     disk = zzip_mem_disk_open (argv[1]);
@@ -88,20 +108,24 @@
     if (argc == 2)
     {  /* print directory list */
 	ZZIP_MEM_ENTRY* entry = zzip_mem_disk_findfirst(disk);
+	fprintf(stderr, "..%p\n", entry);
 	for (; entry ; entry = zzip_mem_disk_findnext(disk, entry))
 	{
 	    char* name = zzip_mem_entry_to_name (entry);
-	    printf ("%s\n", name);
+	    FILE* out = stdout;
+	    if (extract) out = create_fopen(name, "wb", 1);
+	    unzzip_mem_disk_cat_file (disk, name, out);
+	    if (extract) fclose(out);
 	}
 	return 0;
     }
 
-    if (argc == 3)
+    if (argc == 3 && !extract)
     {  /* list from one spec */
 	ZZIP_MEM_ENTRY* entry = 0;
 	while ((entry = zzip_mem_disk_findmatch(disk, argv[2], entry, 0, 0)))
 	{
-	     zzip_mem_entry_fprint (disk, entry, stdout);
+	     unzzip_mem_entry_fprint (disk, entry, stdout);
 	}
 
 	return 0;
@@ -115,12 +139,28 @@
 	    char* name = zzip_mem_entry_to_name (entry);
 	    if (! fnmatch (argv[argn], name, 
 			   FNM_NOESCAPE|FNM_PATHNAME|FNM_PERIOD))
-		zzip_mem_disk_cat_file (disk, name, stdout);
+	    {
+	        FILE* out = stdout;
+	        if (extract) out = create_fopen(name, "wb", 1);
+		unzzip_mem_disk_cat_file (disk, name, out);
+		if (extract) fclose(out);
+		break; /* match loop */
+	    }
 	}
     }
     return 0;
 } 
 
+int unzzip_print (int argc, char ** argv)
+{
+    return unzzip_cat(argc, argv, 0);
+}
+
+int unzzip_extract (int argc, char ** argv)
+{
+    return unzzip_cat(argc, argv, 1);
+}
+
 /* 
  * Local variables:
  * c-file-style: "stroustrup"

Added: trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-mix.c
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-mix.c	                        (rev 0)
+++ trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-mix.c	2017-06-20 00:49:02 UTC (rev 44647)
@@ -0,0 +1,155 @@
+/*
+ *	Copyright (c) 2003 Guido Draheim <guidod at gmx.de>
+ *      Use freely under the restrictions of the ZLIB license.
+ *
+ *      This file is used as an example to clarify zzip api usage.
+ */
+
+#include <zzip/lib.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "unzzip.h"
+
+#ifdef ZZIP_HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef ZZIP_HAVE_IO_H
+#include <io.h>
+#endif
+
+#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 void unzzip_cat_file(ZZIP_DIR* disk, char* name, FILE* out)
+{
+    ZZIP_FILE* file = zzip_fopen(name, "rb");
+    if (file) 
+    {
+	char buffer[1024]; int len;
+	while ((len = zzip_fread (buffer, 1, 1024, file))) 
+	{
+	    fwrite (buffer, 1, len, out);
+	}
+	
+	zzip_fclose (file);
+    }
+}
+
+#if !defined(HAVE_STRNDUP)
+static char *
+strndup(char *p, size_t maxlen)
+{
+  char *r;
+  if (!p)
+    return 0;
+  r = malloc(maxlen + 1);
+  if (!r)
+    return r;
+  strncpy(r, p, maxlen);
+  r[maxlen] = '\0';
+  return r;
+}
+#endif
+
+static FILE* create_fopen(char* name, char* mode, int subdirs)
+{
+   if (subdirs)
+   {
+      char* p = strrchr(name, '/');
+      if (p) {
+          char* dir_name = strndup(name, p-name);
+          // makedirs(dir_name); // TODO
+          free (dir_name);
+      }
+   }
+   return fopen(name, mode);      
+}
+
+
+static int unzzip_cat (int argc, char ** argv, int extract)
+{
+    int argn;
+    ZZIP_DIR* disk;
+    
+    if (argc == 1)
+    {
+        printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n");
+        return -1; /* better provide an archive argument */
+    }
+    
+    disk = zzip_opendir (argv[1]);
+    if (! disk) {
+	perror(argv[1]);
+	return -1;
+    }
+
+    if (argc == 2)
+    {  /* list all */
+	ZZIP_DIRENT* entry = 0;
+	while((entry = zzip_readdir(disk)))
+	{
+	    char* name = entry->d_name;
+	    FILE* out = stdout;
+	    if (extract) out = create_fopen(name, "wb", 1);
+	    unzzip_cat_file (disk, name, out);
+	    if (extract) fclose(out);
+	}
+    }
+    else
+    {   /* list only the matching entries - in order of zip directory */
+	ZZIP_DIRENT* entry = 0;
+	while((entry = zzip_readdir(disk)))
+	{
+	    char* name = entry->d_name;
+	    for (argn=1; argn < argc; argn++)
+	    {
+		if (! fnmatch (argv[argn], name, 
+			       FNM_NOESCAPE|FNM_PATHNAME|FNM_PERIOD))
+	        {
+	             FILE* out = stdout;
+	             char* zip_name = argv[1];
+	             int zip_name_len = strlen(zip_name);
+	             int name_len = strlen(name);
+	             char* mix_name = malloc(zip_name_len + 2 + name_len);
+	             if (zip_name_len > 4 && !strcmp(zip_name+zip_name_len-4, ".zip"))
+	                 zip_name_len -= 4;
+	             memcpy(mix_name, zip_name, zip_name_len);
+	             mix_name[zip_name_len] = '/';
+	             strcpy(mix_name + zip_name_len + 1, name);
+	             if (extract) out = create_fopen(name, "wb", 1);
+		     fprintf(stderr, "%s %s -> %s\n", zip_name, name, mix_name);
+		     /* 'test1.zip' 'README' -> 'test1/README' */
+		     unzzip_cat_file (disk, mix_name, out);
+		     if (extract) fclose(out);
+		     break; /* match loop */
+	        }
+	    }
+	}
+    }
+    zzip_closedir(disk);
+    return 0;
+} 
+
+int unzzip_print (int argc, char ** argv)
+{
+    return unzzip_cat(argc, argv, 0);
+}
+
+int unzzip_extract (int argc, char ** argv)
+{
+    return unzzip_cat(argc, argv, 1);
+}
+
+/* 
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */


Property changes on: trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-mix.c
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Deleted: trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-seeko.c
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-seeko.c	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-seeko.c	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,118 +0,0 @@
-/*
- *	Copyright (c) 2003 Guido Draheim <guidod at 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[] = 
-{
-    "unzzipcat-seeko <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], "r");
-    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:
- */

Added: trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-zip.c
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-zip.c	                        (rev 0)
+++ trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-zip.c	2017-06-20 00:49:02 UTC (rev 44647)
@@ -0,0 +1,145 @@
+/*
+ *	Copyright (c) 2003 Guido Draheim <guidod at gmx.de>
+ *      Use freely under the restrictions of the ZLIB license.
+ *
+ *      This file is used as an example to clarify zzip api usage.
+ */
+
+#include <zzip/lib.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "unzzip.h"
+
+#ifdef ZZIP_HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef ZZIP_HAVE_IO_H
+#include <io.h>
+#endif
+
+#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 void unzzip_cat_file(ZZIP_DIR* disk, char* name, FILE* out)
+{
+    ZZIP_FILE* file = zzip_file_open (disk, name, 0);
+    if (file) 
+    {
+	char buffer[1024]; int len;
+	while ((len = zzip_file_read (file, buffer, 1024))) 
+	{
+	    fwrite (buffer, 1, len, out);
+	}
+	
+	zzip_file_close (file);
+    }
+}
+
+#if !defined(HAVE_STRNDUP)
+static char *
+strndup(char *p, size_t maxlen)
+{
+  char *r;
+  if (!p)
+    return 0;
+  r = malloc(maxlen + 1);
+  if (!r)
+    return r;
+  strncpy(r, p, maxlen);
+  r[maxlen] = '\0';
+  return r;
+}
+#endif
+
+static FILE* create_fopen(char* name, char* mode, int subdirs)
+{
+   if (subdirs)
+   {
+      char* p = strrchr(name, '/');
+      if (p) {
+          char* dir_name = strndup(name, p-name);
+          // makedirs(dir_name); // TODO
+          free (dir_name);
+      }
+   }
+   return fopen(name, mode);      
+}
+
+
+static int unzzip_cat (int argc, char ** argv, int extract)
+{
+    int argn;
+    ZZIP_DIR* disk;
+    zzip_error_t error;
+    
+    if (argc == 1)
+    {
+        printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n");
+        return -1; /* better provide an archive argument */
+    }
+    
+    disk = zzip_dir_open (argv[1], &error);
+    if (! disk) {
+	perror(argv[1]);
+	return -1;
+    }
+
+    if (argc == 2)
+    {  /* list all */
+	ZZIP_DIRENT entry;
+	while(zzip_dir_read(disk, &entry))
+	{
+	    char* name = entry.d_name;
+	    FILE* out = stdout;
+	    if (extract) out = create_fopen(name, "wb", 1);
+	    unzzip_cat_file (disk, name, out);
+	    if (extract) fclose(out);
+	}
+    }
+    else
+    {   /* list only the matching entries - in order of zip directory */
+	ZZIP_DIRENT entry;
+	while(zzip_dir_read(disk, &entry))
+	{
+	    char* name = entry.d_name;
+	    for (argn=1; argn < argc; argn++)
+	    {
+		if (! fnmatch (argv[argn], name, 
+			       FNM_NOESCAPE|FNM_PATHNAME|FNM_PERIOD))
+	        {
+	             FILE* out = stdout;
+	             if (extract) out = create_fopen(name, "wb", 1);
+		     unzzip_cat_file (disk, name, out);
+		     if (extract) fclose(out);
+		     break; /* match loop */
+	        }
+	    }
+	}
+    }
+    zzip_dir_close(disk);
+    return 0;
+} 
+
+int unzzip_print (int argc, char ** argv)
+{
+    return unzzip_cat(argc, argv, 0);
+}
+
+int unzzip_extract (int argc, char ** argv)
+{
+    return unzzip_cat(argc, argv, 1);
+}
+
+/* 
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */


Property changes on: trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat-zip.c
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Deleted: trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat.c
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat.c	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipcat.c	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,128 +0,0 @@
-/*
- *	Copyright (c) 2003 Guido Draheim <guidod at gmx.de>
- *      Use freely under the restrictions of the ZLIB license.
- *
- *      This file is used as an example to clarify zzipmmap api usage.
- */
-
-#include <zzip/mmapped.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifdef ZZIP_HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef ZZIP_HAVE_IO_H
-#include <io.h>
-#endif
-
-#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[] = 
-{
-    "unzzipdir <zip> [names].. \n"
-    "  - unzzip data content of files contained in a zip archive.\n"
-};
-
-static void zzip_disk_entry_fprint(ZZIP_DISK* disk, 
-				   ZZIP_DISK_ENTRY* entry, FILE* out)
-{
-    ZZIP_DISK_FILE* file = zzip_disk_entry_fopen (disk, entry);
-    if (file) 
-    {
-	char buffer[1024]; int len;
-	while ((len = zzip_disk_fread (buffer, 1024, 1, file)))
-	    fwrite (buffer, len, 1, out);
-	
-	zzip_disk_fclose (file);
-    }
-}
-
-static void zzip_disk_cat_file(ZZIP_DISK* disk, char* name, FILE* out)
-{
-    ZZIP_DISK_FILE* file = zzip_disk_fopen (disk, name);
-    if (file) 
-    {
-	char buffer[1024]; int len;
-	while ((len = zzip_disk_fread (buffer, 1, 1024, file))) 
-	{
-	    fwrite (buffer, 1, len, out);
-	}
-	
-	zzip_disk_fclose (file);
-    }
-}
-
-int 
-main (int argc, char ** argv)
-{
-    int argn;
-    ZZIP_DISK* 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 = zzip_disk_open (argv[1]);
-    if (! disk) {
-	perror(argv[1]);
-	return -1;
-    }
-
-    if (argc == 2)
-    {  /* print directory list */
-	ZZIP_DISK_ENTRY* entry = zzip_disk_findfirst(disk);
-	for (; entry ; entry = zzip_disk_findnext(disk, entry))
-	{
-	    char* name = zzip_disk_entry_strdup_name (disk, entry);
-	    printf ("%s\n", name);
-	    free (name);
-	}
-	return 0;
-    }
-
-    if (argc == 3)
-    {  /* list from one spec */
-	ZZIP_DISK_ENTRY* entry = 0;
-	while ((entry = zzip_disk_findmatch(disk, argv[2], entry, 0, 0)))
-	     zzip_disk_entry_fprint (disk, entry, stdout);
-
-	return 0;
-    }
-
-    for (argn=1; argn < argc; argn++)
-    {   /* list only the matching entries - each in order of commandline */
-	ZZIP_DISK_ENTRY* entry = zzip_disk_findfirst(disk);
-	for (; entry ; entry = zzip_disk_findnext(disk, entry))
-	{
-	    char* name = zzip_disk_entry_strdup_name (disk, entry);
-	    if (! fnmatch (argv[argn], name, 
-			   FNM_NOESCAPE|FNM_PATHNAME|FNM_PERIOD))
-		zzip_disk_cat_file (disk, name, stdout);
-	    free (name);
-	}
-    }
-    return 0;
-} 
-
-/* 
- * Local variables:
- * c-file-style: "stroustrup"
- * End:
- */

Added: trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-big.c
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-big.c	                        (rev 0)
+++ trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-big.c	2017-06-20 00:49:02 UTC (rev 44647)
@@ -0,0 +1,73 @@
+/*
+ *	Copyright (c) 2003 Guido Draheim <guidod at 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>
+#include "unzzip.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
+
+#ifdef DEBUG
+#define debug1(msg) do { fprintf(stderr, "%s : " msg "\n", __func__); } while(0)
+#define debug2(msg, arg1) do { fprintf(stderr, "%s : " msg "\n", __func__, arg1); } while(0)
+#define debug3(msg, arg1, arg2) do { fprintf(stderr, "%s : " msg "\n", __func__, arg1, arg2); } while(0)
+#else
+#define debug1(msg) 
+#define debug2(msg, arg1) 
+#define debug3(msg, arg1, arg2) 
+#endif
+
+int unzzip_list (int argc, char ** argv)
+{
+    int argn;
+    FILE* disk;
+
+    disk = fopen (argv[1], "r");
+    if (! disk) {
+	perror(argv[1]);
+	return -1;
+    }
+
+    if (argc == 2)
+    {  /* print directory list */
+	ZZIP_ENTRY* entry = zzip_entry_findfirst(disk);
+	for (; entry ; entry = zzip_entry_findnext(entry))
+	{
+	    char* name = zzip_entry_strdup_name (entry);
+	    printf (" %s \n", name);
+	    free (name);
+	}
+	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);
+	    printf (" %s \n", name);
+	    free (name);
+	}
+    }
+    return 0;
+} 
+
+/* 
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */


Property changes on: trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-big.c
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Modified: trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-mem.c
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-mem.c	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-mem.c	2017-06-20 00:49:02 UTC (rev 44647)
@@ -9,6 +9,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include "unzzip.h"
 
 #ifdef ZZIP_HAVE_UNISTD_H
 #include <unistd.h>
@@ -27,29 +28,19 @@
 #define O_BINARY 0
 #endif
 
-static const char usage[] = 
-{
-    "unzzipdir <zip> [names].. \n"
-    "  - unzzip a listing of files contained in a zip archive.\n"
-};
 
 int 
-main (int argc, char ** argv)
+unzzip_list (int argc, char ** argv)
 {
     int argn;
     ZZIP_MEM_DISK* disk;
-
-    if (argc <= 1 || ! strcmp (argv[1], "--help"))
+    
+    if (argc == 1)
     {
-        printf (usage);
-        return 0;
+        printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n");
+        return -1; /* better provide an archive argument */
     }
-    if (! strcmp (argv[1], "--version"))
-    {
-	printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n");
-	return 0;
-    }
-
+    
     disk = zzip_mem_disk_open (argv[1]);
     if (! disk) {
 	perror(argv[1]);
@@ -62,7 +53,11 @@
 	for (; entry ; entry = zzip_mem_disk_findnext(disk, entry))
 	{
 	    char* name = zzip_mem_entry_to_name (entry);
-	    printf ("%s\n", name);
+	    int compr = entry->zz_compr;
+	    long long usize = entry->zz_usize;
+	    long long csize = entry->zz_csize;
+	    char* defl = compr ? "deflated" : "stored";
+	    printf ("%lli/%lli %s %s \n", csize, usize, defl, name);
 	}
 	return 0;
     }
@@ -73,7 +68,11 @@
 	while ((entry = zzip_mem_disk_findmatch(disk, argv[2], entry, 0, 0)))
 	{
 	    char* name = zzip_mem_entry_to_name (entry);
-	    printf ("%s\n", name);
+	    int compr = entry->zz_compr;
+	    long long usize = entry->zz_usize;
+	    long long csize = entry->zz_csize;
+	    char* defl = compr ? "deflated" : "stored";
+	    printf ("%lli/%lli %s %s \n", csize, usize, defl, name);
 	}
 	return 0;
     }
@@ -87,7 +86,14 @@
 	    {
 		if (! fnmatch (argv[argn], name, 
 			       FNM_NOESCAPE|FNM_PATHNAME|FNM_PERIOD))
-		    printf ("%s\n", name);
+		{
+		    int compr = entry->zz_compr;
+		    long long usize = entry->zz_usize;
+		    long long csize = entry->zz_csize;
+		    char* defl = compr ? "deflated" : "stored";
+	    	    printf ("%lli/%lli %s %s \n", csize, usize, defl, name);
+		    break; /* match loop */
+		}
 	    }
 	}
 	return 0;

Added: trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-mix.c
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-mix.c	                        (rev 0)
+++ trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-mix.c	2017-06-20 00:49:02 UTC (rev 44647)
@@ -0,0 +1,90 @@
+/*
+ *	Copyright (c) 2003 Guido Draheim <guidod at gmx.de>
+ *      Use freely under the restrictions of the ZLIB license.
+ *
+ *      This file is used as an example to clarify zzip api usage.
+ */
+
+#include <zzip/lib.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "unzzip.h"
+
+#ifdef ZZIP_HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef ZZIP_HAVE_IO_H
+#include <io.h>
+#endif
+
+#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
+
+
+int 
+unzzip_list (int argc, char ** argv)
+{
+    int argn;
+    ZZIP_DIR* disk;
+    
+    if (argc == 1)
+    {
+        printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n");
+        return -1; /* better provide an archive argument */
+    }
+    
+    disk = zzip_opendir (argv[1]);
+    if (! disk) {
+	perror(argv[1]);
+	return -1;
+    }
+
+    if (argc == 2)
+    {  /* list all */
+	ZZIP_DIRENT* entry = 0;
+	while((entry = zzip_readdir(disk)))
+	{
+	    char* name = entry->d_name;
+	    long long csize = entry->d_csize;
+	    long long usize = entry->st_size;
+	    char* defl = entry->d_compr ? "deflated" : "stored";
+            printf ("%lli/%lli %s %s \n", usize, csize, defl, name);
+	}
+    }
+    else
+    {   /* list only the matching entries - in order of zip directory */
+	ZZIP_DIRENT* entry = 0;
+	while((entry = zzip_readdir(disk)))
+	{
+	    char* name = entry->d_name;
+	    for (argn=1; argn < argc; argn++)
+	    {
+		if (! fnmatch (argv[argn], name, 
+			       FNM_NOESCAPE|FNM_PATHNAME|FNM_PERIOD))
+		{
+		    long long csize = entry->d_csize;
+		    long long usize = entry->st_size;
+		    char* defl = entry->d_compr ? "deflated" : "stored";
+            	    printf ("%lli/%lli %s %s \n", usize, csize, defl, name);
+		    break; /* match loop */
+		}
+	    }
+	}
+    }
+    zzip_closedir(disk);
+    return 0;
+} 
+
+/* 
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */


Property changes on: trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-mix.c
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Added: trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-zip.c
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-zip.c	                        (rev 0)
+++ trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-zip.c	2017-06-20 00:49:02 UTC (rev 44647)
@@ -0,0 +1,91 @@
+/*
+ *	Copyright (c) 2003 Guido Draheim <guidod at gmx.de>
+ *      Use freely under the restrictions of the ZLIB license.
+ *
+ *      This file is used as an example to clarify zzip api usage.
+ */
+
+#include <zzip/lib.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "unzzip.h"
+
+#ifdef ZZIP_HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef ZZIP_HAVE_IO_H
+#include <io.h>
+#endif
+
+#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
+
+
+int 
+unzzip_list (int argc, char ** argv)
+{
+    int argn;
+    ZZIP_DIR* disk;
+    zzip_error_t error;
+    
+    if (argc == 1)
+    {
+        printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n");
+        return -1; /* better provide an archive argument */
+    }
+    
+    disk = zzip_dir_open (argv[1], &error);
+    if (! disk) {
+	perror(argv[1]);
+	return -1;
+    }
+
+    if (argc == 2)
+    {  /* list all */
+	ZZIP_DIRENT entry;
+	while(zzip_dir_read(disk, &entry))
+	{
+	    char* name = entry.d_name;
+	    long long csize = entry.d_csize;
+	    long long usize = entry.st_size;
+	    char* defl = entry.d_compr ? "deflated" : "stored";
+	    printf ("%lli/%lli %s %s \n", usize, csize, defl, name);
+	}
+    }
+    else
+    {   /* list only the matching entries - in order of zip directory */
+	ZZIP_DIRENT entry;
+	while(zzip_dir_read(disk, &entry))
+	{
+	    char* name = entry.d_name;
+	    for (argn=1; argn < argc; argn++)
+	    {
+		if (! fnmatch (argv[argn], name, 
+			       FNM_NOESCAPE|FNM_PATHNAME|FNM_PERIOD))
+		{
+		    long long csize = entry.d_csize;
+		    long long usize = entry.st_size;
+		    char* defl = entry.d_compr ? "deflated" : "stored";
+	            printf ("%lli/%lli %s %s \n", usize, csize, defl, name);
+		    break; /* match loop */
+		}
+	    }
+	}
+    }
+    zzip_dir_close(disk);
+    return 0;
+} 
+
+/* 
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * End:
+ */


Property changes on: trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir-zip.c
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Deleted: trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir.c
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir.c	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipdir.c	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,104 +0,0 @@
-/*
- *	Copyright (c) 2003 Guido Draheim <guidod at gmx.de>
- *      Use freely under the restrictions of the ZLIB license.
- *
- *      This file is used as an example to clarify zzipmmap api usage.
- */
-
-#include <zzip/mmapped.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifdef ZZIP_HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef ZZIP_HAVE_IO_H
-#include <io.h>
-#endif
-
-#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[] = 
-{
-    "unzzipdir <zip> [names].. \n"
-    "  - unzzip a listing of files contained in a zip archive.\n"
-};
-
-int 
-main (int argc, char ** argv)
-{
-    int argn;
-    ZZIP_DISK* 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 = zzip_disk_open (argv[1]);
-    if (! disk) {
-	perror(argv[1]);
-	return -1;
-    }
-
-    if (argc == 2)
-    {  /* list all */
-	ZZIP_DISK_ENTRY* entry = zzip_disk_findfirst(disk);
-	for (; entry ; entry = zzip_disk_findnext(disk, entry))
-	{
-	    char* name = zzip_disk_entry_strdup_name (disk, entry);
-	    printf ("%s\n", name);
-	    free (name);
-	}
-	return 0;
-    }
-
-    if (argc == 3)
-    {  /* list from one spec */
-	ZZIP_DISK_ENTRY* entry = 0;
-	while ((entry = zzip_disk_findmatch(disk, argv[2], entry, 0, 0)))
-	{
-	    char* name = zzip_disk_entry_strdup_name (disk, entry);
-	    printf ("%s\n", name);
-	    free (name);
-	}
-	return 0;
-    }
-
-    {   /* list only the matching entries - in order of zip directory */
-	ZZIP_DISK_ENTRY* entry = zzip_disk_findfirst(disk);
-	for (; entry ; entry = zzip_disk_findnext(disk, entry))
-	{
-	    char* name = zzip_disk_entry_strdup_name (disk, entry);
-	    for (argn=1; argn < argc; argn++)
-	    {
-		if (! fnmatch (argv[argn], name, 
-			       FNM_NOESCAPE|FNM_PATHNAME|FNM_PERIOD))
-		    printf ("%s\n", name);
-	    }
-	    free (name);
-	}
-	return 0;
-    }
-} 
-
-/* 
- * Local variables:
- * c-file-style: "stroustrup"
- * End:
- */

Added: trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipshow.c
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipshow.c	                        (rev 0)
+++ trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipshow.c	2017-06-20 00:49:02 UTC (rev 44647)
@@ -0,0 +1,118 @@
+/*
+ *	Copyright (c) 2003 Guido Draheim <guidod at 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], "r");
+    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:
+ */


Property changes on: trunk/Build/source/libs/zziplib/zziplib-src/bins/unzzipshow.c
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Modified: trunk/Build/source/libs/zziplib/zziplib-src/bins/zzip.c
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/bins/zzip.c	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/bins/zzip.c	2017-06-20 00:49:02 UTC (rev 44647)
@@ -43,7 +43,11 @@
     }
     if (! strcmp (argv[1], "--version"))
     {
-	printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n");
+#     if defined _ZZIP_ENABLE_WRITE
+	printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION" - W/ -D_ZZIP_ENABLE_WRITE\n");
+#     else
+	printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION" - NO -D_ZZIP_ENABLE_WRITE\n");
+#     endif
 	return 0;
     }
 

Modified: trunk/Build/source/libs/zziplib/zziplib-src/bins/zziptest.c
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/bins/zziptest.c	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/bins/zziptest.c	2017-06-20 00:49:02 UTC (rev 44647)
@@ -46,6 +46,7 @@
     const char * name = "test.zip";
     zzip_error_t rv;
     int i;
+    int quick = 0;
 
     if (argc > 1 && argv[1] != NULL)
     {
@@ -55,6 +56,11 @@
 	}else if (! strcmp (argv[1], "--version")) {
 	    printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n");
 	    return 0;
+	}else if (! strcmp (argv[1], "--quick")) {
+	    quick = 1;
+	    name = argv[2];
+	    argv++; argc--;
+	    argv++; argc--;
 	}else{
 	    name = argv[1];
 	    argv++; argc--;
@@ -93,7 +99,7 @@
 
                 if (hdr->d_reclen == 0) break;
                 I_(char *, hdr, += hdr->d_reclen);
-                sleep(1);
+                if (! quick) sleep(1);
             }
         }
     } printf ("\n}\n");

Modified: trunk/Build/source/libs/zziplib/zziplib-src/config.h.in
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/config.h.in	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/config.h.in	2017-06-20 00:49:02 UTC (rev 44647)
@@ -146,6 +146,11 @@
 # endif
 #endif
 
+/* Enable large inode numbers on Mac OS X 10.5.  */
+#ifndef _DARWIN_USE_64_BIT_INODE
+# define _DARWIN_USE_64_BIT_INODE 1
+#endif
+
 /* Number of bits in a file offset, on hosts where this is settable. */
 #undef _FILE_OFFSET_BITS
 

Modified: trunk/Build/source/libs/zziplib/zziplib-src/configure
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/configure	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/configure	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,12 +1,10 @@
 #! /bin/sh
 # From configure.ac Revision: 1.15 .
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68.
+# Generated by GNU Autoconf 2.69.
 #
 #
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-# Foundation, Inc.
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
 #
 #
 # This configure script is free software; the Free Software Foundation
@@ -137,6 +135,31 @@
 # CDPATH.
 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
+# Use a proper internal environment variable to ensure we don't fall
+  # into an infinite loop, continuously re-executing ourselves.
+  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+    _as_can_reexec=no; export _as_can_reexec;
+    # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+  fi
+  # We don't want this to propagate to other subprocesses.
+          { _as_can_reexec=; unset _as_can_reexec;}
 if test "x$CONFIG_SHELL" = x; then
   as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
   emulate sh
@@ -170,7 +193,8 @@
 else
   exitcode=1; echo positional parameters were not saved.
 fi
-test x\$exitcode = x0 || exit 1"
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
   as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
   as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
   eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
@@ -215,21 +239,25 @@
 
 
       if test "x$CONFIG_SHELL" != x; then :
-  # We cannot yet assume a decent shell, so we have to provide a
-	# neutralization value for shells without unset; and this also
-	# works around shells that cannot unset nonexistent variables.
-	# Preserve -v and -x to the replacement shell.
-	BASH_ENV=/dev/null
-	ENV=/dev/null
-	(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-	export CONFIG_SHELL
-	case $- in # ((((
-	  *v*x* | *x*v* ) as_opts=-vx ;;
-	  *v* ) as_opts=-v ;;
-	  *x* ) as_opts=-x ;;
-	  * ) as_opts= ;;
-	esac
-	exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
+  export CONFIG_SHELL
+             # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
 fi
 
     if test x$as_have_required = xno; then :
@@ -331,6 +359,14 @@
 
 
 } # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
 # as_fn_append VAR VALUE
 # ----------------------
 # Append the text in VALUE to the end of the definition contained in VAR. Take
@@ -452,6 +488,10 @@
   chmod +x "$as_me.lineno" ||
     { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
 
+  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+  # already done that, so ensure we don't try to do so again and fall
+  # in an infinite loop.  This has already happened in practice.
+  _as_can_reexec=no; export _as_can_reexec
   # Don't try to exec as it changes $[0], causing all sort of problems
   # (the dirname of $[0] is not the place where we might find the
   # original and so on.  Autoconf is especially sensitive to this).
@@ -486,16 +526,16 @@
     # ... but there are two gotchas:
     # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
     # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
+    # In both cases, we have to default to `cp -pR'.
     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
+      as_ln_s='cp -pR'
   elif ln conf$$.file conf$$ 2>/dev/null; then
     as_ln_s=ln
   else
-    as_ln_s='cp -p'
+    as_ln_s='cp -pR'
   fi
 else
-  as_ln_s='cp -p'
+  as_ln_s='cp -pR'
 fi
 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 rmdir conf$$.dir 2>/dev/null
@@ -507,28 +547,8 @@
   as_mkdir_p=false
 fi
 
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-	test -d "$1/.";
-      else
-	case $1 in #(
-	-*)set "./$1";;
-	esac;
-	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
-	???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
 
 # Sed expression to map a string onto a valid CPP name.
 as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -808,6 +828,7 @@
 am__fastdepCC_FALSE
 am__fastdepCC_TRUE
 CCDEPMODE
+am__nodep
 AMDEPBACKSLASH
 AMDEP_FALSE
 AMDEP_TRUE
@@ -821,6 +842,10 @@
 LDFLAGS
 CFLAGS
 CC
+AM_BACKSLASH
+AM_DEFAULT_VERBOSITY
+AM_DEFAULT_V
+AM_V
 am__untar
 am__tar
 AMTAR
@@ -904,6 +929,7 @@
 enable_builddir
 enable_thread_safe
 with_zlib
+enable_silent_rules
 enable_dependency_tracking
 enable_shared
 enable_static
@@ -1388,8 +1414,6 @@
 if test "x$host_alias" != x; then
   if test "x$build_alias" = x; then
     cross_compiling=maybe
-    $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
-    If a cross compiler is detected then cross compile mode will be used" >&2
   elif test "x$build_alias" != "x$host_alias"; then
     cross_compiling=yes
   fi
@@ -1556,15 +1580,20 @@
 
   --disable-thread-safe   disable thread-safe libtool option
 
-  --disable-dependency-tracking  speeds up one-time build
-  --enable-dependency-tracking   do not reject slow dependency extractors
+  --enable-silent-rules   less verbose build output (undo: "make V=1")
+  --disable-silent-rules  verbose build output (undo: "make V=0")
+  --enable-dependency-tracking
+                          do not reject slow dependency extractors
+  --disable-dependency-tracking
+                          speeds up one-time build
   --enable-shared[=PKGS]  build shared libraries [default=yes]
   --enable-static[=PKGS]  build static libraries [default=yes]
   --enable-fast-install[=PKGS]
                           optimize for fast installation [default=yes]
   --disable-libtool-lock  avoid locking (might break parallel builds)
-  --enable-maintainer-mode  enable make rules and dependencies not useful
-			  (and sometimes confusing) to the casual installer
+  --enable-maintainer-mode
+                          enable make rules and dependencies not useful (and
+                          sometimes confusing) to the casual installer
   --disable-largefile     omit support for large files
   --disable-mmap          disable mmap usage
 
@@ -1669,9 +1698,9 @@
 if $ac_init_version; then
   cat <<\_ACEOF
 configure
-generated by GNU Autoconf 2.68
+generated by GNU Autoconf 2.69
 
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 
@@ -1749,7 +1778,7 @@
 	 test ! -s conftest.err
        } && test -s conftest$ac_exeext && {
 	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
+	 test -x conftest$ac_exeext
        }; then :
   ac_retval=0
 else
@@ -2090,7 +2119,7 @@
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by $as_me, which was
-generated by GNU Autoconf 2.68.  Invocation command line was
+generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
 
@@ -2608,8 +2637,8 @@
   else
     test ".$ax_enable_builddir" = "."  && ax_enable_builddir="."
     test ".$ax_enable_builddir" = ".no"  && ax_enable_builddir="."
-    test ".$BUILD" = "." && BUILD=`uname -msr | tr " /" "__"`.d
-    test ".$ax_enable_builddir" = ".yes" && ax_enable_builddir="$BUILD"
+    test ".$TARGET" = "." && TARGET="$target"
+    test ".$ax_enable_builddir" = ".yes" && ax_enable_builddir="$TARGET"
     if test ".$ax_enable_builddir" != ".." ; then    # we know where to go and
       as_dir=$ax_enable_builddir; as_fn_mkdir_p
       echo __.$ax_enable_builddir.__ > $ax_enable_builddir/conftest.tmp
@@ -2628,8 +2657,8 @@
       test -f $srcdir/confdefs.h   && mv $srcdir/confdefs.h   .
       test -f $srcdir/conftest.log && mv $srcdir/conftest.log .
       test -f $srcdir/$cache_file  && mv $srcdir/$cache_file  .
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: ....exec $SHELL \"$srcdir/$0\" \"--srcdir=$srcdir\" \"--enable-builddir=$ax_enable_builddir\" $ac_configure_args" >&5
-$as_echo "....exec $SHELL \"$srcdir/$0\" \"--srcdir=$srcdir\" \"--enable-builddir=$ax_enable_builddir\" $ac_configure_args" >&6; }
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: ....exec $SHELL $srcdir/$0 \"--srcdir=$srcdir\" \"--enable-builddir=$ax_enable_builddir\" ${1+\"$@\"}" >&5
+$as_echo "....exec $SHELL $srcdir/$0 \"--srcdir=$srcdir\" \"--enable-builddir=$ax_enable_builddir\" ${1+\"$@\"}" >&6; }
       case "$0" in # restart
        /\\*) eval $SHELL "'$0'" "'--srcdir=$srcdir'" "'--enable-builddir=$ax_enable_builddir'" $ac_configure_args ;;
        *) eval $SHELL "'$srcdir/$0'" "'--srcdir=$srcdir'" "'--enable-builddir=$ax_enable_builddir'" $ac_configure_args ;;
@@ -2655,7 +2684,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_ax_enable_builddir_sed="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -2678,6 +2707,10 @@
 fi
 
 
+ax_enable_builddir_auxdir="$ac_aux_dir"
+ax_enable_builddir_auxdir=`echo "$ax_enable_builddir_auxdir" | $ax_enable_builddir_sed -e "s|$ac_top_srcdir|.|"`
+test ".$ax_enable_builddir_auxdir" = "." && ax_enable_builddir_auxdir="$ac_aux_dir"
+test ".$ax_enable_builddir_auxdir" = "." && ax_enable_builddir_auxdir="."
 ac_config_commands="$ac_config_commands buildir"
 
  # --------------------------------------------
@@ -3142,7 +3175,7 @@
 $as_echo "$PACKAGE_ICON $k" >&6; }
 
 
-am__api_version='1.11'
+am__api_version='1.13'
 
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
@@ -3181,7 +3214,7 @@
     # by default.
     for ac_prog in ginstall scoinst install; do
       for ac_exec_ext in '' $ac_executable_extensions; do
-	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+	if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
 	  if test $ac_prog = install &&
 	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
 	    # AIX install.  It has an incompatible calling convention.
@@ -3239,9 +3272,6 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
 $as_echo_n "checking whether build environment is sane... " >&6; }
-# Just in case
-sleep 1
-echo timestamp > conftest.file
 # Reject unsafe characters in $srcdir or the absolute working directory
 # name.  Accept space and tab only in the latter.
 am_lf='
@@ -3252,32 +3282,40 @@
 esac
 case $srcdir in
   *[\\\"\#\$\&\'\`$am_lf\ \	]*)
-    as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
+    as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
 esac
 
-# Do `set' in a subshell so we don't clobber the current shell's
+# Do 'set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
-   if test "$*" = "X"; then
-      # -L didn't work.
-      set X `ls -t "$srcdir/configure" conftest.file`
-   fi
-   rm -f conftest.file
-   if test "$*" != "X $srcdir/configure conftest.file" \
-      && test "$*" != "X conftest.file $srcdir/configure"; then
+   am_has_slept=no
+   for am_try in 1 2; do
+     echo "timestamp, slept: $am_has_slept" > conftest.file
+     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+     if test "$*" = "X"; then
+	# -L didn't work.
+	set X `ls -t "$srcdir/configure" conftest.file`
+     fi
+     if test "$*" != "X $srcdir/configure conftest.file" \
+	&& test "$*" != "X conftest.file $srcdir/configure"; then
 
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
-alias in your environment" "$LINENO" 5
-   fi
-
+	# If neither matched, then we have a broken ls.  This can happen
+	# if, for instance, CONFIG_SHELL is bash and it inherits a
+	# broken ls alias from the environment.  This has actually
+	# happened.  Such a system could not be considered "sane".
+	as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
+  alias in your environment" "$LINENO" 5
+     fi
+     if test "$2" = conftest.file || test $am_try -eq 2; then
+       break
+     fi
+     # Just in case.
+     sleep 1
+     am_has_slept=yes
+   done
    test "$2" = conftest.file
    )
 then
@@ -3289,6 +3327,16 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+fi
+
+rm -f conftest.file
+
 test "$program_prefix" != NONE &&
   program_transform_name="s&^&$program_prefix&;$program_transform_name"
 # Use a double $ so make ignores it.
@@ -3299,8 +3347,8 @@
 ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
 program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
 
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
 
 if test x"${MISSING+set}" != xset; then
   case $am_aux_dir in
@@ -3311,12 +3359,12 @@
   esac
 fi
 # Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
-  am_missing_run="$MISSING --run "
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
 else
   am_missing_run=
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
 fi
 
 if test x"${install_sh}" != xset; then
@@ -3328,10 +3376,10 @@
   esac
 fi
 
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'.  However `strip' might not be the right
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip".  However 'strip' might not be the right
 # tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
+# will honor the 'STRIP' environment variable to overrule this program.
 if test "$cross_compiling" != no; then
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
@@ -3350,7 +3398,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3390,7 +3438,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_STRIP="strip"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3441,7 +3489,7 @@
   test -z "$as_dir" && as_dir=.
     for ac_prog in mkdir gmkdir; do
 	 for ac_exec_ext in '' $ac_executable_extensions; do
-	   { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
+	   as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
 	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
 	     'mkdir (GNU coreutils) '* | \
 	     'mkdir (coreutils) '* | \
@@ -3470,12 +3518,6 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
 $as_echo "$MKDIR_P" >&6; }
 
-mkdir_p="$MKDIR_P"
-case $mkdir_p in
-  [\\/$]* | ?:[\\/]*) ;;
-  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-
 for ac_prog in gawk mawk nawk awk
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
@@ -3494,7 +3536,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_AWK="$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3558,6 +3600,45 @@
 fi
 rmdir .tst 2>/dev/null
 
+# Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+  enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in # (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=1;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+	@$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+  am_cv_make_support_nested_variables=yes
+else
+  am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+    AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
 if test "`cd $srcdir && pwd`" != "`pwd`"; then
   # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
   # is not polluted with repeated "-I."
@@ -3579,6 +3660,7 @@
 
 
 # Define the identity of the package.
+
  PACKAGE=$PACKAGE
  VERSION=$VERSION
 
@@ -3608,18 +3690,29 @@
 
 MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
 
+# For better backward compatibility.  To be removed once Automake 1.9.x
+# dies out for good.  For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+mkdir_p='$(MKDIR_P)'
+
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
-# Always define AMTAR for backward compatibility.
+# Always define AMTAR for backward compatibility.  Yes, it's still used
+# in the wild :-(  We should find a proper way to deprecate it ...
+AMTAR='$${TAR-tar}'
 
-AMTAR=${AMTAR-"${am_missing_run}tar"}
 
-am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar  pax cpio none'
 
+am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
 
 
 
 
+
+
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -3642,7 +3735,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3682,7 +3775,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CC="gcc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3735,7 +3828,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3776,7 +3869,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
        continue
@@ -3834,7 +3927,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3878,7 +3971,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -4324,8 +4417,7 @@
 /* end confdefs.h.  */
 #include <stdarg.h>
 #include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
+struct stat;
 /* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
 struct buf { int x; };
 FILE * (*rcsopen) (struct buf *, struct stat *, int);
@@ -4428,7 +4520,7 @@
 _am_result=none
 # First try GNU make style include.
 echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
+# Ignore all kinds of additional output from 'make'.
 case `$am_make -s -f confmf 2> /dev/null` in #(
 *the\ am__doit\ target*)
   am__include=include
@@ -4461,6 +4553,7 @@
 if test "x$enable_dependency_tracking" != xno; then
   am_depcomp="$ac_aux_dir/depcomp"
   AMDEPBACKSLASH='\'
+  am__nodep='_no'
 fi
  if test "x$enable_dependency_tracking" != xno; then
   AMDEP_TRUE=
@@ -4483,8 +4576,9 @@
   # We make a subdir and do the tests there.  Otherwise we can end up
   # making bogus files that we don't know about and never remove.  For
   # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
+  rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
   # using a relative directory.
@@ -4518,16 +4612,16 @@
     : > sub/conftest.c
     for i in 1 2 3 4 5 6; do
       echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
     # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
     am__obj=sub/conftest.${OBJEXT-o}
     am__minus_obj="-o $am__obj"
     case $depmode in
@@ -4536,8 +4630,8 @@
       test "$am__universal" = false || continue
       ;;
     nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
       if test "x$enable_dependency_tracking" = xyes; then
 	continue
       else
@@ -4544,8 +4638,8 @@
 	break
       fi
       ;;
-    msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+      # This compiler won't grok '-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
       am__obj=conftest.${OBJEXT-o}
@@ -4621,7 +4715,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_AS="${ac_tool_prefix}as"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -4661,7 +4755,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_AS="as"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -4713,7 +4807,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -4753,7 +4847,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_DLLTOOL="dlltool"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -4805,7 +4899,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -4845,7 +4939,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_OBJDUMP="objdump"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -4950,7 +5044,7 @@
     for ac_prog in sed gsed; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
+      as_fn_executable_p "$ac_path_SED" || continue
 # Check for GNU ac_path_SED and select it if it is found.
   # Check for GNU $ac_path_SED
 case `"$ac_path_SED" --version 2>&1` in
@@ -5026,7 +5120,7 @@
     for ac_prog in grep ggrep; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+      as_fn_executable_p "$ac_path_GREP" || continue
 # Check for GNU ac_path_GREP and select it if it is found.
   # Check for GNU $ac_path_GREP
 case `"$ac_path_GREP" --version 2>&1` in
@@ -5092,7 +5186,7 @@
     for ac_prog in egrep; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+      as_fn_executable_p "$ac_path_EGREP" || continue
 # Check for GNU ac_path_EGREP and select it if it is found.
   # Check for GNU $ac_path_EGREP
 case `"$ac_path_EGREP" --version 2>&1` in
@@ -5159,7 +5253,7 @@
     for ac_prog in fgrep; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue
+      as_fn_executable_p "$ac_path_FGREP" || continue
 # Check for GNU ac_path_FGREP and select it if it is found.
   # Check for GNU $ac_path_FGREP
 case `"$ac_path_FGREP" --version 2>&1` in
@@ -5412,7 +5506,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -5456,7 +5550,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -5512,13 +5606,13 @@
 else
   lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:5515: $ac_compile\"" >&5)
+  (eval echo "\"\$as_me:5609: $ac_compile\"" >&5)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:5518: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval echo "\"\$as_me:5612: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:5521: output\"" >&5)
+  (eval echo "\"\$as_me:5615: output\"" >&5)
   cat conftest.out >&5
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
@@ -5782,7 +5876,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -5822,7 +5916,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_OBJDUMP="objdump"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6094,7 +6188,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_AR="${ac_tool_prefix}ar"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6134,7 +6228,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_AR="ar"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6199,7 +6293,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6239,7 +6333,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_STRIP="strip"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6298,7 +6392,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6338,7 +6432,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_RANLIB="ranlib"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6721,7 +6815,7 @@
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 6724 "configure"' > conftest.$ac_ext
+  echo '#line 6818 "configure"' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -6903,7 +6997,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6943,7 +7037,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6995,7 +7089,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7035,7 +7129,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_NMEDIT="nmedit"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7087,7 +7181,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7127,7 +7221,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_LIPO="lipo"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7179,7 +7273,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7219,7 +7313,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_OTOOL="otool"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7271,7 +7365,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7311,7 +7405,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_OTOOL64="otool64"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8248,11 +8342,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8251: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8345: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:8255: \$? = $ac_status" >&5
+   echo "$as_me:8349: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -8587,11 +8681,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8590: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8684: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:8594: \$? = $ac_status" >&5
+   echo "$as_me:8688: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -8692,11 +8786,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8695: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8789: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:8699: \$? = $ac_status" >&5
+   echo "$as_me:8793: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -8747,11 +8841,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8750: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8844: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:8754: \$? = $ac_status" >&5
+   echo "$as_me:8848: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -11114,7 +11208,7 @@
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11117 "configure"
+#line 11211 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11210,7 +11304,7 @@
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11213 "configure"
+#line 11307 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11701,7 +11795,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_PAX="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -11745,7 +11839,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_GNUTAR="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -11789,7 +11883,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_GTAR="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -11833,7 +11927,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_TAR="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -11926,7 +12020,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_PAX="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -11970,7 +12064,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_GNUTAR="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -12014,7 +12108,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_GTAR="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -12058,7 +12152,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_TAR="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -12150,7 +12244,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -12196,7 +12290,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -12242,7 +12336,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_MKZIP="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -12288,7 +12382,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_XMLTO="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -12368,11 +12462,11 @@
 int
 main ()
 {
-/* FIXME: Include the comments suggested by Paul. */
+
 #ifndef __cplusplus
-  /* Ultrix mips cc rejects this.  */
+  /* Ultrix mips cc rejects this sort of thing.  */
   typedef int charset[2];
-  const charset cs;
+  const charset cs = { 0, 0 };
   /* SunOS 4.1.1 cc rejects this.  */
   char const *const *pcpcc;
   char **ppc;
@@ -12389,8 +12483,9 @@
   ++pcpcc;
   ppc = (char**) pcpcc;
   pcpcc = (char const *const *) ppc;
-  { /* SCO 3.2v4 cc rejects this.  */
-    char *t;
+  { /* SCO 3.2v4 cc rejects this sort of thing.  */
+    char tx;
+    char *t = &tx;
     char const *s = 0 ? (char *) 0 : (char const *) 0;
 
     *t++ = 0;
@@ -12406,10 +12501,10 @@
     iptr p = 0;
     ++p;
   }
-  { /* AIX XL C 1.02.0.0 rejects this saying
+  { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
        "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
-    struct s { int j; const int *ap[3]; };
-    struct s *b; b->j = 5;
+    struct s { int j; const int *ap[3]; } bx;
+    struct s *b = &bx; b->j = 5;
   }
   { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
     const int foo = 10;
@@ -13476,6 +13571,8 @@
 esac
 rm -rf conftest*
   fi
+
+
 fi
 
 # we know about some internals of ac_sys_largefile here...
@@ -14540,7 +14637,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -14646,7 +14743,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -14794,7 +14891,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_ACLOCAL="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -14846,7 +14943,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_ACLOCAL="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -15029,6 +15126,14 @@
 LTLIBOBJS=$ac_ltlibobjs
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+$as_echo_n "checking that generated files are newer than configure... " >&6; }
+   if test -n "$am_sleep_pid"; then
+     # Hide warnings about reused PIDs.
+     wait $am_sleep_pid 2>/dev/null
+   fi
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
+$as_echo "done" >&6; }
  if test -n "$EXEEXT"; then
   am__EXEEXT_TRUE=
   am__EXEEXT_FALSE='#'
@@ -15348,16 +15453,16 @@
     # ... but there are two gotchas:
     # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
     # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
+    # In both cases, we have to default to `cp -pR'.
     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
+      as_ln_s='cp -pR'
   elif ln conf$$.file conf$$ 2>/dev/null; then
     as_ln_s=ln
   else
-    as_ln_s='cp -p'
+    as_ln_s='cp -pR'
   fi
 else
-  as_ln_s='cp -p'
+  as_ln_s='cp -pR'
 fi
 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 rmdir conf$$.dir 2>/dev/null
@@ -15417,29 +15522,17 @@
   as_mkdir_p=false
 fi
 
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-	test -d "$1/.";
-      else
-	case $1 in #(
-	-*)set "./$1";;
-	esac;
-	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
-	???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
 
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
 # Sed expression to map a string onto a valid CPP name.
 as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
 
@@ -15460,7 +15553,7 @@
 # values after options handling.
 ac_log="
 This file was extended by $as_me, which was
-generated by GNU Autoconf 2.68.  Invocation command line was
+generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -15526,10 +15619,10 @@
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
 config.status
-configured by $0, generated by GNU Autoconf 2.68,
+configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 
@@ -15620,7 +15713,7 @@
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 if \$ac_cs_recheck; then
-  set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
   shift
   \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
   CONFIG_SHELL='$SHELL'
@@ -15648,6 +15741,7 @@
 ax_enable_builddir_host="$HOST"                        # $HOST / $host
 ax_enable_builddir_version="$VERSION"                  # $VERSION
 ax_enable_builddir_package="$PACKAGE"                  # $PACKAGE
+ax_enable_builddir_auxdir="$ax_enable_builddir_auxdir" # $AUX
 ax_enable_builddir_sed="$ax_enable_builddir_sed"       # $SED
 ax_enable_builddir="$ax_enable_builddir"               # $SUB
 
@@ -16560,9 +16654,22 @@
 $as_echo "$as_me: skipping top_srcdir/Makefile - not created" >&6;}
     fi
   else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: create top_srcdir/Makefile guessed from local Makefile" >&5
+    if test -f "$ac_top_srcdir/Makefile" ; then
+      a=`grep "^VERSION " "$ac_top_srcdir/Makefile"` ; b=`grep "^VERSION " Makefile`
+      test "$a" != "$b" && rm "$ac_top_srcdir/Makefile"
+    fi
+    if test -f "$ac_top_srcdir/Makefile" ; then
+	echo "$ac_top_srcdir/Makefile : $ac_top_srcdir/Makefile.in" > $tmp/conftemp.mk
+	echo "	@ echo 'REMOVED,,,' >\$@" >> $tmp/conftemp.mk
+      eval "${MAKE-make} -f $tmp/conftemp.mk 2>/dev/null >/dev/null"
+      if grep '^REMOVED,,,' "$ac_top_srcdir/Makefile" >/dev/null
+      then rm $ac_top_srcdir/Makefile ; fi
+      cp $tmp/conftemp.mk $ac_top_srcdir/makefiles.mk~      ## DEBUGGING
+    fi
+    if test ! -f "$ac_top_srcdir/Makefile" ; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: create top_srcdir/Makefile guessed from local Makefile" >&5
 $as_echo "$as_me: create top_srcdir/Makefile guessed from local Makefile" >&6;}
-     x='`' ; cat >$tmp/conftemp.sed <<_EOF
+      x='`' ; cat >$tmp/conftemp.sed <<_EOF
 /^\$/n
 x
 /^\$/bS
@@ -16585,26 +16692,87 @@
 /^\\./d
 s/:.*/:/
 /:\$/s/ /  /g
+/:\$/s/ \\([a-z][a-z-]*[a-z]\\) / \\1 \\1-all /g
+/:\$/s/^\\([a-z][a-z-]*[a-z]\\)\\([ :]\\)/\\1 \\1-all\\2/
 /:\$/s/  / /g
-/^.*[=]/!s%\$% ; (cd \$(BUILD) \\&\\& \$(ISNOTSRCDIR) \\&\\& \$(MAKE) "\$\@") || exit ; \$(MAKE) done "RULE=\$\@"%
+/^all all-all[ :]/i\\
+all-configured : all-all
+/-all-all/d
+/^.*[=]/!a\\
+	@ HOST="\$(HOST)\" \\\\\\
+	; test ".\$\$HOST" = "." && HOST=$x sh $ax_enable_builddir_auxdir/config.guess $x \\\\\\
+	; BUILD=$x grep "^#### \$\$HOST " Makefile | sed -e 's/.*|//' $x \\\\\\
+	; use=$x basename "\$\@" -all $x; n=$x echo \$\$BUILD | wc -w $x \\\\\\
+	; echo "MAKE \$\$HOST : \$\$n * \$\@"; if test "\$\$n" = "0" ; then : \\\\\\
+	; BUILD=$x grep "^####.*|" Makefile |tail -1| sed -e 's/.*|//' $x ; fi \\\\\\
+	; test ".\$\$BUILD" = "." && BUILD="." \\\\\\
+	; test "\$\$use" = "\$\@" && BUILD=$x echo "\$\$BUILD" | tail -1 $x \\\\\\
+	; for i in \$\$BUILD ; do test ".\$\$i" = "." && continue \\\\\\
+	; (cd "\$\$i" && test ! -f configure && \$(MAKE) \$\$use) || exit; done
+/dist-all *:/a\\
+	@ HOST="\$(HOST)\" \\\\\\
+	; test ".\$\$HOST" = "." && HOST=$x sh $ax_enable_builddir_auxdir/config.guess $x \\\\\\
+	; BUILD=$x grep "^#### \$\$HOST " Makefile | sed -e 's/.*|//' $x \\\\\\
+	; found=$x echo \$\$BUILD | wc -w $x \\\\\\
+	; echo "MAKE \$\$HOST : \$\$found \$(PACKAGE)-\$(VERSION).tar.*" \\\\\\
+	; if test "\$\$found" = "0" ; then : \\\\\\
+	; BUILD=$x grep "^#### .*|" Makefile |tail -1| sed -e 's/.*|//' $x \\\\\\
+	; fi ; for i in \$\$BUILD ; do test ".\$\$i" = "." && continue \\\\\\
+	; for f in \$\$i/\$(PACKAGE)-\$(VERSION).tar.* \\\\\\
+	; do test -f "\$\$f" && mv "\$\$f" \$(PUB). ; done ; break ; done
+/distclean-all *:/a\\
+	@ HOST="\$(HOST)\" \\\\\\
+	; test ".\$\$HOST" = "." && HOST=$x sh $ax_enable_builddir_auxdir/config.guess $x \\\\\\
+	; BUILD=$x grep "^#### .*| *\\./" Makefile | sed -e 's/.*|//' $x \\\\\\
+	; use=$x basename "\$\@" -all $x; n=$x echo \$\$BUILD | wc -w $x \\\\\\
+	; echo "MAKE \$\$HOST : \$\$n * \$\@ (all local builds)" \\\\\\
+	; test ".\$\$BUILD" = "." && BUILD="." \\\\\\
+	; for i in \$\$BUILD ; do test ".\$\$i" = "." && continue \\\\\\
+	; echo "# rm -r \$\$i"; done ; echo "# (sleep 3)" ; sleep 3 \\\\\\
+	; for i in \$\$BUILD ; do test ".\$\$i" = "." && continue \\\\\\
+	; echo "rm -r \$\$i"; (rm -r "\$\$i") ; done ; rm Makefile
 _EOF
-    test ".$USE_MAINTAINER_MODE" = ".no" || \
-  	cp "$tmp/conftemp.sed" "$ac_top_srcdir/makefile.sed~"            ## DEBUGGING
-    echo 'BUILD=`uname -msr | tr " /" "__"`.d' >$ac_top_srcdir/Makefile
-    echo 'ISNOTSRCDIR=test ! -f configure' >>$ac_top_srcdir/Makefile
-    $ax_enable_builddir_sed -f $tmp/conftemp.sed Makefile >>$ac_top_srcdir/Makefile
-    echo 'done: ;@ if grep "$(RULE)-done .*:" Makefile > /dev/null; then     echo $(MAKE) $(RULE)-done ; $(MAKE) $(RULE)-done ; else true ; fi'     >> $ac_top_srcdir/Makefile
-    if test -f "$ac_top_srcdir/Makefile.mk" ; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: extend top_srcdir/Makefile with top_srcdir/Makefile.mk" >&5
+      cp "$tmp/conftemp.sed" "$ac_top_srcdir/makefile.sed~"            ## DEBUGGING
+      $ax_enable_builddir_sed -f $tmp/conftemp.sed Makefile >$ac_top_srcdir/Makefile
+      if test -f "$ac_top_srcdir/Makefile.mk" ; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: extend top_srcdir/Makefile with top_srcdir/Makefile.mk" >&5
 $as_echo "$as_me: extend top_srcdir/Makefile with top_srcdir/Makefile.mk" >&6;}
-      cat $ac_top_srcdir/Makefile.mk >>$ac_top_srcdir/Makefile
+        cat $ac_top_srcdir/Makefile.mk >>$ac_top_srcdir/Makefile
+      fi ; xxxx="####"
+      echo "$xxxx CONFIGURATIONS FOR TOPLEVEL MAKEFILE: " >>$ac_top_srcdir/Makefile
+      # sanity check
+      if grep '^; echo "MAKE ' $ac_top_srcdir/Makefile >/dev/null ; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: buggy sed found - it deletes tab in \"a\" text parts" >&5
+$as_echo "$as_me: buggy sed found - it deletes tab in \"a\" text parts" >&6;}
+        $ax_enable_builddir_sed -e '/^@ HOST=/s/^/	/' -e '/^; /s/^/	/' $ac_top_srcdir/Makefile \
+          >$ac_top_srcdir/Makefile~
+        (test -s $ac_top_srcdir/Makefile~ && mv $ac_top_srcdir/Makefile~ $ac_top_srcdir/Makefile) 2>/dev/null
+      fi
+    else
+      xxxx="\\#\\#\\#\\#"
+      # echo "/^$xxxx *$ax_enable_builddir_host /d" >$tmp/conftemp.sed
+      echo "s!^$xxxx [^|]* | *$ax_enable_builddir *\$!$xxxx ...... $ax_enable_builddir!" >$tmp/conftemp.sed
+      $ax_enable_builddir_sed -f "$tmp/conftemp.sed" "$ac_top_srcdir/Makefile" >$tmp/mkfile.tmp
+        cp "$tmp/conftemp.sed" "$ac_top_srcdir/makefiles.sed~"         ## DEBUGGING
+        cp "$tmp/mkfile.tmp"   "$ac_top_srcdir/makefiles.out~"         ## DEBUGGING
+      if cmp -s "$ac_top_srcdir/Makefile" "$tmp/mkfile.tmp" 2>/dev/null ; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: keeping top_srcdir/Makefile from earlier configure" >&5
+$as_echo "$as_me: keeping top_srcdir/Makefile from earlier configure" >&6;}
+        rm "$tmp/mkfile.tmp"
+      else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: reusing top_srcdir/Makefile from earlier configure" >&5
+$as_echo "$as_me: reusing top_srcdir/Makefile from earlier configure" >&6;}
+        mv "$tmp/mkfile.tmp" "$ac_top_srcdir/Makefile"
+      fi
     fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: make uses BUILD=$ax_enable_builddir (on $ax_enable_builddir_host:)" >&5
-$as_echo "$as_me: make uses BUILD=$ax_enable_builddir (on $ax_enable_builddir_host:)" >&6;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: build in $ax_enable_builddir (HOST=$ax_enable_builddir_host)" >&5
+$as_echo "$as_me: build in $ax_enable_builddir (HOST=$ax_enable_builddir_host)" >&6;}
+    xxxx="####"
+    echo "$xxxx" "$ax_enable_builddir_host" "|$ax_enable_builddir" >>$ac_top_srcdir/Makefile
   fi
  ;;
     "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
-  # Autoconf 2.62 quotes --file arguments for eval, but not when files
+  # Older Autoconf quotes --file arguments for eval, but not when files
   # are listed without --file.  Let's play safe and only enable the eval
   # if we detect the quoting.
   case $CONFIG_FILES in
@@ -16617,7 +16785,7 @@
     # Strip MF so we end up with the name of the file.
     mf=`echo "$mf" | sed -e 's/:.*$//'`
     # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named `Makefile.in', but
+    # We used to match only the files named 'Makefile.in', but
     # some people rename them; so instead we look at the file content.
     # Grep'ing the first line is not enough: some people post-process
     # each Makefile.in and add a new line on top of each file to say so.
@@ -16651,14 +16819,12 @@
       continue
     fi
     # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running `make'.
+    # from the Makefile without running 'make'.
     DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
     test -z "$DEPDIR" && continue
     am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
+    test -z "$am__include" && continue
     am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # When using ansi2knr, U may be empty or an underscore; expand it
-    U=`sed -n 's/^U = //p' < "$mf"`
     # Find all dependency output files, they are included files with
     # $(DEPDIR) in their names.  We invoke sed twice because it is the
     # simplest approach to changing $(DEPDIR) to its actual value in the
@@ -16665,7 +16831,7 @@
     # expansion.
     for file in `sed -n "
       s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
       # Make sure the directory exists.
       test -f "$dirpart/$file" && continue
       fdir=`$as_dirname -- "$file" ||

Modified: trunk/Build/source/libs/zziplib/zziplib-src/configure.ac
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/configure.ac	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/configure.ac	2017-06-20 00:49:02 UTC (rev 44647)
@@ -7,7 +7,7 @@
 # =======================================================================
 AC_CANONICAL_SYSTEM
 dnl AM_ENABLE_MULTILIB([Makefile],[$host])
-AX_ENABLE_BUILDDIR_UNAME
+AX_ENABLE_BUILDDIR
 AC_SET_DEFAULT_PATHS_SYSTEM
 # -----------------------------------------------------------------------
 AC_ARG_ENABLE([thread-safe],

Modified: trunk/Build/source/libs/zziplib/zziplib-src/docs/Makefile.in
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/docs/Makefile.in	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/docs/Makefile.in	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,6 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -35,7 +79,8 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = docs
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in COPYING.LIB
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/uses/mkinstalldirs COPYING.LIB
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_compile_check_sizeof.m4 \
 	$(top_srcdir)/m4/ac_set_default_paths_system.m4 \
@@ -48,7 +93,7 @@
 	$(top_srcdir)/m4/ax_check_aligned_access_required.m4 \
 	$(top_srcdir)/m4/ax_configure_args.m4 \
 	$(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \
-	$(top_srcdir)/m4/ax_enable_builddir_uname.m4 \
+	$(top_srcdir)/m4/ax_enable_builddir.m4 \
 	$(top_srcdir)/m4/ax_expand_prefix.m4 \
 	$(top_srcdir)/m4/ax_maintainer_mode_auto_silent.m4 \
 	$(top_srcdir)/m4/ax_not_enable_frame_pointer.m4 \
@@ -72,11 +117,30 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -324,13 +388,13 @@
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
 
+cscope cscopelist:
 
+
 distdir: $(DISTFILES)
 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -375,10 +439,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
@@ -461,16 +530,17 @@
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-data-local install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	uninstall uninstall-am
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am \
+	install-data-local install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+	uninstall-am
 
 
 all : all-am default

Added: trunk/Build/source/libs/zziplib/zziplib-src/docs/cpp2markdown-1.py
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/docs/cpp2markdown-1.py	                        (rev 0)
+++ trunk/Build/source/libs/zziplib/zziplib-src/docs/cpp2markdown-1.py	2017-06-20 00:49:02 UTC (rev 44647)
@@ -0,0 +1,249 @@
+#! /usr/bin/env python
+import pygments.lexers.compiled as lexer
+import optparse
+import re
+from pygments.token import Token
+import logging
+
+logg = logging.getLogger(__name__)
+
+FileComment = "FileComment"
+FileInclude = "FileInclude"
+FunctionComment = "FunctionComment"
+FunctionPrototype = "FunctionPrototype"
+
+# use the markdown lexer to identify elements
+# then filter only those we want. The returned
+# token list is more global flagging the role
+# of each token for the manual generation.
+class CppToMarkdown:
+    def __init__(self):
+        self.alldefinitions = 0
+        self.internaldefs = ["static"]
+        self.filecomment_done = ""
+        self.fileinclude_done = ""
+        self.filecomment_text = ""
+        self.fileinclude_text = ""
+        self.comment_text = ""
+        self.function_text = ""
+        self.nesting = 0
+    def split_copyright(self, text):
+        # there are two modes - the copyright starts in the first line
+        # and the source description follows or the other way round.
+        lines = text.split("\n")
+        if len(lines) <= 2:
+            return "", text
+        introtext = [lines[0]]
+        copyright = [lines[0]]
+        check1 = re.compile(r"^\s[*]\s+[(][c][C][)]")
+        check2 = re.compile(r"^\s[*]\s+\b[Cc]opyright\b")
+        empty1 = re.compile(r"^\s[*]\s*$")
+        state = "intro"
+        for i in xrange(1,len(lines)-1):
+            line = lines[i]
+            if state == "intro":
+                if empty1.match(line):
+                    introtext += [ line ]
+                    continue
+                if check1.match(line) or check2.match(line):
+                    state = "copyrightfirst"
+                    copyright += [ line ]
+                else:
+                    state = "introtextfirst"
+                    introtext += [ line ]
+            elif state == "copyrightfirst":
+                if empty1.match(line):
+                    state = "introtextlast"
+                    introtext += [ line ]
+                else:
+                    copyright += [ line ]
+            elif state == "introtextfirst":
+                if check1.match(line) or check2.match(line):
+                    state = "copyrightlast"
+                    copyright += [ line ]
+                else:
+                    introtext += [ line ]
+            elif state == "copyrightlast":
+                copyright += [ line ]
+            elif state == "introtextlast":
+                introtext += [ line ]
+            else:
+                logg.fatal("UNKNOWN STATE %s", state)
+        introtext += [lines[-1]]
+        copyright += [lines[-1]]
+        logg.debug("@ COPYRIGHT\n %s", copyright)
+        logg.debug("@ INTROTEXT\n %s", introtext)
+        return "\n".join(copyright), "\n".join(introtext)
+    def commentblock(self, text):
+        prefix = re.compile(r"(?s)^\s*[/][*]+([^\n]*)(?=\n)")
+        suffix = re.compile(r"(?s)\n [*][/]\s*")
+        empty = re.compile(r"(?s)\n [*][ \t]*(?=\n)")
+        lines1 = re.compile(r"(?s)\n [*][ ][\t]")
+        lines2 = re.compile(r"(?s)\n [*][ ]")
+        lines3 = re.compile(r"(?s)\n [*][\t][\t]")
+        lines4 = re.compile(r"(?s)\n [*][\t]")
+        text = suffix.sub("\n", text)
+        text = prefix.sub("> \\1\n", text)
+        text = empty.sub("\n", text)
+        text = lines1.sub("\n     ", text)
+        text = lines2.sub("\n", text)
+        text = lines3.sub("\n         ", text)
+        text = lines4.sub("\n     ", text)
+        return text
+    def functionblock(self, text):
+        empty = re.compile(r"(?s)\n[ \t]*(?=\n)")
+        text = "    " + text.replace("\n", "\n    ")
+        text = empty.sub("", text) 
+        return text
+    def functionname(self, text):
+        check1 = re.compile(r"^[^()=]*(\b\w+)\s*[(=]")
+        found = check1.match(text)
+        if found:
+            return found.group(1)
+        check2 = re.compile(r"^[^()=]*(\b\w+)\s*$")
+        found = check2.match(text)
+        if found:
+            return found.group(1)
+        return ""
+    def run(self, filename):
+        filetext = open(filename).read()
+        for line in self.process(filetext, filename):
+            print line
+    def process(self, filetext, filename=""):
+        section_ruler = "-----------------------------------------"
+        copyright = ""
+        for token, text in self.parse(filetext):
+            if token == FileInclude:
+                yield "## SOURCE " + filename.replace("../", "")
+                yield "    #" + text.replace("\n", "\n    ")
+            elif token == FileComment:
+                yield "### INTRODUCTION"
+                copyright, introduction = self.split_copyright(text)
+                yield self.commentblock(introduction)
+            elif token == FunctionPrototype:
+                name = self.functionname(text)
+                yield section_ruler
+                yield "### " + name
+                # yield '<a id="%s"></a>' % name
+                yield "#### NAME"
+                yield "    " + name
+                yield "#### SYNOPSIS"
+                yield self.functionblock(text)
+            elif token == FunctionComment:
+                if text:
+                    yield "#### DESCRIPTION"
+                    yield self.commentblock(text)
+            else:
+                if text:
+                    yield "#### NOTES"
+                    print token, text.replace("\n", "\n  ")
+        if copyright:
+            yield section_ruler
+            yield "### COPYRIGHT"
+            yield self.commentblock(copyright)            
+    def isexported_function(self):
+        function = self.function_text.strip().replace("\n"," ")
+        logg.debug("@ --------------------------------------") 
+        logg.debug("@ ALLDEFINITIONS %s", self.alldefinitions)
+        if function.startswith("static ") and self.alldefinitions < 3:
+            logg.debug("@ ONLY INTERNAL %s", function)
+            return False
+        if not self.comment_text:
+            if not self.alldefinitions:
+                logg.info("@ NO COMMENT ON %s", function)
+                return False
+            else:
+                logg.warn("@ NO COMMENT ON %s", function)
+        text = self.comment_text
+        if text.startswith("/**"): return True
+        if text.startswith("/*!"): return True
+        if text.startswith("///"): return True
+        if text.startswith("//!"): return True
+        if self.alldefinitions >= 1:
+            if text.startswith("/*"): return True
+            if text.startswith("//"): return True
+        if self.alldefinitions >= 2:
+            return True
+        logg.debug("@ NO ** COMMENT %s", self.function_text.strip())
+        defs = self.function_text
+        return False
+    def parse(self, filetext):
+        c = lexer.CLexer()
+        for token, text in c.get_tokens(filetext):
+            logg.debug("|| %s %s", token, text.replace("\n", "\n |"))
+            # completion
+            if token != Token.Comment.Preproc and self.fileinclude_done == "no":
+                    yield FileInclude, self.fileinclude_text
+                    if self.filecomment_text:
+                        yield FileComment, self.filecomment_text
+                    self.fileinclude_done = "done"
+            # parsing
+            if token == Token.Comment.Multiline:
+                if not self.filecomment_done:
+                    self.filecomment_done = "done"
+                    self.filecomment_text = text
+                    # wait until we know it is not a function documentation
+                    self.comment_text = text
+                else:
+                    self.comment_text = text
+            elif token == Token.Comment.Preproc and "include" in text:
+                if not self.fileinclude_done:
+                    self.fileinclude_done = "no"
+                    self.fileinclude_text += text
+                    self.comment_text = ""
+            elif token == Token.Comment.Preproc and self.fileinclude_done == "no":
+                if not "\n" in self.fileinclude_text:
+                    self.fileinclude_text += text
+                self.comment_text = ""
+            elif token == Token.Comment.Preproc:
+                    self.comment_text = ""
+                    self.function_text = ""
+            elif token == Token.Operator and text == "=":
+                if not self.nesting and self.function_text.strip():
+                    if self.isexported_function():
+                        yield FunctionPrototype, self.function_text
+                        yield FunctionComment, self.comment_text
+                self.comment_text = ""
+                self.function_text = ""
+            elif token == Token.Punctuation and text == ";":
+                self.comment_text = ""
+                self.function_text = ""
+            elif token == Token.Punctuation and text == "{":
+                if not self.nesting and self.function_text.strip():
+                    if self.isexported_function():
+                        yield FunctionPrototype, self.function_text
+                        yield FunctionComment, self.comment_text
+                self.comment_text = ""
+                self.function_text = ""
+                self.nesting += 1
+            elif token == Token.Punctuation and text == "}":
+                self.nesting -= 1
+                self.comment_text = ""
+                self.function_text = ""
+            else:
+                if not self.nesting:
+                    self.function_text += text
+                else:
+                    pass # yield "|",text
+                
+
+if __name__ == "__main__":
+    _o = optparse.OptionParser()
+    _o.add_option("-v", "--verbose", action="count", default=0)
+    _o.add_option("-a", "--all", action="count", default=0,
+                  help="include all definitions in the output (not only /**)")
+    opt, args = _o.parse_args()
+
+    logg.addHandler(logging.StreamHandler())
+    if opt.verbose:
+        logg.setLevel(logging.WARN - 10 * opt.verbose)
+    
+    c = CppToMarkdown()
+    if opt.all:
+        c.alldefinitions = opt.all
+    for arg in args:
+        c.run(arg)
+    
+    
+
+

Added: trunk/Build/source/libs/zziplib/zziplib-src/docs/cpp2markdown.py
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/docs/cpp2markdown.py	                        (rev 0)
+++ trunk/Build/source/libs/zziplib/zziplib-src/docs/cpp2markdown.py	2017-06-20 00:49:02 UTC (rev 44647)
@@ -0,0 +1,195 @@
+import pygments.lexers.compiled as lexer
+import optparse
+import re
+from pygments.token import Token
+import logging
+
+logg = logging.getLogger(__name__)
+
+FileComment = "FileComment"
+FileInclude = "FileInclude"
+FunctionComment = "FunctionComment"
+FunctionPrototype = "FunctionPrototype"
+
+# use the markdown lexer to identify elements
+# then filter only those we want. The returned
+# token list is more global flagging the role
+# of each token for the manual generation.
+class CppToMarkdown:
+    def __init__(self):
+        self.alldefinitions = 0
+        self.internaldefs = ["static"]
+        self.filecomment_done = ""
+        self.fileinclude_done = ""
+        self.filecomment_text = ""
+        self.fileinclude_text = ""
+        self.comment_text = ""
+        self.function_text = ""
+        self.nesting = 0
+    def commentblock(self, text):
+        emptyprefix = re.compile(r"(?s)^\s*[/][*]+[ \t]*(?=\n)")
+        prefix = re.compile(r"(?s)^\s*[/][*]+([^\n]*)(?=\n)")
+        suffix = re.compile(r"(?s)\n [*][/]\s*")
+        empty = re.compile(r"(?s)\n [*][ \t]*(?=\n)")
+        lines1 = re.compile(r"(?s)\n [*][ ][\t]")
+        lines2 = re.compile(r"(?s)\n [*][ ]")
+        lines3 = re.compile(r"(?s)\n [*][\t][\t]")
+        lines4 = re.compile(r"(?s)\n [*][\t]")
+        text = suffix.sub("\n", text)
+        text = emptyprefix.sub("", text)
+        text = prefix.sub("> \\1\n", text)
+        text = empty.sub("\n", text)
+        text = lines1.sub("\n     ", text)
+        text = lines2.sub("\n", text)
+        text = lines3.sub("\n         ", text)
+        text = lines4.sub("\n     ", text)
+        return text
+    def functionblock(self, text):
+        empty = re.compile(r"(?s)\n[ \t]*(?=\n)")
+        text = "    " + text.replace("\n", "\n    ")
+        text = empty.sub("", text) 
+        return text
+    def functionname(self, text):
+        check1 = re.compile(r"^[^()=]*(\b\w+)\s*[(=]")
+        found = check1.match(text)
+        if found:
+            return found.group(1)
+        check2 = re.compile(r"^[^()=]*(\b\w+)\s*$")
+        found = check2.match(text)
+        if found:
+            return found.group(1)
+        return ""
+    def run(self, filename):
+        filetext = open(filename).read()
+        for line in self.process(filetext, filename):
+            print line
+    def process(self, filetext, filename=""):
+        for token, text in self.parse(filetext):
+            if token == FileInclude:
+                yield "## SOURCE " + filename.replace("../", "")
+                yield "    #" + text.replace("\n", "\n    ")
+            elif token == FileComment:
+                yield "## INTRODUCTION"
+                yield self.commentblock(text)
+            elif token == FunctionPrototype:
+                name = self.functionname(text)
+                yield "-----------------------------------------"
+                yield "### " + name
+                yield "#### NAME"
+                yield "    " + name
+                yield "#### SYNOPSIS"
+                yield self.functionblock(text)
+            elif token == FunctionComment:
+                if text:
+                    yield "#### DESCRIPTION"
+                    yield self.commentblock(text)
+            else:
+                if text:
+                    yield "#### NOTES"
+                    print token, text.replace("\n", "\n  ")
+    def isexported_function(self):
+        function = self.function_text.strip().replace("\n"," ")
+        logg.debug("@ --------------------------------------") 
+        logg.debug("@ ALLDEFINITIONS %s", self.alldefinitions)
+        if function.startswith("static ") and self.alldefinitions < 3:
+            logg.debug("@ ONLY INTERNAL %s", function)
+            return False
+        if not self.comment_text:
+            if not self.alldefinitions:
+                logg.info("@ NO COMMENT ON %s", function)
+                return False
+            else:
+                logg.warn("@ NO COMMENT ON %s", function)
+        text = self.comment_text
+        if text.startswith("/**"): return True
+        if text.startswith("/*!"): return True
+        if text.startswith("///"): return True
+        if text.startswith("//!"): return True
+        if self.alldefinitions >= 1:
+            if text.startswith("/*"): return True
+            if text.startswith("//"): return True
+        if self.alldefinitions >= 2:
+            return True
+        logg.debug("@ NO ** COMMENT %s", self.function_text.strip())
+        defs = self.function_text
+        return False
+    def parse(self, filetext):
+        c = lexer.CLexer()
+        for token, text in c.get_tokens(filetext):
+            logg.debug("|| %s %s", token, text.replace("\n", "\n |"))
+            # completion
+            if token != Token.Comment.Preproc and self.fileinclude_done == "no":
+                    yield FileInclude, self.fileinclude_text
+                    if self.filecomment_text:
+                        yield FileComment, self.filecomment_text
+                    self.fileinclude_done = "done"
+            # parsing
+            if token == Token.Comment.Multiline:
+                if not self.filecomment_done:
+                    self.filecomment_done = "done"
+                    self.filecomment_text = text
+                    # wait until we know it is not a function documentation
+                    self.comment_text = text
+                else:
+                    self.comment_text = text
+            elif token == Token.Comment.Preproc and "include" in text:
+                if not self.fileinclude_done:
+                    self.fileinclude_done = "no"
+                    self.fileinclude_text += text
+                    self.comment_text = ""
+            elif token == Token.Comment.Preproc and self.fileinclude_done == "no":
+                if not "\n" in self.fileinclude_text:
+                    self.fileinclude_text += text
+                self.comment_text = ""
+            elif token == Token.Comment.Preproc:
+                    self.comment_text = ""
+                    self.function_text = ""
+            elif token == Token.Operator and text == "=":
+                if not self.nesting and self.function_text.strip():
+                    if self.isexported_function():
+                        yield FunctionPrototype, self.function_text
+                        yield FunctionComment, self.comment_text
+                self.comment_text = ""
+                self.function_text = ""
+            elif token == Token.Punctuation and text == ";":
+                self.comment_text = ""
+                self.function_text = ""
+            elif token == Token.Punctuation and text == "{":
+                if not self.nesting and self.function_text.strip():
+                    if self.isexported_function():
+                        yield FunctionPrototype, self.function_text
+                        yield FunctionComment, self.comment_text
+                self.comment_text = ""
+                self.function_text = ""
+                self.nesting += 1
+            elif token == Token.Punctuation and text == "}":
+                self.nesting -= 1
+                self.comment_text = ""
+                self.function_text = ""
+            else:
+                if not self.nesting:
+                    self.function_text += text
+                else:
+                    pass # yield "|",text
+                
+
+if __name__ == "__main__":
+    _o = optparse.OptionParser()
+    _o.add_option("-v", "--verbose", action="count", default=0)
+    _o.add_option("-a", "--all", action="count", default=0,
+                  help="include all definitions in the output (not only /**)")
+    opt, args = _o.parse_args()
+
+    logg.addHandler(logging.StreamHandler())
+    if opt.verbose:
+        logg.setLevel(logging.WARN - 10 * opt.verbose)
+    
+    c = CppToMarkdown()
+    if opt.all:
+        c.alldefinitions = opt.all
+    for arg in args:
+        c.run(arg)
+    
+    
+
+

Added: trunk/Build/source/libs/zziplib/zziplib-src/docs/dir-zzip-192.png
===================================================================
(Binary files differ)

Index: trunk/Build/source/libs/zziplib/zziplib-src/docs/dir-zzip-192.png
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/docs/dir-zzip-192.png	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/docs/dir-zzip-192.png	2017-06-20 00:49:02 UTC (rev 44647)

Property changes on: trunk/Build/source/libs/zziplib/zziplib-src/docs/dir-zzip-192.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Added: trunk/Build/source/libs/zziplib/zziplib-src/docs/dir-zzip-64.png
===================================================================
(Binary files differ)

Index: trunk/Build/source/libs/zziplib/zziplib-src/docs/dir-zzip-64.png
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/docs/dir-zzip-64.png	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/docs/dir-zzip-64.png	2017-06-20 00:49:02 UTC (rev 44647)

Property changes on: trunk/Build/source/libs/zziplib/zziplib-src/docs/dir-zzip-64.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Added: trunk/Build/source/libs/zziplib/zziplib-src/docs/site.htm
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/docs/site.htm	                        (rev 0)
+++ trunk/Build/source/libs/zziplib/zziplib-src/docs/site.htm	2017-06-20 00:49:02 UTC (rev 44647)
@@ -0,0 +1,68 @@
+<html><head><title>zziplib</title>
+  <style>
+   a:link          { text-decoration : none ; color : #000080 ; }
+   a:visited       { text-decoration : none ; color : #200060 ; }
+   .justify        { text-align : justify ; }
+  </style>
+</head><body>
+
+<table width="100%"><tr valign="top"><td bgcolor="#F0F0F0" width="145">
+<center>
+     <big><big><big><b>
+     <font color="#800080"><sup>Z</sup>ZIP<sub>lib</sub></font>
+     </b></big></big></big>
+<br><big><b> <!--VERSION--> </b></big>
+</center>
+<hr> <a href="zzip-index.html">Library</a>
+<br>-<a href="zzip-zip.html">ZIP Access</a>
+<br>-<a href="zzip-file.html">Transparently</a>
+<br>-<a href="zzip-sdl-rwops.html">SDLrwops Example</a>
+<br>-<a href="zzip-extio.html">ext/io Customization</a>
+<br>-<a href="zzip-xor.html">xor/io Obfuscation</a>
+<br>-<a href="zzip-api.html">Library API</a>
+<br>-<a href="zzip-parse.html">Parsing ZIPs</a>
+<br>-<a href="64on32.html">64on32 extras</a>
+<br>-<a href="future.html">Next To Come</a>
+<br>-<a href="configs.html">Config Helpers</a>
+<br>-<a href="sfx-make.html">Making a zip/exe</a>
+<br>-<a href="history.html">Hints And Links</a>
+<br>-<a href="referentials.html">Referentials</a>
+<br> -<a href="zziplib.html">Functions List #</a>
+<!--START-->
+<br> -<a href="man/index.html">The Manual Pages #</a>
+<!--ENDS-->
+
+<br>&nbsp&nbsp&nbsp <small>(# autogenerated)</small>
+
+<br> <hr>
+
+<br><b><a alt="Tarballs, RPM-archive and windll-ZIPs can be downloaded from"
+  href="http://sourceforge.net/project/showfiles.php?group_id=6389">
+ Download Area *</a></b>
+<br><a alt="Sourceforge Project CVS web access"
+     href="http://zziplib.svn.sourceforge.net/viewvc/zziplib/">Sourceforge SVN</a>
+<br><a alt="Sourceforge Project Index Page"
+     href="http://sourceforge.net/projects/zziplib">Sourceforge Project</a>
+<br><a alt="the zziplib webpage at sourceforge"
+     href="http://zziplib.sourceforge.net">zziplib.sf.net
+                                  <small><i>Home</i></small></a>
+
+<br><small><a alt="zziplib - license details"
+       href="copying.html">LGPL/MPL license</a></small>
+<br> 
+<hr>
+<center><!--START-->
+     <a href="http://sourceforge.net/project/?group_id=6389">
+        <img src="http://sourceforge.net/sflogo.php?group_id=6389&type=2"
+            border="0" alt="sourceforge.net" width="125" height="37">
+     </a>
+</center><!--ENDS-->
+
+<p align="right"><small>
+generated <!--DATE-->
+</small>
+<br> <small>(C)</small> Guido Draheim
+<br><i> guidod<small>@</small>gmx.de</i>
+</p>
+
+</td><td>

Deleted: trunk/Build/source/libs/zziplib/zziplib-src/docs/zzipfseeko.html
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/docs/zzipfseeko.html	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/docs/zzipfseeko.html	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,176 +0,0 @@
-<html><head><title>zziplib Library Functions</title>
-</head><body>
-<h2>zziplib Library Functions</h2><p>Version 0.13.62</p><p><big><b><code>#include <zzip/fseeko.h></code></b></big></p><table width="100%"><tr><td valign="top"><code><b><code><a href="#zzip_entry_fopen">zzip_entry_fopen</a></code></b>(ZZIP_ENTRY * entry, int takeover)
- : zzip__new__ ZZIP_ENTRY_FILE *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_entry_ffile">zzip_entry_ffile</a></code></b>(FILE * disk, char *filename)
- : zzip__new__ ZZIP_ENTRY_FILE *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_entry_fread">zzip_entry_fread</a></code></b>(void *ptr, zzip_size_t sized, zzip_size_t nmemb,
-                 ZZIP_ENTRY_FILE * file)
- : zzip_size_t
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_entry_fclose">zzip_entry_fclose</a></code></b>(ZZIP_ENTRY_FILE * file)
- : int
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_entry_feof">zzip_entry_feof</a></code></b>(ZZIP_ENTRY_FILE * file)
- : int
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_entry_data_offset">zzip_entry_data_offset</a></code></b>(ZZIP_ENTRY * entry)
- : zzip_off_t
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_entry_fread_file_header">zzip_entry_fread_file_header</a></code></b>(ZZIP_ENTRY * entry,
-                             struct zzip_file_header *file_header)
- : static zzip_off_t
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_entry_strdup_name">zzip_entry_strdup_name</a></code></b>(ZZIP_ENTRY * entry)
- : zzip__new__ char *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_entry_findfile">zzip_entry_findfile</a></code></b>(FILE * disk, char *filename,
-                    ZZIP_ENTRY * _zzip_restrict entry, zzip_strcmp_fn_t compare)
- : zzip__new__ ZZIP_ENTRY *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_entry_findfirst">zzip_entry_findfirst</a></code></b>(FILE * disk)
- : zzip__new__ ZZIP_ENTRY *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_entry_findnext">zzip_entry_findnext</a></code></b>(ZZIP_ENTRY * _zzip_restrict entry)
- : zzip__new__ ZZIP_ENTRY *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_entry_free">zzip_entry_free</a></code></b>(ZZIP_ENTRY * entry)
- : int
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_entry_findmatch">zzip_entry_findmatch</a></code></b>(FILE * disk, char *filespec,
-                     ZZIP_ENTRY * _zzip_restrict entry,
-                     zzip_fnmatch_fn_t compare, int flags)
- : zzip__new__ ZZIP_ENTRY *
-</code></td></tr></table><h3>Documentation</h3><dl><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_entry_fopen">zzip_entry_fopen</a></b>(ZZIP_ENTRY * entry, int takeover)
- : zzip__new__ ZZIP_ENTRY_FILE *
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_entry_ffile">zzip_entry_ffile</a></b>(FILE * disk, char *filename)
- : zzip__new__ ZZIP_ENTRY_FILE *
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_entry_fread">zzip_entry_fread</a></b>(void *ptr, zzip_size_t sized, zzip_size_t nmemb,
-                 ZZIP_ENTRY_FILE * file)
- : zzip_size_t
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_entry_fclose">zzip_entry_fclose</a></b>(ZZIP_ENTRY_FILE * file)
- : int
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_entry_feof">zzip_entry_feof</a></b>(ZZIP_ENTRY_FILE * file)
- : int
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em> open a file within a zip disk for reading</em> </td><td align="right"> <em><small>zzip/fseeko.c</small></em></td></table><p>
-  The <code>zzip_entry_fopen</code> function does take an "entry" argument and copies it (or just takes
-  it over as owner) to a new ZZIP_ENTRY_FILE handle structure. That
-  structure contains also a zlib buffer for decoding. The <code>zzip_entry_fopen</code> function does
-  seek to the file_header of the given "entry" and validates it for the
-  data buffer following it. We do also prefetch some data from the data
-  buffer thereby trying to match the disk pagesize for faster access later.
-  The <code><a href="#zzip_entry_fread">zzip_entry_fread</a></code> will then read in chunks of pagesizes which is
-  the size of the internal readahead buffer. If an error occurs then null
-  is returned.
-</p>
-</td></tr><tr><td valign="top"><p>
-  The <code>zzip_entry_ffile</code> function opens a file found by name, so it does a search into
-  the zip central directory with <code><a href="#zzip_entry_findfile">zzip_entry_findfile</a></code> and whatever
-  is found first is given to <code><a href="#zzip_entry_fopen">zzip_entry_fopen</a></code>
-</p>
-</td></tr><tr><td valign="top"><p>
-  The <code>zzip_entry_fread</code> function reads more bytes into the output buffer specified as
-  arguments. The return value is null on eof or error, the stdio-like
-  interface can not distinguish between these so you need to check
-  with <code><a href="#zzip_entry_feof">zzip_entry_feof</a></code> for the difference.
-</p>
-</td></tr><tr><td valign="top"><p>  The <code>zzip_entry_fclose</code> function releases any zlib decoder info needed for decompression
-  and dumps the ZZIP_ENTRY_FILE struct then.
-</p>
-</td></tr><tr><td valign="top"><p>
-  The <code>zzip_entry_feof</code> function allows to distinguish an error from an eof condition.
-  Actually, if we found an error but we did already reach eof then we
-  just keep on saying that it was an eof, so the app can just continue.
-</p>
-</td></tr></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_entry_data_offset">zzip_entry_data_offset</a></b>(ZZIP_ENTRY * entry)
- : zzip_off_t
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_entry_fread_file_header">zzip_entry_fread_file_header</a></b>(ZZIP_ENTRY * entry,
-                             struct zzip_file_header *file_header)
- : static zzip_off_t
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_entry_strdup_name">zzip_entry_strdup_name</a></b>(ZZIP_ENTRY * entry)
- : zzip__new__ char *
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em> helper functions for (fseeko) zip access api</em> </td><td align="right"> <em><small>zzip/fseeko.c</small></em></td></table><p>
-  The <code>zzip_entry_data_offset</code> functions returns the seekval offset of the data portion of the
-  file referenced by the given zzip_entry. It requires an intermediate
-  check of the file_header structure (i.e. it reads it from disk). After
-  this call, the contained diskfile readposition is already set to the
-  data_offset returned here. On error -1 is returned.
-</p>
-</td></tr><tr><td valign="top"><p>  The <code>zzip_entry_fread_file_header</code> functions read the correspoding struct zzip_file_header from
-  the zip disk of the given "entry". The returned off_t points to the
-  end of the file_header where the current fseek pointer has stopped.
-  This is used to immediatly parse out any filename/extras block following
-  the file_header. The return value is null on error.
-</p>
-</td></tr><tr><td valign="top"><p>  The <code>zzip_entry_strdup_name</code> function is a big helper despite its little name: in a zip file the
-  encoded filenames are usually NOT zero-terminated but for common usage
-  with libc we need it that way. Secondly, the filename SHOULD be present
-  in the zip central directory but if not then we fallback to the filename
-  given in the file_header of each compressed data portion.
-</p>
-</td></tr></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_entry_findfile">zzip_entry_findfile</a></b>(FILE * disk, char *filename,
-                    ZZIP_ENTRY * _zzip_restrict entry, zzip_strcmp_fn_t compare)
- : zzip__new__ ZZIP_ENTRY *
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_entry_findfirst">zzip_entry_findfirst</a></b>(FILE * disk)
- : zzip__new__ ZZIP_ENTRY *
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_entry_findnext">zzip_entry_findnext</a></b>(ZZIP_ENTRY * _zzip_restrict entry)
- : zzip__new__ ZZIP_ENTRY *
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_entry_free">zzip_entry_free</a></b>(ZZIP_ENTRY * entry)
- : int
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_entry_findmatch">zzip_entry_findmatch</a></b>(FILE * disk, char *filespec,
-                     ZZIP_ENTRY * _zzip_restrict entry,
-                     zzip_fnmatch_fn_t compare, int flags)
- : zzip__new__ ZZIP_ENTRY *
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em> search for files in the (fseeko) zip central directory</em> </td><td align="right"> <em><small>zzip/fseeko.c</small></em></td></table><p>
-  The <code>zzip_entry_findfile</code> function is given a filename as an additional argument, to find the
-  disk_entry matching a given filename. The compare-function is usually
-  strcmp or strcasecmp or perhaps strcoll, if null then strcmp is used.
-  - use null as argument for "old"-entry when searching the first
-  matching entry, otherwise the last returned value if you look for other
-  entries with a special "compare" function (if null then a doubled search
-  is rather useless with this variant of _findfile). If no further entry is
-  found then null is returned and any "old"-entry gets already free()d.
-</p>
-</td></tr><tr><td valign="top"><p>
-  The <code>zzip_entry_findfirst</code> function is the first call of all the zip access functions here.
-  It contains the code to find the first entry of the zip central directory.
-  Here we require the stdio handle to represent a real zip file where the
-  disk_trailer is _last_ in the file area, so that its position would be at
-  a fixed offset from the end of the file area if not for the comment field
-  allowed to be of variable length (which needs us to do a little search
-  for the disk_tailer). However, in this simple implementation we disregard
-  any disk_trailer info telling about multidisk archives, so we just return
-  a pointer to the first entry in the zip central directory of that file.
-</p><p>
-  For an actual means, we are going to search backwards from the end
-  of the mmaped block looking for the PK-magic signature of a
-  disk_trailer. If we see one then we check the rootseek value to
-  find the first disk_entry of the root central directory. If we find
-  the correct PK-magic signature of a disk_entry over there then we
-  assume we are done and we are going to return a pointer to that label.
-</p><p>
-  The return value is a pointer to the first zzip_disk_entry being checked
-  to be within the bounds of the file area specified by the arguments. If
-  no disk_trailer was found then null is returned, and likewise we only
-  accept a disk_trailer with a seekvalue that points to a disk_entry and
-  both parts have valid PK-magic parts. Beyond some sanity check we try to
-  catch a common brokeness with zip archives that still allows us to find
-  the start of the zip central directory.
-</p>
-</td></tr><tr><td valign="top"><p>
-  The <code>zzip_entry_findnext</code> function takes an existing "entry" in the central root directory
-  (e.g. from zzip_entry_findfirst) and moves it to point to the next entry.
-  On error it returns 0, otherwise the old entry. If no further match is
-  found then null is returned and the entry already free()d. If you want
-  to stop searching for matches before that case then please call
-  <code><a href="#zzip_entry_free">zzip_entry_free</a></code> on the cursor struct ZZIP_ENTRY.
-</p>
-</td></tr><tr><td valign="top"><p>  the <code>zzip_entry_free</code> function releases the malloc()ed areas needed for zzip_entry, the
-  pointer is invalid afterwards. The <code>zzip_entry_free</code> function has #define synonyms of
-  zzip_entry_findlast(), zzip_entry_findlastfile(), zzip_entry_findlastmatch()
-</p>
-</td></tr><tr><td valign="top"><p>
-  The <code>zzip_entry_findmatch</code> function uses a compare-function with an additional argument
-  and it is called just like fnmatch(3) from POSIX.2 AD:1993), i.e.
-  the argument filespec first and the ziplocal filename second with
-  the integer-flags put in as third to the indirect call. If the
-  platform has fnmatch available then null-compare will use that one
-  and otherwise we fall back to mere strcmp, so if you need fnmatch
-  searching then please provide an implementation somewhere else.
-  - use null as argument for "after"-entry when searching the first
-  matching entry, or the last disk_entry return-value to find the
-  next entry matching the given filespec. If no further entry is
-  found then null is returned and any "old"-entry gets already free()d.
-</p>
-</td></tr></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width=!
 "100%"></table></dt><dd><table width="100%"></table></dd></dl>
-</body></html>

Deleted: trunk/Build/source/libs/zziplib/zziplib-src/docs/zziplib-manpages.tar
===================================================================
(Binary files differ)

Modified: trunk/Build/source/libs/zziplib/zziplib-src/docs/zziplib.html
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/docs/zziplib.html	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/docs/zziplib.html	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,464 +1,1255 @@
-<html><head><title>zziplib Library Functions</title>
+<html><head><title>zziplib - </title>
+  <style>
+   a:link          { text-decoration : none ; color : #000080 ; }
+   a:visited       { text-decoration : none ; color : #200060 ; }
+   .justify        { text-align : justify ; }
+  </style>
 </head><body>
-<h2>zziplib Library Functions</h2><p>Version 0.13.62</p><p><big><b><code>#include <zzip/lib.h></code></b></big></p><table width="100%"><tr><td valign="top"><code><b><code><a href="#zzip_error">zzip_error</a></code></b>(ZZIP_DIR * dir)
- : int
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_seterror">zzip_seterror</a></code></b>(ZZIP_DIR * dir, int errcode)  : void
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_open">zzip_open</a></code></b>(zzip_char_t * filename, int o_flags)
- : ZZIP_FILE *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_open_ext_io">zzip_open_ext_io</a></code></b>(zzip_char_t * filename, int o_flags, int o_modes,
-                 zzip_strings_t * ext, zzip_plugin_io_t io)
- : ZZIP_FILE *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_open_shared_io">zzip_open_shared_io</a></code></b>(ZZIP_FILE * stream,
-                    zzip_char_t * filename, int o_flags, int o_modes,
-                    zzip_strings_t * ext, zzip_plugin_io_t io)
- : ZZIP_FILE *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_opendir">zzip_opendir</a></code></b>(zzip_char_t * filename)
- : ZZIP_DIR *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_opendir_ext_io">zzip_opendir_ext_io</a></code></b>(zzip_char_t * filename, int o_modes,
-                    zzip_strings_t * ext, zzip_plugin_io_t io)
- : ZZIP_DIR *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_file_real">zzip_file_real</a></code></b>(ZZIP_FILE * fp)
- : int
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_dir_real">zzip_dir_real</a></code></b>(ZZIP_DIR * dir)
- : int
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_realdir">zzip_realdir</a></code></b>(ZZIP_DIR * dir)
- : void *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_realfd">zzip_realfd</a></code></b>(ZZIP_FILE * fp)
- : int
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_tell">zzip_tell</a></code></b>(ZZIP_FILE * fp)
- : zzip_off_t
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_tell32">zzip_tell32</a></code></b>(ZZIP_FILE * fp)
- : long
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_dir_stat">zzip_dir_stat</a></code></b>(ZZIP_DIR * dir, zzip_char_t * name, ZZIP_STAT * zs, int flags)
- : int
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_file_stat">zzip_file_stat</a></code></b>(ZZIP_FILE * file, ZZIP_STAT * zs)
- : int
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_fstat">zzip_fstat</a></code></b>(ZZIP_FILE * file, ZZIP_STAT * zs)
- : int
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_strerror">zzip_strerror</a></code></b>(int errcode)
- : zzip_char_t *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_strerror_of">zzip_strerror_of</a></code></b>(ZZIP_DIR * dir)
- : zzip_char_t *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_dir_open">zzip_dir_open</a></code></b>(zzip_char_t * filename, zzip_error_t * e)
- : ZZIP_DIR *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_dir_open_ext_io">zzip_dir_open_ext_io</a></code></b>(zzip_char_t * filename, zzip_error_t * e,
-                     zzip_strings_t * ext, zzip_plugin_io_t io)
- : ZZIP_DIR *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_dir_read">zzip_dir_read</a></code></b>(ZZIP_DIR * dir, ZZIP_DIRENT * d)
- : int
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_init_io">zzip_init_io</a></code></b>(zzip_plugin_io_handlers_t io, int flags)
- : int
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_get_default_io">zzip_get_default_io</a></code></b>(void)
- : zzip_plugin_io_t
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_rewinddir">zzip_rewinddir</a></code></b>(ZZIP_DIR * dir)
- : void
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_telldir">zzip_telldir</a></code></b>(ZZIP_DIR * dir)
- : zzip_off_t
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_seekdir">zzip_seekdir</a></code></b>(ZZIP_DIR * dir, zzip_off_t offset)
- : void
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_telldir32">zzip_telldir32</a></code></b>(ZZIP_DIR * dir)
- : long
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_seekdir32">zzip_seekdir32</a></code></b>(ZZIP_DIR * dir, long offset)
- : void
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_fopen">zzip_fopen</a></code></b>(zzip_char_t * filename, zzip_char_t * mode)
- : ZZIP_FILE *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_freopen">zzip_freopen</a></code></b>(zzip_char_t * filename, zzip_char_t * mode, ZZIP_FILE * stream)
- : ZZIP_FILE *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_dirhandle">zzip_dirhandle</a></code></b>(ZZIP_FILE * fp)
- : ZZIP_DIR *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_dirfd">zzip_dirfd</a></code></b>(ZZIP_DIR * dir)
- : int
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_seek">zzip_seek</a></code></b>(ZZIP_FILE * fp, zzip_off_t offset, int whence)
- : zzip_off_t
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_seek32">zzip_seek32</a></code></b>(ZZIP_FILE * fp, long offset, int whence)
- : long
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_read">zzip_read</a></code></b>(ZZIP_FILE * fp, void *buf, zzip_size_t len)
- : zzip_ssize_t
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_fread">zzip_fread</a></code></b>(void *ptr, zzip_size_t size, zzip_size_t nmemb, ZZIP_FILE * file)
- : zzip_size_t
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_dir_free">zzip_dir_free</a></code></b>(ZZIP_DIR * dir)
- : int
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_dir_close">zzip_dir_close</a></code></b>(ZZIP_DIR * dir)
- : int
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_fclose">zzip_fclose</a></code></b>(ZZIP_FILE * fp)
- : int
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_close">zzip_close</a></code></b>(ZZIP_FILE * fp)
- : int
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_dir_fdopen">zzip_dir_fdopen</a></code></b>(int fd, zzip_error_t * errcode_p)
- : ZZIP_DIR *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_dir_fdopen_ext_io">zzip_dir_fdopen_ext_io</a></code></b>(int fd, zzip_error_t * errcode_p,
-                       zzip_strings_t * ext, const zzip_plugin_io_t io)
- : ZZIP_DIR *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_dir_alloc_ext_io">zzip_dir_alloc_ext_io</a></code></b>(zzip_strings_t * ext, const zzip_plugin_io_t io)
- : ZZIP_DIR *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_dir_alloc">zzip_dir_alloc</a></code></b>(zzip_strings_t * fileext)
- : ZZIP_DIR *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_readdir">zzip_readdir</a></code></b>(ZZIP_DIR * dir)
- : ZZIP_DIRENT *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_closedir">zzip_closedir</a></code></b>(ZZIP_DIR * dir)
- : int
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_errno">zzip_errno</a></code></b>(int errcode)
- : int
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_file_close">zzip_file_close</a></code></b>(ZZIP_FILE * fp)
- : int
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_file_open">zzip_file_open</a></code></b>(ZZIP_DIR * dir, zzip_char_t * name, int o_mode)
- : ZZIP_FILE *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_inflate_init">zzip_inflate_init</a></code></b>(ZZIP_FILE * fp, struct zzip_dir_hdr *hdr)
- : static int
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_file_read">zzip_file_read</a></code></b>(ZZIP_FILE * fp, void *buf, zzip_size_t len)
- : zzip_ssize_t
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_rewind">zzip_rewind</a></code></b>(ZZIP_FILE * fp)
- : int
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_compr_str">zzip_compr_str</a></code></b>(int compr)
- : zzip_char_t *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#__zzip_fetch_disk_trailer">__zzip_fetch_disk_trailer</a></code></b>(int fd, zzip_off_t filesize,
-                          struct _disk_trailer *_zzip_restrict trailer,
-                          zzip_plugin_io_t io)
- : int
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#__zzip_parse_root_directory">__zzip_parse_root_directory</a></code></b>(int fd,
-                            struct _disk_trailer *trailer,
-                            struct zzip_dir_hdr **hdr_return,
-                            zzip_plugin_io_t io)
- : int
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#__zzip_try_open">__zzip_try_open</a></code></b>(zzip_char_t * filename, int filemode,
-                zzip_strings_t * ext, zzip_plugin_io_t io)
- : int
-</code></td></tr></table><h3>Documentation</h3><dl><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_error">zzip_error</a></b>(ZZIP_DIR * dir)
- : int
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_seterror">zzip_seterror</a></b>(ZZIP_DIR * dir, int errcode)  : void
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em>...</em> </td><td align="right"> <em><small>zzip/info.c</small></em></td></table>
-</td></tr><tr><td valign="top"><p>   The <code>zzip_seterror</code> function just does dir->errcode = errcode
+
+<table width="100%"><tr valign="top"><td bgcolor="#F0F0F0" width="145">
+<center>
+     <big><big><big><b>
+     <font color="#800080"><sup>Z</sup>ZIP<sub>lib</sub></font>
+     </b></big></big></big>
+<br><big><b> 0.13.24 </b></big>
+</center>
+<hr>
+
+<br> <a alt="zzip-index - Overview"
+       href="zzip-index.html">Library</a>
+<br>-<a alt="zzip-zip - Accessing Zip Archives with ZLib Decompression"
+       href="zzip-zip.html">ZIP Access</a>
+<br>-<a alt="zzip-file - Using Zipped Files Transparently"
+       href="zzip-file.html">Transparently</a>
+<br>-<a alt="zzip-sdl-rwops - Example to make an SDL_rwops Inteface" 
+       href="zzip-sdl-rwops.html">SDLrwops Example</a>
+<br>-<a alt="zzip-extio - Customizing the file access" 
+       href="zzip-extio.html">ext/io Customization</a>
+<br>-<a alt="zzip-xor - Using obfuscations like xor"  
+       href="zzip-xor.html">xor/io Obfuscation</a>
+<br>-<a alt="zzip-api - The complete API description"
+       href="zzip-api.html">Library API</a>
+<br>-<a alt="zzip-parse - About zip parsing internals" 
+       href="zzip-parse.html">Parsing ZIPs</a>
+<br>-<a alt="64on32 - About largefile problems" 
+       href="64on32.html">64on32 extras</a>
+<br>-<a alt="future - What next to come" 
+       href="future.html">Next To Come</a>
+<br>-<a alt="configs - To Configure Your zziplib-based software"
+       href="configs.html">Config Helpers</a>
+<br>-<a alt="sfx-make - to combine an EXE with a ZIP archive"
+       href="sfx-make.html">Making a zip/exe</a>
+<br>-<a alt="history - Hints And Links" 
+       href="history.html">Hints And Links</a>
+<br>-<a alt="referentials - Where it is used" 
+       href="referentials.html">Referentials</a>
+<br>-<a alt="zziplib - The Functions List (autogenerated)"
+       href="zziplib.html">Functions List #</a>
+<!--START-->
+<br>-<a alt="zzip/man - The Manual Pages (autogenerated)"
+       href="man/index.html">The Manual Pages #</a>
+<!--ENDS-->
+
+<br>&nbsp&nbsp&nbsp <small>(# autogenerated)</small>
+
+<br> <hr>
+
+<br><b><a alt="Tarballs, RPM-archive and windll-ZIPs can be downloaded from" 
+  href="http://sourceforge.net/project/showfiles.php?group_id=6389">
+ Download Area *</a></b>
+<br><a alt="Sourceforge Project Index Page"
+     href="http://sourceforge.net/projects/zziplib">Sourceforge Project</a>
+<br><a alt="the zziplib webpage at sourceforge"
+     href="http://zziplib.sourceforge.net">zziplib.sf.net 
+                                  <small><i>Home</i></small></a>
+
+<br><small><a alt="zziplib - license details"
+       href="copying.html">LGPL/MPL license</a></small>
+<br> 
+<hr>
+<center><!--START-->
+     <a href="http://sourceforge.net/project/?group_id=6389">
+        <img src="http://sourceforge.net/sflogo.php?group_id=6389&type=2"
+            border="0" alt="sourceforge.net" width="125" height="37">
+     </a>
+</center><!--ENDS-->
+
+<p align="right"><small>
+generated 2003-12-12
+</small>
+<br> <small>(C)</small> Guido Draheim
+<br><i> guidod<small>@</small>gmx.de</i>
 </p>
-</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_open">zzip_open</a></b>(zzip_char_t * filename, int o_flags)
- : ZZIP_FILE *
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_open_ext_io">zzip_open_ext_io</a></b>(zzip_char_t * filename, int o_flags, int o_modes,
-                 zzip_strings_t * ext, zzip_plugin_io_t io)
- : ZZIP_FILE *
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_open_shared_io">zzip_open_shared_io</a></b>(ZZIP_FILE * stream,
-                    zzip_char_t * filename, int o_flags, int o_modes,
-                    zzip_strings_t * ext, zzip_plugin_io_t io)
- : ZZIP_FILE *
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em>...</em> </td><td align="right"> <em><small>zzip/file.c</small></em></td></table>
-</td></tr><tr><td valign="top"><p>
-  The <code>zzip_open_ext_io</code> function uses explicit ext and io instead of the internal
-  defaults, setting them to zero is equivalent to <code><a href="#zzip_open">zzip_open</a></code>
-</p><p>
-  note that the two flag types have been split into an o_flags
-  (for fcntl-like openflags) and o_modes where the latter shall
-  carry the zzip_flags and possibly accessmodes for unix filesystems.
-  Since this version of zziplib can not write zipfiles, it is not
-  yet used for anything else than zzip-specific modeflags.
-</p><p>
-  The <code>zzip_open_ext_io</code> function returns a new zzip-handle (use <code><a href="#zzip_close">zzip_close</a></code> to return
-  it). On error the <code>zzip_open_ext_io</code> function will return null setting <a href="http://www.opengroup.org/onlinepubs/000095399/functions/errno.html"><code>errno(3)</code></a>.
-</p><p>
-  If any ext_io handlers were used then the referenced structure
-  should be static as the allocated ZZIP_FILE does not copy them.
-</p>
-</td></tr><tr><td valign="top"><p>
-  The <code>zzip_open_shared_io</code> function takes an extra stream argument - if a handle has been
-  then ext/io can be left null and the new stream handle will pick up
-  the ext/io. This should be used only in specific environment however
-  since <code><a href="#zzip_file_real">zzip_file_real</a></code> does not store any ext-sequence.
-</p><p>
-  The benefit for the <code>zzip_open_shared_io</code> function comes in when the old file handle
-  was openened from a file within a zip archive. When the new file
-  is in the same zip archive then the internal zzip_dir structures
-  will be shared. It is even quicker, as no check needs to be done
-  anymore trying to guess the zip archive place in the filesystem,
-  here we just check whether the zip archive's filepath is a prefix
-  part of the filename to be opened.
-</p><p>
-  Note that the <code>zzip_open_shared_io</code> function is also used by <code><a href="#zzip_freopen">zzip_freopen</a></code> that
-  will unshare the old handle, thereby possibly closing the handle.
-</p><p>
-  The <code>zzip_open_shared_io</code> function returns a new zzip-handle (use <code><a href="#zzip_close">zzip_close</a></code> to return
-  it). On error the <code>zzip_open_shared_io</code> function will return null setting <a href="http://www.opengroup.org/onlinepubs/000095399/functions/errno.html"><code>errno(3)</code></a>.
-</p>
-</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_opendir">zzip_opendir</a></b>(zzip_char_t * filename)
- : ZZIP_DIR *
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_opendir_ext_io">zzip_opendir_ext_io</a></b>(zzip_char_t * filename, int o_modes,
-                    zzip_strings_t * ext, zzip_plugin_io_t io)
- : ZZIP_DIR *
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em>...</em> </td><td align="right"> <em><small>zzip/dir.c</small></em></td></table>
-</td></tr><tr><td valign="top"><p>  The <code>zzip_opendir_ext_io</code> function uses explicit ext and io instead of the internal 
-  defaults, setting them to zero is equivalent to <code><a href="#zzip_opendir">zzip_opendir</a></code>
-</p>
-</td></tr></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_file_real">zzip_file_real</a></b>(ZZIP_FILE * fp)
- : int
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_dir_real">zzip_dir_real</a></b>(ZZIP_DIR * dir)
- : int
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_realdir">zzip_realdir</a></b>(ZZIP_DIR * dir)
- : void *
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_realfd">zzip_realfd</a></b>(ZZIP_FILE * fp)
- : int
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em>...</em> </td><td align="right"> <em><small>zzip/info.c</small></em></td></table>
-</td></tr><tr><td valign="top"><p>  The <code>zzip_dir_real</code> function checks if the ZZIP_DIR-handle is wrapping
-  a real directory or a zip-archive.
-  Returns 1 for a stat'able directory, and 0 for a handle to zip-archive.
-</p>
-</td></tr><tr><td valign="top"><p>  The <code>zzip_realdir</code> function returns the posix DIR* handle (if one exists).
-  Check before with <code><a href="#zzip_dir_real">zzip_dir_real</a></code> if the
-  the ZZIP_DIR points to a real directory.
-</p>
-</td></tr><tr><td valign="top"><p>  The <code>zzip_realfd</code> function returns the posix file descriptor (if one exists).
-  Check before with <code><a href="#zzip_file_real">zzip_file_real</a></code> if the
-  the ZZIP_FILE points to a real file.
-</p>
-</td></tr></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_tell">zzip_tell</a></b>(ZZIP_FILE * fp)
- : zzip_off_t
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_tell32">zzip_tell32</a></b>(ZZIP_FILE * fp)
- : long
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em>...</em> </td><td align="right"> <em><small>zzip/file.c</small></em></td></table>
-</td></tr><tr><td valign="top"><p>  The <code>zzip_tell32</code> function is provided for users who can not use any largefile-mode.
-</p>
-</td></tr></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_dir_stat">zzip_dir_stat</a></b>(ZZIP_DIR * dir, zzip_char_t * name, ZZIP_STAT * zs, int flags)
- : int
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_file_stat">zzip_file_stat</a></b>(ZZIP_FILE * file, ZZIP_STAT * zs)
- : int
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_fstat">zzip_fstat</a></b>(ZZIP_FILE * file, ZZIP_STAT * zs)
- : int
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em>...</em> </td><td align="right"> <em><small>zzip/stat.c</small></em></td></table>
-</td></tr><tr><td valign="top"><p>  The <code>zzip_file_stat</code> 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. 
-</p>
-</td></tr><tr><td valign="top"><p>  The <code>zzip_fstat</code> 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.
-</p>
-</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_strerror">zzip_strerror</a></b>(int errcode)
- : zzip_char_t *
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_strerror_of">zzip_strerror_of</a></b>(ZZIP_DIR * dir)
- : zzip_char_t *
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em>...</em> </td><td align="right"> <em><small>zzip/err.c</small></em></td></table>
-</td></tr><tr><td valign="top"><p>  The <code>zzip_strerror_of</code> function fetches the errorcode from the <code>DIR-handle</code> and 
-  runs it through <code><a href="#zzip_strerror">zzip_strerror</a></code> to obtain the static string
-  describing the error.
-</p>
-</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_dir_open">zzip_dir_open</a></b>(zzip_char_t * filename, zzip_error_t * e)
- : ZZIP_DIR *
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_dir_open_ext_io">zzip_dir_open_ext_io</a></b>(zzip_char_t * filename, zzip_error_t * e,
-                     zzip_strings_t * ext, zzip_plugin_io_t io)
- : ZZIP_DIR *
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_dir_read">zzip_dir_read</a></b>(ZZIP_DIR * dir, ZZIP_DIRENT * d)
- : int
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em>...</em> </td><td align="right"> <em><small>zzip/zip.c</small></em></td></table>
-</td></tr><tr><td valign="top"><p>  the <code>zzip_dir_open_ext_io</code> function uses explicit ext and io instead of the internal
-  defaults. Setting these to zero is equivalent to <code><a href="#zzip_dir_open">zzip_dir_open</a></code>
-  Note that the referenced ext_io plugin handlers structure must be 
-  static as it is not copied to the returned ZZIP_DIR structure.
-</p>
-</td></tr><tr><td valign="top"><p>  fills the dirent-argument with the values and
-  increments the read-pointer of the dir-argument.
-</p><p>
-  returns 0 if there no entry (anymore).
-</p>
-</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_init_io">zzip_init_io</a></b>(zzip_plugin_io_handlers_t io, int flags)
- : int
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_get_default_io">zzip_get_default_io</a></b>(void)
- : zzip_plugin_io_t
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em>...</em> </td><td align="right"> <em><small>zzip/plugin.c</small></em></td></table>
-</td></tr><tr><td valign="top"><p>  The <code>zzip_get_default_io</code> function returns a zzip_plugin_io_t handle to static defaults
-  wrapping the posix io file functions for actual file access. The
-  returned structure is shared by all threads in the system.
-</p>
-</td></tr></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_rewinddir">zzip_rewinddir</a></b>(ZZIP_DIR * dir)
- : void
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_telldir">zzip_telldir</a></b>(ZZIP_DIR * dir)
- : zzip_off_t
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_seekdir">zzip_seekdir</a></b>(ZZIP_DIR * dir, zzip_off_t offset)
- : void
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_telldir32">zzip_telldir32</a></b>(ZZIP_DIR * dir)
- : long
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_seekdir32">zzip_seekdir32</a></b>(ZZIP_DIR * dir, long offset)
- : void
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em> </em> </td><td align="right"> <em><small>zzip/dir.c</small></em></td></table><p>  The <code>zzip_rewinddir</code> function is the equivalent of a <a href="http://www.opengroup.org/onlinepubs/000095399/functions/rewinddir.html"><code>rewinddir(2)</code></a> for a realdir or
-  the zipfile in place of a directory. The ZZIP_DIR handle returned from
-  <code><a href="#zzip_opendir">zzip_opendir</a></code> has a flag saying realdir or zipfile. As for a zipfile,
-  the filenames will include the filesubpath, so take care.
-</p>
-</td></tr><tr><td valign="top"><p>  The <code>zzip_telldir</code> function is the equivalent of <a href="http://www.opengroup.org/onlinepubs/000095399/functions/telldir.html"><code>telldir(2)</code></a> for a realdir or zipfile.
-</p>
-</td></tr><tr><td valign="top"><p>  The <code>zzip_seekdir</code> function is the equivalent of <a href="http://www.opengroup.org/onlinepubs/000095399/functions/seekdir.html"><code>seekdir(2)</code></a> for a realdir or zipfile.
-</p>
-</td></tr><tr><td valign="top"><p>  The <code>zzip_telldir32</code> function is provided for users who can not use any largefile-mode.
-</p>
-</td></tr><tr><td valign="top"><p>  The <code>zzip_seekdir32</code> function is provided for users who can not use any largefile-mode.
-</p>
-</td></tr></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_fopen">zzip_fopen</a></b>(zzip_char_t * filename, zzip_char_t * mode)
- : ZZIP_FILE *
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_freopen">zzip_freopen</a></b>(zzip_char_t * filename, zzip_char_t * mode, ZZIP_FILE * stream)
- : ZZIP_FILE *
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em>                                                          </em> </td><td align="right"> <em><small>zzip/file.c</small></em></td></table><p>  The <code>zzip_fopen</code> function will <a href="http://www.opengroup.org/onlinepubs/000095399/functions/fopen.html"><code>fopen(3)</code></a> a real/zipped file.
-</p><p>
-  It has some magic functionality builtin - it will first try to open
-  the given <em>filename</em> as a normal file. If it does not
-  exist, the given path to the filename (if any) is split into
-  its directory-part and the file-part. A ".zip" extension is
-  then added to the directory-part to create the name of a
-  zip-archive. That zip-archive (if it exists) is being searched
-  for the file-part, and if found a zzip-handle is returned.
-</p><p>
-  Note that if the file is found in the normal fs-directory the
-  returned structure is mostly empty and the <code><a href="#zzip_read">zzip_read</a></code> call will
-  use the libc <a href="http://www.opengroup.org/onlinepubs/000095399/functions/read.html"><code>read(2)</code></a> to obtain data. Otherwise a <code><a href="#zzip_file_open">zzip_file_open</a></code>
-  is performed and any error mapped to <a href="http://www.opengroup.org/onlinepubs/000095399/functions/errno.html"><code>errno(3)</code></a>.
-</p><p>
-  unlike the posix-wrapper <code><a href="#zzip_open">zzip_open</a></code> the mode-argument is
-  a string which allows for more freedom to support the extra
-  zzip modes called ZZIP_CASEINSENSITIVE and ZZIP_IGNOREPATH.
-  Currently, this <code><a href="#zzip_fopen">zzip_fopen</a></code> call will convert the following
-  characters in the mode-string into their corrsponding mode-bits:
-</p><ul><li><p> <code> "r" : O_RDONLY : </code> read-only </p></li>
-<li><p> <code> "b" : O_BINARY : </code> binary (win32 specific) </p></li>
-<li><p> <code> "f" : O_NOCTTY : </code> no char device (unix) </p></li>
-<li><p> <code> "i" : ZZIP_CASELESS : </code> inside zip file </p></li>
-<li><p> <code> "*" : ZZIP_NOPATHS : </code> inside zip file only </p></li>
-</ul><p>  all other modes will be ignored for zip-contained entries
-  but they are transferred for compatibility and portability,
-  including these extra sugar bits:
-</p><ul><li><p> <code> "x" : O_EXCL :</code> fail if file did exist </p></li>
-<li><p> <code> "s" : O_SYNC :</code> synchronized access </p></li>
-<li><p> <code> "n" : O_NONBLOCK :</code> nonblocking access </p></li>
-<li><p> <code> "z#" : compression level :</code> for zlib </p></li>
-<li><p> <code> "g#" : group access :</code> unix access bits </p></li>
-<li><p> <code> "u#" : owner access :</code> unix access bits </p></li>
-<li><p> <code> "o#" : world access :</code> unix access bits </p></li>
-</ul><p>  ... the access bits are in traditional unix bit format
-  with 7 = read/write/execute, 6 = read/write, 4 = read-only.
-</p><p>
-  The default access mode is 0664, and the compression level
-  is ignored since the lib can not yet write zip files, otherwise
-  it would be the initialisation value for the zlib deflateInit
-  where 0 = no-compression, 1 = best-speed, 9 = best-compression.
-</p><p>
-  The <code>zzip_fopen</code> function returns a new zzip-handle (use <code><a href="#zzip_close">zzip_close</a></code> to return
-  it). On error the <code>zzip_fopen</code> function will return null setting <a href="http://www.opengroup.org/onlinepubs/000095399/functions/errno.html"><code>errno(3)</code></a>.
-</p>
-</td></tr><tr><td valign="top"><p>
-  The <code>zzip_freopen</code> function receives an additional argument pointing to
-  a ZZIP_FILE* being already in use. If this extra argument is
-  null then the <code>zzip_freopen</code> function is identical with calling <code><a href="#zzip_fopen">zzip_fopen</a></code>
-</p><p>
-  Per default, the old file stream is closed and only the internal
-  structures associated with it are kept. These internal structures
-  may be reused for the return value, and this is a lot quicker when
-  the filename matches a zipped file that is incidently in the very
-  same zip arch as the old filename wrapped in the stream struct.
-</p><p>
-  That's simply because the zip arch's central directory does not
-  need to be read again. As an extension for the <code>zzip_freopen</code> function, if the
-  mode-string contains a "q" then the old stream is not closed but
-  left untouched, instead it is only given as a hint that a new
-  file handle may share/copy the zip arch structures of the old file
-  handle if that is possible, i.e when they are in the same zip arch.
-</p><p>
-  The <code>zzip_freopen</code> function returns a new zzip-handle (use <code><a href="#zzip_close">zzip_close</a></code> to return
-  it). On error the <code>zzip_freopen</code> function will return null setting <a href="http://www.opengroup.org/onlinepubs/000095399/functions/errno.html"><code>errno(3)</code></a>.
-</p>
-</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_dirhandle">zzip_dirhandle</a></b>(ZZIP_FILE * fp)
- : ZZIP_DIR *
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_dirfd">zzip_dirfd</a></b>(ZZIP_DIR * dir)
- : int
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em>...</em> </td><td align="right"> <em><small>zzip/info.c</small></em></td></table>
-</td></tr><tr><td valign="top"><p>   The <code>zzip_dirfd</code> function will just return dir->fd
-</p><p>
-  If a ZZIP_DIR does point to a zipfile then the file-descriptor of that
-  zipfile is returned, otherwise a NULL is returned and the ZZIP_DIR wraps
-  a real directory DIR (if you have dirent on your system).
-</p>
-</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_seek">zzip_seek</a></b>(ZZIP_FILE * fp, zzip_off_t offset, int whence)
- : zzip_off_t
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_seek32">zzip_seek32</a></b>(ZZIP_FILE * fp, long offset, int whence)
- : long
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em>...</em> </td><td align="right"> <em><small>zzip/file.c</small></em></td></table>
-</td></tr><tr><td valign="top"><p>  The <code>zzip_seek32</code> function is provided for users who can not use any largefile-mode.
-</p>
-</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_read">zzip_read</a></b>(ZZIP_FILE * fp, void *buf, zzip_size_t len)
- : zzip_ssize_t
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_fread">zzip_fread</a></b>(void *ptr, zzip_size_t size, zzip_size_t nmemb, ZZIP_FILE * file)
- : zzip_size_t
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em>...</em> </td><td align="right"> <em><small>zzip/file.c</small></em></td></table>
-</td></tr><tr><td valign="top">
-</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_dir_free">zzip_dir_free</a></b>(ZZIP_DIR * dir)
- : int
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_dir_close">zzip_dir_close</a></b>(ZZIP_DIR * dir)
- : int
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em>...</em> </td><td align="right"> <em><small>zzip/zip.c</small></em></td></table>
-</td></tr><tr><td valign="top"><p>  It will also <a href="http://www.opengroup.org/onlinepubs/000095399/functions/free.html"><code>free(2)</code></a> the <code>ZZIP_DIR-handle</code> given.
-  the counterpart for <code><a href="#zzip_dir_open">zzip_dir_open</a></code>
-  see also <code><a href="#zzip_dir_free">zzip_dir_free</a></code>
-</p>
-</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_fclose">zzip_fclose</a></b>(ZZIP_FILE * fp)
- : int
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_close">zzip_close</a></b>(ZZIP_FILE * fp)
- : int
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em>...</em> </td><td align="right"> <em><small>zzip/file.c</small></em></td></table>
-</td></tr><tr><td valign="top">
-</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_dir_fdopen">zzip_dir_fdopen</a></b>(int fd, zzip_error_t * errcode_p)
- : ZZIP_DIR *
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_dir_fdopen_ext_io">zzip_dir_fdopen_ext_io</a></b>(int fd, zzip_error_t * errcode_p,
-                       zzip_strings_t * ext, const zzip_plugin_io_t io)
- : ZZIP_DIR *
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em>...</em> </td><td align="right"> <em><small>zzip/zip.c</small></em></td></table>
-</td></tr><tr><td valign="top"><p>  the <code>zzip_dir_fdopen_ext_io</code> function uses explicit ext and io instead of the internal
-  defaults, setting these to zero is equivalent to <code><a href="#zzip_dir_fdopen">zzip_dir_fdopen</a></code>
-</p>
-</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_dir_alloc_ext_io">zzip_dir_alloc_ext_io</a></b>(zzip_strings_t * ext, const zzip_plugin_io_t io)
- : ZZIP_DIR *
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_dir_alloc">zzip_dir_alloc</a></b>(zzip_strings_t * fileext)
- : ZZIP_DIR *
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em>...</em> </td><td align="right"> <em><small>zzip/zip.c</small></em></td></table>
-</td></tr><tr><td valign="top"><p>  the <code>zzip_dir_alloc</code> function is obsolete - it was generally used for implementation
-  and exported to let other code build on it. It is now advised to
-  use <code><a href="#zzip_dir_alloc_ext_io">zzip_dir_alloc_ext_io</a></code> now on explicitly, just set that second
-  argument to zero to achieve the same functionality as the old style.
-</p>
-</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_readdir">zzip_readdir</a></b>(ZZIP_DIR * dir)
- : ZZIP_DIRENT *
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em>...</em> </td><td align="right"> <em><small>zzip/dir.c</small></em></td></table>
-</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_closedir">zzip_closedir</a></b>(ZZIP_DIR * dir)
- : int
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em>...</em> </td><td align="right"> <em><small>zzip/dir.c</small></em></td></table>
-</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_errno">zzip_errno</a></b>(int errcode)
- : int
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em>...</em> </td><td align="right"> <em><small>zzip/err.c</small></em></td></table>
-</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_file_close">zzip_file_close</a></b>(ZZIP_FILE * fp)
- : int
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em>...</em> </td><td align="right"> <em><small>zzip/file.c</small></em></td></table>
-</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_file_open">zzip_file_open</a></b>(ZZIP_DIR * dir, zzip_char_t * name, int o_mode)
- : ZZIP_FILE *
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em>...</em> </td><td align="right"> <em><small>zzip/file.c</small></em></td></table>
-</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_inflate_init">zzip_inflate_init</a></b>(ZZIP_FILE * fp, struct zzip_dir_hdr *hdr)
- : static int
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em>...</em> </td><td align="right"> <em><small>zzip/file.c</small></em></td></table>
-</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_file_read">zzip_file_read</a></b>(ZZIP_FILE * fp, void *buf, zzip_size_t len)
- : zzip_ssize_t
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em>...</em> </td><td align="right"> <em><small>zzip/file.c</small></em></td></table>
-</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_rewind">zzip_rewind</a></b>(ZZIP_FILE * fp)
- : int
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em>...</em> </td><td align="right"> <em><small>zzip/file.c</small></em></td></table>
-</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_compr_str">zzip_compr_str</a></b>(int compr)
- : zzip_char_t *
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em>...</em> </td><td align="right"> <em><small>zzip/info.c</small></em></td></table>
-</td></tr></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="__zzip_fetch_disk_trailer">__zzip_fetch_disk_trailer</a></b>(int fd, zzip_off_t filesize,
-                          struct _disk_trailer *_zzip_restrict trailer,
-                          zzip_plugin_io_t io)
- : int
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em>...</em> </td><td align="right"> <em><small>zzip/zip.c</small></em></td></table>
-</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="__zzip_parse_root_directory">__zzip_parse_root_directory</a></b>(int fd,
-                            struct _disk_trailer *trailer,
-                            struct zzip_dir_hdr **hdr_return,
-                            zzip_plugin_io_t io)
- : int
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em>...</em> </td><td align="right"> <em><small>zzip/zip.c</small></em></td></table>
-</td></tr></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="__zzip_try_open">__zzip_try_open</a></b>(zzip_char_t * filename, int filemode,
-                zzip_strings_t * ext, zzip_plugin_io_t io)
- : int
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em>...</em> </td><td align="right"> <em><small>zzip/zip.c</small></em></td></table>
-</td></tr></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd></dl>
+
+</td><td> 
+<html><head><title> zziplib autodoc documentation </title></head>
+<body>
+
+<h1>zziplib <small><small><i>-0.10.82.pre2</i></small></small></h1>
+<table border=0 cellspacing=2 cellpadding=0><tr valign="top">
+<td valign="top"><code>void 
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_rewinddir">
+ <code>zzip_rewinddir</code>
+</a></td><td valign="top">  </td><td valign="top">1000
+ <code>(<nobr>ZZIP_DIR * dir</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>ZZIP_DIRENT* 
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_readdir">
+ <code>zzip_readdir</code>
+</a></td><td valign="top">  </td><td valign="top">1000
+ <code>(<nobr>ZZIP_DIR * dir</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>zzip_off_t 
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_telldir">
+ <code>zzip_telldir</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_telldir
+ <code>(<nobr>ZZIP_DIR* dir</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>void
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_seekdir">
+ <code>zzip_seekdir</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_seekdir
+ <code>(<nobr>ZZIP_DIR* dir</nobr>,
+<nobr>zzip_off_t offset</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>ZZIP_DIR* 
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_opendir">
+ <code>zzip_opendir</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_opendir
+ <code>(<nobr>zzip_char_t* filename</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>ZZIP_DIR* 
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_opendir_ext_io">
+ <code>zzip_opendir_ext_io</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_opendir_ext_io
+ <code>(<nobr>zzip_char_t* filename</nobr>,
+<nobr>int o_modes</nobr>,
+<nobr>zzip_strings_t* ext</nobr>,
+<nobr>zzip_plugin_io_t io</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>int
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_closedir">
+ <code>zzip_closedir</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_closedir
+ <code>(<nobr>ZZIP_DIR* dir</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>zzip_char_t* 
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_strerror">
+ <code>zzip_strerror</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_strerror
+ <code>(<nobr>int errcode</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>zzip_char_t* 
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_strerror_of">
+ <code>zzip_strerror_of</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_strerror_of
+ <code>(<nobr>ZZIP_DIR* dir</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>int
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_errno">
+ <code>zzip_errno</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_errno
+ <code>(<nobr>int errcode</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>int 
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_file_close">
+ <code>zzip_file_close</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_file_close
+ <code>(<nobr>ZZIP_FILE * fp</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>ZZIP_FILE * 
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_file_open">
+ <code>zzip_file_open</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_file_open
+ <code>(<nobr>ZZIP_DIR * dir</nobr>,
+<nobr>zzip_char_t* name</nobr>,
+<nobr>int o_mode</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>static int 
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_inflate_init">
+ <code>zzip_inflate_init</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_inflate_init
+ <code>(<nobr>ZZIP_FILE * fp</nobr>,
+<nobr>struct zzip_dir_hdr* hdr</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>int 
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_fclose">
+ <code>zzip_fclose</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_fclose
+ <code>(<nobr>ZZIP_FILE * fp</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>int 
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_close">
+ <code>zzip_close</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_close
+ <code>(<nobr>ZZIP_FILE* fp</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>zzip_ssize_t 
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_file_read">
+ <code>zzip_file_read</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_file_read
+ <code>(<nobr>ZZIP_FILE * fp</nobr>,
+<nobr>char * buf</nobr>,
+<nobr>zzip_size_t len</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>zzip_ssize_t
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_read">
+ <code>zzip_read</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_read
+ <code>(<nobr>ZZIP_FILE * fp</nobr>,
+<nobr>char * buf</nobr>,
+<nobr>zzip_size_t len</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>zzip_size_t
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_fread">
+ <code>zzip_fread</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_fread
+ <code>(<nobr>void *ptr</nobr>,
+<nobr>zzip_size_t size</nobr>,
+<nobr>zzip_size_t nmemb</nobr>,
+<nobr>ZZIP_FILE *file</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>ZZIP_FILE*
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_fopen">
+ <code>zzip_fopen</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_fopen
+ <code>(<nobr>zzip_char_t* filename</nobr>,
+<nobr>zzip_char_t* mode</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>ZZIP_FILE*
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_freopen">
+ <code>zzip_freopen</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_freopen
+ <code>(<nobr>zzip_char_t* filename</nobr>,
+<nobr>zzip_char_t* mode</nobr>,
+<nobr>ZZIP_FILE* stream</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>ZZIP_FILE*
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_open">
+ <code>zzip_open</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_open
+ <code>(<nobr>zzip_char_t* filename</nobr>,
+<nobr>int o_flags</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>ZZIP_FILE*
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_open_ext_io">
+ <code>zzip_open_ext_io</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_open_ext_io
+ <code>(<nobr>zzip_char_t* filename</nobr>,
+<nobr>int o_flags</nobr>,
+<nobr>int o_modes</nobr>,
+<nobr>zzip_strings_t* ext</nobr>,
+<nobr>zzip_plugin_io_t io</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>ZZIP_FILE*
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_open_shared_io">
+ <code>zzip_open_shared_io</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_open_shared_io
+ <code>(<nobr>ZZIP_FILE* stream</nobr>,
+<nobr>zzip_char_t* filename</nobr>,
+<nobr>int o_flags</nobr>,
+<nobr>int o_modes</nobr>,
+<nobr>zzip_strings_t* ext</nobr>,
+<nobr>zzip_plugin_io_t io</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>int
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_rewind">
+ <code>zzip_rewind</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_rewind
+ <code>(<nobr>ZZIP_FILE *fp</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>zzip_off_t
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_seek">
+ <code>zzip_seek</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_seek
+ <code>(<nobr>ZZIP_FILE * fp</nobr>,
+<nobr>zzip_off_t offset</nobr>,
+<nobr>int whence</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>zzip_off_t
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_tell">
+ <code>zzip_tell</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_tell
+ <code>(<nobr>ZZIP_FILE * fp</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>int 
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_error">
+ <code>zzip_error</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_error
+ <code>(<nobr>ZZIP_DIR * dir</nobr>)</code>
+   
+</td></tr><tr valign="top">
+<td valign="top"><code>void 
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_seterror">
+ <code>zzip_seterror</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_seterror
+ <code>(<nobr>ZZIP_DIR * dir</nobr>,
+<nobr>int errcode</nobr>)</code>
+   
+</td></tr><tr valign="top">
+<td valign="top"><code>ZZIP_DIR * 
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_dirhandle">
+ <code>zzip_dirhandle</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_dirhandle
+ <code>(<nobr>ZZIP_FILE * fp</nobr>)</code>
+   
+</td></tr><tr valign="top">
+<td valign="top"><code>int 
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_dirfd">
+ <code>zzip_dirfd</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_dirfd
+ <code>(<nobr>ZZIP_DIR* dir</nobr>)</code>
+   
+</td></tr><tr valign="top">
+<td valign="top"><code>zzip_char_t*
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_compr_str">
+ <code>zzip_compr_str</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_compr_str
+ <code>(<nobr>int compr</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>int
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_dir_real">
+ <code>zzip_dir_real</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_dir_real
+ <code>(<nobr>ZZIP_DIR* dir</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>int
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_file_real">
+ <code>zzip_file_real</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_file_real
+ <code>(<nobr>ZZIP_FILE* fp</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>void*
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_realdir">
+ <code>zzip_realdir</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_realdir
+ <code>(<nobr>ZZIP_DIR* dir</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>int
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_realfd">
+ <code>zzip_realfd</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_realfd
+ <code>(<nobr>ZZIP_FILE* fp</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>zzip_plugin_io_t
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_get_default_io">
+ <code>zzip_get_default_io</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_get_default_io
+ <code>(<nobr></nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>int </code></td><td valign="top">  </td><td valign="top"><a href="#zzip_init_io">
+ <code>zzip_init_io</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_init_io
+ <code>(<nobr>struct zzip_plugin_io* io</nobr>,
+<nobr>int flags</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>int 
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_dir_stat">
+ <code>zzip_dir_stat</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_dir_stat
+ <code>(<nobr>ZZIP_DIR * dir</nobr>,
+<nobr>zzip_char_t* name</nobr>,
+<nobr>ZZIP_STAT * zs</nobr>,
+<nobr>int flags</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>uint32_t </code></td><td valign="top">  </td><td valign="top"><a href="#__zzip_get32">
+ <code>__zzip_get32</code>
+</a></td><td valign="top">  </td><td valign="top">__zzip_get32
+ <code>(<nobr>unsigned char * s</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>uint16_t </code></td><td valign="top">  </td><td valign="top"><a href="#__zzip_get16">
+ <code>__zzip_get16</code>
+</a></td><td valign="top">  </td><td valign="top">__zzip_get16
+ <code>(<nobr>unsigned char * s</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>int 
+</code></td><td valign="top">  </td><td valign="top"><a href="#__zzip_find_disk_trailer">
+ <code>__zzip_find_disk_trailer</code>
+</a></td><td valign="top">  </td><td valign="top">__zzip_find_disk_trailer
+ <code>(<nobr>int fd</nobr>,
+<nobr>zzip_off_t filesize</nobr>,
+<nobr>struct zzip_disk_trailer * trailer</nobr>,
+<nobr>zzip_plugin_io_t io</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>int 
+</code></td><td valign="top">  </td><td valign="top"><a href="#__zzip_parse_root_directory">
+ <code>__zzip_parse_root_directory</code>
+</a></td><td valign="top">  </td><td valign="top">__zzip_parse_root_directory
+ <code>(<nobr>int fd</nobr>,
+<nobr>struct zzip_disk_trailer * trailer</nobr>,
+<nobr>struct zzip_dir_hdr ** hdr_return</nobr>,
+<nobr>zzip_plugin_io_t io</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>ZZIP_DIR*
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_dir_alloc_ext_io">
+ <code>zzip_dir_alloc_ext_io</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_dir_alloc_ext_io
+ <code>(<nobr>zzip_strings_t* ext</nobr>,
+<nobr>const zzip_plugin_io_t io</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>ZZIP_DIR*
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_dir_alloc">
+ <code>zzip_dir_alloc</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_dir_alloc
+ <code>(<nobr>zzip_strings_t* fileext</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>int 
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_dir_free">
+ <code>zzip_dir_free</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_dir_free
+ <code>(<nobr>ZZIP_DIR * dir</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>int 
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_dir_close">
+ <code>zzip_dir_close</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_dir_close
+ <code>(<nobr>ZZIP_DIR * dir</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>ZZIP_DIR * 
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_dir_fdopen">
+ <code>zzip_dir_fdopen</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_dir_fdopen
+ <code>(<nobr>int fd</nobr>,
+<nobr>zzip_error_t * errcode_p</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>ZZIP_DIR * 
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_dir_fdopen_ext_io">
+ <code>zzip_dir_fdopen_ext_io</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_dir_fdopen_ext_io
+ <code>(<nobr>int fd</nobr>,
+<nobr>zzip_error_t * errcode_p</nobr>,
+<nobr>zzip_strings_t* ext</nobr>,
+<nobr>const zzip_plugin_io_t io</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>int
+</code></td><td valign="top">  </td><td valign="top"><a href="#__zzip_try_open">
+ <code>__zzip_try_open</code>
+</a></td><td valign="top">  </td><td valign="top">__zzip_try_open
+ <code>(<nobr>zzip_char_t* filename</nobr>,
+<nobr>int filemode</nobr>,
+<nobr>zzip_strings_t* ext</nobr>,
+<nobr>zzip_plugin_io_t io</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>ZZIP_DIR* 
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_dir_open">
+ <code>zzip_dir_open</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_dir_open
+ <code>(<nobr>zzip_char_t* filename</nobr>,
+<nobr>zzip_error_t* e</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>ZZIP_DIR* 
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_dir_open_ext_io">
+ <code>zzip_dir_open_ext_io</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_dir_open_ext_io
+ <code>(<nobr>zzip_char_t* filename</nobr>,
+<nobr>zzip_error_t* e</nobr>,
+<nobr>zzip_strings_t* ext</nobr>,
+<nobr>zzip_plugin_io_t io</nobr>)</code>
+
+</td></tr><tr valign="top">
+<td valign="top"><code>int
+</code></td><td valign="top">  </td><td valign="top"><a href="#zzip_dir_read">
+ <code>zzip_dir_read</code>
+</a></td><td valign="top">  </td><td valign="top">zzip_dir_read
+ <code>(<nobr>ZZIP_DIR * dir</nobr>,
+<nobr>ZZIP_DIRENT * d</nobr> )</code>
+
+</td></tr>
+</table>
+<h3>Documentation</h3>
+
+<dl>
+<dt><a name="zzip_rewinddir" /><a name="zzip_telldir" /><a name="zzip_seekdir" /><code><code>void 
+</code>
+ <br /><b><code>zzip_rewinddir</code></b>
+   <code>1000
+ <code>(<nobr>ZZIP_DIR * dir</nobr>)</code>
+
+</code></code><br />
+<code><code>zzip_off_t 
+</code>
+ <br /><b><code>zzip_telldir</code></b>
+   <code>zzip_telldir
+ <code>(<nobr>ZZIP_DIR* dir</nobr>)</code>
+
+</code></code><br />
+<code><code>void
+</code>
+ <br /><b><code>zzip_seekdir</code></b>
+   <code>zzip_seekdir
+ <code>(<nobr>ZZIP_DIR* dir</nobr>,
+<nobr>zzip_off_t offset</nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/dir.c)
+<p>   This function is the equivalent of a <code>rewinddir(2)</code> for a realdir or 
+ <br />  the zipfile in place of a directory. The ZZIP_DIR handle returned from 
+ <br />  <a href="#zzip_opendir"><code>zzip_opendir</code></a> has a flag saying realdir or zipfile. As for a zipfile, 
+ <br />  the filenames will include the filesubpath, so take care. 
+ 
+<p align="right"><small>(../zzip/dir.c)</small></p></dd>
+<dt><a name="zzip_readdir" /><code><code>ZZIP_DIRENT* 
+</code>
+ <br /><b><code>zzip_readdir</code></b>
+   <code>1000
+ <code>(<nobr>ZZIP_DIR * dir</nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/dir.c)
+<p>   This function is the equivalent of a <code>readdir(2)</code> for a realdir  
+ <br />  or a zipfile referenced by the ZZIP_DIR returned from <a href="#zzip_opendir"><code>zzip_opendir</code></a>. 
+ <p> 
+   The ZZIP_DIR handle (as returned by <a href="#zzip_opendir"><code>zzip_opendir)</code></a> contains a few more  
+ <br />  entries than being copied into the ZZIP_DIRENT. The only valid fields in 
+ <br />  a ZZIP_DIRENT are d_name (the file name), d_compr (compression), d_csize 
+ <br />  (compressed size), st_size (uncompressed size). 
+ 
+<p align="right"><small>(../zzip/dir.c)</small></p></dd>
+<dt><a name="zzip_opendir" /><a name="zzip_opendir_ext_io" /><code><code>ZZIP_DIR* 
+</code>
+ <br /><b><code>zzip_opendir</code></b>
+   <code>zzip_opendir
+ <code>(<nobr>zzip_char_t* filename</nobr>)</code>
+
+</code></code><br />
+<code><code>ZZIP_DIR* 
+</code>
+ <br /><b><code>zzip_opendir_ext_io</code></b>
+   <code>zzip_opendir_ext_io
+ <code>(<nobr>zzip_char_t* filename</nobr>,
+<nobr>int o_modes</nobr>,
+<nobr>zzip_strings_t* ext</nobr>,
+<nobr>zzip_plugin_io_t io</nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/dir.c)
+<p>   This function is the equivalent of <code>opendir(3)</code> for a realdir or zipfile. 
+ <br />  <p> 
+   This function has some magic - if the given argument-path 
+ <br />  is a directory, it will wrap a real <code>opendir(3)</code> into the ZZIP_DIR 
+ <br />  structure. Otherwise it will divert to <a href="#zzip_dir_open"><code>zzip_dir_open</code></a> which  
+ <br />  can also attach a ".zip" extension if needed to find the archive. 
+ <br />  <p> 
+   the error-code is mapped to <code>errno(3)</code>. 
+ 
+<p align="right"><small>(../zzip/dir.c)</small></p></dd>
+<dt><a name="zzip_closedir" /><code><code>int
+</code>
+ <br /><b><code>zzip_closedir</code></b>
+   <code>zzip_closedir
+ <code>(<nobr>ZZIP_DIR* dir</nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/dir.c)
+<p>   This function is the equivalent of <code>closedir(3)</code> for a realdir or zipfile. 
+ <br />  <p> 
+   This function is magic - if the given arg-ZZIP_DIR 
+ <br />  is a real directory, it will call the real <code>closedir(3)</code> and then 
+ <br />  free the wrapping ZZIP_DIR structure. Otherwise it will divert  
+ <br />  to <a href="#zzip_dir_close"><code>zzip_dir_close</code></a> which will free the ZZIP_DIR structure. 
+ 
+<p align="right"><small>(../zzip/dir.c)</small></p></dd>
+<dt><a name="zzip_strerror" /><a name="zzip_strerror_of" /><code><code>zzip_char_t* 
+</code>
+ <br /><b><code>zzip_strerror</code></b>
+   <code>zzip_strerror
+ <code>(<nobr>int errcode</nobr>)</code>
+
+</code></code><br />
+<code><code>zzip_char_t* 
+</code>
+ <br /><b><code>zzip_strerror_of</code></b>
+   <code>zzip_strerror_of
+ <code>(<nobr>ZZIP_DIR* dir</nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/err.c)
+<p>   returns the static string for the given error code. The
+ 
+ <br />  error code can be either a normal system error (a
+ 
+ <br />  positive error code will flag this), it can be <code>libz</code>
+ 
+ <br />  error code (a small negative error code will flag this)
+ 
+ <br />  or it can be an error code from <code>libzzip</code>, which is an
+ 
+ <br />  negative value lower than <code>ZZIP_ERROR</code>
+ 
+ 
+<p align="right"><small>(../zzip/err.c)</small></p></dd>
+<dt><a name="zzip_errno" /><code><code>int
+</code>
+ <br /><b><code>zzip_errno</code></b>
+   <code>zzip_errno
+ <code>(<nobr>int errcode</nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/err.c)
+<p>   map the error code to a system error code. This is used
+ 
+ <br />  for the drop-in replacement functions to return a value
+ 
+ <br />  that can be interpreted correctly by code sections that
+ 
+ <br />  are unaware of the fact they their <code>open(2)</code> call had been
+ 
+ <br />  diverted to a file inside a zip-archive.
+ 
+ 
+<p align="right"><small>(../zzip/err.c)</small></p></dd>
+<dt><a name="zzip_file_close" /><code><code>int 
+</code>
+ <br /><b><code>zzip_file_close</code></b>
+   <code>zzip_file_close
+ <code>(<nobr>ZZIP_FILE * fp</nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/file.c)
+<p>   the direct function of <a href="#zzip_close"><code>zzip_close(fp)</code></a>. it will cleanup the 
+ <br />  inflate-portion of <code>zlib</code> and free the structure given. 
+ <p> 
+   it is called quite from the error-cleanup parts 
+ <br />  of the various <code>_open</code> functions.  
+ <p> 
+   the .refcount is decreased and if zero the fp<small>-></small>dir is closed just as well. 
+ 
+<p align="right"><small>(../zzip/file.c)</small></p></dd>
+<dt><a name="zzip_file_open" /><code><code>ZZIP_FILE * 
+</code>
+ <br /><b><code>zzip_file_open</code></b>
+   <code>zzip_file_open
+ <code>(<nobr>ZZIP_DIR * dir</nobr>,
+<nobr>zzip_char_t* name</nobr>,
+<nobr>int o_mode</nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/file.c)
+<p>   open an <code>ZZIP_FILE</code> from an already open <code>ZZIP_DIR</code> handle. Since 
+ <br />  we have a chance to reuse a cached <code>buf32k</code> and <code>ZZIP_FILE</code> memchunk 
+ <br />  this is the best choice to unpack multiple files. 
+ <p> 
+   Note: the zlib supports 2..15 bit windowsize, hence we provide a 32k 
+ <br />        memchunk here... just to be safe. 
+ 
+<p align="right"><small>(../zzip/file.c)</small></p></dd>
+<dt><a name="zzip_inflate_init" /><code><code>static int 
+</code>
+ <br /><b><code>zzip_inflate_init</code></b>
+   <code>zzip_inflate_init
+ <code>(<nobr>ZZIP_FILE * fp</nobr>,
+<nobr>struct zzip_dir_hdr* hdr</nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/file.c)
+<p>    call <code>inflateInit</code> and setup fp's iterator variables,  
+ <br />   used by lowlevel <code>_open</code> functions. 
+ 
+<p align="right"><small>(../zzip/file.c)</small></p></dd>
+<dt><a name="zzip_fclose" /><a name="zzip_close" /><code><code>int 
+</code>
+ <br /><b><code>zzip_fclose</code></b>
+   <code>zzip_fclose
+ <code>(<nobr>ZZIP_FILE * fp</nobr>)</code>
+
+</code></code><br />
+<code><code>int 
+</code>
+ <br /><b><code>zzip_close</code></b>
+   <code>zzip_close
+ <code>(<nobr>ZZIP_FILE* fp</nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/file.c)
+<p>   This function closes the given ZZIP_FILE handle.  
+ <p> 
+   If the ZZIP_FILE wraps a normal stat'fd then it is just that int'fd  
+ <br />  that is being closed and the otherwise empty ZZIP_FILE gets freed. 
+ 
+<p align="right"><small>(../zzip/file.c)</small></p></dd>
+<dt><a name="zzip_file_read" /><code><code>zzip_ssize_t 
+</code>
+ <br /><b><code>zzip_file_read</code></b>
+   <code>zzip_file_read
+ <code>(<nobr>ZZIP_FILE * fp</nobr>,
+<nobr>char * buf</nobr>,
+<nobr>zzip_size_t len</nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/file.c)
+<p>   This functions read data from zip-contained file. 
+ <p> 
+   It works like <code>read(2)</code> and will fill the given buffer with bytes from 
+ <br />  the opened file. It will return the number of bytes read, so if the <code>EOF</code> 
+ <br />  is encountered you will be prompted with the number of bytes actually read. 
+ <p> 
+   This is the routines that needs the <code>buf32k</code> buffer, and it would have 
+ <br />  need for much more polishing but it does already work quite well. 
+ <p> 
+   Note: the 32K buffer is rather big. The original inflate-algorithm 
+ <br />        required just that but the latest zlib would work just fine with 
+ <br />        a smaller buffer. 
+ 
+<p align="right"><small>(../zzip/file.c)</small></p></dd>
+<dt><a name="zzip_read" /><a name="zzip_fread" /><code><code>zzip_ssize_t
+</code>
+ <br /><b><code>zzip_read</code></b>
+   <code>zzip_read
+ <code>(<nobr>ZZIP_FILE * fp</nobr>,
+<nobr>char * buf</nobr>,
+<nobr>zzip_size_t len</nobr>)</code>
+
+</code></code><br />
+<code><code>zzip_size_t
+</code>
+ <br /><b><code>zzip_fread</code></b>
+   <code>zzip_fread
+ <code>(<nobr>void *ptr</nobr>,
+<nobr>zzip_size_t size</nobr>,
+<nobr>zzip_size_t nmemb</nobr>,
+<nobr>ZZIP_FILE *file</nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/file.c)
+<p>   This function will read(2) data from a real/zipped file. 
+ <p> 
+   the replacement for <code>read(2)</code> will fill the given buffer with bytes from 
+ <br />  the opened file. It will return the number of bytes read, so if the EOF 
+ <br />  is encountered you will be prompted with the number of bytes actually read. 
+ <p> 
+   If the file-handle is wrapping a stat'able file then it will actually just 
+ <br />  perform a normal <code>read(2)</code>-call, otherwise <a href="#zzip_file_read"><code>zzip_file_read</code></a> is called 
+ <br />  to decompress the data stream and any error is mapped to <code>errno(3)</code>. 
+ 
+<p align="right"><small>(../zzip/file.c)</small></p></dd>
+<dt><a name="zzip_fopen" /><a name="zzip_freopen" /><code><code>ZZIP_FILE*
+</code>
+ <br /><b><code>zzip_fopen</code></b>
+   <code>zzip_fopen
+ <code>(<nobr>zzip_char_t* filename</nobr>,
+<nobr>zzip_char_t* mode</nobr>)</code>
+
+</code></code><br />
+<code><code>ZZIP_FILE*
+</code>
+ <br /><b><code>zzip_freopen</code></b>
+   <code>zzip_freopen
+ <code>(<nobr>zzip_char_t* filename</nobr>,
+<nobr>zzip_char_t* mode</nobr>,
+<nobr>ZZIP_FILE* stream</nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/file.c)
+<p>   This function will <code>fopen(3)</code> a real/zipped file. 
+ <p> 
+   It has some magic functionality builtin - it will first try to open 
+ <br />  the given <em>filename</em> as a normal file. If it does not 
+ <br />  exist, the given path to the filename (if any) is split into 
+ <br />  its directory-part and the file-part. A ".zip" extension is 
+ <br />  then added to the directory-part to create the name of a 
+ <br />  zip-archive. That zip-archive (if it exists) is being searched 
+ <br />  for the file-part, and if found a zzip-handle is returned.  
+ <p> 
+   Note that if the file is found in the normal fs-directory the 
+ <br />  returned structure is mostly empty and the <a href="#zzip_read"><code>zzip_read</code></a> call will 
+ <br />  use the libc <code>read</code> to obtain data. Otherwise a <a href="#zzip_file_open"><code>zzip_file_open</code></a>  
+ <br />  is performed and any error mapped to <code>errno(3)</code>. 
+ <p> 
+   unlike the posix-wrapper <a href="#zzip_open"><code>zzip_open</code></a> the mode-argument is 
+ <br />  a string which allows for more freedom to support the extra 
+ <br />  zzip modes called ZZIP_CASEINSENSITIVE and ZZIP_IGNOREPATH. 
+ <br />  Currently, this <a href="#zzip_fopen"><code>zzip_fopen</code></a> call will convert the following 
+ <br />  characters in the mode-string into their corrsponding mode-bits:  
+ <br />   <ul><li><code> "r" : O_RDONLY : </code> read-only 
+ <br />  </li><li><code> "b" : O_BINARY : </code> binary (win32 specific) 
+ <br />  </li><li><code> "f" : O_NOCTTY : </code> no char device (unix) 
+ <br />  </li><li><code> "i" : ZZIP_CASELESS : </code> inside zip file 
+ <br />  </li><li><code> "*" : ZZIP_NOPATHS : </code> inside zip file only 
+ <br />  </ul> all other modes will be ignored for zip-contained entries 
+ <br />  but they are transferred for compatibility and portability, 
+ <br />  including these extra sugar bits: 
+ <br />   <ul><li><code> "x" : O_EXCL :</code> fail if file did exist 
+ <br />  </li><li><code> "s" : O_SYNC :</code> synchronized access 
+ <br />  </li><li><code> "n" : O_NONBLOCK :</code> nonblocking access 
+ <br />  </li><li><code> "z#" : compression level :</code> for zlib 
+ <br />  </li><li><code> "g#" : group access :</code> unix access bits 
+ <br />  </li><li><code> "u#" : owner access :</code> unix access bits 
+ <br />  </li><li><code> "o#" : world access :</code> unix access bits 
+ <br />  </ul>... the access bits are in traditional unix bit format 
+ <br />  with 7 = read/write/execute, 6 = read/write, 4 = read-only. 
+ <p> 
+   The default access mode is 0664, and the compression level 
+ <br />  is ignored since the lib can not yet write zip files, otherwise 
+ <br />  it would be the initialisation value for the zlib deflateInit 
+ <br />  where 0 = no-compression, 1 = best-speed, 9 = best-compression. 
+ 
+<p align="right"><small>(../zzip/file.c)</small></p></dd>
+<dt><a name="zzip_open" /><a name="zzip_open_ext_io" /><a name="zzip_open_shared_io" /><code><code>ZZIP_FILE*
+</code>
+ <br /><b><code>zzip_open</code></b>
+   <code>zzip_open
+ <code>(<nobr>zzip_char_t* filename</nobr>,
+<nobr>int o_flags</nobr>)</code>
+
+</code></code><br />
+<code><code>ZZIP_FILE*
+</code>
+ <br /><b><code>zzip_open_ext_io</code></b>
+   <code>zzip_open_ext_io
+ <code>(<nobr>zzip_char_t* filename</nobr>,
+<nobr>int o_flags</nobr>,
+<nobr>int o_modes</nobr>,
+<nobr>zzip_strings_t* ext</nobr>,
+<nobr>zzip_plugin_io_t io</nobr>)</code>
+
+</code></code><br />
+<code><code>ZZIP_FILE*
+</code>
+ <br /><b><code>zzip_open_shared_io</code></b>
+   <code>zzip_open_shared_io
+ <code>(<nobr>ZZIP_FILE* stream</nobr>,
+<nobr>zzip_char_t* filename</nobr>,
+<nobr>int o_flags</nobr>,
+<nobr>int o_modes</nobr>,
+<nobr>zzip_strings_t* ext</nobr>,
+<nobr>zzip_plugin_io_t io</nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/file.c)
+<p>   This function will <code>open(2)</code> a real/zipped file 
+ <p> 
+   It has some magic functionality builtin - it will first try to open 
+ <br />  the given <em>filename</em> as a normal file. If it does not 
+ <br />  exist, the given path to the filename (if any) is split into 
+ <br />  its directory-part and the file-part. A ".zip" extension is 
+ <br />  then added to the directory-part to create the name of a 
+ <br />  zip-archive. That zip-archive (if it exists) is being searched 
+ <br />  for the file-part, and if found a zzip-handle is returned.  
+ <p> 
+   Note that if the file is found in the normal fs-directory the 
+ <br />  returned structure is mostly empty and the <a href="#zzip_read"><code>zzip_read</code></a> call will 
+ <br />  use the libc <code>read</code> to obtain data. Otherwise a <a href="#zzip_file_open"><code>zzip_file_open</code></a>  
+ <br />  is performed and any error mapped to <code>errno(3)</code>. 
+ <p> 
+   There was a possibility to transfer zziplib-specific openmodes 
+ <br />  through o_flags but you should please not use them anymore and 
+ <br />  look into <a href="#zzip_open_ext_io"><code>zzip_open_ext_io</code></a> to submit them down. This function 
+ <br />  is shallow in that it just extracts the zzipflags and calls <ul><li><code> 
+ <br />  zzip_open_ext_io(filename, o_flags, zzipflags|0664, 0, 0) </code></li></ul> 
+ <br />  you must stop using this extra functionality (not well known 
+ <br />  anyway) since zzip_open might be later usable to open files 
+ <br />  for writing in which case the _EXTRAFLAGS will get in conflict. 
+ <p> 
+   compare with  <code>open(2)</code> and <a href="#zzip_fopen"><code>zzip_fopen</code></a> 
+ 
+<p align="right"><small>(../zzip/file.c)</small></p></dd>
+<dt><a name="zzip_rewind" /><code><code>int
+</code>
+ <br /><b><code>zzip_rewind</code></b>
+   <code>zzip_rewind
+ <code>(<nobr>ZZIP_FILE *fp</nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/file.c)
+<p>   This function will rewind a real/zipped file.  
+ <p> 
+   It seeks to the beginning of this file's data in the zip,  
+ <br />  or the beginning of the file for a stat'fd. 
+ 
+<p align="right"><small>(../zzip/file.c)</small></p></dd>
+<dt><a name="zzip_seek" /><code><code>zzip_off_t
+</code>
+ <br /><b><code>zzip_seek</code></b>
+   <code>zzip_seek
+ <code>(<nobr>ZZIP_FILE * fp</nobr>,
+<nobr>zzip_off_t offset</nobr>,
+<nobr>int whence</nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/file.c)
+<p>   This function will perform a <code>lseek(2)</code> operation on a real/zipped file 
+ <p> 
+   It will try to seek to the offset specified by offset, relative to whence,  
+ <br />  which is one of SEEK_SET, SEEK_CUR or SEEK_END. 
+ <p> 
+   If the file-handle is wrapping a stat'able file then it will actually just 
+ <br />  perform a normal <code>lseek(2)</code>-call. Otherwise the relative offset 
+ <br />  is calculated, negative offsets are transformed into positive ones 
+ <br />  by rewinding the file, and then data is read until the offset is 
+ <br />  reached.  This can make the function terribly slow, but this is 
+ <br />  how gzio implements it, so I'm not sure there is a better way 
+ <br />  without using the internals of the algorithm. 
+ 
+<p align="right"><small>(../zzip/file.c)</small></p></dd>
+<dt><a name="zzip_tell" /><code><code>zzip_off_t
+</code>
+ <br /><b><code>zzip_tell</code></b>
+   <code>zzip_tell
+ <code>(<nobr>ZZIP_FILE * fp</nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/file.c)
+<p>   This function will <code>tell(2)</code> the current position in a real/zipped file 
+ <p> 
+   It will return the current offset within the real/zipped file,  
+ <br />  measured in uncompressed bytes for the zipped-file case. 
+ <p> 
+   If the file-handle is wrapping a stat'able file then it will actually just 
+ <br />  perform a normal <code>tell(2)</code>-call, otherwise the offset is 
+ <br />  calculated from the amount of data left and the total uncompressed 
+ <br />  size; 
+ 
+<p align="right"><small>(../zzip/file.c)</small></p></dd>
+<dt><a name="zzip_error" /><a name="zzip_seterror" /><code><code>int 
+</code>
+ <br /><b><code>zzip_error</code></b>
+   <code>zzip_error
+ <code>(<nobr>ZZIP_DIR * dir</nobr>)</code>
+   
+</code></code><br />
+<code><code>void 
+</code>
+ <br /><b><code>zzip_seterror</code></b>
+   <code>zzip_seterror
+ <code>(<nobr>ZZIP_DIR * dir</nobr>,
+<nobr>int errcode</nobr>)</code>
+   
+</code></code><dt>
+<dd><p>  (../zzip/info.c)
+<p>    just returns dir<small>-></small>errcode of the ZZIP_DIR handle  
+ <br />   see: <a href="#zzip_dir_open"><code>zzip_dir_open</code></a>, <code>zzip_diropen</code>, <a href="#zzip_readdir"><code>zzip_readdir</code></a>, <a href="#zzip_dir_read"><code>zzip_dir_read</code></a> 
+ 
+<p align="right"><small>(../zzip/info.c)</small></p></dd>
+<dt><a name="zzip_dirhandle" /><a name="zzip_dirfd" /><code><code>ZZIP_DIR * 
+</code>
+ <br /><b><code>zzip_dirhandle</code></b>
+   <code>zzip_dirhandle
+ <code>(<nobr>ZZIP_FILE * fp</nobr>)</code>
+   
+</code></code><br />
+<code><code>int 
+</code>
+ <br /><b><code>zzip_dirfd</code></b>
+   <code>zzip_dirfd
+ <code>(<nobr>ZZIP_DIR* dir</nobr>)</code>
+   
+</code></code><dt>
+<dd><p>  (../zzip/info.c)
+<p>   This function will just return fp<small>-></small>dir  
+ <p> 
+   If a ZZIP_FILE is contained within a zip-file that one will be a valid 
+ <br />  pointer, otherwise a NULL is returned and the ZZIP_FILE wraps a real file. 
+ 
+<p align="right"><small>(../zzip/info.c)</small></p></dd>
+<dt><a name="zzip_compr_str" /><code><code>zzip_char_t*
+</code>
+ <br /><b><code>zzip_compr_str</code></b>
+   <code>zzip_compr_str
+ <code>(<nobr>int compr</nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/info.c)
+<p>   return static const string of the known compression methods,  
+ <br />  otherwise just "zipped" is returned 
+ 
+<p align="right"><small>(../zzip/info.c)</small></p></dd>
+<dt><a name="zzip_file_real" /><a name="zzip_dir_real" /><a name="zzip_realdir" /><a name="zzip_realfd" /><code><code>int
+</code>
+ <br /><b><code>zzip_file_real</code></b>
+   <code>zzip_file_real
+ <code>(<nobr>ZZIP_FILE* fp</nobr>)</code>
+
+</code></code><br />
+<code><code>int
+</code>
+ <br /><b><code>zzip_dir_real</code></b>
+   <code>zzip_dir_real
+ <code>(<nobr>ZZIP_DIR* dir</nobr>)</code>
+
+</code></code><br />
+<code><code>void*
+</code>
+ <br /><b><code>zzip_realdir</code></b>
+   <code>zzip_realdir
+ <code>(<nobr>ZZIP_DIR* dir</nobr>)</code>
+
+</code></code><br />
+<code><code>int
+</code>
+ <br /><b><code>zzip_realfd</code></b>
+   <code>zzip_realfd
+ <code>(<nobr>ZZIP_FILE* fp</nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/info.c)
+<p>   This function checks if the ZZIP_FILE-handle is wrapping  
+ <br />  a real file or a zip-contained file.  
+ <br />  Returns 1 for a stat'able file, and 0 for a file inside a zip-archive. 
+ 
+<p align="right"><small>(../zzip/info.c)</small></p></dd>
+<dt><a name="zzip_init_io" /><a name="zzip_get_default_io" /><code><code>int </code>
+ <br /><b><code>zzip_init_io</code></b>
+   <code>zzip_init_io
+ <code>(<nobr>struct zzip_plugin_io* io</nobr>,
+<nobr>int flags</nobr>)</code>
+
+</code></code><br />
+<code><code>zzip_plugin_io_t
+</code>
+ <br /><b><code>zzip_get_default_io</code></b>
+   <code>zzip_get_default_io
+ <code>(<nobr></nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/plugin.c)
+<p>   This function initializes the users handler struct to default values  
+ <br />  being the posix io functions in default configured environments. 
+ 
+<p align="right"><small>(../zzip/plugin.c)</small></p></dd>
+<dt><a name="zzip_dir_stat" /><code><code>int 
+</code>
+ <br /><b><code>zzip_dir_stat</code></b>
+   <code>zzip_dir_stat
+ <code>(<nobr>ZZIP_DIR * dir</nobr>,
+<nobr>zzip_char_t* name</nobr>,
+<nobr>ZZIP_STAT * zs</nobr>,
+<nobr>int flags</nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/stat.c)
+<p>   obtain information about a filename in an opened zip-archive without  
+ <br />  opening that file first. Mostly used to obtain the uncompressed  
+ <br />  size of a file inside a zip-archive. see <a href="#zzip_dir_open"><code>zzip_dir_open</code></a>. 
+ 
+<p align="right"><small>(../zzip/stat.c)</small></p></dd>
+<dt><a name="__zzip_get32" /><code><code>uint32_t </code>
+ <br /><b><code>__zzip_get32</code></b>
+   <code>__zzip_get32
+ <code>(<nobr>unsigned char * s</nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/zip.c)
+<p>   Make 32 bit value in host byteorder from little-endian mapped octet-data 
+ <br />  (works also on machines which SIGBUS on misaligned data access (eg. 68000)) 
+ 
+<p align="right"><small>(../zzip/zip.c)</small></p></dd>
+<dt><a name="__zzip_find_disk_trailer" /><code><code>int 
+</code>
+ <br /><b><code>__zzip_find_disk_trailer</code></b>
+   <code>__zzip_find_disk_trailer
+ <code>(<nobr>int fd</nobr>,
+<nobr>zzip_off_t filesize</nobr>,
+<nobr>struct zzip_disk_trailer * trailer</nobr>,
+<nobr>zzip_plugin_io_t io</nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/zip.c)
+<p>   This function is used by <a href="#zzip_file_open"><code>zzip_file_open</code></a>. It tries to find 
+ <br />  the zip's central directory info that is usually a few 
+ <br />  bytes off the end of the file. 
+ 
+<p align="right"><small>(../zzip/zip.c)</small></p></dd>
+<dt><a name="__zzip_parse_root_directory" /><code><code>int 
+</code>
+ <br /><b><code>__zzip_parse_root_directory</code></b>
+   <code>__zzip_parse_root_directory
+ <code>(<nobr>int fd</nobr>,
+<nobr>struct zzip_disk_trailer * trailer</nobr>,
+<nobr>struct zzip_dir_hdr ** hdr_return</nobr>,
+<nobr>zzip_plugin_io_t io</nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/zip.c)
+<p>   This function is used by <a href="#zzip_file_open"><code>zzip_file_open</code></a>, it is usually called after 
+ <br />  <a href="#__zzip_find_disk_trailer"><code>__zzip_find_disk_trailer</code></a>. It will parse the zip's central directory 
+ <br />  information and create a zziplib private directory table in 
+ <br />  memory. 
+ 
+<p align="right"><small>(../zzip/zip.c)</small></p></dd>
+<dt><a name="zzip_dir_alloc_ext_io" /><a name="zzip_dir_alloc" /><code><code>ZZIP_DIR*
+</code>
+ <br /><b><code>zzip_dir_alloc_ext_io</code></b>
+   <code>zzip_dir_alloc_ext_io
+ <code>(<nobr>zzip_strings_t* ext</nobr>,
+<nobr>const zzip_plugin_io_t io</nobr>)</code>
+
+</code></code><br />
+<code><code>ZZIP_DIR*
+</code>
+ <br /><b><code>zzip_dir_alloc</code></b>
+   <code>zzip_dir_alloc
+ <code>(<nobr>zzip_strings_t* fileext</nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/zip.c)
+<p>   allocate a new ZZIP_DIR handle and do basic  
+ <br />  initializations before usage by <a href="#zzip_dir_fdopen"><code>zzip_dir_fdopen</code></a> 
+ <br />  <a href="#zzip_dir_open"><code>zzip_dir_open</code></a> <a href="#zzip_file_open"><code>zzip_file_open</code></a> or through 
+ <br />  <a href="#zzip_open"><code>zzip_open</code></a> 
+ <br />  (ext==null flags uses { ".zip" , ".ZIP" } ) 
+ <br />  (io ==null flags use of posix io defaults) 
+ 
+<p align="right"><small>(../zzip/zip.c)</small></p></dd>
+<dt><a name="zzip_dir_free" /><code><code>int 
+</code>
+ <br /><b><code>zzip_dir_free</code></b>
+   <code>zzip_dir_free
+ <code>(<nobr>ZZIP_DIR * dir</nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/zip.c)
+<p>   will free the zzip_dir handle unless there are still  
+ <br />  zzip_files attached (that may use its cache buffer). 
+ <br />  This is the inverse of <a href="#zzip_dir_alloc"><code>zzip_dir_alloc</code></a> , and both 
+ <br />  are helper functions used implicitly in other zzipcalls 
+ <br />  e.g. <a href="#zzip_dir_close"><code>zzip_dir_close</code></a> = zzip_close  
+ <p> 
+   returns zero on sucess 
+ <br />  returns the refcount when files are attached. 
+ 
+<p align="right"><small>(../zzip/zip.c)</small></p></dd>
+<dt><a name="zzip_dir_close" /><code><code>int 
+</code>
+ <br /><b><code>zzip_dir_close</code></b>
+   <code>zzip_dir_close
+ <code>(<nobr>ZZIP_DIR * dir</nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/zip.c)
+<p>   It will also <code>free(2)</code> the <code>ZZIP_DIR</code>-handle given.  
+ <br />  the counterpart for <a href="#zzip_dir_open"><code>zzip_dir_open</code></a> 
+ <br />  see also <a href="#zzip_dir_free"><code>zzip_dir_free</code></a> 
+ 
+<p align="right"><small>(../zzip/zip.c)</small></p></dd>
+<dt><a name="zzip_dir_fdopen" /><a name="zzip_dir_fdopen_ext_io" /><code><code>ZZIP_DIR * 
+</code>
+ <br /><b><code>zzip_dir_fdopen</code></b>
+   <code>zzip_dir_fdopen
+ <code>(<nobr>int fd</nobr>,
+<nobr>zzip_error_t * errcode_p</nobr>)</code>
+
+</code></code><br />
+<code><code>ZZIP_DIR * 
+</code>
+ <br /><b><code>zzip_dir_fdopen_ext_io</code></b>
+   <code>zzip_dir_fdopen_ext_io
+ <code>(<nobr>int fd</nobr>,
+<nobr>zzip_error_t * errcode_p</nobr>,
+<nobr>zzip_strings_t* ext</nobr>,
+<nobr>const zzip_plugin_io_t io</nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/zip.c)
+<p>   used by the <a href="#zzip_dir_open"><code>zzip_dir_open</code></a> and zzip_opendir(2) call. Opens the 
+ <br />  zip-archive as specified with the fd which points to an 
+ <br />  already openend file. This function then search and parse 
+ <br />  the zip's central directory. 
+ <br />  <p>  
+   NOTE: refcount is zero, so an _open/_close pair will also delete  
+ <br />        this _dirhandle  
+ 
+<p align="right"><small>(../zzip/zip.c)</small></p></dd>
+<dt><a name="__zzip_try_open" /><code><code>int
+</code>
+ <br /><b><code>__zzip_try_open</code></b>
+   <code>__zzip_try_open
+ <code>(<nobr>zzip_char_t* filename</nobr>,
+<nobr>int filemode</nobr>,
+<nobr>zzip_strings_t* ext</nobr>,
+<nobr>zzip_plugin_io_t io</nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/zip.c)
+<p>   will attach a .zip extension and tries to open it 
+ <br />  the with <code>open(2)</code>. This is a helper function for 
+ <br />  <a href="#zzip_dir_open"><code>zzip_dir_open</code></a>, <a href="#zzip_opendir"><code>zzip_opendir</code></a> and <a href="#zzip_open"><code>zzip_open</code></a>. 
+ 
+<p align="right"><small>(../zzip/zip.c)</small></p></dd>
+<dt><a name="zzip_dir_open" /><a name="zzip_dir_open_ext_io" /><code><code>ZZIP_DIR* 
+</code>
+ <br /><b><code>zzip_dir_open</code></b>
+   <code>zzip_dir_open
+ <code>(<nobr>zzip_char_t* filename</nobr>,
+<nobr>zzip_error_t* e</nobr>)</code>
+
+</code></code><br />
+<code><code>ZZIP_DIR* 
+</code>
+ <br /><b><code>zzip_dir_open_ext_io</code></b>
+   <code>zzip_dir_open_ext_io
+ <code>(<nobr>zzip_char_t* filename</nobr>,
+<nobr>zzip_error_t* e</nobr>,
+<nobr>zzip_strings_t* ext</nobr>,
+<nobr>zzip_plugin_io_t io</nobr>)</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/zip.c)
+<p>   Opens the zip-archive (if available). 
+ <br />  the two ext_io arguments will default to use posix io and  
+ <br />  a set of default fileext that can atleast add .zip ext itself. 
+ 
+<p align="right"><small>(../zzip/zip.c)</small></p></dd>
+<dt><a name="zzip_dir_read" /><code><code>int
+</code>
+ <br /><b><code>zzip_dir_read</code></b>
+   <code>zzip_dir_read
+ <code>(<nobr>ZZIP_DIR * dir</nobr>,
+<nobr>ZZIP_DIRENT * d</nobr> )</code>
+
+</code></code><dt>
+<dd><p>  (../zzip/zip.c)
+<p>   fills the dirent-argument with the values and  
+ <br />  increments the read-pointer of the dir-argument. 
+ <br />  <p> 
+   returns 0 if there no entry (anymore). 
+ 
+<p align="right"><small>(../zzip/zip.c)</small></p></dd>
+</dl>
 </body></html>
+</td></tr></table></body></html>

Deleted: trunk/Build/source/libs/zziplib/zziplib-src/docs/zzipmmapped.html
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/docs/zzipmmapped.html	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/docs/zzipmmapped.html	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,222 +0,0 @@
-<html><head><title>zziplib Library Functions</title>
-</head><body>
-<h2>zziplib Library Functions</h2><p>Version 0.13.62</p><p><big><b><code>#include <zzip/mmapped.h></code></b></big></p><table width="100%"><tr><td valign="top"><code><b><code><a href="#zzip_disk_entry_to_data">zzip_disk_entry_to_data</a></code></b>(ZZIP_DISK * disk, struct zzip_disk_entry * entry)
- : zzip_byte_t *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_entry_to_file_header">zzip_disk_entry_to_file_header</a></code></b>(ZZIP_DISK * disk, struct zzip_disk_entry *entry)
- : struct zzip_file_header *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_entry_strdup_name">zzip_disk_entry_strdup_name</a></code></b>(ZZIP_DISK * disk, struct zzip_disk_entry *entry)
- : zzip__new__ char *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_entry_strdup_comment">zzip_disk_entry_strdup_comment</a></code></b>(ZZIP_DISK * disk, struct zzip_disk_entry *entry)
- : zzip__new__ char *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_findfile">zzip_disk_findfile</a></code></b>(ZZIP_DISK * disk, char *filename,
-                   struct zzip_disk_entry *after, zzip_strcmp_fn_t compare)
- : struct zzip_disk_entry *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_findfirst">zzip_disk_findfirst</a></code></b>(ZZIP_DISK * disk)
- : struct zzip_disk_entry *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_findnext">zzip_disk_findnext</a></code></b>(ZZIP_DISK * disk, struct zzip_disk_entry *entry)
- : struct zzip_disk_entry *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_findmatch">zzip_disk_findmatch</a></code></b>(ZZIP_DISK * disk, char *filespec,
-                    struct zzip_disk_entry *after,
-                    zzip_fnmatch_fn_t compare, int flags)
- : struct zzip_disk_entry *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_fopen">zzip_disk_fopen</a></code></b>(ZZIP_DISK * disk, char *filename)
- : zzip__new__ ZZIP_DISK_FILE *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_entry_fopen">zzip_disk_entry_fopen</a></code></b>(ZZIP_DISK * disk, ZZIP_DISK_ENTRY * entry)
- : zzip__new__ ZZIP_DISK_FILE *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_fread">zzip_disk_fread</a></code></b>(void *ptr, zzip_size_t sized, zzip_size_t nmemb,
-                ZZIP_DISK_FILE * file)
- : zzip_size_t
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_fclose">zzip_disk_fclose</a></code></b>(ZZIP_DISK_FILE * file)
- : int
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_feof">zzip_disk_feof</a></code></b>(ZZIP_DISK_FILE * file)
- : int
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_mmap">zzip_disk_mmap</a></code></b>(int fd)
- : zzip__new__ ZZIP_DISK *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_init">zzip_disk_init</a></code></b>(ZZIP_DISK * disk, void *buffer, zzip_size_t buflen)
- : int
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_new">zzip_disk_new</a></code></b>(void)
- : zzip__new__ ZZIP_DISK *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_munmap">zzip_disk_munmap</a></code></b>(ZZIP_DISK * disk)
- : int
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_open">zzip_disk_open</a></code></b>(char *filename)
- : zzip__new__ ZZIP_DISK *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_buffer">zzip_disk_buffer</a></code></b>(void *buffer, size_t buflen)  : zzip__new__ ZZIP_DISK *
-</code></td></tr><tr><td valign="top"><code><b><code><a href="#zzip_disk_close">zzip_disk_close</a></code></b>(ZZIP_DISK * disk)
- : int
-</code></td></tr></table><h3>Documentation</h3><dl><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_disk_entry_to_data">zzip_disk_entry_to_data</a></b>(ZZIP_DISK * disk, struct zzip_disk_entry * entry)
- : zzip_byte_t *
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_entry_to_file_header">zzip_disk_entry_to_file_header</a></b>(ZZIP_DISK * disk, struct zzip_disk_entry *entry)
- : struct zzip_file_header *
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_entry_strdup_name">zzip_disk_entry_strdup_name</a></b>(ZZIP_DISK * disk, struct zzip_disk_entry *entry)
- : zzip__new__ char *
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_entry_strdup_comment">zzip_disk_entry_strdup_comment</a></b>(ZZIP_DISK * disk, struct zzip_disk_entry *entry)
- : zzip__new__ char *
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em> helper functions for (mmapped) zip access api</em> </td><td align="right"> <em><small>zzip/mmapped.c</small></em></td></table><p>
-  The <code>zzip_disk_entry_to_data</code> function augments the other zzip_disk_entry_* helpers: here we move
-  a disk_entry pointer (as returned by _find* functions) into a pointer to
-  the data block right after the file_header. Only disk->buffer would be
-  needed to perform the seek but we check the mmapped range end as well.
-</p>
-</td></tr><tr><td valign="top"><p>  The <code>zzip_disk_entry_to_file_header</code> function does half the job of <code><a href="#zzip_disk_entry_to_data">zzip_disk_entry_to_data</a></code> where it
-  can augment with <code><u>zzip_file_header_to_data</u></code> helper from format/fetch.h
-</p>
-</td></tr><tr><td valign="top"><p>  The <code>zzip_disk_entry_strdup_name</code> function is a big helper despite its little name: in a zip file the
-  encoded filenames are usually NOT zero-terminated but for common usage
-  with libc we need it that way. Secondly, the filename SHOULD be present
-  in the zip central directory but if not then we fallback to the filename
-  given in the file_header of each compressed data portion.
-</p>
-</td></tr><tr><td valign="top"><p>  The <code>zzip_disk_entry_strdup_comment</code> function is similar creating a reference to a zero terminated
-  string but it can only exist in the zip central directory entry.
-</p>
-</td></tr></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_disk_findfile">zzip_disk_findfile</a></b>(ZZIP_DISK * disk, char *filename,
-                   struct zzip_disk_entry *after, zzip_strcmp_fn_t compare)
- : struct zzip_disk_entry *
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_findfirst">zzip_disk_findfirst</a></b>(ZZIP_DISK * disk)
- : struct zzip_disk_entry *
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_findnext">zzip_disk_findnext</a></b>(ZZIP_DISK * disk, struct zzip_disk_entry *entry)
- : struct zzip_disk_entry *
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_findmatch">zzip_disk_findmatch</a></b>(ZZIP_DISK * disk, char *filespec,
-                    struct zzip_disk_entry *after,
-                    zzip_fnmatch_fn_t compare, int flags)
- : struct zzip_disk_entry *
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em> search for files in the (mmapped) zip central directory</em> </td><td align="right"> <em><small>zzip/mmapped.c</small></em></td></table><p>
-  The <code>zzip_disk_findfile</code> function is given a filename as an additional argument, to find the
-  disk_entry matching a given filename. The compare-function is usually
-  strcmp or strcasecmp or perhaps strcoll, if null then strcmp is used.
-  - use null as argument for "after"-entry when searching the first
-  matching entry, otherwise the last returned value if you look for other
-  entries with a special "compare" function (if null then a doubled search
-  is rather useless with this variant of _findfile).
-</p>
-</td></tr><tr><td valign="top"><p>
-  The <code>zzip_disk_findfirst</code> function is the first call of all the zip access functions here.
-  It contains the code to find the first entry of the zip central directory.
-  Here we require the mmapped block to represent a real zip file where the
-  disk_trailer is _last_ in the file area, so that its position would be at
-  a fixed offset from the end of the file area if not for the comment field
-  allowed to be of variable length (which needs us to do a little search
-  for the disk_tailer). However, in this simple implementation we disregard
-  any disk_trailer info telling about multidisk archives, so we just return
-  a pointer to the zip central directory.
-</p><p>
-  For an actual means, we are going to search backwards from the end
-  of the mmaped block looking for the PK-magic signature of a
-  disk_trailer. If we see one then we check the rootseek value to
-  find the first disk_entry of the root central directory. If we find
-  the correct PK-magic signature of a disk_entry over there then we
-  assume we are done and we are going to return a pointer to that label.
-</p><p>
-  The return value is a pointer to the first zzip_disk_entry being checked
-  to be within the bounds of the file area specified by the arguments. If
-  no disk_trailer was found then null is returned, and likewise we only
-  accept a disk_trailer with a seekvalue that points to a disk_entry and
-  both parts have valid PK-magic parts. Beyond some sanity check we try to
-  catch a common brokeness with zip archives that still allows us to find
-  the start of the zip central directory.
-</p>
-</td></tr><tr><td valign="top"><p>
-  The <code>zzip_disk_findnext</code> function takes an existing disk_entry in the central root directory
-  (e.g. from zzip_disk_findfirst) and returns the next entry within in
-  the given bounds of the mmapped file area.
-</p>
-</td></tr><tr><td valign="top"><p>
-  The <code>zzip_disk_findmatch</code> function uses a compare-function with an additional argument
-  and it is called just like fnmatch(3) from POSIX.2 AD:1993), i.e.
-  the argument filespec first and the ziplocal filename second with
-  the integer-flags put in as third to the indirect call. If the
-  platform has fnmatch available then null-compare will use that one
-  and otherwise we fall back to mere strcmp, so if you need fnmatch
-  searching then please provide an implementation somewhere else.
-  - use null as argument for "after"-entry when searching the first
-  matching entry, or the last disk_entry return-value to find the
-  next entry matching the given filespec.
-</p>
-</td></tr></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_disk_fopen">zzip_disk_fopen</a></b>(ZZIP_DISK * disk, char *filename)
- : zzip__new__ ZZIP_DISK_FILE *
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_entry_fopen">zzip_disk_entry_fopen</a></b>(ZZIP_DISK * disk, ZZIP_DISK_ENTRY * entry)
- : zzip__new__ ZZIP_DISK_FILE *
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_fread">zzip_disk_fread</a></b>(void *ptr, zzip_size_t sized, zzip_size_t nmemb,
-                ZZIP_DISK_FILE * file)
- : zzip_size_t
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_fclose">zzip_disk_fclose</a></b>(ZZIP_DISK_FILE * file)
- : int
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_feof">zzip_disk_feof</a></b>(ZZIP_DISK_FILE * file)
- : int
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em> openening a file part wrapped within a (mmapped) zip archive</em> </td><td align="right"> <em><small>zzip/mmapped.c</small></em></td></table><p>
-  The <code>zzip_disk_fopen</code> function opens a file found by name, so it does a search into
-  the zip central directory with <code><a href="#zzip_disk_findfile">zzip_disk_findfile</a></code> and whatever
-  is found first is given to <code><a href="#zzip_disk_entry_fopen">zzip_disk_entry_fopen</a></code>
-</p>
-</td></tr><tr><td valign="top"><p>
-  the ZZIP_DISK_FILE* is rather simple in just encapsulating the
-  arguments given to the <code>zzip_disk_entry_fopen</code> function plus a zlib deflate buffer.
-  Note that the ZZIP_DISK pointer does already contain the full
-  mmapped file area of a zip disk, so open()ing a file part within
-  that area happens to be a lookup of its bounds and encoding. That
-  information is memorized on the ZZIP_DISK_FILE so that subsequent
-  _read() operations will be able to get the next data portion or
-  return an eof condition for that file part wrapped in the zip archive.
-</p>
-</td></tr><tr><td valign="top"><p>
-  The <code>zzip_disk_fread</code> function reads more bytes into the output buffer specified as
-  arguments. The return value is null on eof or error, the stdio-like
-  interface can not distinguish between these so you need to check
-  with <code><a href="#zzip_disk_feof">zzip_disk_feof</a></code> for the difference.
-</p>
-</td></tr><tr><td valign="top"><p>  The <code>zzip_disk_fclose</code> function releases any zlib decoder info needed for decompression
-  and dumps the ZZIP_DISK_FILE* then.
-</p>
-</td></tr><tr><td valign="top"><p>
-  The <code>zzip_disk_feof</code> function allows to distinguish an error from an eof condition.
-  Actually, if we found an error but we did already reach eof then we
-  just keep on saying that it was an eof, so the app can just continue.
-</p>
-</td></tr></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"><tr><td valign="top"><code><b><a name="zzip_disk_mmap">zzip_disk_mmap</a></b>(int fd)
- : zzip__new__ ZZIP_DISK *
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_init">zzip_disk_init</a></b>(ZZIP_DISK * disk, void *buffer, zzip_size_t buflen)
- : int
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_new">zzip_disk_new</a></b>(void)
- : zzip__new__ ZZIP_DISK *
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_munmap">zzip_disk_munmap</a></b>(ZZIP_DISK * disk)
- : int
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_open">zzip_disk_open</a></b>(char *filename)
- : zzip__new__ ZZIP_DISK *
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_buffer">zzip_disk_buffer</a></b>(void *buffer, size_t buflen)  : zzip__new__ ZZIP_DISK *
-</code></td></tr><tr><td valign="top"><code><b><a name="zzip_disk_close">zzip_disk_close</a></b>(ZZIP_DISK * disk)
- : int
-</code></td></tr></table></dt><dd><table width="100%"><tr><td valign="top"><table border="0" width="100%" cellpadding="0" cellspacing="0"><td>  <em> turn a filehandle into a mmapped zip disk archive handle</em> </td><td align="right"> <em><small>zzip/mmapped.c</small></em></td></table><p>
-  The <code>zzip_disk_mmap</code> function uses the given file-descriptor to detect the length of the
-  file and calls the system <a href="http://www.opengroup.org/onlinepubs/000095399/functions/mmap.html"><code>mmap(2)</code></a> to put it in main memory. If it is
-  successful then a newly allocated ZZIP_DISK* is returned with
-  disk->buffer pointing to the mapview of the zipdisk content.
-</p>
-</td></tr><tr><td valign="top"><p>  The <code>zzip_disk_init</code> function does primary initialization of a disk-buffer struct.
-</p>
-</td></tr><tr><td valign="top"><p>  The <code>zzip_disk_new</code> function allocates a new disk-buffer with <a href="http://www.opengroup.org/onlinepubs/000095399/functions/malloc.html"><code>malloc(3)</code></a>
-</p>
-</td></tr><tr><td valign="top"><p>  The <code>zzip_disk_munmap</code> function is the inverse of <code><a href="#zzip_disk_mmap">zzip_disk_mmap</a></code> and using the system
-  munmap(2) on the buffer area and <a href="http://www.opengroup.org/onlinepubs/000095399/functions/free.html"><code>free(3)</code></a> on the ZZIP_DISK structure.
-</p>
-</td></tr><tr><td valign="top"><p>
-  The <code>zzip_disk_open</code> function opens the given archive by name and turn the filehandle
-  to  <code><a href="#zzip_disk_mmap">zzip_disk_mmap</a></code> for bringing it to main memory. If it can not
-  be <a href="http://www.opengroup.org/onlinepubs/000095399/functions/mmap.html"><code>mmap(2)</code></a>'ed then we slurp the whole file into a newly <a href="http://www.opengroup.org/onlinepubs/000095399/functions/malloc.html"><code>malloc(2)</code></a>'ed
-  memory block. Only if that fails too then we return null. Since handling
-  of disk->buffer is ambigous it should not be snatched away please.
-</p>
-</td></tr><tr><td valign="top"><p>  The <code>zzip_disk_buffer</code> function will attach a buffer with a zip image
-  that was acquired from another source than a file.
-  Note that if zzip_disk_mmap fails then zzip_disk_open
-  will fall back and try to read the full file to memory
-  wrapping a ZZIP_DISK around the memory buffer just as
-  the <code>zzip_disk_buffer</code> function will do. Note that the <code>zzip_disk_buffer</code> function will not
-  own the buffer, it will neither be written nor free()d.
-</p>
-</td></tr><tr><td valign="top"><p>
-  The <code>zzip_disk_close</code> function will release all data needed to access a (mmapped)
-  zip archive, including any malloc()ed blocks, sharedmem mappings
-  and it dumps the handle struct as well.
-</p>
-</td></tr></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width=!
 "100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd><dt><table width="100%"></table></dt><dd><table width="100%"></table></dd></dl>
-</body></html>

Added: trunk/Build/source/libs/zziplib/zziplib-src/m4/ax_enable_builddir.m4
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/m4/ax_enable_builddir.m4	                        (rev 0)
+++ trunk/Build/source/libs/zziplib/zziplib-src/m4/ax_enable_builddir.m4	2017-06-20 00:49:02 UTC (rev 44647)
@@ -0,0 +1,248 @@
+dnl @synopsis AX_ENABLE_BUILDDIR [(dirstring-or-command [,Makefile.mk [,-all]])]
+dnl
+dnl if the current configure was run within the srcdir then we move all
+dnl configure-files into a subdir and let the configure steps continue
+dnl there. We provide an option --disable-builddir to suppress the move
+dnl into a separate builddir.
+dnl
+dnl Defaults:
+dnl
+dnl   $1 = $host (overridden with $HOST)
+dnl   $2 = Makefile.mk
+dnl   $3 = -all
+dnl
+dnl This macro must be called before AM_INIT_AUTOMAKE.
+dnl
+dnl it creates a default toplevel srcdir Makefile from the information
+dnl found in the created toplevel builddir Makefile. It just copies the
+dnl variables and rule-targets, each extended with a default
+dnl rule-execution that recurses into the build directory of the
+dnl current "HOST". You can override the auto-dection through
+dnl `config.guess` and build-time of course, as in
+dnl
+dnl   make HOST=i386-mingw-cross
+dnl
+dnl which can of course set at configure time as well using
+dnl
+dnl   configure --host=i386-mingw-cross
+dnl
+dnl After the default has been created, additional rules can be
+dnl appended that will not just recurse into the subdirectories and
+dnl only ever exist in the srcdir toplevel makefile - these parts are
+dnl read from the $2 = Makefile.mk file
+dnl
+dnl The automatic rules are usually scanning the toplevel Makefile for
+dnl lines like '#### $host |$builddir' to recognize the place where to
+dnl recurse into. Usually, the last one is the only one used. However,
+dnl almost all targets have an additional "*-all" rule which makes the
+dnl script to recurse into _all_ variants of the current HOST (!!)
+dnl setting. The "-all" suffix can be overriden for the macro as well.
+dnl
+dnl a special rule is only given for things like "dist" that will copy
+dnl the tarball from the builddir to the sourcedir (or $(PUB)) for
+dnl reason of convenience.
+dnl
+dnl @category Misc
+dnl @author Guido Draheim
+dnl @version 2007-02-01
+dnl @license GPLWithACException
+
+AC_DEFUN([AX_ENABLE_BUILDDIR],[
+AC_REQUIRE([AC_CANONICAL_HOST])[]dnl
+AC_REQUIRE([AX_CONFIGURE_ARGS])[]dnl
+AC_BEFORE([$0],[AM_INIT_AUTOMAKE])dnl
+AS_VAR_PUSHDEF([SUB],[ax_enable_builddir])dnl
+AS_VAR_PUSHDEF([AUX],[ax_enable_builddir_auxdir])dnl
+AS_VAR_PUSHDEF([SED],[ax_enable_builddir_sed])dnl
+SUB="."
+AC_ARG_ENABLE([builddir], AC_HELP_STRING(
+  [--disable-builddir],[disable automatic build in subdir of sources])
+  ,[SUB="$enableval"], [SUB="yes"])
+if test ".$ac_srcdir_defaulted" != ".no" ; then
+if test ".$srcdir" = ".." ; then
+  if test -f config.status ; then
+    AC_MSG_NOTICE(toplevel srcdir already configured... skipping subdir build)
+  else
+    test ".$SUB" = "."  && SUB="."
+    test ".$SUB" = ".no"  && SUB="."
+    test ".$TARGET" = "." && TARGET="$target"
+    test ".$SUB" = ".yes" && SUB="m4_ifval([$1], [$1],[$TARGET])"
+    if test ".$SUB" != ".." ; then    # we know where to go and
+      AS_MKDIR_P([$SUB])
+      echo __.$SUB.__ > $SUB/conftest.tmp
+      cd $SUB
+      if grep __.$SUB.__ conftest.tmp >/dev/null 2>/dev/null ; then
+        rm conftest.tmp
+        AC_MSG_RESULT([continue configure in default builddir "./$SUB"])
+      else
+        AC_MSG_ERROR([could not change to default builddir "./$SUB"])
+      fi
+      srcdir=`echo "$SUB" |
+              sed -e 's,^\./,,;s,[[^/]]$,&/,;s,[[^/]]*/,../,g;s,[[/]]$,,;'`
+      # going to restart from subdirectory location
+      test -f $srcdir/config.log   && mv $srcdir/config.log   .
+      test -f $srcdir/confdefs.h   && mv $srcdir/confdefs.h   .
+      test -f $srcdir/conftest.log && mv $srcdir/conftest.log .
+      test -f $srcdir/$cache_file  && mv $srcdir/$cache_file  .
+      AC_MSG_RESULT(....exec $SHELL $srcdir/[$]0 "--srcdir=$srcdir" "--enable-builddir=$SUB" ${1+"[$]@"})
+      case "[$]0" in # restart
+       [/\\]*) eval $SHELL "'[$]0'" "'--srcdir=$srcdir'" "'--enable-builddir=$SUB'" $ac_configure_args ;;
+       *) eval $SHELL "'$srcdir/[$]0'" "'--srcdir=$srcdir'" "'--enable-builddir=$SUB'" $ac_configure_args ;;
+      esac ; exit $?
+    fi
+  fi
+fi fi
+dnl ac_path_prog uses "set dummy" to override $@ which would defeat the "exec"
+AC_PATH_PROG(SED,gsed sed, sed)
+AUX="$ac_aux_dir" 
+AUX=`echo "$AUX" | $SED -e "s|$ac_top_srcdir|.|"` 
+test ".$AUX" = "." && AUX="$ac_aux_dir"
+test ".$AUX" = "." && AUX="."
+AS_VAR_POPDEF([SED])dnl
+AS_VAR_POPDEF([AUX])dnl
+AS_VAR_POPDEF([SUB])dnl
+AC_CONFIG_COMMANDS([buildir],[dnl .............. config.status ..............
+AS_VAR_PUSHDEF([SUB],[ax_enable_builddir])dnl
+AS_VAR_PUSHDEF([TOP],[top_srcdir])dnl
+AS_VAR_PUSHDEF([SRC],[ac_top_srcdir])dnl
+AS_VAR_PUSHDEF([AUX],[ax_enable_builddir_auxdir])dnl
+AS_VAR_PUSHDEF([SED],[ax_enable_builddir_sed])dnl
+pushdef([END],[Makefile.mk])dnl
+pushdef([_ALL],[ifelse([$3],,[-all],[$3])])dnl
+  SRC="$ax_enable_builddir_srcdir"
+  if test ".$SUB" = "." ; then
+    if test -f "$TOP/Makefile" ; then
+      AC_MSG_NOTICE([skipping TOP/Makefile - left untouched])
+    else
+      AC_MSG_NOTICE([skipping TOP/Makefile - not created])
+    fi
+  else
+    if test -f "$SRC/Makefile" ; then
+      a=`grep "^VERSION " "$SRC/Makefile"` ; b=`grep "^VERSION " Makefile`
+      test "$a" != "$b" && rm "$SRC/Makefile"
+    fi
+    if test -f "$SRC/Makefile" ; then
+	echo "$SRC/Makefile : $SRC/Makefile.in" > $tmp/conftemp.mk
+	echo "	[]@ echo 'REMOVED,,,' >\$[]@" >> $tmp/conftemp.mk
+      eval "${MAKE-make} -f $tmp/conftemp.mk 2>/dev/null >/dev/null"
+      if grep '^REMOVED,,,' "$SRC/Makefile" >/dev/null
+      then rm $SRC/Makefile ; fi
+      cp $tmp/conftemp.mk $SRC/makefiles.mk~      ## DEBUGGING
+    fi
+    if test ! -f "$SRC/Makefile" ; then
+      AC_MSG_NOTICE([create TOP/Makefile guessed from local Makefile])
+      x='`' ; cat >$tmp/conftemp.sed <<_EOF
+/^\$/n
+x
+/^\$/bS
+x
+/\\\\\$/{H;d;}
+{H;s/.*//;x;}
+bM
+:S
+x
+/\\\\\$/{h;d;}
+{h;s/.*//;x;}
+:M
+s/\\(\\n\\)	/\\1 /g
+/^	/d
+/^[[ 	]]*[[\\#]]/d
+/^VPATH *=/d
+s/^srcdir *=.*/srcdir = ./
+s/^top_srcdir *=.*/top_srcdir = ./
+/[[:=]]/!d
+/^\\./d
+s/:.*/:/
+/:\$/s/ /  /g
+/:\$/s/ \\([[a-z]][[a-z-]]*[[a-z]]\\) / \\1 \\1[]_ALL /g
+/:\$/s/^\\([[a-z]][[a-z-]]*[[a-z]]\\)\\([[ :]]\\)/\\1 \\1[]_ALL\\2/
+/:\$/s/  / /g
+/^all all[]_ALL[[ :]]/i\\
+all-configured : all[]_ALL
+dnl dist-all exists... and would make for dist-all-all
+/[]_ALL[]_ALL/d
+/^.*[[=]]/!a\\
+	@ HOST="\$(HOST)\" \\\\\\
+	; test ".\$\$HOST" = "." && HOST=$x sh $AUX/config.guess $x \\\\\\
+	; BUILD=$x grep "^#### \$\$HOST " Makefile | sed -e 's/.*|//' $x \\\\\\
+	; use=$x basename "\$\@" _ALL $x; n=$x echo \$\$BUILD | wc -w $x \\\\\\
+	; echo "MAKE \$\$HOST : \$\$n * \$\@"; if test "\$\$n" = "0" ; then : \\\\\\
+	; BUILD=$x grep "^####.*|" Makefile |tail -1| sed -e 's/.*|//' $x ; fi \\\\\\
+	; test ".\$\$BUILD" = "." && BUILD="." \\\\\\
+	; test "\$\$use" = "\$\@" && BUILD=$x echo "\$\$BUILD" | tail -1 $x \\\\\\
+	; for i in \$\$BUILD ; do test ".\$\$i" = "." && continue \\\\\\
+	; (cd "\$\$i" && test ! -f configure && \$(MAKE) \$\$use) || exit; done
+dnl special rule add-on: "dist" copies the tarball to $(PUB). (source tree)
+/dist[]_ALL *:/a\\
+	@ HOST="\$(HOST)\" \\\\\\
+	; test ".\$\$HOST" = "." && HOST=$x sh $AUX/config.guess $x \\\\\\
+	; BUILD=$x grep "^#### \$\$HOST " Makefile | sed -e 's/.*|//' $x \\\\\\
+	; found=$x echo \$\$BUILD | wc -w $x \\\\\\
+	; echo "MAKE \$\$HOST : \$\$found \$(PACKAGE)-\$(VERSION).tar.*" \\\\\\
+	; if test "\$\$found" = "0" ; then : \\\\\\
+	; BUILD=$x grep "^#### .*|" Makefile |tail -1| sed -e 's/.*|//' $x \\\\\\
+	; fi ; for i in \$\$BUILD ; do test ".\$\$i" = "." && continue \\\\\\
+	; for f in \$\$i/\$(PACKAGE)-\$(VERSION).tar.* \\\\\\
+	; do test -f "\$\$f" && mv "\$\$f" \$(PUB). ; done ; break ; done
+dnl special rule add-on: "distclean" removes all local builddirs completely
+/distclean[]_ALL *:/a\\
+	@ HOST="\$(HOST)\" \\\\\\
+	; test ".\$\$HOST" = "." && HOST=$x sh $AUX/config.guess $x \\\\\\
+	; BUILD=$x grep "^#### .*| *\\./" Makefile | sed -e 's/.*|//' $x \\\\\\
+	; use=$x basename "\$\@" _ALL $x; n=$x echo \$\$BUILD | wc -w $x \\\\\\
+	; echo "MAKE \$\$HOST : \$\$n * \$\@ (all local builds)" \\\\\\
+	; test ".\$\$BUILD" = "." && BUILD="." \\\\\\
+	; for i in \$\$BUILD ; do test ".\$\$i" = "." && continue \\\\\\
+	; echo "# rm -r \$\$i"; done ; echo "# (sleep 3)" ; sleep 3 \\\\\\
+	; for i in \$\$BUILD ; do test ".\$\$i" = "." && continue \\\\\\
+	; echo "rm -r \$\$i"; (rm -r "\$\$i") ; done ; rm Makefile
+_EOF
+      cp "$tmp/conftemp.sed" "$SRC/makefile.sed~"            ## DEBUGGING
+      $SED -f $tmp/conftemp.sed Makefile >$SRC/Makefile
+      if test -f "$SRC/m4_ifval([$2],[$2],[END])" ; then
+        AC_MSG_NOTICE([extend TOP/Makefile with TOP/m4_ifval([$2],[$2],[END])])
+        cat $SRC/END >>$SRC/Makefile
+      fi ; xxxx="####"
+      echo "$xxxx CONFIGURATIONS FOR TOPLEVEL MAKEFILE: " >>$SRC/Makefile
+      # sanity check
+      if grep '^; echo "MAKE ' $SRC/Makefile >/dev/null ; then
+        AC_MSG_NOTICE([buggy sed found - it deletes tab in "a" text parts])
+        $SED -e '/^@ HOST=/s/^/	/' -e '/^; /s/^/	/' $SRC/Makefile \
+          >$SRC/Makefile~
+        (test -s $SRC/Makefile~ && mv $SRC/Makefile~ $SRC/Makefile) 2>/dev/null
+      fi
+    else
+      xxxx="\\#\\#\\#\\#"
+      # echo "/^$xxxx *$ax_enable_builddir_host /d" >$tmp/conftemp.sed
+      echo "s!^$xxxx [[^|]]* | *$SUB *\$!$xxxx ...... $SUB!" >$tmp/conftemp.sed
+      $SED -f "$tmp/conftemp.sed" "$SRC/Makefile" >$tmp/mkfile.tmp
+        cp "$tmp/conftemp.sed" "$SRC/makefiles.sed~"         ## DEBUGGING
+        cp "$tmp/mkfile.tmp"   "$SRC/makefiles.out~"         ## DEBUGGING
+      if cmp -s "$SRC/Makefile" "$tmp/mkfile.tmp" 2>/dev/null ; then
+        AC_MSG_NOTICE([keeping TOP/Makefile from earlier configure])
+        rm "$tmp/mkfile.tmp"
+      else
+        AC_MSG_NOTICE([reusing TOP/Makefile from earlier configure])
+        mv "$tmp/mkfile.tmp" "$SRC/Makefile"
+      fi
+    fi
+    AC_MSG_NOTICE([build in $SUB (HOST=$ax_enable_builddir_host)])
+    xxxx="####"
+    echo "$xxxx" "$ax_enable_builddir_host" "|$SUB" >>$SRC/Makefile
+  fi
+popdef([END])dnl
+AS_VAR_POPDEF([SED])dnl
+AS_VAR_POPDEF([AUX])dnl
+AS_VAR_POPDEF([SRC])dnl
+AS_VAR_POPDEF([TOP])dnl
+AS_VAR_POPDEF([SUB])dnl
+],[dnl
+ax_enable_builddir_srcdir="$srcdir"                    # $srcdir
+ax_enable_builddir_host="$HOST"                        # $HOST / $host
+ax_enable_builddir_version="$VERSION"                  # $VERSION
+ax_enable_builddir_package="$PACKAGE"                  # $PACKAGE
+ax_enable_builddir_auxdir="$ax_enable_builddir_auxdir" # $AUX
+ax_enable_builddir_sed="$ax_enable_builddir_sed"       # $SED
+ax_enable_builddir="$ax_enable_builddir"               # $SUB
+])dnl
+])

Added: trunk/Build/source/libs/zziplib/zziplib-src/msvc7/README.TXT
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/msvc7/README.TXT	                        (rev 0)
+++ trunk/Build/source/libs/zziplib/zziplib-src/msvc7/README.TXT	2017-06-20 00:49:02 UTC (rev 44647)
@@ -0,0 +1,31 @@
+These project files were tested with the 
+free Microsoft Visual C++ 2005 Express Edition.
+
+Visual C++ Express does NOT include the Win32 SDK Headers.
+They must be downloaded separately as documented in the
+installation instructions at Microsoft - consequently that
+extra installation must be referenced via a system variable:
+Set MSSdk=C:\Program Files\Microsoft Platform SDK
+
+In order to compile you need a valid Zlib SDK - you can
+download it from zlib.org in the archive zlib123-dll.zip -
+I had unpacked them to $(zziplibdir)/zlib inside the
+toplevel of the zziplib source tree. That SDK does ship
+with a "zlib1.dll" runtime and "zdll.lib" import library.
+
+The new Visual Studio has depracated most of the Win32 API
+just as well as most of the Posix API. That provokes a lot
+of warning message in surplus of the many warning message
+that occur on every implicit conversion between signed and
+unsigned types. Other compilers are more clever about
+detecting real conversion issues, therefore they are not
+going to be "patched away" with an explicit conversion in
+the source files (I expect Microsoft to get it right somewhen).
+
+== Download Places ==
+download.microsoft.com/download/a/5/f/a5f0d781-e201-4ab6-8c6a-9bb4efed1e1a/
+PSDK-x86.exe = Win32 SDK - online installer
+download.microsoft.com/download/A/9/1/A91D6B2B-A798-47DF-9C7E-A97854B7DD18/
+VC.iso = Visual C++ Express CD-image
+download.microsoft.com/download/C/6/F/C6F4733B-67C7-4C15-9F21-61F7A3167505/
+VCS.iso = Visual C# Express CD-image


Property changes on: trunk/Build/source/libs/zziplib/zziplib-src/msvc7/README.TXT
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Rev URL
\ No newline at end of property
Added: trunk/Build/source/libs/zziplib/zziplib-src/msvc7/zip.exe
===================================================================
(Binary files differ)

Index: trunk/Build/source/libs/zziplib/zziplib-src/msvc7/zip.exe
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/msvc7/zip.exe	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/msvc7/zip.exe	2017-06-20 00:49:02 UTC (rev 44647)

Property changes on: trunk/Build/source/libs/zziplib/zziplib-src/msvc7/zip.exe
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Build/source/libs/zziplib/zziplib-src/ports/symbian-S60/zziplib-symbian.zip
===================================================================
(Binary files differ)

Index: trunk/Build/source/libs/zziplib/zziplib-src/ports/symbian-S60/zziplib-symbian.zip
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/ports/symbian-S60/zziplib-symbian.zip	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/ports/symbian-S60/zziplib-symbian.zip	2017-06-20 00:49:02 UTC (rev 44647)

Property changes on: trunk/Build/source/libs/zziplib/zziplib-src/ports/symbian-S60/zziplib-symbian.zip
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Modified: trunk/Build/source/libs/zziplib/zziplib-src/test/Makefile.am
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/test/Makefile.am	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/test/Makefile.am	2017-06-20 00:49:02 UTC (rev 44647)
@@ -3,7 +3,7 @@
 DEFAULT_INCLUDES = # nothing - no default of -I. -I$(srcdir)
 DEFS = @DEFS@ -I$(top_builddir) -I$(top_srcdir) # also for automake 1.4
 
-EXTRA_DIST = test.zip test1.zip
+EXTRA_DIST = test.zip test1.zip zziptests.py
 DISTCLEANFILES = test*.dat test2.zip test3.zip
 
 zzcat     = ../bins/zzcat$(EXEEXT)
@@ -28,81 +28,19 @@
 	- test -d tmp || mkdir tmp
 	- $(MAKE) test0.zip && mv test0.zip $@
 	- test -s $@ || cp $(srcdir)/test.zip $@
-test0.zip : $(README)
-	test -f README || ln -s $(README) .
-	- $(MKZIP) test_.zip README
-	@ if test -s test_.zip ;then echo mv test_.zip $@ ; mv test_.zip $@ ;fi
-	@      test -d $(testdatadir) || mkdir $(testdatadir); if test -s $@ \
-	; then echo cp $@ $(testdatadir)/ ; cp $@ $(testdatadir)/ \
-	; else echo cp $(testdatadir)/$@ .; cp $(testdatadir)/$@ . \
-	; fi ; echo test -s $@ ; test -s $@
 
-test1.zip :
-	@ echo $(MKZIP) $@ ... "(10 files)" \
-	; mkdir test.tmp \
-	; for i in 1 2 3 4 5 6 8 9 \
-	; do echo "file-$i" >test.tmp/file.$$i ; done \
-	; echo " a plain text file here" >test.tmp/README \
-	; (cd test.tmp && $(MKZIP) ../$@ file.* >$(NULL)) \
-	; rm -rf test.tmp
-	@      test -d $(testdatadir) || mkdir $(testdatadir); if test -s $@ \
-	; then echo cp $@ $(testdatadir)/ ; cp $@ $(testdatadir)/ \
-	; else echo cp $(testdatadir)/$@ .; cp $(testdatadir)/$@ . \
-	; fi ; echo test -s $@ ; test -s $@
-
-test2.zip : # will not be shipped in source tarball
-	@ echo $(MKZIP) $@ ... "(100 files)" \
-	; mkdir test.tmp \
-	; for i in 1 2 3 4 5 6 8 9 ; do for j in 1 2 3 4 5 6 7 8 9 \
-	; do echo "file-$i" >test.tmp/file.$$j$$i ; done done \
-	; (cd test.tmp && $(MKZIP) ../$@ file.* >$(NULL)) \
-	; rm -rf test.tmp
-	@      test -d $(testdatadir) || mkdir $(testdatadir); if test -s $@ \
-	; then echo cp $@ $(testdatadir)/ ; cp $@ $(testdatadir)/ \
-	; else echo cp $(testdatadir)/$@ .; cp $(testdatadir)/$@ . \
-	; fi ; echo test -s $@ ; test -s $@
-
-test3.zip : # will not be shipped in source tarball
-	@ echo $(MKZIP) $@ ... "(1000 files)" \
-	; mkdir test.tmp ; for h in 1 2 3 4 5 6 7 8 9 ; do : \
-	; for i in 1 2 3 4 5 6 8 9 ; do for j in 1 2 3 4 5 6 7 8 9 \
-	; do echo "file-$i" >test.tmp/file.$$h$$j$$i ; done done done \
-	; (cd test.tmp && $(MKZIP) ../$@ file.* >$(NULL)) \
-	; rm -rf test.tmp
-	@      test -d $(testdatadir) || mkdir $(testdatadir); if test -s $@ \
-	; then echo cp $@ $(testdatadir)/ ; cp $@ $(testdatadir)/ \
-	; else echo cp $(testdatadir)/$@ .; cp $(testdatadir)/$@ . \
-	; fi ; echo test -s $@ ; test -s $@
-
-test4.zip : # will not be shipped in source tarball
-	@ echo $(MKZIP) $@ ... "(1000 files)" \
-	; mkdir test.tmp ; for h in 1 2 3 4 5 6 7 8 9 ; do : \
-	; for i in 1 2 3 4 5 6 8 9 ; do for j in 1 2 3 4 5 6 7 8 9 \
-	; do echo "file-$i" >test.tmp/file.$$h$$j$$i ; done done done \
-	; (cd test.tmp && $(MKZIP) -n : ../$@ file.* >$(NULL)) \
-	; rm -rf test.tmp
-	@      test -d $(testdatadir) || mkdir $(testdatadir); if test -s $@ \
-	; then echo cp $@ $(testdatadir)/ ; cp $@ $(testdatadir)/ \
-	; else echo cp $(testdatadir)/$@ .; cp $(testdatadir)/$@ . \
-	; fi ; echo test -s $@ ; test -s $@
-
-test.dat : test.zip
-	$(zzxorcopy) $? $@
-test1.dat : test1.zip
-	$(zzxorcopy) $? $@
-test2.dat : test2.zip
-	$(zzxorcopy) $? $@
-test3.dat : test3.zip
-	$(zzxorcopy) $? $@
-
 # -------------------------------------------------------------------
 
-stdtests = @ZIPTESTS@ check-test0 check-test1 check-zzdir check-zzcat
-xortests = @ZIPTESTS@ check-zzxor check-zzxordir check-zzxorcat
 sfxtests = @ZIPTESTS@ check-sfx
+newtests = @ZIPTESTS@ check-tests
 
-check-local: check-readme $(stdtests) $(xortests) $(sfxtests)
+check-local: check-readme $(sfxtests) $(newtests)
 
+check-tests: tests
+tests:
+	@ test -f zziptests.py || cp -s -v $(srcdir)/zziptests.py .
+	python zziptests.py -v
+
 check-readme : $(zzcat)  test.zip
 	@ test -f test.zip || $(MAKE) tmp/../test.zip 
 	test -s test.zip
@@ -112,145 +50,8 @@
 	; then rm test.out ; echo check OK ; true \
 	; else rm test.out ; echo check FAIL ; false ; fi
 
-check-zzxor : $(zzxorcat) test.dat
-	@ echo :$@: checking $(zzxorcat) test.dat/README 
-	@ $(zzxorcat) test.dat/README >test.out
-	@ if diff test.out $(README) >$(NULL) \
-	; then rm test.out ; echo check OK ; true \
-	; else rm test.out ; echo check FAIL ; false ; fi
-
-test: test0 test1 test2 test3
-test0: $(zziptest)
-	$(zziptest) test.zip
-test1: $(zziptest)
-	$(zziptest) test1.zip
-test2: $(zzcat)
-	$(zzcat) test/README
-test3: $(zzdir)
-	$(zzdir) test1.zip
-test4: $(zzdir) test4.zip
-	$(zzcat) test4/file.113
-
-check-test0 : $(zziptest)
-	@ echo :$@: quick selftest
-	$(zziptest) test.zip >test.out
-	rm test.out
-check-test1 : $(zziptest)
-	@ test -f test1.zip || ln -s $(srcdir)/test1.zip test1.zip
-	@ echo :$@: longer selftest "(about ten seconds)"
-	$(zziptest) test1.zip >test.out
-	rm test.out
-
-check-zzdir : test1.zip test2.zip test3.zip $(zzdir) 
-	@ echo :$@: zip directory access
-	   ./$(zzdir) test1 > test.out
-	@ X="$(zzdir) test1 "\
-	; if grep file.1 test.out >$(NULL) ; then : \
-	; if grep file.9 test.out >$(NULL) ; then : \
-	; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi
-	   ./$(zzdir) test2 > test.out
-	@ X="$(zzdir) test2 "\
-	; if grep file.11 test.out >$(NULL) ; then : \
-	; if grep file.99 test.out >$(NULL) ; then : \
-	; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi
-	   ./$(zzdir) test3 > test.out
-	@ X="$(zzdir) test3 "\
-	; if grep file.111 test.out >$(NULL) ; then : \
-	; if grep file.999 test.out >$(NULL) ; then : \
-	; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi
-	@ X="$(zzdir) test000" ; echo ./$$X "(negative test)" \
-	; if ./$(zzdir) test000 >test.out ; then : \
-	; echo ..$$X.. FAIL ; false ; else echo ..$$X.. OK ; true ; fi 
-	rm test.out
-
-check-zzcat : test1.zip test2.zip test3.zip $(zzcat)
-	@ echo ___ $@ ___
-	   ./$(zzcat) test1/file.1 test1/file.9 > test.out
-	@ X="$(zzcat) test1/file.1 test1/file.9 "\
-	; if grep file-1 test.out >$(NULL) ; then : \
-	; if grep file-9 test.out >$(NULL) ; then : \
-	; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi
-	   ./$(zzcat) test2/file.11 test2/file.99 > test.out
-	@ X="$(zzcat) test2/file.10 test2/file.99 "\
-	; if grep file-10 test.out >$(NULL) ; then : \
-	; if grep file-99 test.out >$(NULL) ; then : \
-	; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi
-	   ./$(zzcat) test3/file.111 test3/file.999 > test.out
-	@ X="$(zzcat) test3/file.111 test3/file.999 "\
-	; if grep file-100 test.out >$(NULL) ; then : \
-	; if grep file-999 test.out >$(NULL) ; then : \
-	; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi
-	@ X="$(zzcat) test1/file.999" ; echo ./$$X "(negative test)" \
-	; if ./$(zzdir) test1/file.999 >test.out ; then : \
-	; echo ..$$X.. FAIL ; false ; else echo ..$$X.. OK ; true ; fi 
-	rm test.out
-
-check-zzxordir : test1.dat test2.dat $(zzxordir) 
-	@ echo ___ $@ ___
-	   ./$(zzxordir) test1 > test.out
-	@ X="$(zzxordir) test1 "\
-	; if grep file.1 test.out >$(NULL) ; then : \
-	; if grep file.9 test.out >$(NULL) ; then : \
-	; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi
-	   ./$(zzxordir) test2.dat > test.out
-	@ X="$(zzxordir) test2.dat "\
-	; if grep file.11 test.out >$(NULL) ; then : \
-	; if grep file.99 test.out >$(NULL) ; then : \
-	; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi
-	rm test.out
-
-check-zzxorcat : test1.dat test2.dat $(zzxorcat)
-	@ echo ___ $@ ___
-	   ./$(zzxorcat) test1/file.1 test1/file.9 > test.out
-	@ X="$(zzxorcat) test1/file.1 test1/file.9 "\
-	; if grep file-1 test.out >$(NULL) ; then : \
-	; if grep file-9 test.out >$(NULL) ; then : \
-	; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi
-	   ./$(zzxorcat) test2.dat/file.11 test2/file.99 > test.out
-	@ X="$(zzxorcat) test2.dat/file.10 test2/file.99 "\
-	; if grep file-10 test.out >$(NULL) ; then : \
-	; if grep file-99 test.out >$(NULL) ; then : \
-	; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi
-	rm test.out
-
 # -------------------------------------------------------------------
-ECHON = echo -n
-BRUTE = 0    # default is less than a thousand tests
-brute :      # which is still a brute force selftest
-	@ echo $(MKZIP) $@: \
-	; for u in 1 2 3 4 5 6 8 9 ; do for v in 1 2 3 4 5 6 7 8 9 ; do : \
-	; for w in 1 2 3 4 5 6 8 9 ; do for x in $(BRUTE) ; do : \
-	; $(ECHON) $$u$$v$$w$$x: \
-	; rm -rf test.tmp ; mkdir test.tmp \
-	; for i in 1 2 3 4 5 6 8 9 ; do for j in 1 2 3 4 5 6 7 8 9 ; do : \
-	; for m in 1 2 3 4 5 6 8 9 ; do for n in $(BRUTE) ; do : \
-	; echo "file-$$i$$j$$m$$n" >test.tmp/file$$i$$j$$m$$n.txt \
-	;        test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \
-	; done ; test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \
-	; done ; test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \
-	; done ; test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \
-	; done ; test -f test.tmp/file$$i$$j$$m$$n.txt || exit 2 \
-	; (cd test.tmp && $(MKZIP) ../test$$u$$v$$w$$x.zip file*.* >$(NULL)) \
-	; rm -rf test.tmp \
-	; for i in 1 2 3 4 5 6 8 9 ; do for j in 1 2 3 4 5 6 7 8 9 ; do : \
-	; for m in 1 2 3 4 5 6 8 9 ; do for n in $(BRUTE) ; do : \
-	; ./$(zzcat) test$$u$$v$$w$$x/file$$i$$j$$m$$n.txt >test.out \
-	; if grep file-$$i$$j$$m$$n test.out >$(NULL) ; then rm test.out \
-	; else echo ERROR file-$$i$$j$$m$$n diff in test$$u$$v$$w$$x \
-	; exit 1 ; fi \
-	; ./$(zzdir) test$$u$$v$$w$$x >test.out \
-	; if grep file$$i$$j$$m$$n.txt test.out >$(NULL) ; then rm test.out \
-	; else echo ERROR file$$i$$j$$m$$n.txt not in test$$u$$v$$w$$x \
-	; exit 1 ; fi \
-	;        test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \
-	; done ; test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \
-	; done ; test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \
-	; done ; test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \
-	; done ; rm test$$u$$v$$w$$x.zip \
-	; done ; done ; done ; done ; true
 
-# -------------------------------------------------------------------
-
 noinst_PROGRAMS = zzipself zzipsetstub
 
 zzipself_LDFLAGS = @ZZIPLIB_LDFLAGS@

Modified: trunk/Build/source/libs/zziplib/zziplib-src/test/Makefile.in
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/test/Makefile.in	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/test/Makefile.in	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,6 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -37,7 +81,9 @@
 target_triplet = @target@
 noinst_PROGRAMS = zzipself$(EXEEXT) zzipsetstub$(EXEEXT)
 subdir = test
-DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/uses/mkinstalldirs $(top_srcdir)/uses/depcomp \
+	README
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_compile_check_sizeof.m4 \
 	$(top_srcdir)/m4/ac_set_default_paths_system.m4 \
@@ -50,7 +96,7 @@
 	$(top_srcdir)/m4/ax_check_aligned_access_required.m4 \
 	$(top_srcdir)/m4/ax_configure_args.m4 \
 	$(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \
-	$(top_srcdir)/m4/ax_enable_builddir_uname.m4 \
+	$(top_srcdir)/m4/ax_enable_builddir.m4 \
 	$(top_srcdir)/m4/ax_expand_prefix.m4 \
 	$(top_srcdir)/m4/ax_maintainer_mode_auto_silent.m4 \
 	$(top_srcdir)/m4/ax_not_enable_frame_pointer.m4 \
@@ -78,31 +124,79 @@
 zzipself_SOURCES = zzipself.c
 zzipself_OBJECTS = zzipself.$(OBJEXT)
 zzipself_DEPENDENCIES = ../zzip/libzzip.la
-zzipself_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(zzipself_LDFLAGS) \
-	$(LDFLAGS) -o $@
+AM_V_lt = $(am__v_lt_ at AM_V@)
+am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+zzipself_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(zzipself_LDFLAGS) $(LDFLAGS) -o $@
 zzipsetstub_SOURCES = zzipsetstub.c
 zzipsetstub_OBJECTS = zzipsetstub.$(OBJEXT)
 zzipsetstub_LDADD = $(LDADD)
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 depcomp = $(SHELL) $(top_srcdir)/uses/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_ at AM_V@)
+am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = zzipself.c zzipsetstub.c
 DIST_SOURCES = zzipself.c zzipsetstub.c
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -251,7 +345,7 @@
 AUTOMAKE_OPTIONS = 1.4 foreign
 AUTOTOOL_VERSION = autoconf-2.52 automake-1.5 libtool-1.4.2
 DEFAULT_INCLUDES = # nothing - no default of -I. -I$(srcdir)
-EXTRA_DIST = test.zip test1.zip
+EXTRA_DIST = test.zip test1.zip zziptests.py
 DISTCLEANFILES = test*.dat test2.zip test3.zip
 zzcat = ../bins/zzcat$(EXEEXT)
 zzdir = ../bins/zzdir$(EXEEXT)
@@ -266,13 +360,8 @@
 testdatadir = $(top_builddir)/testdata.d
 
 # -------------------------------------------------------------------
-stdtests = @ZIPTESTS@ check-test0 check-test1 check-zzdir check-zzcat
-xortests = @ZIPTESTS@ check-zzxor check-zzxordir check-zzxorcat
 sfxtests = @ZIPTESTS@ check-sfx
-
-# -------------------------------------------------------------------
-ECHON = echo -n
-BRUTE = 0    # default is less than a thousand tests
+newtests = @ZIPTESTS@ check-tests
 zzipself_LDFLAGS = @ZZIPLIB_LDFLAGS@
 zzipself_LDADD = ../zzip/libzzip.la @RESOLVES@ -lz
 all: all-am
@@ -318,12 +407,14 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
-zzipself$(EXEEXT): $(zzipself_OBJECTS) $(zzipself_DEPENDENCIES) 
+
+zzipself$(EXEEXT): $(zzipself_OBJECTS) $(zzipself_DEPENDENCIES) $(EXTRA_zzipself_DEPENDENCIES) 
 	@rm -f zzipself$(EXEEXT)
-	$(zzipself_LINK) $(zzipself_OBJECTS) $(zzipself_LDADD) $(LIBS)
-zzipsetstub$(EXEEXT): $(zzipsetstub_OBJECTS) $(zzipsetstub_DEPENDENCIES) 
+	$(AM_V_CCLD)$(zzipself_LINK) $(zzipself_OBJECTS) $(zzipself_LDADD) $(LIBS)
+
+zzipsetstub$(EXEEXT): $(zzipsetstub_OBJECTS) $(zzipsetstub_DEPENDENCIES) $(EXTRA_zzipsetstub_DEPENDENCIES) 
 	@rm -f zzipsetstub$(EXEEXT)
-	$(LINK) $(zzipsetstub_OBJECTS) $(zzipsetstub_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(zzipsetstub_OBJECTS) $(zzipsetstub_LDADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -335,25 +426,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/zzipsetstub.Po at am__quote@
 
 .c.o:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
- at am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -361,26 +452,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -392,15 +472,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -409,7 +485,22 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
 
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
+
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
@@ -458,10 +549,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
@@ -547,9 +643,9 @@
 
 .MAKE: check-am install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am check-local clean \
-	clean-generic clean-libtool clean-noinstPROGRAMS ctags \
-	distclean distclean-compile distclean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am check-local clean \
+	clean-generic clean-libtool clean-noinstPROGRAMS cscopelist-am \
+	ctags ctags-am distclean distclean-compile distclean-generic \
 	distclean-libtool distclean-tags distdir dvi dvi-am html \
 	html-am info info-am install install-am install-data \
 	install-data-am install-dvi install-dvi-am install-exec \
@@ -559,7 +655,7 @@
 	installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am
+	tags tags-am uninstall uninstall-am
 
 
 $(zzcat) $(zzdir) $(zziptest) $(zzxorcat) $(zzxordir) $(xorcopy) : \
@@ -572,75 +668,14 @@
 	- test -d tmp || mkdir tmp
 	- $(MAKE) test0.zip && mv test0.zip $@
 	- test -s $@ || cp $(srcdir)/test.zip $@
-test0.zip : $(README)
-	test -f README || ln -s $(README) .
-	- $(MKZIP) test_.zip README
-	@ if test -s test_.zip ;then echo mv test_.zip $@ ; mv test_.zip $@ ;fi
-	@      test -d $(testdatadir) || mkdir $(testdatadir); if test -s $@ \
-	; then echo cp $@ $(testdatadir)/ ; cp $@ $(testdatadir)/ \
-	; else echo cp $(testdatadir)/$@ .; cp $(testdatadir)/$@ . \
-	; fi ; echo test -s $@ ; test -s $@
 
-test1.zip :
-	@ echo $(MKZIP) $@ ... "(10 files)" \
-	; mkdir test.tmp \
-	; for i in 1 2 3 4 5 6 8 9 \
-	; do echo "file-$i" >test.tmp/file.$$i ; done \
-	; echo " a plain text file here" >test.tmp/README \
-	; (cd test.tmp && $(MKZIP) ../$@ file.* >$(NULL)) \
-	; rm -rf test.tmp
-	@      test -d $(testdatadir) || mkdir $(testdatadir); if test -s $@ \
-	; then echo cp $@ $(testdatadir)/ ; cp $@ $(testdatadir)/ \
-	; else echo cp $(testdatadir)/$@ .; cp $(testdatadir)/$@ . \
-	; fi ; echo test -s $@ ; test -s $@
+check-local: check-readme $(sfxtests) $(newtests)
 
-test2.zip : # will not be shipped in source tarball
-	@ echo $(MKZIP) $@ ... "(100 files)" \
-	; mkdir test.tmp \
-	; for i in 1 2 3 4 5 6 8 9 ; do for j in 1 2 3 4 5 6 7 8 9 \
-	; do echo "file-$i" >test.tmp/file.$$j$$i ; done done \
-	; (cd test.tmp && $(MKZIP) ../$@ file.* >$(NULL)) \
-	; rm -rf test.tmp
-	@      test -d $(testdatadir) || mkdir $(testdatadir); if test -s $@ \
-	; then echo cp $@ $(testdatadir)/ ; cp $@ $(testdatadir)/ \
-	; else echo cp $(testdatadir)/$@ .; cp $(testdatadir)/$@ . \
-	; fi ; echo test -s $@ ; test -s $@
+check-tests: tests
+tests:
+	@ test -f zziptests.py || cp -s -v $(srcdir)/zziptests.py .
+	python zziptests.py -v
 
-test3.zip : # will not be shipped in source tarball
-	@ echo $(MKZIP) $@ ... "(1000 files)" \
-	; mkdir test.tmp ; for h in 1 2 3 4 5 6 7 8 9 ; do : \
-	; for i in 1 2 3 4 5 6 8 9 ; do for j in 1 2 3 4 5 6 7 8 9 \
-	; do echo "file-$i" >test.tmp/file.$$h$$j$$i ; done done done \
-	; (cd test.tmp && $(MKZIP) ../$@ file.* >$(NULL)) \
-	; rm -rf test.tmp
-	@      test -d $(testdatadir) || mkdir $(testdatadir); if test -s $@ \
-	; then echo cp $@ $(testdatadir)/ ; cp $@ $(testdatadir)/ \
-	; else echo cp $(testdatadir)/$@ .; cp $(testdatadir)/$@ . \
-	; fi ; echo test -s $@ ; test -s $@
-
-test4.zip : # will not be shipped in source tarball
-	@ echo $(MKZIP) $@ ... "(1000 files)" \
-	; mkdir test.tmp ; for h in 1 2 3 4 5 6 7 8 9 ; do : \
-	; for i in 1 2 3 4 5 6 8 9 ; do for j in 1 2 3 4 5 6 7 8 9 \
-	; do echo "file-$i" >test.tmp/file.$$h$$j$$i ; done done done \
-	; (cd test.tmp && $(MKZIP) -n : ../$@ file.* >$(NULL)) \
-	; rm -rf test.tmp
-	@      test -d $(testdatadir) || mkdir $(testdatadir); if test -s $@ \
-	; then echo cp $@ $(testdatadir)/ ; cp $@ $(testdatadir)/ \
-	; else echo cp $(testdatadir)/$@ .; cp $(testdatadir)/$@ . \
-	; fi ; echo test -s $@ ; test -s $@
-
-test.dat : test.zip
-	$(zzxorcopy) $? $@
-test1.dat : test1.zip
-	$(zzxorcopy) $? $@
-test2.dat : test2.zip
-	$(zzxorcopy) $? $@
-test3.dat : test3.zip
-	$(zzxorcopy) $? $@
-
-check-local: check-readme $(stdtests) $(xortests) $(sfxtests)
-
 check-readme : $(zzcat)  test.zip
 	@ test -f test.zip || $(MAKE) tmp/../test.zip 
 	test -s test.zip
@@ -650,139 +685,6 @@
 	; then rm test.out ; echo check OK ; true \
 	; else rm test.out ; echo check FAIL ; false ; fi
 
-check-zzxor : $(zzxorcat) test.dat
-	@ echo :$@: checking $(zzxorcat) test.dat/README 
-	@ $(zzxorcat) test.dat/README >test.out
-	@ if diff test.out $(README) >$(NULL) \
-	; then rm test.out ; echo check OK ; true \
-	; else rm test.out ; echo check FAIL ; false ; fi
-
-test: test0 test1 test2 test3
-test0: $(zziptest)
-	$(zziptest) test.zip
-test1: $(zziptest)
-	$(zziptest) test1.zip
-test2: $(zzcat)
-	$(zzcat) test/README
-test3: $(zzdir)
-	$(zzdir) test1.zip
-test4: $(zzdir) test4.zip
-	$(zzcat) test4/file.113
-
-check-test0 : $(zziptest)
-	@ echo :$@: quick selftest
-	$(zziptest) test.zip >test.out
-	rm test.out
-check-test1 : $(zziptest)
-	@ test -f test1.zip || ln -s $(srcdir)/test1.zip test1.zip
-	@ echo :$@: longer selftest "(about ten seconds)"
-	$(zziptest) test1.zip >test.out
-	rm test.out
-
-check-zzdir : test1.zip test2.zip test3.zip $(zzdir) 
-	@ echo :$@: zip directory access
-	   ./$(zzdir) test1 > test.out
-	@ X="$(zzdir) test1 "\
-	; if grep file.1 test.out >$(NULL) ; then : \
-	; if grep file.9 test.out >$(NULL) ; then : \
-	; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi
-	   ./$(zzdir) test2 > test.out
-	@ X="$(zzdir) test2 "\
-	; if grep file.11 test.out >$(NULL) ; then : \
-	; if grep file.99 test.out >$(NULL) ; then : \
-	; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi
-	   ./$(zzdir) test3 > test.out
-	@ X="$(zzdir) test3 "\
-	; if grep file.111 test.out >$(NULL) ; then : \
-	; if grep file.999 test.out >$(NULL) ; then : \
-	; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi
-	@ X="$(zzdir) test000" ; echo ./$$X "(negative test)" \
-	; if ./$(zzdir) test000 >test.out ; then : \
-	; echo ..$$X.. FAIL ; false ; else echo ..$$X.. OK ; true ; fi 
-	rm test.out
-
-check-zzcat : test1.zip test2.zip test3.zip $(zzcat)
-	@ echo ___ $@ ___
-	   ./$(zzcat) test1/file.1 test1/file.9 > test.out
-	@ X="$(zzcat) test1/file.1 test1/file.9 "\
-	; if grep file-1 test.out >$(NULL) ; then : \
-	; if grep file-9 test.out >$(NULL) ; then : \
-	; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi
-	   ./$(zzcat) test2/file.11 test2/file.99 > test.out
-	@ X="$(zzcat) test2/file.10 test2/file.99 "\
-	; if grep file-10 test.out >$(NULL) ; then : \
-	; if grep file-99 test.out >$(NULL) ; then : \
-	; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi
-	   ./$(zzcat) test3/file.111 test3/file.999 > test.out
-	@ X="$(zzcat) test3/file.111 test3/file.999 "\
-	; if grep file-100 test.out >$(NULL) ; then : \
-	; if grep file-999 test.out >$(NULL) ; then : \
-	; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi
-	@ X="$(zzcat) test1/file.999" ; echo ./$$X "(negative test)" \
-	; if ./$(zzdir) test1/file.999 >test.out ; then : \
-	; echo ..$$X.. FAIL ; false ; else echo ..$$X.. OK ; true ; fi 
-	rm test.out
-
-check-zzxordir : test1.dat test2.dat $(zzxordir) 
-	@ echo ___ $@ ___
-	   ./$(zzxordir) test1 > test.out
-	@ X="$(zzxordir) test1 "\
-	; if grep file.1 test.out >$(NULL) ; then : \
-	; if grep file.9 test.out >$(NULL) ; then : \
-	; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi
-	   ./$(zzxordir) test2.dat > test.out
-	@ X="$(zzxordir) test2.dat "\
-	; if grep file.11 test.out >$(NULL) ; then : \
-	; if grep file.99 test.out >$(NULL) ; then : \
-	; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi
-	rm test.out
-
-check-zzxorcat : test1.dat test2.dat $(zzxorcat)
-	@ echo ___ $@ ___
-	   ./$(zzxorcat) test1/file.1 test1/file.9 > test.out
-	@ X="$(zzxorcat) test1/file.1 test1/file.9 "\
-	; if grep file-1 test.out >$(NULL) ; then : \
-	; if grep file-9 test.out >$(NULL) ; then : \
-	; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi
-	   ./$(zzxorcat) test2.dat/file.11 test2/file.99 > test.out
-	@ X="$(zzxorcat) test2.dat/file.10 test2/file.99 "\
-	; if grep file-10 test.out >$(NULL) ; then : \
-	; if grep file-99 test.out >$(NULL) ; then : \
-	; echo ..$$X.. OK ; true ; else echo ..$$X.. FAIL ; false ; fi fi
-	rm test.out
-brute :      # which is still a brute force selftest
-	@ echo $(MKZIP) $@: \
-	; for u in 1 2 3 4 5 6 8 9 ; do for v in 1 2 3 4 5 6 7 8 9 ; do : \
-	; for w in 1 2 3 4 5 6 8 9 ; do for x in $(BRUTE) ; do : \
-	; $(ECHON) $$u$$v$$w$$x: \
-	; rm -rf test.tmp ; mkdir test.tmp \
-	; for i in 1 2 3 4 5 6 8 9 ; do for j in 1 2 3 4 5 6 7 8 9 ; do : \
-	; for m in 1 2 3 4 5 6 8 9 ; do for n in $(BRUTE) ; do : \
-	; echo "file-$$i$$j$$m$$n" >test.tmp/file$$i$$j$$m$$n.txt \
-	;        test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \
-	; done ; test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \
-	; done ; test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \
-	; done ; test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \
-	; done ; test -f test.tmp/file$$i$$j$$m$$n.txt || exit 2 \
-	; (cd test.tmp && $(MKZIP) ../test$$u$$v$$w$$x.zip file*.* >$(NULL)) \
-	; rm -rf test.tmp \
-	; for i in 1 2 3 4 5 6 8 9 ; do for j in 1 2 3 4 5 6 7 8 9 ; do : \
-	; for m in 1 2 3 4 5 6 8 9 ; do for n in $(BRUTE) ; do : \
-	; ./$(zzcat) test$$u$$v$$w$$x/file$$i$$j$$m$$n.txt >test.out \
-	; if grep file-$$i$$j$$m$$n test.out >$(NULL) ; then rm test.out \
-	; else echo ERROR file-$$i$$j$$m$$n diff in test$$u$$v$$w$$x \
-	; exit 1 ; fi \
-	; ./$(zzdir) test$$u$$v$$w$$x >test.out \
-	; if grep file$$i$$j$$m$$n.txt test.out >$(NULL) ; then rm test.out \
-	; else echo ERROR file$$i$$j$$m$$n.txt not in test$$u$$v$$w$$x \
-	; exit 1 ; fi \
-	;        test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \
-	; done ; test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \
-	; done ; test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \
-	; done ; test "$$i$$j$$m$$n" = "$$u$$v$$w$$x" && break \
-	; done ; rm test$$u$$v$$w$$x.zip \
-	; done ; done ; done ; done ; true
-
 ../zzip/libzzip.la : @top_srcdir@/zzip/*.c
 	(cd ../zzip && $(MAKE) `basename $@`)
 

Modified: trunk/Build/source/libs/zziplib/zziplib-src/test/test.zip
===================================================================
(Binary files differ)

Added: trunk/Build/source/libs/zziplib/zziplib-src/test/zziptests.py
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/test/zziptests.py	                        (rev 0)
+++ trunk/Build/source/libs/zziplib/zziplib-src/test/zziptests.py	2017-06-20 00:49:02 UTC (rev 44647)
@@ -0,0 +1,1000 @@
+import unittest
+import subprocess
+import logging
+import os
+import collections
+from fnmatch import fnmatchcase as matches
+
+logg = logging.getLogger("test")
+
+topsrcdir = "../.."
+testdatadir = "testdata.d"
+readme = "README"
+mkzip = "zip"
+unzip = "unzip"
+exeext = ""
+
+def shell_string(command):
+   return " ".join(["'%s'" % arg.replace("'","\\'") for arg in command])
+
+def shell(command, shell=True, calls=False, cwd=None, env=None, lang=None, returncodes=None):
+    returncodes = returncodes or [ None, 0 ]
+    Shell = collections.namedtuple("Shell",["returncode", "output", "errors", "shell"])
+    if isinstance(command, basestring):
+       sh_command = command
+       command = [ command ]
+    else:
+       sh_command = shell_string(command)
+    if lang:
+        if not env: env = os.environ.copy()
+        for name, value in env.items():
+            if name.startswith("LC_"):
+                env[name] = lang
+        env["LANG"] = lang # defines message format
+        env["LC_ALL"] = lang # other locale formats
+    try:
+        output, errors = "", ""
+        if calls:
+            logg.debug("result from %s: %s", cwd and cwd+"/" or "shell", sh_command)
+            run = subprocess.Popen(command, shell=shell, cwd=cwd, env=env)
+            if run.returncode:
+                logg.warning("EXIT %s: %s", run.returncode, command)
+            run.wait()
+        else:
+            logg.debug("output from %s: %s", cwd and cwd+"/" or "shell", sh_command)
+            run = subprocess.Popen(command, shell=shell, cwd=cwd,
+                stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=None, env=env)
+            if run.returncode:
+                logg.warning("EXIT %s: %s", run.returncode, command)
+            output, errors = run.communicate() # run.wait()
+    except:
+        logg.error("*E*: %s", sh_command)
+        for line in output.split("\n"):
+            if line:
+                logg.error("OUT: %s", line)
+        for line in errors.split("\n"):
+            if line:
+                logg.error("ERR: %s", line)
+        raise
+    if run.returncode not in returncodes:
+        logg.warning("*%02i: %s", run.returncode, sh_command)
+        for line in output.split("\n"):
+            if line:
+                logg.warning("OUT: %s", line)
+        for line in errors.split("\n"):
+            if line:
+                logg.warning("ERR: %s", line)
+    else:
+        for line in output.split("\n"):
+            if line:
+                logg.debug("OUT: %s", line)
+        for line in errors.split("\n"):
+            if line:
+                logg.debug("ERR: %s", line)
+    return Shell(run.returncode, output, errors, sh_command)
+
+
+class ZZipTest(unittest.TestCase):
+  @property
+  def t(self):
+    if not os.path.isdir(testdatadir):
+       os.makedirs(testdatadir)
+    return testdatdir
+  @property
+  def s(self):
+    return topsrcdir
+  def src(self, name):
+    return os.path.join(self.s, name)
+  def readme(self):
+     f = open(self.src(readme))
+     text = f.read()
+     f.close()
+     return text
+  def mkfile(self, name, content):
+    b = os.path.dirname(name)
+    if not os.path.isdir(b):
+       os.makedirs(b)
+    f = open(name, "w")
+    f.write(content)
+    f.close()
+  def bins(self, name):
+    exe = os.path.join("..", "bins", name)
+    if exeext: exe += exeext
+    return exe
+  def test_100_make_test0_zip(self):
+    """ create a test.zip for later tests using standard 'zip'
+    It will fall back to a variant in the source code if 'zip'
+    is not installed on the build host. The content is just
+    the README file that we can check for equality later on. """
+    zipfile="test0.zip"
+    tmpdir="test0.tmp"
+    exe=mkzip
+    filename = os.path.join(tmpdir,"README")
+    filetext = self.readme()
+    self.mkfile(filename, filetext)
+    shell("{exe} ../{zipfile} README".format(**locals()), cwd=tmpdir)
+    self.assertGreater(os.path.getsize(zipfile), 10)
+  def test_101_make_test1_zip(self):
+    """ create a test1.zip for later tests using standard 'zip'
+    It will fall back to a variant in the source code if 'zip'
+    is not installed on the build host. The archive has 10
+    generic files that we can check for their content later. """
+    zipfile="test1.zip"
+    tmpdir="test1.tmp"
+    exe=mkzip
+    for i in [1,2,3,4,5,6,7,8,9]:
+       filename = os.path.join(tmpdir,"file.%i" % i)
+       filetext = "file-%i\n" % i
+       self.mkfile(filename, filetext)
+    filename = os.path.join(tmpdir,"README")
+    filetext = self.readme()
+    self.mkfile(filename, filetext)
+    shell("{exe} ../{zipfile} ??*.* README".format(**locals()), cwd=tmpdir)
+    self.assertGreater(os.path.getsize(zipfile), 10)
+  def test_102_make_test2_zip(self):
+    """ create a test2.zip for later tests using standard 'zip'
+    It will NOT fall back to a variant in the source code.
+    The archive has 100 generic files with known content. """
+    zipfile="test2.zip"
+    tmpdir="test2.tmp"
+    exe=mkzip
+    for i in xrange(100):
+       filename = os.path.join(tmpdir,"file.%02i" % i)
+       filetext = "file-%02i\n" % i
+       self.mkfile(filename, filetext)
+    filename = os.path.join(tmpdir,"README")
+    filetext = self.readme()
+    self.mkfile(filename, filetext)
+    shell("{exe} ../{zipfile} ??*.* README".format(**locals()), cwd=tmpdir)
+    self.assertGreater(os.path.getsize(zipfile), 10)
+  def test_103_make_test3_zip(self):
+    """ create a test3.zip for later tests using standard 'zip'
+    It will NOT fall back to a variant in the source code.
+    The archive has 1000 generic files with known content. """
+    zipfile="test3.zip"
+    tmpdir="test3.tmp"
+    exe=mkzip
+    for i in xrange(1000):
+       filename = os.path.join(tmpdir,"file.%03i" % i)
+       filetext = "file-%03i\n" % i
+       self.mkfile(filename, filetext)
+    filename = os.path.join(tmpdir,"README")
+    filetext = self.readme()
+    self.mkfile(filename, filetext)
+    shell("{exe} ../{zipfile} ??*.* README".format(**locals()), cwd=tmpdir)
+    self.assertGreater(os.path.getsize(zipfile), 10)
+  def test_104_make_test4_zip(self):
+    """ create a test4.zip for later tests using standard 'zip'
+    It will NOT fall back to a variant in the source code.
+    The archive has 1000 generic files with known content
+    and they are NOT stored compressed in the archive. """
+    zipfile="test4.zip"
+    tmpdir="test4.tmp"
+    exe=mkzip
+    for i in xrange(1000):
+       filename = os.path.join(tmpdir,"file.%03i" % i)
+       filetext = "file-%03i\n" % i
+       self.mkfile(filename, filetext)
+    filename = os.path.join(tmpdir,"README")
+    filetext = self.readme()
+    self.mkfile(filename, filetext)
+    shell("{exe} -n README ../{zipfile} ??*.* README".format(**locals()), cwd=tmpdir)
+    self.assertGreater(os.path.getsize(zipfile), 10)
+  def test_110_make_test0_dat(self):
+    """ create test.dat from test.zip with xorcopy """
+    zipfile = "test0.zip"
+    datfile = "test0x.dat"
+    exe = self.bins("zzxorcopy")
+    shell("{exe} {zipfile} {datfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(datfile), 10)
+    self.assertEqual(os.path.getsize(datfile), os.path.getsize(zipfile))
+  def test_111_make_test1_dat(self):
+    """ create test.dat from test.zip with xorcopy """
+    zipfile = "test1.zip"
+    datfile = "test1x.dat"
+    exe = self.bins("zzxorcopy")
+    shell("{exe} {zipfile} {datfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(datfile), 10)
+    self.assertEqual(os.path.getsize(datfile), os.path.getsize(zipfile))
+  def test_112_make_test2_dat(self):
+    """ create test.dat from test.zip with xorcopy """
+    zipfile = "test2.zip"
+    datfile = "test2x.dat"
+    exe = self.bins("zzxorcopy")
+    shell("{exe} {zipfile} {datfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(datfile), 10)
+    self.assertEqual(os.path.getsize(datfile), os.path.getsize(zipfile))
+  def test_113_make_test3_dat(self):
+    """ create test.dat from test.zip with xorcopy """
+    zipfile = "test3.zip"
+    datfile = "test3x.dat"
+    exe = self.bins("zzxorcopy")
+    shell("{exe} {zipfile} {datfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(datfile), 10)
+    self.assertEqual(os.path.getsize(datfile), os.path.getsize(zipfile))
+  def test_114_make_test4_dat(self):
+    """ create test.dat from test.zip with xorcopy """
+    zipfile = "test4.zip"
+    datfile = "test4x.dat"
+    exe = self.bins("zzxorcopy")
+    shell("{exe} {zipfile} {datfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(datfile), 10)
+    self.assertEqual(os.path.getsize(datfile), os.path.getsize(zipfile))
+  def test_200_zziptest_test0_zip(self):
+    """ run zziptest on test.zip """
+    zipfile = "test0.zip"
+    logfile = "test0.log"
+    exe = self.bins("zziptest")
+    shell("{exe} --quick {zipfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+  def test_201_zziptest_test1_zip(self):
+    """ run zziptest on test.zip """
+    zipfile = "test1.zip"
+    logfile = "test1.log"
+    exe = self.bins("zziptest")
+    shell("{exe} --quick {zipfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+  def test_202_zziptest_test2_zip(self):
+    """ run zziptest on test.zip """
+    zipfile = "test2.zip"
+    logfile = "test2.log"
+    exe = self.bins("zziptest")
+    shell("{exe} --quick {zipfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+  def test_203_zziptest_test3_zip(self):
+    """ run zziptest on test.zip """
+    zipfile = "test3.zip"
+    logfile = "test3.log"
+    exe = self.bins("zziptest")
+    shell("{exe} --quick {zipfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+  def test_204_zziptest_test4_zip(self):
+    """ run zziptest on test.zip """
+    zipfile = "test4.zip"
+    logfile = "test4.log"
+    exe = self.bins("zziptest")
+    shell("{exe} --quick {zipfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+  def test_210_zzcat_test0_zip(self):
+    """ run zzcat on test.zip using just test/README """
+    zipfile = "test0.zip"
+    getfile = "test0/README"
+    logfile = "test0.readme.txt"
+    exe = self.bins("zzcat")
+    run = shell("{exe} {getfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+  def test_211_zzcat_test1_zip(self):
+    """ run zzcat on test.zip using just test/README """
+    zipfile = "test1.zip"
+    getfile = "test1/README"
+    logfile = "test1.readme.txt"
+    exe = self.bins("zzcat")
+    run = shell("{exe} {getfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+    getfile = "test1/file.1"
+    run = shell("{exe} {getfile}".format(**locals()))
+    self.assertEqual("file-1\n", run.output)
+  def test_212_zzcat_test2_zip(self):
+    """ run zzcat on test.zip using just test/README """
+    zipfile = "test2.zip"
+    getfile = "test2/README"
+    logfile = "test2.readme.txt"
+    exe = self.bins("zzcat")
+    run = shell("{exe} {getfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+    getfile = "test2/file.22"
+    run = shell("{exe} {getfile}".format(**locals()))
+    self.assertEqual("file-22\n", run.output)
+  def test_213_zzcat_test3_zip(self):
+    """ run zzcat on test.zip using just test/README """
+    zipfile = "test3.zip"
+    getfile = "test3/README"
+    logfile = "test3.readme.txt"
+    exe = self.bins("zzcat")
+    run = shell("{exe} {getfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+    getfile = "test3/file.999"
+    run = shell("{exe} {getfile}".format(**locals()))
+    self.assertEqual("file-999\n", run.output)
+  def test_214_zzcat_test4_zip(self):
+    """ run zzcat on test.zip using just test/README """
+    zipfile = "test4.zip"
+    getfile = "test4/README"
+    logfile = "test4.readme.txt"
+    exe = self.bins("zzcat")
+    run = shell("{exe} {getfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+    getfile = "test4/file.999"
+    run = shell("{exe} {getfile}".format(**locals()))
+    self.assertEqual("file-999\n", run.output)
+  def test_220_zzdir_test0_zip(self):
+    """ run zzdir on test0.zip using just 'test0' """
+    zipfile = "test0.zip"
+    getfile = "test0"
+    exe = self.bins("zzdir")
+    run = shell("{exe} {getfile} ".format(**locals()))
+    self.assertIn(' README ', run.output)
+    self.assertIn(' deflated ', run.output)
+    self.assertLess(len(run.output), 30)
+  def test_221_zzdir_test1_zip(self):
+    """ run zzdir on test1.zip using just 'test1' """
+    zipfile = "test1.zip"
+    getfile = "test1"
+    exe = self.bins("zzdir")
+    run = shell("{exe} {getfile} ".format(**locals()))
+    self.assertIn(' file.1 ', run.output)
+    self.assertIn(' file.2 ', run.output)
+    self.assertIn(' file.9 ', run.output)
+    self.assertIn(' README ', run.output)
+    self.assertIn(' deflated ', run.output)
+    self.assertIn(' stored ', run.output)
+  def test_222_zzdir_test2_zip(self):
+    """ run zzdir on test2.zip using just 'test2' """
+    zipfile = "test2.zip"
+    getfile = "test2"
+    exe = self.bins("zzdir")
+    run = shell("{exe} {getfile} ".format(**locals()))
+    self.assertIn(' file.01 ', run.output)
+    self.assertIn(' file.22 ', run.output)
+    self.assertIn(' file.99 ', run.output)
+    self.assertIn(' deflated ', run.output)
+    self.assertIn(' stored ', run.output)
+  def test_223_zzdir_test3_zip(self):
+    """ run zzdir on test3.zip using just 'test3' """
+    zipfile = "test3.zip"
+    getfile = "test3"
+    exe = self.bins("zzdir")
+    run = shell("{exe} {getfile} ".format(**locals()))
+    self.assertIn(' file.001 ', run.output)
+    self.assertIn(' file.222 ', run.output)
+    self.assertIn(' file.999 ', run.output)
+    self.assertIn(' deflated ', run.output)
+    self.assertIn(' stored ', run.output)
+  def test_224_zzdir_test4_zip(self):
+    """ run zzdir on test4.zip using just 'test4' """
+    zipfile = "test4.zip"
+    getfile = "test4"
+    exe = self.bins("zzdir")
+    run = shell("{exe} {getfile} ".format(**locals()))
+    self.assertIn(' file.001 ', run.output)
+    self.assertIn(' file.222 ', run.output)
+    self.assertIn(' file.999 ', run.output)
+    self.assertNotIn(' deflated ', run.output)
+    self.assertIn(' stored ', run.output)
+  def test_320_zzxordir_test0_dat(self):
+    """ run zzxordir on test0x.dat """
+    zipfile = "test0x.dat"
+    getfile = "test0x.dat"
+    exe = self.bins("zzdir")
+    run = shell("{exe} {getfile} ".format(**locals()), returncodes = [0,1])
+    self.assertEqual(run.returncode, 1)
+    self.assertEqual("", run.output)
+    self.assertIn("did not open test", run.errors)
+    exe = self.bins("zzxordir")
+    run = shell("{exe} {getfile} ".format(**locals()))
+    self.assertIn(' README ', run.output)
+    self.assertIn(' deflated ', run.output)
+    self.assertLess(len(run.output), 30)
+  def test_321_zzxordir_test1_dat(self):
+    """ run zzxordir on test1x.dat using just 'test1x' """
+    zipfile = "test1x.dat"
+    getfile = "test1x.dat"
+    exe = self.bins("zzdir")
+    run = shell("{exe} {getfile} ".format(**locals()), returncodes = [0,1])
+    self.assertEqual(run.returncode, 1)
+    self.assertEqual("", run.output)
+    self.assertIn("did not open test", run.errors)
+    exe = self.bins("zzxordir")
+    run = shell("{exe} {getfile} ".format(**locals()))
+    self.assertIn(' file.1 ', run.output)
+    self.assertIn(' file.2 ', run.output)
+    self.assertIn(' file.9 ', run.output)
+    self.assertIn(' README ', run.output)
+    self.assertIn(' deflated ', run.output)
+    self.assertIn(' stored ', run.output)
+  def test_322_zzxordir_test2_dat(self):
+    """ run zzxordir on test2x.dat using just 'test2x' """
+    zipfile = "test2x.dat"
+    getfile = "test2x"
+    exe = self.bins("zzdir")
+    run = shell("{exe} {getfile} ".format(**locals()), returncodes = [0,1])
+    self.assertEqual(run.returncode, 1)
+    self.assertEqual("", run.output)
+    self.assertIn("did not open test", run.errors)
+    exe = self.bins("zzxordir")
+    run = shell("{exe} {getfile} ".format(**locals()))
+    self.assertIn(' file.01 ', run.output)
+    self.assertIn(' file.22 ', run.output)
+    self.assertIn(' file.99 ', run.output)
+    self.assertIn(' deflated ', run.output)
+    self.assertIn(' stored ', run.output)
+  def test_323_zzxordir_test3_dat(self):
+    """ run zzxordir on test3x.dat using just 'test3x' """
+    zipfile = "test3x.dat"
+    getfile = "test3x"
+    exe = self.bins("zzdir")
+    run = shell("{exe} {getfile} ".format(**locals()), returncodes = [0,1])
+    self.assertEqual(run.returncode, 1)
+    self.assertEqual("", run.output)
+    self.assertIn("did not open test", run.errors)
+    exe = self.bins("zzxordir")
+    run = shell("{exe} {getfile} ".format(**locals()))
+    self.assertIn(' file.001 ', run.output)
+    self.assertIn(' file.222 ', run.output)
+    self.assertIn(' file.999 ', run.output)
+    self.assertIn(' deflated ', run.output)
+    self.assertIn(' stored ', run.output)
+  def test_324_zzxordir_test4_zip(self):
+    """ run zzxordir on test4x.dat using just 'test4x' """
+    zipfile = "test4x.dat"
+    getfile = "test4x"
+    exe = self.bins("zzdir")
+    run = shell("{exe} {getfile} ".format(**locals()), returncodes = [0,1])
+    self.assertEqual(run.returncode, 1)
+    self.assertEqual("", run.output)
+    self.assertIn("did not open test", run.errors)
+    exe = self.bins("zzxordir")
+    run = shell("{exe} {getfile} ".format(**locals()))
+    self.assertIn(' file.001 ', run.output)
+    self.assertIn(' file.222 ', run.output)
+    self.assertIn(' file.999 ', run.output)
+    self.assertNotIn(' deflated ', run.output)
+    self.assertIn(' stored ', run.output)
+  def test_340_zzxorcat_test0_zip(self):
+    """ run zzxorcat on testx.zip using just testx/README """
+    getfile = "test0x/README"
+    logfile = "test0x.readme.txt"
+    exe = self.bins("zzcat")
+    run = shell("{exe} {getfile} ".format(**locals()), lang="C")
+    self.assertEqual("", run.output)
+    self.assertIn("No such file or directory", run.errors)
+    exe = self.bins("zzxorcat")
+    run = shell("{exe} {getfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+  def test_341_zzxorcat_test1_zip(self):
+    """ run zzxorcat on testx.zip using just testx/README """
+    getfile = "test1x/README"
+    logfile = "test1x.readme.txt"
+    exe = self.bins("zzcat")
+    run = shell("{exe} {getfile} ".format(**locals()), lang="C")
+    self.assertEqual("", run.output)
+    self.assertIn("No such file or directory", run.errors)
+    exe = self.bins("zzxorcat")
+    run = shell("{exe} {getfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+    getfile = "test1x/file.1"
+    run = shell("{exe} {getfile}".format(**locals()))
+    self.assertEqual("file-1\n", run.output)
+  def test_342_zzxorcat_test2_zip(self):
+    """ run zzxorcat on testx.zip using just testx/README """
+    getfile = "test2x/README"
+    logfile = "test2x.readme.txt"
+    exe = self.bins("zzcat")
+    run = shell("{exe} {getfile} ".format(**locals()), lang="C")
+    self.assertEqual("", run.output)
+    self.assertIn("No such file or directory", run.errors)
+    exe = self.bins("zzxorcat")
+    run = shell("{exe} {getfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+    getfile = "test2x/file.22"
+    run = shell("{exe} {getfile}".format(**locals()))
+    self.assertEqual("file-22\n", run.output)
+  def test_343_zzxorcat_test3_zip(self):
+    """ run zzxorcat on testx.zip using just testx/README """
+    getfile = "test3x/README"
+    logfile = "test3x.readme.txt"
+    exe = self.bins("zzcat")
+    run = shell("{exe} {getfile} ".format(**locals()), lang="C")
+    self.assertEqual("", run.output)
+    self.assertIn("No such file or directory", run.errors)
+    exe = self.bins("zzxorcat")
+    run = shell("{exe} {getfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+    getfile = "test3x/file.999"
+    run = shell("{exe} {getfile}".format(**locals()))
+    self.assertEqual("file-999\n", run.output)
+  def test_344_zzxorcat_test4_zip(self):
+    """ run zzxorcat on testx.zip using just testx/README """
+    getfile = "test4x/README"
+    logfile = "test4x.readme.txt"
+    exe = self.bins("zzxorcat")
+    run = shell("{exe} {getfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+    getfile = "test4x/file.999"
+    run = shell("{exe} {getfile}".format(**locals()))
+    self.assertEqual("file-999\n", run.output)
+
+  def test_400_zzcat_big_test0_zip(self):
+    """ run zzcat-big on test.zip using just archive README """
+    zipfile = "test0.zip"
+    getfile = "README"
+    logfile = "test0.readme.big.txt"
+    exe = self.bins("unzzip-big")
+    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+  def test_401_zzcat_big_test1_zip(self):
+    """ run zzcat-big on test.zip using just archive README """
+    zipfile = "test1.zip"
+    getfile = "README"
+    logfile = "test1.readme.big.txt"
+    exe = self.bins("unzzip-big")
+    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+    getfile = "file.1"
+    run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))
+    self.assertEqual("file-1\n", run.output)
+  def test_402_zzcat_big_test2_zip(self):
+    """ run zzcat-seeke on test.zip using just archive README """
+    zipfile = "test2.zip"
+    getfile = "README"
+    logfile = "test2.readme.big.txt"
+    exe = self.bins("unzzip-big")
+    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+    getfile = "file.22"
+    run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))
+    self.assertEqual("file-22\n", run.output)
+  def test_410_zzcat_mem_test0_zip(self):
+    """ run zzcat-mem on test.zip using just archive README """
+    zipfile = "test0.zip"
+    getfile = "README"
+    logfile = "test0.readme.mem.txt"
+    exe = self.bins("unzzip-mem")
+    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+  def test_411_zzcat_mem_test1_zip(self):
+    """ run zzcat-mem on test.zip using archive README """
+    zipfile = "test1.zip"
+    getfile = "README"
+    logfile = "test1.readme.mem.txt"
+    exe = self.bins("unzzip-mem")
+    run = shell("{exe} -p {zipfile}  {getfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+    getfile = "file.1"
+    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+    self.assertEqual("file-1\n", run.output)
+  def test_412_zzcat_mem_test2_zip(self):
+    """ run zzcat-mem on test.zip using archive README """
+    zipfile = "test2.zip"
+    getfile = "README"
+    logfile = "test2.readme.mem.txt"
+    exe = self.bins("unzzip-mem")
+    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+    getfile = "file.22"
+    run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))
+    self.assertEqual("file-22\n", run.output)
+  def test_413_zzcat_mem_test3_zip(self):
+    """ run zzcat-mem on test.zip using archive README """
+    zipfile = "test3.zip"
+    getfile = "README"
+    logfile = "test3.readme.mem.txt"
+    exe = self.bins("unzzip-mem")
+    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+    getfile = "file.999"
+    run = shell("{exe} -p {zipfile}  {getfile}".format(**locals()))
+    self.assertEqual("file-999\n", run.output)
+  def test_414_zzcat_mem_test4_zip(self):
+    """ run zzcat-mem on test.zip using archive README """
+    zipfile = "test4.zip"
+    getfile = "README"
+    logfile = "test4.readme.mem.txt"
+    exe = self.bins("unzzip-mem")
+    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+    getfile = "file.999"
+    run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))
+    self.assertEqual("file-999\n", run.output)
+  def test_420_zzcat_mix_test0_zip(self):
+    """ run zzcat-mix on test.zip using just archive README """
+    zipfile = "test0.zip"
+    getfile = "README"
+    logfile = "test0.readme.mix.txt"
+    exe = self.bins("unzzip-mix")
+    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+  def test_421_zzcat_mix_test1_zip(self):
+    """ run zzcat-mix on test.zip using archive README """
+    zipfile = "test1.zip"
+    getfile = "README"
+    logfile = "test1.readme.mix.txt"
+    exe = self.bins("unzzip-mix")
+    run = shell("{exe} -p {zipfile}  {getfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+    getfile = "file.1"
+    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+    self.assertEqual("file-1\n", run.output)
+  def test_422_zzcat_mix_test2_zip(self):
+    """ run zzcat-mix on test.zip using archive README """
+    zipfile = "test2.zip"
+    getfile = "README"
+    logfile = "test2.readme.mix.txt"
+    exe = self.bins("unzzip-mix")
+    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+    getfile = "file.22"
+    run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))
+    self.assertEqual("file-22\n", run.output)
+  def test_423_zzcat_mix_test3_zip(self):
+    """ run zzcat-mix on test.zip using archive README """
+    zipfile = "test3.zip"
+    getfile = "README"
+    logfile = "test3.readme.mix.txt"
+    exe = self.bins("unzzip-mix")
+    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+    getfile = "file.999"
+    run = shell("{exe} -p {zipfile}  {getfile}".format(**locals()))
+    self.assertEqual("file-999\n", run.output)
+  def test_424_zzcat_mix_test4_zip(self):
+    """ run zzcat-mix on test.zip using archive README """
+    zipfile = "test4.zip"
+    getfile = "README"
+    logfile = "test4.readme.mix.txt"
+    exe = self.bins("unzzip-mix")
+    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+    getfile = "file.999"
+    run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))
+    self.assertEqual("file-999\n", run.output)
+  def test_440_zzcat_zap_test0_zip(self):
+    """ run zzcat-zap on test.zip using just archive README """
+    zipfile = "test0.zip"
+    getfile = "README"
+    logfile = "test0.readme.txt"
+    exe = self.bins("unzzip")
+    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+  def test_441_zzcat_zap_test1_zip(self):
+    """ run zzcat-zap on test.zip using archive README """
+    zipfile = "test1.zip"
+    getfile = "README"
+    logfile = "test1.readme.zap.txt"
+    exe = self.bins("unzzip")
+    run = shell("{exe} -p {zipfile}  {getfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+    getfile = "file.1"
+    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+    self.assertEqual("file-1\n", run.output)
+  def test_442_zzcat_zap_test2_zip(self):
+    """ run zzcat-zap on test.zip using archive README """
+    zipfile = "test2.zip"
+    getfile = "README"
+    logfile = "test2.readme.zap.txt"
+    exe = self.bins("unzzip")
+    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+    getfile = "file.22"
+    run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))
+    self.assertEqual("file-22\n", run.output)
+  def test_443_zzcat_zap_test3_zip(self):
+    """ run zzcat-zap on test.zip using archive README """
+    zipfile = "test3.zip"
+    getfile = "README"
+    logfile = "test3.readme.zap.txt"
+    exe = self.bins("unzzip")
+    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+    getfile = "file.999"
+    run = shell("{exe} -p {zipfile}  {getfile}".format(**locals()))
+    self.assertEqual("file-999\n", run.output)
+  def test_444_zzcat_zap_test4_zip(self):
+    """ run zzcat-zap on test.zip using archive README """
+    zipfile = "test4.zip"
+    getfile = "README"
+    logfile = "test4.readme.zap.txt"
+    exe = self.bins("unzzip")
+    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))
+    self.assertGreater(os.path.getsize(logfile), 10)
+    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))
+    getfile = "file.999"
+    run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))
+    self.assertEqual("file-999\n", run.output)
+
+  def test_500_zzdir_big_test0_zip(self):
+    """ run zzdir-big on test0.zip  """
+    zipfile = "test0.zip"
+    getfile = "test0.zip"
+    exe = self.bins("unzzip-big")
+    run = shell("{exe} -l {getfile} ".format(**locals()))
+    self.assertIn(' README ', run.output)
+    self.assertLess(len(run.output), 30)
+  def test_501_zzdir_big_test1_zip(self):
+    """ run zzdir-big on test1.zip  """
+    zipfile = "test1.zip"
+    getfile = "test1.zip"
+    exe = self.bins("unzzip-big")
+    run = shell("{exe} -l {getfile} ".format(**locals()))
+    self.assertIn(' file.1 ', run.output)
+    self.assertIn(' file.2 ', run.output)
+    self.assertIn(' file.9 ', run.output)
+    self.assertIn(' README ', run.output)
+  def test_502_zzdir_big_test2_zip(self):
+    """ run zzdir-big on test2.zip """
+    zipfile = "test2.zip"
+    getfile = "test2.zip"
+    exe = self.bins("unzzip-big")
+    run = shell("{exe} -l {getfile} ".format(**locals()))
+    self.assertIn(' file.01 ', run.output)
+    self.assertIn(' file.22 ', run.output)
+    self.assertIn(' file.99 ', run.output)
+  def test_503_zzdir_big_test3_zip(self):
+    """ run zzdir-big on test3.zip  """
+    zipfile = "test3.zip"
+    getfile = "test3.zip"
+    exe = self.bins("unzzip-big")
+    run = shell("{exe} -l {getfile} ".format(**locals()))
+    self.assertIn(' file.001 ', run.output)
+    self.assertIn(' file.222 ', run.output)
+    self.assertIn(' file.999 ', run.output)
+  def test_504_zzdir_big_test4_zip(self):
+    """ run zzdir-big on test4.zip """
+    zipfile = "test4.zip"
+    getfile = "test4.zip"
+    exe = self.bins("unzzip-big")
+    run = shell("{exe} -l {getfile} ".format(**locals()))
+    self.assertIn(' file.001 ', run.output)
+    self.assertIn(' file.222 ', run.output)
+    self.assertIn(' file.999 ', run.output)
+  def test_510_zzdir_mem_test0_zip(self):
+    """ run zzdir-mem on test0.zip  """
+    zipfile = "test0.zip"
+    getfile = "test0.zip"
+    exe = self.bins("unzzip-mem")
+    run = shell("{exe} -l {getfile} ".format(**locals()))
+    self.assertIn(' README ', run.output)
+    self.assertIn(' deflated ', run.output)
+    self.assertLess(len(run.output), 30)
+  def test_511_zzdir_mem_test1_zip(self):
+    """ run zzdir-mem on test1.zip  """
+    zipfile = "test1.zip"
+    getfile = "test1.zip"
+    exe = self.bins("unzzip-mem")
+    run = shell("{exe} -l {getfile} ".format(**locals()))
+    self.assertIn(' file.1 ', run.output)
+    self.assertIn(' file.2 ', run.output)
+    self.assertIn(' file.9 ', run.output)
+    self.assertIn(' README ', run.output)
+    self.assertIn(' deflated ', run.output)
+    self.assertIn(' stored ', run.output)
+  def test_512_zzdir_mem_test2_zip(self):
+    """ run zzdir-mem on test2.zip """
+    zipfile = "test2.zip"
+    getfile = "test2.zip"
+    exe = self.bins("unzzip-mem")
+    run = shell("{exe} -l {getfile} ".format(**locals()))
+    self.assertIn(' file.01 ', run.output)
+    self.assertIn(' file.22 ', run.output)
+    self.assertIn(' file.99 ', run.output)
+    self.assertIn(' deflated ', run.output)
+    self.assertIn(' stored ', run.output)
+  def test_513_zzdir_mem_test3_zip(self):
+    """ run zzdir-mem on test3.zip  """
+    zipfile = "test3.zip"
+    getfile = "test3.zip"
+    exe = self.bins("unzzip-mem")
+    run = shell("{exe} -l {getfile} ".format(**locals()))
+    self.assertIn(' file.001 ', run.output)
+    self.assertIn(' file.222 ', run.output)
+    self.assertIn(' file.999 ', run.output)
+    self.assertIn(' deflated ', run.output)
+    self.assertIn(' stored ', run.output)
+  def test_514_zzdir_mem_test4_zip(self):
+    """ run zzdir-mem on test4.zip """
+    zipfile = "test4.zip"
+    getfile = "test4.zip"
+    exe = self.bins("unzzip-mem")
+    run = shell("{exe} -l {getfile} ".format(**locals()))
+    self.assertIn(' file.001 ', run.output)
+    self.assertIn(' file.222 ', run.output)
+    self.assertIn(' file.999 ', run.output)
+    self.assertNotIn(' deflated ', run.output)
+    self.assertIn(' stored ', run.output)
+  def test_520_zzdir_mix_test0_zip(self):
+    """ run zzdir-mix on test0.zip  """
+    # self.skipTest("todo")
+    zipfile = "test0.zip"
+    getfile = "test0.zip"
+    exe = self.bins("unzzip-mix")
+    run = shell("{exe} -l {getfile} ".format(**locals()))
+    self.assertIn(' README ', run.output)
+    self.assertIn(' deflated ', run.output)
+    self.assertLess(len(run.output), 30)
+  def test_521_zzdir_mix_test1_zip(self):
+    """ run zzdir-mix on test1.zip  """
+    zipfile = "test1.zip"
+    getfile = "test1.zip"
+    exe = self.bins("unzzip-mix")
+    run = shell("{exe} -l {getfile} ".format(**locals()))
+    self.assertIn(' file.1 ', run.output)
+    self.assertIn(' file.2 ', run.output)
+    self.assertIn(' file.9 ', run.output)
+    self.assertIn(' README ', run.output)
+    self.assertIn(' deflated ', run.output)
+    self.assertIn(' stored ', run.output)
+  def test_522_zzdir_mix_test2_zip(self):
+    """ run zzdir-mix on test2.zip """
+    zipfile = "test2.zip"
+    getfile = "test2.zip"
+    exe = self.bins("unzzip-mix")
+    run = shell("{exe} -l {getfile} ".format(**locals()))
+    self.assertIn(' file.01 ', run.output)
+    self.assertIn(' file.22 ', run.output)
+    self.assertIn(' file.99 ', run.output)
+    self.assertIn(' deflated ', run.output)
+    self.assertIn(' stored ', run.output)
+  def test_523_zzdir_mix_test3_zip(self):
+    """ run zzdir-mix on test3.zip  """
+    zipfile = "test3.zip"
+    getfile = "test3.zip"
+    exe = self.bins("unzzip-mix")
+    run = shell("{exe} -l {getfile} ".format(**locals()))
+    self.assertIn(' file.001 ', run.output)
+    self.assertIn(' file.222 ', run.output)
+    self.assertIn(' file.999 ', run.output)
+    self.assertIn(' deflated ', run.output)
+    self.assertIn(' stored ', run.output)
+  def test_524_zzdir_mix_test4_zip(self):
+    """ run zzdir-mix on test4.zip """
+    zipfile = "test4.zip"
+    getfile = "test4.zip"
+    exe = self.bins("unzzip-mix")
+    run = shell("{exe} -l {getfile} ".format(**locals()))
+    self.assertIn(' file.001 ', run.output)
+    self.assertIn(' file.222 ', run.output)
+    self.assertIn(' file.999 ', run.output)
+    self.assertNotIn(' deflated ', run.output)
+    self.assertIn(' stored ', run.output)
+  def test_540_zzdir_zap_test0_zip(self):
+    """ run zzdir-zap on test0.zip  """
+    zipfile = "test0.zip"
+    getfile = "test0.zip"
+    exe = self.bins("unzzip")
+    run = shell("{exe} -l {getfile} ".format(**locals()))
+    self.assertIn(' README ', run.output)
+    self.assertIn(' deflated ', run.output)
+    self.assertLess(len(run.output), 30)
+  def test_541_zzdir_zap_test1_zip(self):
+    """ run zzdir-zap on test1.zip  """
+    zipfile = "test1.zip"
+    getfile = "test1.zip"
+    exe = self.bins("unzzip")
+    run = shell("{exe} -l {getfile} ".format(**locals()))
+    self.assertIn(' file.1 ', run.output)
+    self.assertIn(' file.2 ', run.output)
+    self.assertIn(' file.9 ', run.output)
+    self.assertIn(' README ', run.output)
+    self.assertIn(' deflated ', run.output)
+    self.assertIn(' stored ', run.output)
+  def test_542_zzdir_zap_test2_zip(self):
+    """ run zzdir-zap on test2.zip """
+    zipfile = "test2.zip"
+    getfile = "test2.zip"
+    exe = self.bins("unzzip")
+    run = shell("{exe} -l {getfile} ".format(**locals()))
+    self.assertIn(' file.01 ', run.output)
+    self.assertIn(' file.22 ', run.output)
+    self.assertIn(' file.99 ', run.output)
+    self.assertIn(' deflated ', run.output)
+    self.assertIn(' stored ', run.output)
+  def test_543_zzdir_zap_test3_zip(self):
+    """ run zzdir-zap on test3.zip  """
+    zipfile = "test3.zip"
+    getfile = "test3.zip"
+    exe = self.bins("unzzip")
+    run = shell("{exe} -l {getfile} ".format(**locals()))
+    self.assertIn(' file.001 ', run.output)
+    self.assertIn(' file.222 ', run.output)
+    self.assertIn(' file.999 ', run.output)
+    self.assertIn(' deflated ', run.output)
+    self.assertIn(' stored ', run.output)
+  def test_544_zzdir_zap_test4_zip(self):
+    """ run zzdir-zap on test4.zip """
+    zipfile = "test4.zip"
+    getfile = "test4.zip"
+    exe = self.bins("unzzip")
+    run = shell("{exe} -l {getfile} ".format(**locals()))
+    self.assertIn(' file.001 ', run.output)
+    self.assertIn(' file.222 ', run.output)
+    self.assertIn(' file.999 ', run.output)
+    self.assertNotIn(' deflated ', run.output)
+    self.assertIn(' stored ', run.output)
+
+  def test_900_make_test1w_zip(self):
+    """ create a test1w.zip using zzip/write functions. """
+    exe=self.bins("zzip")
+    run = shell("{exe} --version".format(**locals()))
+    if "- NO -" in run.output:
+        self.skipTest("- NO -D_ZZIP_ENABLE_WRITE")
+        return
+    zipfile="test1w.zip"
+    tmpdir="test1w.tmp"
+    exe=self.bins("zzip")
+    for i in [1,2,3,4,5,6,7,8,9]:
+       filename = os.path.join(tmpdir,"file.%i" % i)
+       filetext = "file-%i\n" % i
+       self.mkfile(filename, filetext)
+    filename = os.path.join(tmpdir,"README")
+    filetext = self.readme()
+    self.mkfile(filename, filetext)
+    try: os.remove(zipfile)
+    except: pass
+    shell("../{exe} ../{zipfile} ??*.* README".format(**locals()), cwd=tmpdir)
+    self.assertGreater(os.path.getsize(zipfile), 10)
+
+
+
+
+if __name__ == "__main__":
+  import optparse
+  _o = optparse.OptionParser("%prog [options] test_xxx")
+  _o.add_option("-b", "--topsrcdir", metavar="DIR", default=topsrcdir,
+    help="path to the top srcdir / unpack directory [%default]")
+  _o.add_option("-t", "--testdatadir", metavar="DIR", default=testdatadir,
+    help="path where temporary testdata is created [%default]")
+  _o.add_option("-Z", "--mkzip", metavar="EXE", default=mkzip,
+    help="name or path to zip.exe for *.zip creation [%default]")
+  _o.add_option("-U", "--unzip", metavar="EXE", default=unzip,
+    help="name or path to unzip.exe to unpack *.zip [%default]")
+  _o.add_option("-E", "--exeext", metavar="EXT", default=exeext,
+    help="the executable extension (automake $(EXEEXT)) [%default]")
+  _o.add_option("--xmlresults", action="store_true", default=False,
+    help="print output in junit xml testresult format [%default]")
+  _o.add_option("-v", "--verbose", action="count", default=0,
+    help="increase logging output [%default]")
+  opt, args = _o.parse_args()
+  logging.basicConfig(level = logging.WARNING - 10 * opt.verbose)
+  topsrcdir = opt.topsrcdir
+  testdatdir = opt.testdatadir
+  mkzip = opt.mkzip
+  unzip = opt.unzip
+  exeext = opt.exeext
+  if not args: args += [ "test_" ]
+  suite = unittest.TestSuite()
+  for arg in args:
+    for classname in sorted(list(globals())):
+      if not classname.endswith("Test"):
+        continue
+      testclass = globals()[classname]
+      for method in sorted(dir(testclass)):
+        if "*" not in arg: arg += "*"
+        if arg.startswith("_"): arg = arg[1:]
+        if matches(method, arg):
+          suite.addTest(testclass(method))
+  # TextTestRunner(verbosity=opt.verbose).run(suite)
+  if opt.xmlresults:
+    import xmlrunner
+    Runner = xmlrunner.XMLTestRunner
+    Runner(xmlresults).run(suite)
+  else:
+    Runner = unittest.TextTestRunner
+    Runner(verbosity=opt.verbose).run(suite)
+ 

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzip/Makefile.in
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/Makefile.in	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/Makefile.in	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,6 +16,51 @@
 
 
 VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -37,8 +81,9 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = zzip
-DIST_COMMON = $(noinst_HEADERS) $(pkgconfig_HEADERS) \
-	$(srcdir)/Makefile.am $(srcdir)/Makefile.in $(zzip_HEADERS)
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/uses/mkinstalldirs $(top_srcdir)/uses/depcomp \
+	$(noinst_HEADERS) $(pkgconfig_HEADERS) $(zzip_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_compile_check_sizeof.m4 \
 	$(top_srcdir)/m4/ac_set_default_paths_system.m4 \
@@ -51,7 +96,7 @@
 	$(top_srcdir)/m4/ax_check_aligned_access_required.m4 \
 	$(top_srcdir)/m4/ax_configure_args.m4 \
 	$(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \
-	$(top_srcdir)/m4/ax_enable_builddir_uname.m4 \
+	$(top_srcdir)/m4/ax_enable_builddir.m4 \
 	$(top_srcdir)/m4/ax_expand_prefix.m4 \
 	$(top_srcdir)/m4/ax_maintainer_mode_auto_silent.m4 \
 	$(top_srcdir)/m4/ax_not_enable_frame_pointer.m4 \
@@ -95,6 +140,12 @@
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" \
 	"$(DESTDIR)$(zzipdir)"
 LTLIBRARIES = $(lib_LTLIBRARIES)
@@ -102,43 +153,93 @@
 am_libzzip_la_OBJECTS = zip.lo file.lo dir.lo stat.lo info.lo err.lo \
 	plugin.lo write.lo fetch.lo
 libzzip_la_OBJECTS = $(am_libzzip_la_OBJECTS)
-libzzip_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+AM_V_lt = $(am__v_lt_ at AM_V@)
+am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+libzzip_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(libzzip_la_LDFLAGS) $(LDFLAGS) -o $@
 libzzipfseeko_la_DEPENDENCIES =
 am_libzzipfseeko_la_OBJECTS = fseeko.lo fetch.lo
 libzzipfseeko_la_OBJECTS = $(am_libzzipfseeko_la_OBJECTS)
-libzzipfseeko_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-	$(libzzipfseeko_la_LDFLAGS) $(LDFLAGS) -o $@
+libzzipfseeko_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(AM_CFLAGS) $(CFLAGS) $(libzzipfseeko_la_LDFLAGS) $(LDFLAGS) \
+	-o $@
 libzzipmmapped_la_DEPENDENCIES =
 am_libzzipmmapped_la_OBJECTS = mmapped.lo memdisk.lo fetch.lo
 libzzipmmapped_la_OBJECTS = $(am_libzzipmmapped_la_OBJECTS)
-libzzipmmapped_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-	$(libzzipmmapped_la_LDFLAGS) $(LDFLAGS) -o $@
+libzzipmmapped_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(AM_CFLAGS) $(CFLAGS) $(libzzipmmapped_la_LDFLAGS) $(LDFLAGS) \
+	-o $@
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 depcomp = $(SHELL) $(top_srcdir)/uses/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_ at AM_V@)
+am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libzzip_la_SOURCES) $(libzzipfseeko_la_SOURCES) \
 	$(libzzipmmapped_la_SOURCES)
 DIST_SOURCES = $(libzzip_la_SOURCES) $(libzzipfseeko_la_SOURCES) \
 	$(libzzipmmapped_la_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 HEADERS = $(noinst_HEADERS) $(pkgconfig_HEADERS) $(zzip_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -424,9 +525,9 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
-	test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
 	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
 	list2=; for p in $$list; do \
 	  if test -f $$p; then \
@@ -434,6 +535,8 @@
 	  else :; fi; \
 	done; \
 	test -z "$$list2" || { \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
 	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
 	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
 	}
@@ -449,19 +552,24 @@
 
 clean-libLTLIBRARIES:
 	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
-libzzip.la: $(libzzip_la_OBJECTS) $(libzzip_la_DEPENDENCIES) 
-	$(libzzip_la_LINK) -rpath $(libdir) $(libzzip_la_OBJECTS) $(libzzip_la_LIBADD) $(LIBS)
-libzzipfseeko.la: $(libzzipfseeko_la_OBJECTS) $(libzzipfseeko_la_DEPENDENCIES) 
-	$(libzzipfseeko_la_LINK) -rpath $(libdir) $(libzzipfseeko_la_OBJECTS) $(libzzipfseeko_la_LIBADD) $(LIBS)
-libzzipmmapped.la: $(libzzipmmapped_la_OBJECTS) $(libzzipmmapped_la_DEPENDENCIES) 
-	$(libzzipmmapped_la_LINK) -rpath $(libdir) $(libzzipmmapped_la_OBJECTS) $(libzzipmmapped_la_LIBADD) $(LIBS)
+	@list='$(lib_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
 
+libzzip.la: $(libzzip_la_OBJECTS) $(libzzip_la_DEPENDENCIES) $(EXTRA_libzzip_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(libzzip_la_LINK) -rpath $(libdir) $(libzzip_la_OBJECTS) $(libzzip_la_LIBADD) $(LIBS)
+
+libzzipfseeko.la: $(libzzipfseeko_la_OBJECTS) $(libzzipfseeko_la_DEPENDENCIES) $(EXTRA_libzzipfseeko_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(libzzipfseeko_la_LINK) -rpath $(libdir) $(libzzipfseeko_la_OBJECTS) $(libzzipfseeko_la_LIBADD) $(LIBS)
+
+libzzipmmapped.la: $(libzzipmmapped_la_OBJECTS) $(libzzipmmapped_la_DEPENDENCIES) $(EXTRA_libzzipmmapped_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(libzzipmmapped_la_LINK) -rpath $(libdir) $(libzzipmmapped_la_OBJECTS) $(libzzipmmapped_la_LIBADD) $(LIBS)
+
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
 
@@ -482,25 +590,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/zip.Plo at am__quote@
 
 .c.o:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
- at am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -509,8 +617,11 @@
 	-rm -rf .libs _libs
 install-pkgconfigHEADERS: $(pkgconfig_HEADERS)
 	@$(NORMAL_INSTALL)
-	test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)"
 	@list='$(pkgconfig_HEADERS)'; test -n "$(pkgconfigdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \
+	fi; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
@@ -524,13 +635,14 @@
 	@$(NORMAL_UNINSTALL)
 	@list='$(pkgconfig_HEADERS)'; test -n "$(pkgconfigdir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files
+	dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
 install-zzipHEADERS: $(zzip_HEADERS)
 	@$(NORMAL_INSTALL)
-	test -z "$(zzipdir)" || $(MKDIR_P) "$(DESTDIR)$(zzipdir)"
 	@list='$(zzip_HEADERS)'; test -n "$(zzipdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(zzipdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(zzipdir)" || exit 1; \
+	fi; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
@@ -544,30 +656,17 @@
 	@$(NORMAL_UNINSTALL)
 	@list='$(zzip_HEADERS)'; test -n "$(zzipdir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(zzipdir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(zzipdir)" && rm -f $$files
+	dir='$(DESTDIR)$(zzipdir)'; $(am__uninstall_files_from_dir)
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -579,15 +678,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -596,7 +691,22 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
 
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
+
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
@@ -647,10 +757,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
@@ -740,20 +855,20 @@
 
 .MAKE: install-am install-data-am install-exec-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libLTLIBRARIES clean-libtool ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am \
-	install-data-hook install-dvi install-dvi-am install-exec \
-	install-exec-am install-exec-hook install-html install-html-am \
-	install-info install-info-am install-libLTLIBRARIES \
-	install-man install-pdf install-pdf-am \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-data-hook install-dvi install-dvi-am \
+	install-exec install-exec-am install-exec-hook install-html \
+	install-html-am install-info install-info-am \
+	install-libLTLIBRARIES install-man install-pdf install-pdf-am \
 	install-pkgconfigHEADERS install-ps install-ps-am \
 	install-strip install-zzipHEADERS installcheck installcheck-am \
 	installdirs maintainer-clean maintainer-clean-generic \
 	mostlyclean mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
 	uninstall-am uninstall-libLTLIBRARIES uninstall-local \
 	uninstall-pkgconfigHEADERS uninstall-zzipHEADERS
 

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzip/__dirent.h
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/__dirent.h	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/__dirent.h	2017-06-20 00:49:02 UTC (rev 44647)
@@ -9,12 +9,7 @@
  * functions (or just static members) and a few defines, simply to be
  * able to reuse these across - and have everything in a specific place.
  *
- * Copyright (c) 2002,2003 Guido Draheim
- *          All rights reserved,
- *          use under the restrictions of the 
- *          Lesser GNU General Public License
- *          or alternatively the restrictions 
- *          of the Mozilla Public License 1.1
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
  */
 
 #ifdef ZZIP_HAVE_DIRENT_H

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzip/__mmap.h
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/__mmap.h	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/__mmap.h	2017-06-20 00:49:02 UTC (rev 44647)
@@ -9,12 +9,7 @@
  * functions (or just static members) and a few defines, simply to be
  * able to reuse these across - and have everything in a specific place.
  *
- * Copyright (c) 2002,2003 Guido Draheim
- *          All rights reserved,
- *          use under the restrictions of the 
- *          Lesser GNU General Public License
- *          or alternatively the restrictions 
- *          of the Mozilla Public License 1.1
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
  */
 
 #ifdef _USE_MMAP
@@ -92,6 +87,7 @@
     UnmapViewOfFile (fd_map);
     CloseHandle (*(HANDLE*)user); *user = 1;
 }
+
 #ifdef _WIN64
 #define _zzip_mmap(user, fd, offs, len) \
         win32_mmap ((__int64*) &(user), fd, offs, len)

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzip/conf.h
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/conf.h	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/conf.h	2017-06-20 00:49:02 UTC (rev 44647)
@@ -10,12 +10,7 @@
  * Author:
  *      Guido Draheim <guidod at gmx.de>
  *
- *      Copyright (c) 2001,2002,2003,2004 Guido Draheim
- *          All rights reserved,
- *          use under the restrictions of the
- *          Lesser GNU General Public License
- *          or alternatively the restrictions
- *          of the Mozilla Public License 1.1
+ * Copyright: (c) Guido Draheim, use under copyleft (LGPL,MPL)
  */
 
 #ifndef _ZZIP_CONF_H

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzip/dir.c
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/dir.c	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/dir.c	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,14 +1,9 @@
 
 /*
  * Author: 
- *	Guido Draheim <guidod at gmx.de>
+ *    Guido Draheim <guidod at gmx.de>
  *
- *	Copyright (c) 1999,2000,2001,2002,2003 Guido Draheim
- * 	    All rights reserved,
- *	    use under the restrictions of the
- *	    Lesser GNU General Public License
- *          or alternatively the restrictions 
- *          of the Mozilla Public License 1.1
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
  */
 
 #include <zzip/lib.h>           /* exported... */

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzip/err.c
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/err.c	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/err.c	2017-06-20 00:49:02 UTC (rev 44647)
@@ -4,12 +4,7 @@
  *      Guido Draheim <guidod at gmx.de>
  *      Tomi Ollila <Tomi.Ollila at iki.fi>
  *
- *      Copyright (c) 1999,2000,2001,2002,2003 Guido Draheim
- *          All rights reserved,
- *          use under the restrictions of the
- *          Lesser GNU General Public License
- *          or alternatively the restrictions 
- *          of the Mozilla Public License 1.1
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
  */
 
 #include <zzip/lib.h>           /* exported... */

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzip/fetch.c
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/fetch.c	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/fetch.c	2017-06-20 00:49:02 UTC (rev 44647)
@@ -7,12 +7,7 @@
  * Author:
  *      Guido Draheim <guidod at gmx.de>
  *
- * Copyright (c) 2004,2005,2006 Guido Draheim
- *          All rights reserved,
- *          use under the restrictions of the
- *          Lesser GNU General Public License
- *          or alternatively the restrictions
- *          of the Mozilla Public License 1.1
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
  */
 
 #include <zzip/fetch.h>

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzip/fetch.h
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/fetch.h	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/fetch.h	2017-06-20 00:49:02 UTC (rev 44647)
@@ -45,6 +45,7 @@
 # ifndef ZZIP_HAVE_ALIGNED_ACCESS_REQUIRED
 #  if defined __i386__ || defined __x86_64__ || defined _M_X86 || defined _M_X64
 #  define _ZZIP_USE_DEREF
+#  endif
 # endif
 #endif
 
@@ -70,7 +71,6 @@
 #define ZZIP_SET32(__p,__x) (__zzip_set32((__p),(__x)))
 #define ZZIP_SET16(__p,__x) (__zzip_set16((__p),(__x)))
 #endif
-#endif
 
 /* ..................... bitcorrect physical access .................... */
 

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzip/file.c
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/file.c	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/file.c	2017-06-20 00:49:02 UTC (rev 44647)
@@ -4,12 +4,7 @@
  *      Guido Draheim <guidod at gmx.de>
  *      Tomi Ollila <Tomi.Ollila at iki.fi>
  *
- * Copyright (c) 1999,2000,2001,2002,2003 Guido Draheim
- *          All rights reserved,
- *          use under the restrictions of the
- *          Lesser GNU General Public License
- *          or alternatively the restrictions
- *          of the Mozilla Public License 1.1
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
  */
 
 #include <zzip/lib.h>           /* exported... */

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzip/file.h
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/file.h	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/file.h	2017-06-20 00:49:02 UTC (rev 44647)
@@ -12,12 +12,7 @@
  *      Guido Draheim <guidod at gmx.de>
  *      Tomi Ollila <Tomi.Ollila at tfi.net>
  *
- *      Copyright (c) 1999,2000,2001,2002 Guido Draheim
- *          All rights reserved,
- *          use under the restrictions of the
- *          Lesser GNU General Public License
- *          or alternatively the restrictions 
- *          of the Mozilla Public License 1.1
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
  */
 
 #ifndef _ZZIP_FILE_H /* zzip-file.h */

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzip/format.h
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/format.h	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/format.h	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,13 +1,8 @@
 /*
  * Author:
- *	Guido Draheim <guidod at gmx.de>
+ *     Guido Draheim <guidod at gmx.de>
  *
- *	Copyright (c) 2000,2001,2002,2003 Guido Draheim
- * 	    All rights reserved
- *	    use under the restrictions of the
- *	    Lesser GNU General Public License
- *          or alternatively the restrictions
- *          of the Mozilla Public License 1.1
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
  *
  *  The information was taken from appnote-981119-iz.zip
  *  at http://www.freesoftware.com/pub/infozip/doc/

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzip/fseeko.c
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/fseeko.c	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/fseeko.c	2017-06-20 00:49:02 UTC (rev 44647)
@@ -24,12 +24,7 @@
  * Author:
  *      Guido Draheim <guidod at gmx.de>
  *
- * Copyright (c) 2003,2004 Guido Draheim
- *          All rights reserved,
- *          use under the restrictions of the
- *          Lesser GNU General Public License
- *          or alternatively the restrictions
- *          of the Mozilla Public License 1.1
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
  */
 
 #define _LARGEFILE_SOURCE 1
@@ -41,7 +36,6 @@
 #include <zzip/__mmap.h>
 #include <zzip/__fnmatch.h>
 
-#include <assert.h>
 #include <stdlib.h>
 #include <sys/stat.h>
 
@@ -83,6 +77,18 @@
  * the sys/mmap interface we have to guess a good value here: */
 #define PAGESIZE 8192
 
+#ifdef DEBUG
+#define debug1(msg) do { fprintf(stderr, "%s : " msg "\n", __func__); } while(0)
+#define debug2(msg, arg1) do { fprintf(stderr, "%s : " msg "\n", __func__, arg1); } while(0)
+#define debug3(msg, arg1, arg2) do { fprintf(stderr, "%s : " msg "\n", __func__, arg1, arg2); } while(0)
+#define debug4(msg, arg1, arg2, arg3) do { fprintf(stderr, "%s : " msg "\n", __func__, arg1, arg2, arg3); } while(0)
+#else
+#define debug1(msg) 
+#define debug2(msg, arg1) 
+#define debug3(msg, arg1, arg2) 
+#define debug4(msg, arg1, arg2, arg3) 
+#endif
+
 /* ====================================================================== */
 
 /*                      helper functions                                  */
@@ -92,7 +98,9 @@
  * the zip disk of the given "entry". The returned off_t points to the
  * end of the file_header where the current fseek pointer has stopped.
  * This is used to immediatly parse out any filename/extras block following
- * the file_header. The return value is null on error.
+ * the file_header. 
+ *
+ * Returns zero on error. (errno = EINVAL|EBADMSG|EBADF|EIO)
  */
 static zzip_off_t
 zzip_entry_fread_file_header(ZZIP_ENTRY * entry,
@@ -99,15 +107,34 @@
                              struct zzip_file_header *file_header)
 {
     if (! entry || ! file_header)
+    {
+        errno = EINVAL;
         return 0;
+    }
     ___ zzip_off_t offset = zzip_disk_entry_fileoffset(disk_(entry));
     if (0 > offset || offset >= entry->disksize)
+    {
+        errno = EBADMSG;
         return 0;
+    }
 
-    if (fseeko(entry->diskfile, offset, SEEK_SET) == -1) return 0;
-    return (fread(file_header, sizeof(*file_header), 1, entry->diskfile)
-            ? offset + sizeof(*file_header) : 0);
+    if (fseeko(entry->diskfile, offset, SEEK_SET) == -1) 
+    {
+        debug2("fseeko failed: %s", strerror(errno));
+        return 0; /* EBADF */
+    }
+
+    ___ zzip_size_t n = fread(file_header, 1, sizeof(*file_header), entry->diskfile);
+    if (n < sizeof(*file_header))
+    {
+        debug4("fread failed: at offset %llu got %i instead of %i", 
+            (long long) offset, n, sizeof(*file_header));
+        errno = ferror(entry->diskfile) ? EBADF : EIO;
+        return 0;
+    }
     ____;
+    return offset + sizeof(*file_header);
+    ____;
 }
 
 /** helper functions for (fseeko) zip access api
@@ -116,7 +143,9 @@
  * file referenced by the given zzip_entry. It requires an intermediate
  * check of the file_header structure (i.e. it reads it from disk). After
  * this call, the contained diskfile readposition is already set to the
- * data_offset returned here. On error -1 is returned.
+ * data_offset returned here. 
+ *
+ * Returns -1 on error. (errno = EINVAL|EBADMSG)
  */
 zzip_off_t
 zzip_entry_data_offset(ZZIP_ENTRY * entry)
@@ -123,13 +152,20 @@
 {
     struct zzip_file_header file_header;
     if (! entry)
+    {
+        errno = EINVAL;
         return -1;
+    }
     ___ zzip_off_t offset = zzip_entry_fread_file_header(entry, &file_header);
     if (! offset)
-        return -1;
+    {
+        return -1; /* EBADMSG */
+    }
     offset += zzip_file_header_sizeof_tails(&file_header);
     if (fseeko(entry->diskfile, offset, SEEK_SET) == -1)
-        return -1;
+    {
+        return -1; /* EBADF */
+    }
     return offset;
     ____;
 }
@@ -140,12 +176,17 @@
  * with libc we need it that way. Secondly, the filename SHOULD be present
  * in the zip central directory but if not then we fallback to the filename
  * given in the file_header of each compressed data portion.
+ *
+ * returns: new string buffer, null on error (errno = EINVAL|ENOMEM|EBADMSG)
  */
 zzip__new__ char *
 zzip_entry_strdup_name(ZZIP_ENTRY * entry)
 {
     if (! entry)
+    {
+        errno = EINVAL;
         return 0;
+    }
 
     ___ zzip_size_t len;
     if ((len = zzip_disk_entry_namlen(disk_(entry))))
@@ -152,7 +193,9 @@
     {
         char *name = malloc(len + 1);
         if (! name)
-            return 0;
+        {
+            return 0; /* ENOMEM */
+        }
         memcpy(name, entry->tail, len);
         name[len] = '\0';
         return name;
@@ -163,17 +206,20 @@
     {
         char *name = malloc(len + 1);
         if (! name) {
+            return 0; /* ENOMEM */
+        } 
+        ___ zzip_size_t n = fread(name, 1, len, entry->diskfile);
+        if (n < len) 
+        {
+            errno = ferror(entry->diskfile) ? EBADF : EIO;
+            free (name);
             return 0;
-        } else {
-            zzip_size_t n = fread(name, 1, len, entry->diskfile);
-            if (n != len) {
-                free (name);
-                return 0;
-            }
-            name[n] = '\0';
-            return name;
         }
+        name[n] = '\0';
+        return name;
+        ____;
     }
+    errno = EBADMSG;
     return 0;
     ____;
     ____;
@@ -182,7 +228,8 @@
 static int
 prescan_entry(ZZIP_ENTRY * entry)
 {
-    assert(entry);
+    if (! entry) 
+        return EINVAL;
     ___ zzip_off_t tailsize = zzip_disk_entry_sizeof_tails(disk_(entry));
     if (tailsize + 1 > entry->tailalloc)
     {
@@ -193,11 +240,16 @@
         entry->tailalloc = tailsize + 1;
     }
 #  ifdef SIZE_MAX /* from stdint.h */
-    if (tailsize > (zzip_off_t)(SIZE_MAX)) { return EFBIG; }
+    if ((unsigned long long)(tailsize) > (unsigned long long)(SIZE_MAX)) 
+    {
+        debug3("tailsize %llu bigger than sizemax %llu", (long long)(tailsize), (long long)(SIZE_MAX));
+        return EFBIG; 
+    }
 #  endif
     ___ zzip_size_t readsize = fread(entry->tail, 1, tailsize, entry->diskfile);
     /* name + comment + extras */
     if ((zzip_off_t)readsize != tailsize) {
+        debug1("read to data");
         return errno;
     } else {
         return 0;
@@ -207,7 +259,8 @@
 static void
 prescan_clear(ZZIP_ENTRY * entry)
 {
-    assert(entry);
+    if (! entry)
+        return;
     if (entry->tail)
         free(entry->tail);
     entry->tail = 0;
@@ -242,27 +295,42 @@
  * both parts have valid PK-magic parts. Beyond some sanity check we try to
  * catch a common brokeness with zip archives that still allows us to find
  * the start of the zip central directory.
+ *
+ * Returns null on error (errno = EINVAL|ENOMEM|EBADMSG|EBADF|ENOENT)
  */
 zzip__new__ ZZIP_ENTRY *
 zzip_entry_findfirst(FILE * disk)
 {
     if (! disk)
+    {
+        errno = EINVAL;
         return 0;
+    }
     if (fseeko(disk, 0, SEEK_END) == -1)
-        return 0;
+    {
+        printf("fseeko failed: %s", strerror(errno));
+        return 0; /* EBADF */
+    }
     ___ zzip_off_t disksize = ftello(disk);
     if (disksize < (zzip_off_t) sizeof(struct zzip_disk_trailer))
+    {
+        errno = EBADMSG;
         return 0;
+    }
     /* we read out chunks of 8 KiB in the hope to match disk granularity */
     ___ zzip_off_t pagesize = PAGESIZE; /* getpagesize() */
     ___ ZZIP_ENTRY *entry = malloc(sizeof(*entry));
     if (! entry)
-        return 0;
+        goto error0; /* ENOMEM */
     ___ unsigned char *buffer = malloc(pagesize);
     if (! buffer)
-        goto nomem;
+        goto error1; /* ENOMEM */
 
-    assert(pagesize / 2 > (zzip_off_t) sizeof(struct zzip_disk_trailer));
+    if (pagesize / 2 <= (zzip_off_t) sizeof(struct zzip_disk_trailer))
+    {
+        errno = EBADMSG;
+        goto error2;
+    }
     /* at each step, we will fread a pagesize block which overlaps with the
      * previous read by means of pagesize/2 step at the end of the while(1) */
     ___ zzip_off_t mapoffs = disksize & ~(pagesize - 1);
@@ -272,13 +340,21 @@
         mapoffs -= pagesize / 2;
         mapsize += pagesize / 2;
     }
-    assert(mapsize < 3*8192);
+    if (mapsize >= 3*8192)
+    {
+        errno = EBADMSG;
+        goto error2;
+    }
     while (1)
     {
         if (fseeko(disk, mapoffs, SEEK_SET) == -1)
-            goto error;
-        if (fread(buffer, 1, mapsize, disk) != (zzip_size_t)mapsize)
-            goto error;
+            goto error2; /* EBADF */
+        if (fread(buffer, 1, mapsize, disk) < (zzip_size_t)mapsize)
+        {
+            errno = ferror(disk) ? EBADF : EIO;
+            debug1("in fread");
+            goto error2;
+        }
         ___ unsigned char *p =
             buffer + mapsize - sizeof(struct zzip_disk_trailer);
         for (; p >= buffer; p--)
@@ -305,16 +381,39 @@
                 struct zzip_disk64_trailer *trailer =
                     (struct zzip_disk64_trailer *) p;
                 if (sizeof(zzip_off_t) < 8)
-                    return 0;
+                {
+                    debug1("disk64 trailer on non-large compile");
+                    errno = EFBIG;
+                    goto error2;
+                }
+                if ((void*)(trailer + 1) > (buffer + mapsize))
+                {
+                    debug1("disk64 trailer is not complete");
+                    errno = EBADMSG;
+                    goto error2; 
+                }
                 root = zzip_disk64_trailer_rootseek(trailer);
             } else
                 continue;
 
-            assert(0 <= root && root < mapsize);
+            if (!(0 <= root && root < disksize))
+            {
+                debug3("bogus rootseek value %lli (disksize %lli)", (long long)root, (long long)disksize);
+                errno = EBADMSG;
+                goto error2;
+            }
             if (fseeko(disk, root, SEEK_SET) == -1)
-                goto error;
+            {
+                debug2("next seeko %s", strerror(errno));
+                goto error2; /* EBADF */
+            }
             if (fread(disk_(entry), 1, sizeof(*disk_(entry)), disk)
-                    != sizeof(*disk_(entry))) goto error;
+                    != sizeof(*disk_(entry))) 
+            {   
+                debug2("next freed %s", strerror(errno));
+                errno = ferror(disk) ? EBADF : EIO;
+                goto error2;
+            }
             if (zzip_disk_entry_check_magic(entry))
             {
                 free(buffer);
@@ -321,23 +420,35 @@
                 entry->headseek = root;
                 entry->diskfile = disk;
                 entry->disksize = disksize;
-                if (prescan_entry(entry))
-                    goto nomem;
+                ___ int err = prescan_entry(entry);
+                if (err) 
+                {
+                    debug2("prescan %s", strerror(err));
+                    errno = err;
+                    goto error2;
+                }
                 return entry;
+                ____;
             }
         }
         ____;
         if (! mapoffs)
             break;
-        assert(mapsize >= pagesize / 2);
+        if (mapsize < pagesize / 2)
+        {
+            debug1("bad mapsize should not be possible");
+            errno = EBADMSG;
+            goto error2;
+        }
         mapoffs -= pagesize / 2;        /* mapsize += pagesize/2; */
         mapsize = pagesize;     /* if (mapsize > pagesize) ... */
         if (disksize - mapoffs > 64 * 1024)
             break;
     }
-  error:
+    errno = ENOENT; /* not found */
+  error2:
     free(buffer);
-  nomem:
+  error1:
     free(entry);
     ____;
     ____;
@@ -345,6 +456,8 @@
     ____;
     ____;
     ____;
+  error0:
+    debug1("error..");
     return 0;
 }
 
@@ -361,25 +474,39 @@
 zzip_entry_findnext(ZZIP_ENTRY * _zzip_restrict entry)
 {
     if (! entry)
+    {
+        errno = EINVAL;
         return entry;
+    }
     if (! zzip_disk_entry_check_magic(entry))
-        goto err;
+        goto error_EBADMSG;
     ___ zzip_off_t seek =
         entry->headseek + zzip_disk_entry_sizeto_end(disk_(entry));
     if (seek + (zzip_off_t) sizeof(*disk_(entry)) > entry->disksize)
-        goto err;
+        goto error_EBADMSG;
 
     if (fseeko(entry->diskfile, seek, SEEK_SET) == -1)
-        goto err;
+        goto error; /* EBADF */
     if (fread(disk_(entry), 1, sizeof(*disk_(entry)), entry->diskfile)
-            != sizeof(*disk_(entry))) goto err;
+            < sizeof(*disk_(entry))) 
+    {
+        errno = ferror(entry->diskfile) ? EBADF : EIO;
+        goto error;
+    }
     entry->headseek = seek;
     if (! zzip_disk_entry_check_magic(entry))
-        goto err;
-    if (prescan_entry(entry))
-        goto err;
+        goto error_EBADMSG;
+    ___ int err = prescan_entry(entry);
+    if (err)
+    {
+        errno = err;
+        goto error;
+    }
     return entry;
-  err:
+    ____;
+  error_EBADMSG:
+    errno = EBADMSG;
+  error:
     zzip_entry_free(entry);
     return 0;
     ____;
@@ -394,7 +521,10 @@
 zzip_entry_free(ZZIP_ENTRY * entry)
 {
     if (! entry)
+    {
+        errno = EINVAL;
         return 0;
+    }
     prescan_clear(entry);
     free(entry);
     return 1;
@@ -416,7 +546,10 @@
                     ZZIP_ENTRY * _zzip_restrict entry, zzip_strcmp_fn_t compare)
 {
     if (! filename || ! disk)
+    {
+        errno = EINVAL;
         return 0;
+    }
     if (! entry)
         entry = zzip_entry_findfirst(disk);
     else
@@ -430,7 +563,9 @@
         /* filenames within zip files are often not null-terminated! */
         char *realname = zzip_entry_strdup_name(entry);
         if (! realname)
-            continue;
+        {
+            return 0; /* ENOMEM|EBADMSG */
+        }
         if (! compare(filename, realname))
         {
             free(realname);
@@ -441,6 +576,7 @@
             continue;
         }
     }
+    errno = ENOENT;
     return 0;
 }
 
@@ -464,7 +600,10 @@
                      zzip_fnmatch_fn_t compare, int flags)
 {
     if (! filespec || ! disk)
+    {
+        errno = EINVAL;
         return 0;
+    }
     if (! entry)
         entry = zzip_entry_findfirst(disk);
     else
@@ -478,17 +617,22 @@
         /* filenames within zip files are often not null-terminated! */
         char *realname = zzip_entry_strdup_name(entry);
         if (! realname)
-            continue;
+        {
+            return 0; /* ENOMEM|EBADMSG */
+        }
         if (! compare(filespec, realname, flags))
         {
+            debug3("compare '%s' equal with zip '%s'", filespec, realname);
             free(realname);
             return entry;
         } else
         {
+            debug3("compare '%s' not like zip '%s'", filespec, realname);
             free(realname);
             continue;
         }
     }
+    errno = ENOENT;
     return 0;
 }
 
@@ -525,25 +669,36 @@
 zzip_entry_fopen(ZZIP_ENTRY * entry, int takeover)
 {
     if (! entry)
+    {
+        errno = EINVAL;
         return 0;
+    }
     if (! takeover)
     {
         ZZIP_ENTRY *found = malloc(sizeof(*entry));
         if (! found)
-            return 0;
+        {
+            return 0; /* ENOMEM */
+        }
         memcpy(found, entry, sizeof(*entry));   /* prescan_copy */
         found->tail = malloc(found->tailalloc);
-        if (! found->tail)
-            { free (found); return 0; }
+        if (! found->tail) 
+        {
+            free (found); 
+            return 0; /* ENOMEM */
+        }
         memcpy(found->tail, entry->tail, entry->tailalloc);
         entry = found;
     }
     ___ ZZIP_ENTRY_FILE *file = malloc(sizeof(*file));
     if (! file)
-        goto fail1;
+        goto error1; /* ENOMEM */
     file->entry = entry;
     if (! zzip_entry_fread_file_header(entry, &file->header))
-        goto fail2;
+    {
+        debug2("file header: %s", strerror(errno));
+        goto error2; /* EIO|EBADMSG */
+    }
     file->avail = zzip_file_header_usize(&file->header);
     file->data = zzip_entry_data_offset(entry);
     file->dataoff = 0;
@@ -556,14 +711,16 @@
     file->zlib.zalloc = Z_NULL;
     file->zlib.zfree = Z_NULL;
 
-    ___ zzip_off_t seek = file->data;
-    seek += sizeof(file->buffer);
-    seek -= seek & (sizeof(file->buffer) - 1);
-    assert(file->data < seek);  /* pre-read to next PAGESIZE boundary... */
+    ___ zzip_off_t size = file->avail;
+    if (size > sizeof(file->buffer))
+        size = sizeof(file->buffer);
     if (fseeko(file->entry->diskfile, file->data + file->dataoff, SEEK_SET) == -1)
-        goto fail2;
+    {
+        debug2("file seek failed: %s", strerror(errno));
+        goto error2; /* EBADF */
+    }
     file->zlib.next_in = file->buffer;
-    file->zlib.avail_in = fread(file->buffer, 1, seek - file->data,
+    file->zlib.avail_in = fread(file->buffer, 1, size,
                                 file->entry->diskfile);
     file->dataoff += file->zlib.avail_in;
     ____;
@@ -570,12 +727,16 @@
 
     if (! zzip_file_header_data_deflated(&file->header)
         || inflateInit2(&file->zlib, -MAX_WBITS) != Z_OK)
-        goto fail2;
+    {
+        debug1("decompress failed");
+        errno = EBADMSG;
+        goto error2;
+    }
 
     return file;
-  fail2:
+  error2:
     free(file);
-  fail1:
+  error1:
     zzip_entry_free(entry);
     return 0;
     ____;
@@ -592,7 +753,9 @@
 {
     ZZIP_ENTRY *entry = zzip_entry_findfile(disk, filename, 0, 0);
     if (! entry)
-        return 0;
+    {
+        return 0; /* EBADMSG */
+    }
     return zzip_entry_fopen(entry, 1);
 }
 
@@ -609,13 +772,21 @@
                  ZZIP_ENTRY_FILE * file)
 {
     if (! file)
+    {
+        errno = EINVAL;
         return 0;
+    }
     ___ zzip_size_t size = sized * nmemb;
     if (! file->compressed)
     {
         if (size > file->avail)
             size = file->avail;
-        if (fread(ptr, 1, size, file->entry->diskfile) != size) return 0;
+        if (fread(ptr, 1, size, file->entry->diskfile) != size) 
+        {
+            errno = ferror(file->entry->diskfile) ? EBADF : EIO;
+            debug2("uncompressed fread incomplete: %s", strerror(errno));
+            return 0;
+        }
         file->dataoff += size;
         file->avail -= size;
         return size;
@@ -629,6 +800,7 @@
         if (! file->zlib.avail_in)
         {
             size = file->compressed - file->dataoff;
+            debug2("remaining compressed bytes: %lli", (long long)size);
             if (size > sizeof(file->buffer))
                 size = sizeof(file->buffer);
             /* fseek (file->data + file->dataoff, file->entry->diskfile); */
@@ -636,9 +808,13 @@
                                         file->entry->diskfile);
             file->zlib.next_in = file->buffer;
             file->dataoff += file->zlib.avail_in;
+            debug2("remaing compressed fread %lli", (long long) file->zlib.avail_in);
         }
         if (! file->zlib.avail_in)
+        {
+            errno = EIO;
             return 0;
+        }
 
         ___ int err = inflate(&file->zlib, Z_NO_FLUSH);
         if (err == Z_STREAM_END)
@@ -646,7 +822,11 @@
         else if (err == Z_OK)
             file->avail -= file->zlib.total_out - total_old;
         else
+        {
+            debug1("zlib decode incomplete");
+            errno = EBADMSG;
             return 0;
+        }
         ____;
         if (file->zlib.avail_out && ! file->zlib.avail_in)
             continue;
@@ -664,7 +844,10 @@
 zzip_entry_fclose(ZZIP_ENTRY_FILE * file)
 {
     if (! file)
-        return 0;
+    {
+        errno = EINVAL;
+        return EOF;
+    }
     if (file->compressed)
         inflateEnd(&file->zlib);
     zzip_entry_free(file->entry);

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzip/fseeko.h
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/fseeko.h	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/fseeko.h	2017-06-20 00:49:02 UTC (rev 44647)
@@ -8,12 +8,7 @@
  * Author: 
  *      Guido Draheim <guidod at gmx.de>
  *
- * Copyright (c) 2003,2004 Guido Draheim
- *          All rights reserved,
- *          use under the restrictions of the 
- *          Lesser GNU General Public License
- *          or alternatively the restrictions 
- *          of the Mozilla Public License 1.1
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
  */
 
 

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzip/info.c
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/info.c	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/info.c	2017-06-20 00:49:02 UTC (rev 44647)
@@ -3,12 +3,7 @@
  * Author:
  *      Guido Draheim <guidod at gmx.de>
  *
- * Copyright (c) 2000,2001,2002,2003 Guido Draheim
- *          All rights reserved,
- *          use under the restrictions of the
- *          Lesser GNU General Public License
- *          or alternatively the restrictions
- *          of the Mozilla Public License 1.1
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
  */
 
 #include <zzip/lib.h>           /* exported... */

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzip/info.h
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/info.h	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/info.h	2017-06-20 00:49:02 UTC (rev 44647)
@@ -2,12 +2,7 @@
  * Author: 
  *      Guido Draheim <guidod at gmx.de>
  *
- * Copyright (c) 2000,2001,2002,2003 Guido Draheim
- *          All rights reserved,
- *          use under the restrictions of the
- *          Lesser GNU General Public License
- *          or alternatively the restrictions 
- *          of the Mozilla Public License 1.1
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
  */
 
 #ifdef ZZIP_USE_INTERNAL

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzip/lib.h
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/lib.h	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/lib.h	2017-06-20 00:49:02 UTC (rev 44647)
@@ -3,12 +3,7 @@
  *      Guido Draheim <guidod at gmx.de>
  *      Tomi Ollila <Tomi.Ollila at iki.fi>
  *
- * Copyright (c) 1999,2000,2001,2002,2003 Guido Draheim
- *          All rights reserved
- *          use under the restrictions of the
- *          Lesser GNU General Public License
- *          or alternatively the restrictions 
- *          of the Mozilla Public License 1.1
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
  *
  * This is the private header containing definitions that are not
  * use by a libzzip user application. Writing an extension lib that

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzip/memdisk.c
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/memdisk.c	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/memdisk.c	2017-06-20 00:49:02 UTC (rev 44647)
@@ -16,12 +16,7 @@
  * Author:
  *    Guido Draheim <guidod at gmx.de>
  *
- * Copyright (c) 1999,2000,2001,2002,2003 Guido Draheim
- *          All rights reserved,
- *          use under the restrictions of the
- *          Lesser GNU General Public License
- *          or alternatively the restrictions
- *          of the Mozilla Public License 1.1
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
  */
 #define _ZZIP_DISK_FILE_STRUCT 1
 
@@ -42,6 +37,19 @@
 #define ___ {
 #define ____ }
 
+#define DEBUG 1
+#ifdef DEBUG
+#define debug1(msg) do { fprintf(stderr, "%s : " msg "\n", __func__); } while(0)
+#define debug2(msg, arg1) do { fprintf(stderr, "%s : " msg "\n", __func__, arg1); } while(0)
+#define debug3(msg, arg1, arg2) do { fprintf(stderr, "%s : " msg "\n", __func__, arg1, arg2); } while(0)
+#define debug4(msg, arg1, arg2, arg3) do { fprintf(stderr, "%s : " msg "\n", __func__, arg1, arg2, arg3); } while(0)
+#else
+#define debug1(msg) 
+#define debug2(msg, arg1) 
+#define debug3(msg, arg1, arg2) 
+#define debug4(msg, arg1, arg2, arg3) 
+#endif
+
 static const char *error[] = {
     "Ok",
 #   define _zzip_mem_disk_open_fail 1
@@ -86,7 +94,10 @@
     if (! disk)
         { perror(error[_zzip_mem_disk_open_fail]); return 0; }
     ___ ZZIP_MEM_DISK *dir = zzip_mem_disk_new();
-    zzip_mem_disk_load(dir, disk);
+    if (zzip_mem_disk_load(dir, disk) == -1)
+    {
+       debug2("unable to load disk %s", filename);
+    }
     return dir;
     ____;
 }
@@ -136,7 +147,10 @@
     {
         ZZIP_MEM_ENTRY *item = zzip_mem_entry_new(disk, entry);
         if (! item)
+        {
+            debug1("unable to load entry");
             goto error;
+        }
         if (dir->last)
         {
             dir->last->zz_next = item;  /* chain last */
@@ -161,7 +175,7 @@
  * in the zip archive. This is a good place to extend functionality if
  * you have a project with extra requirements as you can push more bits
  * right into the diskdir_entry for later usage in higher layers.
- * returns: new item, or null on error (setting errno)
+ * returns: new item, or null on error (setting errno =  ENOMEM|EBADMSG)
  */
 zzip__new__ ZZIP_MEM_ENTRY *
 zzip_mem_entry_new(ZZIP_DISK * disk, ZZIP_DISK_ENTRY * entry)
@@ -173,6 +187,12 @@
         return 0;               /* errno=ENOMEM; */
     ___ struct zzip_file_header *header =
         zzip_disk_entry_to_file_header(disk, entry);
+    if (! header) 
+    {
+        debug1("no header in entry");
+        free (item);
+        return 0; /* errno=EBADMSG; */
+    }
     /*  there is a number of duplicated information in the file header
      *  or the disk entry block. Theoretically some part may be missing
      *  that exists in the other, ... but we will prefer the disk entry.
@@ -189,27 +209,40 @@
     item->zz_diskstart = zzip_disk_entry_get_diskstart(entry);
     item->zz_filetype = zzip_disk_entry_get_filetype(entry);
 
-    {                           /* copy the extra blocks to memory as well */
-        int /*            */ ext1 = zzip_disk_entry_get_extras(entry);
-        char *_zzip_restrict ptr1 = zzip_disk_entry_to_extras(entry);
-        int /*            */ ext2 = zzip_file_header_get_extras(header);
-        char *_zzip_restrict ptr2 = zzip_file_header_to_extras(header);
+    /* zz_comment and zz_name are empty strings if not present on disk */
+    if (! item->zz_comment || ! item->zz_name)
+    {
+        goto error; /* errno=ENOMEM */
+    }
 
-        if (ext1)
+    {   /* copy the extra blocks to memory as well (maximum 64K each) */
+        zzip_size_t /*    */ ext1_len = zzip_disk_entry_get_extras(entry);
+        char *_zzip_restrict ext1_ptr = zzip_disk_entry_to_extras(entry);
+        zzip_size_t /*    */ ext2_len = zzip_file_header_get_extras(header);
+        char *_zzip_restrict ext2_ptr = zzip_file_header_to_extras(header);
+
+        if (ext1_ptr + ext1_len >= disk->endbuf ||
+            ext2_ptr + ext2_len >= disk->endbuf)
         {
-            void *mem = malloc(ext1 + 2);
+            errno = EBADMSG; /* format error CVE-2017-5978 */
+            goto error; /* zzip_mem_entry_free(item); return 0; */
+        }
+
+        if (ext1_len)
+        {
+            void *mem = malloc(ext1_len);
+            if (! mem) goto error; /* errno = ENOMEM */
             item->zz_ext[1] = mem;
-            memcpy(mem, ptr1, ext1);
-            ((char *) (mem))[ext1 + 0] = 0;
-            ((char *) (mem))[ext1 + 1] = 0;
+            item->zz_extlen[1] = ext1_len;
+            memcpy(mem, ext1_ptr, ext1_len);
         }
-        if (ext2)
+        if (ext2_len)
         {
-            void *mem = malloc(ext2 + 2);
+            void *mem = malloc(ext2_len);
+            if (! mem) goto error; /* errno = ENOMEM */
             item->zz_ext[2] = mem;
-            memcpy(mem, ptr2, ext2);
-            ((char *) (mem))[ext2 + 0] = 0;
-            ((char *) (mem))[ext2 + 1] = 0;
+            item->zz_extlen[2] = ext2_len;
+            memcpy(mem, ext2_ptr, ext2_len);
         }
     }
     {
@@ -218,10 +251,10 @@
             zzip_mem_entry_extra_block(item, ZZIP_EXTRA_zip64);
         if (block)
         {
-            item->zz_usize = __zzip_get64(block->z_usize);
-            item->zz_csize = __zzip_get64(block->z_csize);
-            item->zz_offset = __zzip_get64(block->z_offset);
-            item->zz_diskstart = __zzip_get32(block->z_diskstart);
+            item->zz_usize = ZZIP_GET64(block->z_usize);
+            item->zz_csize = ZZIP_GET64(block->z_csize);
+            item->zz_offset = ZZIP_GET64(block->z_offset);
+            item->zz_diskstart = ZZIP_GET32(block->z_diskstart);
         }
     }
     /* NOTE:
@@ -230,11 +263,15 @@
      */
     return item;
     ____;
+error:
+    zzip_mem_entry_free(item);
+    return 0;
     ____;
 }
 
 /* find an extra block for the given datatype code.
- * We assume that the central directory has been preparsed to memory.
+ * The returned EXTRA_BLOCK is still in disk-encoding but
+ * already a pointer into an allocated heap space block.
  */
 ZZIP_EXTRA_BLOCK *
 zzip_mem_entry_extra_block(ZZIP_MEM_ENTRY * entry, short datatype)
@@ -242,19 +279,20 @@
     int i = 2;
     while (1)
     {
-        ZZIP_EXTRA_BLOCK *ext = entry->zz_ext[i];
+        char* ext = (char*)( entry->zz_ext[i] );
+        char* ext_end = ext + entry->zz_extlen[i];
         if (ext)
         {
-            while (*(short *) (ext->z_datatype))
+            while (ext + zzip_extra_block_headerlength <= ext_end)
             {
                 if (datatype == zzip_extra_block_get_datatype(ext))
                 {
-                    return ext;
+                    return ((ZZIP_EXTRA_BLOCK*) ext);
                 }
-                ___ char *e = (char *) ext;
-                e += zzip_extra_block_headerlength;
-                e += zzip_extra_block_get_datasize(ext);
-                ext = (void *) e;
+                /* skip to start of next extra_block */
+                ___ zzip_size_t datasize = zzip_extra_block_get_datasize(ext);
+                ext += zzip_extra_block_headerlength;
+                ext += datasize;
                 ____;
             }
         }
@@ -310,6 +348,7 @@
 static void
 foo(short zz_datatype)
 {
+    /* Header IDs of 0 thru 31 are reserved for use by PKWARE.(APPNOTE.TXT) */
     switch (zz_datatype)
     {
     /* *INDENT-OFF* */
@@ -328,6 +367,7 @@
     case 0x0017: /* Strong Encryption Header */
     case 0x0018: /* Record Management Controls */
     case 0x0019: /* PKCS#7 Encryption Recipient Certificate List */
+    /* ......................................................... */
     case 0x0065: /* IBM S/390, AS/400 attributes - uncompressed */
     case 0x0066: /* Reserved for IBM S/390, AS/400 attr - compressed */
     case 0x07c8: /* Macintosh */

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzip/memdisk.h
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/memdisk.h	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/memdisk.h	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,7 +1,11 @@
 #ifndef __ZZIP_MEMDISK_H
 #define __ZZIP_MEMDISK_H
 
-/* NOTE: this is part of libzzipmmapped (i.e. it is not libzzip). */
+/*
+ * NOTE: this is part of libzzipmmapped (i.e. it is not libzzip).
+ *
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
+ */
 
 #include <zzip/types.h>
 #include <zzip/mmapped.h>
@@ -65,8 +69,9 @@
     int              zz_diskstart; /* (from "z_diskstart") rridden by zip64 */
     int              zz_filetype;  /* (from "z_filetype") */
     char*            zz_comment;   /* zero-terminated (from "comment") */
-    ZZIP_EXTRA_BLOCK* zz_ext[3];   /* terminated by null in z_datatype */
-};                                 /* the extra blocks are NOT converted */
+    ZZIP_EXTRA_BLOCK* zz_ext[3];    /* terminated by null in z_datatype */
+    zzip_size_t       zz_extlen[3]; /* the extra blocks are NOT converted */
+};                                
 
 #define _zzip_mem_disk_findfirst(_d_) ((_d_)->list)
 #define _zzip_mem_disk_findnext(_d_,_e_) (!(_e_)?(_d_)->list:(_e_)->zz_next)

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzip/mmapped.c
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/mmapped.c	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/mmapped.c	2017-06-20 00:49:02 UTC (rev 44647)
@@ -18,12 +18,7 @@
  * Author:
  *      Guido Draheim <guidod at gmx.de>
  *
- * Copyright (c) 2003,2004,2006 Guido Draheim
- *          All rights reserved,
- *          use under the restrictions of the
- *          Lesser GNU General Public License
- *          or alternatively the restrictions
- *          of the Mozilla Public License 1.1
+ * Copyright (c)Guido Draheim, use under copyleft (LGPL,MPL)
  */
 
 #define _ZZIP_DISK_FILE_STRUCT 1
@@ -62,8 +57,22 @@
 #define ____ }
 #endif
 
+#ifdef DEBUG
+#define debug1(msg) do { fprintf(stderr, "%s : " msg "\n", __func__); } while(0)
+#define debug2(msg, arg1) do { fprintf(stderr, "%s : " msg "\n", __func__, arg1); } while(0)
+#define debug3(msg, arg1, arg2) do { fprintf(stderr, "%s : " msg "\n", __func__, arg1, arg2); } while(0)
+#define debug4(msg, arg1, arg2, arg3) do { fprintf(stderr, "%s : " msg "\n", __func__, arg1, arg2, arg3); } while(0)
+#else
+#define debug1(msg) 
+#define debug2(msg, arg1) 
+#define debug3(msg, arg1, arg2) 
+#define debug4(msg, arg1, arg2, arg3) 
+#endif
+
 /** => zzip_disk_mmap
  * This function does primary initialization of a disk-buffer struct.
+ * 
+ * This function always returns 0 as success.
  */
 int
 zzip_disk_init(ZZIP_DISK * disk, void *buffer, zzip_size_t buflen)
@@ -80,6 +89,8 @@
 
 /** => zzip_disk_mmap
  * This function allocates a new disk-buffer with => malloc(3)
+ *
+ * This function may return null on errors (errno).
  */
 zzip__new__ ZZIP_DISK *
 zzip_disk_new(void)
@@ -86,7 +97,7 @@
 {
     ZZIP_DISK *disk = malloc(sizeof(ZZIP_DISK));
     if (! disk)
-        return disk;
+        return disk; /* ENOMEM */
     zzip_disk_init(disk, 0, 0);
     return disk;
 }
@@ -97,6 +108,8 @@
  * file and calls the system => mmap(2) to put it in main memory. If it is
  * successful then a newly allocated ZZIP_DISK* is returned with
  * disk->buffer pointing to the mapview of the zipdisk content.
+ *
+ * This function may return null on errors (errno).
  */
 zzip__new__ ZZIP_DISK *
 zzip_disk_mmap(int fd)
@@ -103,13 +116,16 @@
 {
     struct stat st;
     if (fstat(fd, &st) || ! st.st_size)
-        return 0;
+        return 0; /* EACCESS */
     ___ ZZIP_DISK *disk = zzip_disk_new();
     if (! disk)
-        return 0;
+        return 0; /* ENOMEM */
     disk->buffer = _zzip_mmap(disk->mapped, fd, 0, st.st_size);
     if (disk->buffer == MAP_FAILED)
-        { free (disk); return 0; }
+    { 
+        free (disk); 
+        return 0; /* EFAULT */
+    }
     disk->endbuf = disk->buffer + st.st_size;
     return disk;
     ____;
@@ -136,6 +152,8 @@
  * be => mmap(2)'ed then we slurp the whole file into a newly => malloc(2)'ed
  * memory block. Only if that fails too then we return null. Since handling
  * of disk->buffer is ambigous it should not be snatched away please.
+ *
+ * This function may return null on errors (errno).
  */
 zzip__new__ ZZIP_DISK *
 zzip_disk_open(char *filename)
@@ -145,26 +163,33 @@
 #  endif
     struct stat st;
     if (stat(filename, &st) || ! st.st_size)
-        return 0;
+        return 0; /* ENOENT */
     ___ int fd = open(filename, O_RDONLY | O_BINARY);
     if (fd <= 0)
-        return 0;
+        return 0; /* EACCESS */
     ___ ZZIP_DISK *disk = zzip_disk_mmap(fd);
     if (disk)
         return disk;
     ___ zzip_byte_t *buffer = malloc(st.st_size);
     if (! buffer)
-        return 0;
-    if ((st.st_size == read(fd, buffer, st.st_size)) &&
-        (disk = zzip_disk_new()))
     {
-        disk->buffer = buffer;
-        disk->endbuf = buffer + st.st_size;
-        disk->mapped = -1;
-        disk->flags |= ZZIP_DISK_FLAGS_OWNED_BUFFER;
-    } else {
-        free(buffer);
+        return 0; /* ENOMEM */
     }
+    if ((st.st_size < read(fd, buffer, st.st_size)))
+    {
+        free (buffer);
+        return 0; /* EIO */
+    }
+    disk = zzip_disk_new();
+    if (! disk)
+    {
+        free (buffer);
+        return 0; /* ENOMEM */
+    }
+    disk->buffer = buffer;
+    disk->endbuf = buffer + st.st_size;
+    disk->mapped = -1;
+    disk->flags |= ZZIP_DISK_FLAGS_OWNED_BUFFER;
     return disk;
     ____;
     ____;
@@ -179,6 +204,8 @@
  * wrapping a ZZIP_DISK around the memory buffer just as
  * this function will do. Note that this function will not
  * own the buffer, it will neither be written nor free()d.
+ *
+ * This function may return null (errno).
  */
 zzip__new__ ZZIP_DISK *
 zzip_disk_buffer(void *buffer, size_t buflen) {
@@ -197,6 +224,8 @@
  * This function will release all data needed to access a (mmapped)
  * zip archive, including any malloc()ed blocks, sharedmem mappings
  * and it dumps the handle struct as well.
+ *
+ * This function returns 0 on sucess (or whatever => munmap says).
  */
 int
 zzip_disk_close(ZZIP_DISK * disk)
@@ -268,28 +297,41 @@
  * a disk_entry pointer (as returned by _find* functions) into a pointer to
  * the data block right after the file_header. Only disk->buffer would be
  * needed to perform the seek but we check the mmapped range end as well.
+ *
+ * This function returns a pointer into disk->buffer or 0 on error (errno).
  */
 zzip_byte_t *
 zzip_disk_entry_to_data(ZZIP_DISK * disk, struct zzip_disk_entry * entry)
 {
     struct zzip_file_header *file = zzip_disk_entry_to_file_header(disk, entry);
-    if (file)
-        return zzip_file_header_to_data(file);
-    return 0;
+    if (! file)
+        return 0; /* EBADMSG */
+    return zzip_file_header_to_data(file);
 }
 
 /** => zzip_disk_entry_to_data
  * This function does half the job of => zzip_disk_entry_to_data where it
  * can augment with => zzip_file_header_to_data helper from format/fetch.h
+ *
+ * This function returns a pointer into disk->buffer or 0 on error (errno).
  */
 struct zzip_file_header *
 zzip_disk_entry_to_file_header(ZZIP_DISK * disk, struct zzip_disk_entry *entry)
 {
-    zzip_byte_t *file_header =  /* (struct zzip_file_header*) */
-        (disk->buffer + zzip_disk_entry_fileoffset(entry));
-    if (disk->buffer > file_header || file_header >= disk->endbuf)
+    zzip_byte_t *const ptr = disk->buffer + zzip_disk_entry_fileoffset(entry);
+    if (disk->buffer > ptr || ptr >= disk->endbuf)
+    {
+        errno = EBADMSG;
         return 0;
-    return (struct zzip_file_header *) file_header;
+    }
+    ___  struct zzip_file_header *file_header = (void *) ptr;
+    if (zzip_file_header_get_magic(file_header) != ZZIP_FILE_HEADER_MAGIC)
+    {
+        errno = EBADMSG;
+        return 0;
+    }
+    return file_header;
+    ____;
 }
 
 /** => zzip_disk_entry_to_data
@@ -298,29 +340,48 @@
  * with libc we need it that way. Secondly, the filename SHOULD be present
  * in the zip central directory but if not then we fallback to the filename
  * given in the file_header of each compressed data portion.
+ *
+ * This function returns a new string buffer, or null on error.
+ * If no name can be found then an empty string is returned.
  */
 zzip__new__ char *
 zzip_disk_entry_strdup_name(ZZIP_DISK * disk, struct zzip_disk_entry *entry)
 {
     if (! disk || ! entry)
+    {
+        errno=EINVAL;
         return 0;
+    }
 
-    ___ char *name;
-    zzip_size_t len;
-    struct zzip_file_header *file;
-    if ((len = zzip_disk_entry_namlen(entry)))
+    ___ char *name = 0;
+    zzip_size_t len = len = zzip_disk_entry_namlen(entry);
+    if (len)
+    {
         name = zzip_disk_entry_to_filename(entry);
-    else if ((file = zzip_disk_entry_to_file_header(disk, entry)) &&
-             (len = zzip_file_header_namlen(file)))
-        name = zzip_file_header_to_filename(file);
+    }
     else
-        return 0;
+    {
+        struct zzip_file_header *file = zzip_disk_entry_to_file_header(disk, entry);
+        if (! file)
+           return 0; /* EBADMSG */
 
+        len = zzip_file_header_namlen(file);
+        if (! len)
+        {
+            /* neither a name in disk_entry nor in file_header */
+            return strdup(""); /* ENOMEM */
+        }
+        name = zzip_file_header_to_filename(file);
+    }
+
     if ((zzip_byte_t *) name < disk->buffer ||
         (zzip_byte_t *) name + len > disk->endbuf)
+    {
+        errno=EBADMSG;
         return 0;
+    }
 
-    return _zzip_strndup(name, len);
+    return _zzip_strndup(name, len); /* ENOMEM */
     ____;
 }
 
@@ -327,26 +388,36 @@
 /** => zzip_disk_entry_to_data
  * This function is similar creating a reference to a zero terminated
  * string but it can only exist in the zip central directory entry.
+ *
+ * This function returns a new string buffer, or null on error (errno).
+ * If no name can be found then an empty string is returned.
  */
 zzip__new__ char *
 zzip_disk_entry_strdup_comment(ZZIP_DISK * disk, struct zzip_disk_entry *entry)
 {
     if (! disk || ! entry)
+    {
+        errno = EINVAL;
         return 0;
+    }
 
-    ___ char *text;
-    zzip_size_t len;
-    if ((len = zzip_disk_entry_comment(entry)))
-        text = zzip_disk_entry_to_comment(entry);
-    else
-        return 0;
+    ___ zzip_size_t len = zzip_disk_entry_comment(entry);
+    if (! len)
+    {
+        return strdup(""); /* ENOMEM */
+    }
 
+    ___ char *text = zzip_disk_entry_to_comment(entry);
     if ((zzip_byte_t *) text < disk->buffer ||
-        (zzip_byte_t *) text + len > disk->endbuf)
+        (zzip_byte_t *) text + len > disk->endbuf) 
+    {
+        errno = EBADMSG;
         return 0;
+    }
 
-    return _zzip_strndup(text, len);
+    return _zzip_strndup(text, len); /* ENOMEM */
     ____;
+    ____;
 }
 
 /* ====================================================================== */
@@ -376,13 +447,25 @@
  * accept a disk_trailer with a seekvalue that points to a disk_entry and
  * both parts have valid PK-magic parts. Beyond some sanity check we try to
  * catch a common brokeness with zip archives that still allows us to find
- * the start of the zip central directory.
+ * the start of the zip central directory.So this function may return null
+ * and sets errno.
  */
 struct zzip_disk_entry *
 zzip_disk_findfirst(ZZIP_DISK * disk)
 {
+    debug1("findfirst");
+    if (! disk)
+    {
+        debug1("non arg");
+        errno = EINVAL;
+        return 0;
+    }
     if (disk->buffer > disk->endbuf - sizeof(struct zzip_disk_trailer))
+    {
+        debug1("not enough data for a disk trailer");
+        errno = EBADMSG;
         return 0;
+    }
     ___ zzip_byte_t *p = disk->endbuf - sizeof(struct zzip_disk_trailer);
     for (; p >= disk->buffer; p--)
     {
@@ -390,11 +473,14 @@
         if (zzip_disk_trailer_check_magic(p))
         {
             struct zzip_disk_trailer *trailer = (struct zzip_disk_trailer *) p;
-            root = disk->buffer + zzip_disk_trailer_get_rootseek(trailer);
+            zzip_size_t rootseek = zzip_disk_trailer_get_rootseek(trailer);
+            root = disk->buffer + rootseek;
+            debug2("disk rootseek at %lli", (long long)rootseek);
             if (root > p)
             {
                 /* the first disk_entry is after the disk_trailer? can't be! */
                 zzip_size_t rootsize = zzip_disk_trailer_get_rootsize(trailer);
+                debug2("have rootsize at %lli", (long long)rootsize);
                 if (disk->buffer + rootsize > p)
                     continue;
                 /* a common brokeness that can be fixed: we just assume the
@@ -406,8 +492,14 @@
             struct zzip_disk64_trailer *trailer =
                 (struct zzip_disk64_trailer *) p;
             if (sizeof(void *) < 8)
-                return 0;       /* EOVERFLOW */
-            root = disk->buffer + zzip_disk64_trailer_get_rootseek(trailer);
+            {
+                debug1("disk64 trailer in non-largefile part");
+                errno = EFBIG;
+                return 0;
+            }
+            zzip_size_t rootseek = zzip_disk64_trailer_get_rootseek(trailer);
+            debug2("disk64 rootseek at %lli", (long long)rootseek);
+            root = disk->buffer + rootseek;
             if (root > p)
                 continue;
         } else
@@ -415,11 +507,21 @@
             continue;
         }
 
+        debug4("buffer %p root %p endbuf %p", disk->buffer, root, disk->endbuf);
         if (root < disk->buffer)
-            continue;
+        {
+            debug1("root before buffer should be impossible");
+            errno = EBADMSG;
+            return 0;
+        }
         if (zzip_disk_entry_check_magic(root))
+        {
+            debug1("found the disk root");
             return (struct zzip_disk_entry *) root;
+        }
     } ____;
+    /* not found */
+    errno = ENOENT;
     return 0;
 }
 
@@ -428,23 +530,36 @@
  * This function takes an existing disk_entry in the central root directory
  * (e.g. from zzip_disk_findfirst) and returns the next entry within in
  * the given bounds of the mmapped file area.
+ *
+ * This function returns null if no next entry can be found.
+ * This function may return null on errors. (errno = ENOENT|EINVAL|EBADMSG)
  */
 struct zzip_disk_entry *
 zzip_disk_findnext(ZZIP_DISK * disk, struct zzip_disk_entry *entry)
 {
+    if (! disk || ! entry)
+    {
+        errno = EINVAL;
+        return 0;
+    }
     if ((zzip_byte_t *) entry < disk->buffer ||
         (zzip_byte_t *) entry > disk->endbuf - sizeof(entry) ||
         ! zzip_disk_entry_check_magic(entry) ||
         zzip_disk_entry_sizeto_end(entry) > 64 * 1024)
+    {
+        errno = EBADMSG;
         return 0;
+    }
     entry = zzip_disk_entry_to_next_entry(entry);
     if ((zzip_byte_t *) entry > disk->endbuf - sizeof(entry) ||
         ! zzip_disk_entry_check_magic(entry) ||
         zzip_disk_entry_sizeto_end(entry) > 64 * 1024 ||
         zzip_disk_entry_skipto_end(entry) + sizeof(entry) > disk->endbuf)
+    {
+        errno = ENOENT;
         return 0;
-    else
-        return entry;
+    }
+    return entry;
 }
 
 /** search for files in the (mmapped) zip central directory
@@ -456,6 +571,9 @@
  * matching entry, otherwise the last returned value if you look for other
  * entries with a special "compare" function (if null then a doubled search
  * is rather useless with this variant of _findfile).
+ *
+ * This functionreturns the entry pointer.
+ * This function may return null on error. (errno = ENOMEM|EBADMSG|ENOENT)
  */
 struct zzip_disk_entry *
 zzip_disk_findfile(ZZIP_DISK * disk, char *filename,
@@ -470,13 +588,18 @@
     {
         /* filenames within zip files are often not null-terminated! */
         char *realname = zzip_disk_entry_strdup_name(disk, entry);
-        if (realname && ! compare(filename, realname))
+        if (! realname)
         {
+            return 0; /* ENOMEM | EBADMSG */
+        }
+        if (! compare(filename, realname))
+        {
             free(realname);
-            return entry;
+            return entry; /* found */
         }
         free(realname);
     }
+    errno = ENOENT;
     return 0;
 }
 
@@ -492,6 +615,9 @@
  * - use null as argument for "after"-entry when searching the first
  * matching entry, or the last disk_entry return-value to find the
  * next entry matching the given filespec.
+ *
+ * This function will return the matching entry pointer.
+ * This function may return null on error. (errno = ENOMEM|EBADMSG|ENOENT)
  */
 struct zzip_disk_entry *
 zzip_disk_findmatch(ZZIP_DISK * disk, char *filespec,
@@ -510,13 +636,18 @@
     {
         /* filenames within zip files are often not null-terminated! */
         char *realname = zzip_disk_entry_strdup_name(disk, entry);
-        if (realname && ! compare(filespec, realname, flags))
+        if (! realname)
         {
+            return 0; /* ENOMEM | EBADMSG */
+        }
+        if (compare(filespec, realname, flags))
+        {
             free(realname);
-            return entry;
+            return entry; /* found */
         }
         free(realname);
     }
+    errno = ENOENT;
     return 0;
 }
 
@@ -532,6 +663,8 @@
  * information is memorized on the ZZIP_DISK_FILE so that subsequent
  * _read() operations will be able to get the next data portion or
  * return an eof condition for that file part wrapped in the zip archive.
+ *
+ * This function may return null on errors (errno = ENOMEM|EBADMSG).
  */
 zzip__new__ ZZIP_DISK_FILE *
 zzip_disk_entry_fopen(ZZIP_DISK * disk, ZZIP_DISK_ENTRY * entry)
@@ -540,10 +673,10 @@
     struct zzip_file_header *header =
         zzip_disk_entry_to_file_header(disk, entry);
     if (! header)
-        return 0;
+        return 0; /* EBADMSG */
     ___ ZZIP_DISK_FILE *file = malloc(sizeof(ZZIP_DISK_FILE));
     if (! file)
-        return file;
+        return 0; /* ENOMEM */
     file->buffer = disk->buffer;
     file->endbuf = disk->endbuf;
     file->avail = zzip_file_header_usize(header);
@@ -560,7 +693,11 @@
 
     if (! zzip_file_header_data_deflated(header) ||
         inflateInit2(&file->zlib, -MAX_WBITS) != Z_OK)
-        { free (file); return 0; }
+    {
+        free (file);
+        errno = EBADMSG;
+        return 0; 
+    }
 
     return file;
     ____;
@@ -571,6 +708,8 @@
  * This function opens a file found by name, so it does a search into
  * the zip central directory with => zzip_disk_findfile and whatever
  * is found first is given to => zzip_disk_entry_fopen
+ *
+ * This function may return null on errors (errno).
  */
 zzip__new__ ZZIP_DISK_FILE *
 zzip_disk_fopen(ZZIP_DISK * disk, char *filename)
@@ -577,12 +716,10 @@
 {
     ZZIP_DISK_ENTRY *entry = zzip_disk_findfile(disk, filename, 0, 0);
     if (! entry)
-        return 0;
-    else
-        return zzip_disk_entry_fopen(disk, entry);
+        return 0; /* EBADMSG */
+    return zzip_disk_entry_fopen(disk, entry);
 }
 
-
 /** => zzip_disk_fopen
  *
  * This function reads more bytes into the output buffer specified as
@@ -595,6 +732,8 @@
                 ZZIP_DISK_FILE * file)
 {
     zzip_size_t size = sized * nmemb;
+    if (! ptr || ! sized || ! file)
+        return 0;
     if (size > file->avail)
         size = file->avail;
     if (file->stored)
@@ -623,13 +762,18 @@
 /** => zzip_disk_fopen
  * This function releases any zlib decoder info needed for decompression
  * and dumps the ZZIP_DISK_FILE* then.
+ *
+ * This function always returns 0.
  */
 int
 zzip_disk_fclose(ZZIP_DISK_FILE * file)
 {
-    if (! file->stored)
-        inflateEnd(&file->zlib);
-    free(file);
+    if (file)
+    {
+        if (! file->stored)
+            inflateEnd(&file->zlib);
+        free(file);
+    }
     return 0;
 }
 
@@ -638,9 +782,14 @@
  * This function allows to distinguish an error from an eof condition.
  * Actually, if we found an error but we did already reach eof then we
  * just keep on saying that it was an eof, so the app can just continue.
+ *
+ * This function returns EOF in case and 0 when not at the end
+ * of file.
  */
 int
 zzip_disk_feof(ZZIP_DISK_FILE * file)
 {
-    return ! file || ! file->avail;
+    if (! file || ! file->avail)
+        return EOF;
+    return 0;
 }

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzip/mmapped.h
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/mmapped.h	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/mmapped.h	2017-06-20 00:49:02 UTC (rev 44647)
@@ -8,12 +8,7 @@
  * Author:
  *      Guido Draheim <guidod at gmx.de>
  *
- * Copyright (c) 2003,2004 Guido Draheim
- *          All rights reserved,
- *          use under the restrictions of the
- *          Lesser GNU General Public License
- *          or alternatively the restrictions
- *          of the Mozilla Public License 1.1
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
  */
 
 

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzip/plugin.c
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/plugin.c	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/plugin.c	2017-06-20 00:49:02 UTC (rev 44647)
@@ -4,12 +4,7 @@
  *	Guido Draheim <guidod at gmx.de>
  *      Mike Nordell <tamlin- at -algonet-se>
  *
- * Copyright (c) 2002,2003 Guido Draheim
- * 	    All rights reserved,
- *	    use under the restrictions of the
- *	    Lesser GNU General Public License
- *          or alternatively the restrictions 
- *          of the Mozilla Public License 1.1
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
  */
 
 #include <zzip/lib.h>

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzip/plugin.h
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/plugin.h	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/plugin.h	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,13 +1,8 @@
 /*
  * Author: 
- *	Guido Draheim <guidod at gmx.de>
+ *     Guido Draheim <guidod at gmx.de>
  *
- * Copyright (c) 2002,2003 Guido Draheim
- * 	    All rights reserved
- *	    use under the restrictions of the
- *	    Lesser GNU General Public License
- *          or alternatively the restrictions 
- *          of the Mozilla Public License 1.1
+ * Copyright (c) Guido Draheim, use under copyleft
  *
  *  the interfaces for the plugin_io system
  *
@@ -97,7 +92,7 @@
 # define ZZIP_IO_USE_MMAP 1
 
 #ifdef __cplusplus
-};
+}
 #endif
 
 #endif

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzip/stat.c
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/stat.c	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/stat.c	2017-06-20 00:49:02 UTC (rev 44647)
@@ -4,12 +4,7 @@
  *	Guido Draheim <guidod at gmx.de>
  *	Tomi Ollila <Tomi.Ollila at iki.fi>
  *
- * Copyright (c) 1999,2000,2001,2002 Guido Draheim
- * 	    All rights reserved,
- *	    use under the restrictions of the
- *	    Lesser GNU General Public License
- *          or alternatively the restrictions 
- *          of the Mozilla Public License 1.1
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
  *
  * Description:
  *      although this file is defining a function called zzip_stat it

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzip/types.h
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/types.h	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/types.h	2017-06-20 00:49:02 UTC (rev 44647)
@@ -5,12 +5,7 @@
  * Author: 
  *	Guido Draheim <guidod at gmx.de>
  *
- *	Copyright (c) 2003,2004 Guido Draheim
- * 	    All rights reserved, 
- *          usage allowed under the restrictions of the
- *	    Lesser GNU General Public License 
- *          or alternatively the restrictions 
- *          of the Mozilla Public License 1.1
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
  *
  * This file is usually the first to define some real symbols. If you do
  * see some errors here then it is most likely the includepath is wrong

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzip/write.c
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/write.c	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/write.c	2017-06-20 00:49:02 UTC (rev 44647)
@@ -17,12 +17,7 @@
  * Author: 
  *      Guido Draheim <guidod at gmx.de>
  *
- * Copyright (c) 2003 Guido Draheim
- *          All rights reserved,
- *          use under the restrictions of the
- *          Lesser GNU General Public License
- *          or alternatively the restrictions 
- *          of the Mozilla Public License 1.1
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
  */
 
 #define _ZZIP_WRITE_SOURCE

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzip/write.h
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/write.h	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/write.h	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,12 +1,13 @@
 #ifndef _ZZIP_WRITE_H
 #define _ZZIP_WRITE_H
+/*
+ * Example code. write support is not yet implemented.
+ *
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
+ */
 
 #include <zzip/lib.h>
 
-/* ........................................................................
- * write support is not yet implemented
- * zzip/write.c
- */
 #define ZZIP_NO_CREAT 1
 
 ZZIP_DIR*    zzip_dir_creat_ext_io(zzip_char_t* name, int o_mode, 

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzip/zip.c
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/zip.c	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/zip.c	2017-06-20 00:49:02 UTC (rev 44647)
@@ -4,12 +4,7 @@
  *      Guido Draheim <guidod at gmx.de>
  *      Tomi Ollila <too at iki.fi>
  *
- * Copyright (c) 1999,2000,2001,2002,2003 Guido Draheim
- *          All rights reserved,
- *          use under the restrictions of the
- *          Lesser GNU General Public License
- *          or alternatively the restrictions
- *          of the Mozilla Public License 1.1
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
  */
 
 #include <zzip/lib.h>           /* archive handling */

Deleted: trunk/Build/source/libs/zziplib/zziplib-src/zzip/zzip-zlib-config.pc
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/zzip-zlib-config.pc	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/zzip-zlib-config.pc	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,8 +0,0 @@
-zlib_libs= -lz
-zlib_cflags=
- 
-Name: zzip-zlib-config
-Version: 1.2.5
-Description: ZLib Config (for ZZipLib)
-Libs: ${zlib_libs}
-Cflags: ${zlib_cflags}

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzip/zzip.h
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/zzip.h	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/zzip.h	2017-06-20 00:49:02 UTC (rev 44647)
@@ -3,12 +3,7 @@
  *	Guido Draheim <guidod at gmx.de>
  *	Tomi Ollila <Tomi.Ollila at iki.fi>
  *
- *	Copyright (c) 1999,2000,2001,2002,2003,2004 Guido Draheim
- * 	    All rights reserved, 
- *          usage allowed under the restrictions of the
- *	    Lesser GNU General Public License 
- *          or alternatively the restrictions 
- *          of the Mozilla Public License 1.1
+ * Copyright (c) Guido Draheim, use under copyleft (LPGL,MPL)
  *
  * if you see "unknown symbol" errors, check first that `-I ..` is part of
  * your compiler options - a special hint to VC/IDE users who tend to make up
@@ -256,7 +251,7 @@
 /* zzip_file_open_ext_io => zzip_dir_open_ext_io + zzip_file_open */
 
 #ifdef __cplusplus
-};
+}
 #endif
 
 #endif /* _ZZIPLIB_H */

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzip/zzip32.h
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/zzip32.h	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/zzip32.h	2017-06-20 00:49:02 UTC (rev 44647)
@@ -2,12 +2,7 @@
  * Author:
  *      Guido Draheim <guidod at gmx.de>
  *
- *      Copyright (c) 2010 Guido Draheim
- *          All rights reserved,
- *          usage allowed under the restrictions of the
- *          Lesser GNU General Public License
- *          or alternatively the restrictions
- *          of the Mozilla Public License 1.1
+ * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL)
  *
  * The compat32 headers is targeted towards those poor souls who can
  * not compile their application or library with _LARGEFILE_SOURCE but

Deleted: trunk/Build/source/libs/zziplib/zziplib-src/zzip/zzipfseeko.pc
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/zzipfseeko.pc	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/zzipfseeko.pc	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,18 +0,0 @@
-# generated by configure / remove this line to disable regeneration
-prefix=/usr/local
-exec_prefix=${prefix}
-bindir=${exec_prefix}/bin
-libdir=${exec_prefix}/lib
-datarootdir=${prefix}/share
-datadir=${datarootdir}
-sysconfdir=${prefix}/etc
-includedir=${prefix}/include
-package=zzipfseeko
-suffix=
-
-Name: zzipfseeko
-Description: ZZipLib - libZ-based ZIP-access Library with an Easy-to-Use API
-Version: 0.13.62
-Requires: zzip-zlib-config
-Libs: -L${libdir}  -lzzipfseeko
-Cflags: -I${includedir} 

Deleted: trunk/Build/source/libs/zziplib/zziplib-src/zzip/zziplib.pc
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/zziplib.pc	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/zziplib.pc	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,18 +0,0 @@
-# generated by configure / remove this line to disable regeneration
-prefix=/usr/local
-exec_prefix=${prefix}
-bindir=${exec_prefix}/bin
-libdir=${exec_prefix}/lib
-datarootdir=${prefix}/share
-datadir=${datarootdir}
-sysconfdir=${prefix}/etc
-includedir=${prefix}/include
-package=zziplib
-suffix=
-
-Name: zziplib
-Description: ZZipLib - libZ-based ZIP-access Library with an Easy-to-Use API
-Version: 0.13.62
-Requires: zzip-zlib-config
-Libs: -L${libdir}  -lzzip
-Cflags: -I${includedir} 

Deleted: trunk/Build/source/libs/zziplib/zziplib-src/zzip/zzipmmapped.pc
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzip/zzipmmapped.pc	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzip/zzipmmapped.pc	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,18 +0,0 @@
-# generated by configure / remove this line to disable regeneration
-prefix=/usr/local
-exec_prefix=${prefix}
-bindir=${exec_prefix}/bin
-libdir=${exec_prefix}/lib
-datarootdir=${prefix}/share
-datadir=${datarootdir}
-sysconfdir=${prefix}/etc
-includedir=${prefix}/include
-package=zzipmmapped
-suffix=
-
-Name: zzipmmapped
-Description: ZZipLib - libZ-based ZIP-access Library with an Easy-to-Use API
-Version: 0.13.62
-Requires: zzip-zlib-config
-Libs: -L${libdir}  -lzzipmmapped
-Cflags: -I${includedir} 

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zziplib.spec
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zziplib.spec	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zziplib.spec	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,13 +1,13 @@
 # norootforbuild
 Summary:      ZZipLib - libZ-based ZIP-access Library with an Easy-to-Use API
 Name:         zziplib
-Version:      0.13.62
+Version:      0.13.65
 Release:      1
 License:      LGPLv2.1+
 Group:        System/Libraries
 URL:          http://zziplib.sf.net
 Vendor:       Guido Draheim <guidod at gmx.de>
-Source0:      http://prdownloads.sf.net/%{name}/%{name}-%{version}.tar.bz2
+Source0:      https://github.com/gdraheim/zziplib/archive/v%{version}.tar.gz
 BuildRoot:    /var/tmp/%{name}-%{version}-%{release}
 
 Distribution: Original

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzipwrap/Makefile.in
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzipwrap/Makefile.in	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzipwrap/Makefile.in	2017-06-20 00:49:02 UTC (rev 44647)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -18,6 +17,51 @@
 
 
 VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -39,8 +83,9 @@
 target_triplet = @target@
 noinst_PROGRAMS = zzipwrap$(EXEEXT)
 subdir = zzipwrap
-DIST_COMMON = $(pkgconfig_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(zzip_HEADERS)
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/uses/mkinstalldirs $(top_srcdir)/uses/depcomp \
+	$(pkgconfig_HEADERS) $(zzip_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_compile_check_sizeof.m4 \
 	$(top_srcdir)/m4/ac_set_default_paths_system.m4 \
@@ -53,7 +98,7 @@
 	$(top_srcdir)/m4/ax_check_aligned_access_required.m4 \
 	$(top_srcdir)/m4/ax_configure_args.m4 \
 	$(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \
-	$(top_srcdir)/m4/ax_enable_builddir_uname.m4 \
+	$(top_srcdir)/m4/ax_enable_builddir.m4 \
 	$(top_srcdir)/m4/ax_expand_prefix.m4 \
 	$(top_srcdir)/m4/ax_maintainer_mode_auto_silent.m4 \
 	$(top_srcdir)/m4/ax_not_enable_frame_pointer.m4 \
@@ -98,6 +143,12 @@
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" \
 	"$(DESTDIR)$(zzipdir)"
 LTLIBRARIES = $(lib_LTLIBRARIES)
@@ -104,36 +155,85 @@
 libzzipwrap_la_DEPENDENCIES = ../zzip/libzzip.la
 am_libzzipwrap_la_OBJECTS = wrap.lo
 libzzipwrap_la_OBJECTS = $(am_libzzipwrap_la_OBJECTS)
-libzzipwrap_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-	$(libzzipwrap_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_lt = $(am__v_lt_ at AM_V@)
+am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+libzzipwrap_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(AM_CFLAGS) $(CFLAGS) $(libzzipwrap_la_LDFLAGS) $(LDFLAGS) -o \
+	$@
 PROGRAMS = $(noinst_PROGRAMS)
 zzipwrap_SOURCES = zzipwrap.c
 zzipwrap_OBJECTS = zzipwrap.$(OBJEXT)
 zzipwrap_DEPENDENCIES = libzzipwrap.la ../zzip/libzzip.la
-zzipwrap_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(zzipwrap_LDFLAGS) \
-	$(LDFLAGS) -o $@
+zzipwrap_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(zzipwrap_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 depcomp = $(SHELL) $(top_srcdir)/uses/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_ at AM_V@)
+am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libzzipwrap_la_SOURCES) zzipwrap.c
 DIST_SOURCES = $(libzzipwrap_la_SOURCES) zzipwrap.c
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 HEADERS = $(pkgconfig_HEADERS) $(zzip_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -339,9 +439,9 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
-	test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
 	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
 	list2=; for p in $$list; do \
 	  if test -f $$p; then \
@@ -349,6 +449,8 @@
 	  else :; fi; \
 	done; \
 	test -z "$$list2" || { \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
 	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
 	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
 	}
@@ -364,15 +466,18 @@
 
 clean-libLTLIBRARIES:
 	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
-libzzipwrap.la: $(libzzipwrap_la_OBJECTS) $(libzzipwrap_la_DEPENDENCIES) 
-	$(libzzipwrap_la_LINK) -rpath $(libdir) $(libzzipwrap_la_OBJECTS) $(libzzipwrap_la_LIBADD) $(LIBS)
+	@list='$(lib_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
 
+libzzipwrap.la: $(libzzipwrap_la_OBJECTS) $(libzzipwrap_la_DEPENDENCIES) $(EXTRA_libzzipwrap_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(libzzipwrap_la_LINK) -rpath $(libdir) $(libzzipwrap_la_OBJECTS) $(libzzipwrap_la_LIBADD) $(LIBS)
+
 clean-noinstPROGRAMS:
 	@list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
 	echo " rm -f" $$list; \
@@ -381,9 +486,10 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
-zzipwrap$(EXEEXT): $(zzipwrap_OBJECTS) $(zzipwrap_DEPENDENCIES) 
+
+zzipwrap$(EXEEXT): $(zzipwrap_OBJECTS) $(zzipwrap_DEPENDENCIES) $(EXTRA_zzipwrap_DEPENDENCIES) 
 	@rm -f zzipwrap$(EXEEXT)
-	$(zzipwrap_LINK) $(zzipwrap_OBJECTS) $(zzipwrap_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(zzipwrap_LINK) $(zzipwrap_OBJECTS) $(zzipwrap_LDADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -395,25 +501,25 @@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/zzipwrap.Po at am__quote@
 
 .c.o:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
- at am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -422,8 +528,11 @@
 	-rm -rf .libs _libs
 install-pkgconfigHEADERS: $(pkgconfig_HEADERS)
 	@$(NORMAL_INSTALL)
-	test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)"
 	@list='$(pkgconfig_HEADERS)'; test -n "$(pkgconfigdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \
+	fi; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
@@ -437,13 +546,14 @@
 	@$(NORMAL_UNINSTALL)
 	@list='$(pkgconfig_HEADERS)'; test -n "$(pkgconfigdir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files
+	dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
 install-zzipHEADERS: $(zzip_HEADERS)
 	@$(NORMAL_INSTALL)
-	test -z "$(zzipdir)" || $(MKDIR_P) "$(DESTDIR)$(zzipdir)"
 	@list='$(zzip_HEADERS)'; test -n "$(zzipdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(zzipdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(zzipdir)" || exit 1; \
+	fi; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
@@ -457,30 +567,17 @@
 	@$(NORMAL_UNINSTALL)
 	@list='$(zzip_HEADERS)'; test -n "$(zzipdir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(zzipdir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(zzipdir)" && rm -f $$files
+	dir='$(DESTDIR)$(zzipdir)'; $(am__uninstall_files_from_dir)
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -492,15 +589,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -509,7 +602,22 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
 
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
+
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
@@ -560,10 +668,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
@@ -650,20 +763,21 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libLTLIBRARIES clean-libtool clean-noinstPROGRAMS ctags \
-	distclean distclean-compile distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-libLTLIBRARIES install-man install-pdf \
-	install-pdf-am install-pkgconfigHEADERS install-ps \
-	install-ps-am install-strip install-zzipHEADERS installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-libLTLIBRARIES \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libLTLIBRARIES clean-libtool clean-noinstPROGRAMS \
+	cscopelist-am ctags ctags-am distclean distclean-compile \
+	distclean-generic distclean-libtool distclean-tags distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-dvi install-dvi-am \
+	install-exec install-exec-am install-html install-html-am \
+	install-info install-info-am install-libLTLIBRARIES \
+	install-man install-pdf install-pdf-am \
+	install-pkgconfigHEADERS install-ps install-ps-am \
+	install-strip install-zzipHEADERS installcheck installcheck-am \
+	installdirs maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+	uninstall-am uninstall-libLTLIBRARIES \
 	uninstall-pkgconfigHEADERS uninstall-zzipHEADERS
 
 

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzipwrap/wrap.h
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzipwrap/wrap.h	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzipwrap/wrap.h	2017-06-20 00:49:02 UTC (rev 44647)
@@ -29,7 +29,7 @@
 
 
 #ifdef __cplusplus
-};
+}
 #endif
 
 #endif /* _ZZIPWRAP_H */

Modified: trunk/Build/source/libs/zziplib/zziplib-src/zzipwrap/zzipwrap.pc
===================================================================
--- trunk/Build/source/libs/zziplib/zziplib-src/zzipwrap/zzipwrap.pc	2017-06-20 00:21:11 UTC (rev 44646)
+++ trunk/Build/source/libs/zziplib/zziplib-src/zzipwrap/zzipwrap.pc	2017-06-20 00:49:02 UTC (rev 44647)
@@ -3,7 +3,7 @@
 includedir=/usr/local/include
  
 Name: zzipwrap
-Version: 0.13.62
+Version: 0.13.24
 Description: Callback Wrappers for ZZipLib
 Requires: zziplib
 Libs: -L${libdir} -lzzipwrap



More information about the tex-live-commits mailing list