Compare commits
	
		
			265 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 0c030fc310 | |||
| 5ed7948ed6 | |||
| d28591c2dc | |||
| 
						 | 
					5089329162 | ||
| 
						 | 
					5b5da45640 | ||
| 
						 | 
					2dad5389af | ||
| 
						 | 
					b4d802825a | ||
| 
						 | 
					f5ec26344f | ||
| 
						 | 
					bddc968b14 | ||
| 
						 | 
					5481269e1f | ||
| 
						 | 
					e8fee0ea7b | ||
| 
						 | 
					b7bc388454 | ||
| 
						 | 
					c714072020 | ||
| 
						 | 
					388a285cb8 | ||
| 
						 | 
					139c67fc87 | ||
| 
						 | 
					70252daf89 | ||
| 
						 | 
					9b703f2000 | ||
| 
						 | 
					5d33c62c7d | ||
| 
						 | 
					8a93f49c86 | ||
| 
						 | 
					0b16609409 | ||
| 
						 | 
					f81b79c559 | ||
| 
						 | 
					c661c374e8 | ||
| 
						 | 
					81c3068b9a | ||
| 
						 | 
					d3b613e320 | ||
| 
						 | 
					318a5e190e | ||
| 
						 | 
					e9f0b78443 | ||
| 
						 | 
					0aac8cf7c4 | ||
| 
						 | 
					f0546c8e34 | ||
| 
						 | 
					03ff48cc67 | ||
| 
						 | 
					66fcefbb2f | ||
| 
						 | 
					b06dee4369 | ||
| 
						 | 
					dd5d0940e9 | ||
| 
						 | 
					a2d71e8e66 | ||
| 
						 | 
					bc7e017112 | ||
| 
						 | 
					64a77facc0 | ||
| 
						 | 
					79a7058be4 | ||
| 
						 | 
					63ba7582b8 | ||
| 
						 | 
					00dfee0b2e | ||
| 
						 | 
					27b7723222 | ||
| 
						 | 
					bb97bc9d50 | ||
| 
						 | 
					b116fb588d | ||
| 
						 | 
					5afbdabacd | ||
| 
						 | 
					d211ecdf02 | ||
| 
						 | 
					931aa25aea | ||
| 
						 | 
					51370f3656 | ||
| 
						 | 
					10056909c0 | ||
| 
						 | 
					b6c5057ca1 | ||
| 
						 | 
					b8522e0264 | ||
| 
						 | 
					e69a9ceee0 | ||
| 
						 | 
					c4888637ea | ||
| 
						 | 
					0cf495a1ca | ||
| 
						 | 
					bd143f1c0a | ||
| 
						 | 
					aa566e86c4 | ||
| 
						 | 
					17068938ce | ||
| 
						 | 
					3d9df6ecf8 | ||
| 
						 | 
					a2981775a9 | ||
| 
						 | 
					aa210a1b84 | ||
| 
						 | 
					360c3e9532 | ||
| 
						 | 
					62d6112a79 | ||
| 
						 | 
					fb4e0599a5 | ||
| 
						 | 
					aef4174dd2 | ||
| 
						 | 
					f51cc49c94 | ||
| 
						 | 
					d0c7331258 | ||
| 
						 | 
					486ef7b4b4 | ||
| 
						 | 
					bfac156463 | ||
| 
						 | 
					977e108047 | ||
| 
						 | 
					148b8f630c | ||
| 
						 | 
					a72bcd5607 | ||
| 
						 | 
					f947435b30 | ||
| 
						 | 
					25e4a3da55 | ||
| 
						 | 
					ee026accde | ||
| 
						 | 
					dca9e1d6f3 | ||
| 
						 | 
					eb90f6a568 | ||
| 
						 | 
					0a2c92bc66 | ||
| 
						 | 
					6a181356bd | ||
| 
						 | 
					3a8e3bd9e5 | ||
| 
						 | 
					c58f7ab28d | ||
| 
						 | 
					2689b3cceb | ||
| 
						 | 
					30a1c7065d | ||
| 
						 | 
					1b09651f89 | ||
| 
						 | 
					dee3d4ae36 | ||
| 
						 | 
					4373bac37e | ||
| 
						 | 
					816e34e1b5 | ||
| 
						 | 
					dbcdbf8c41 | ||
| 
						 | 
					6c9bd474aa | ||
| 
						 | 
					1be1179083 | ||
| 
						 | 
					cc538ebf79 | ||
| 
						 | 
					6635b78987 | ||
| 
						 | 
					3fb77ac08b | ||
| 
						 | 
					ba04838a74 | ||
| 
						 | 
					11f4065ea9 | ||
| 
						 | 
					a5d803b7ef | ||
| 
						 | 
					04afd39fcc | ||
| 
						 | 
					2bd5bd78a6 | ||
| 
						 | 
					8e16df2c3f | ||
| 
						 | 
					a1af6e96e3 | ||
| 
						 | 
					2c42538c2e | ||
| 
						 | 
					49b5d79a3b | ||
| 
						 | 
					dbe0bed739 | ||
| 
						 | 
					a3881cc745 | ||
| 
						 | 
					da32fd2892 | ||
| 
						 | 
					50a1738fcb | ||
| 
						 | 
					b18595d4c6 | ||
| 
						 | 
					cb1c1a363e | ||
| 
						 | 
					8dc21b17a6 | ||
| 
						 | 
					9c08a82246 | ||
| 
						 | 
					142f051fb2 | ||
| 
						 | 
					39c7ed14ac | ||
| 
						 | 
					c1e84b258c | ||
| 
						 | 
					cd71ef3021 | ||
| 
						 | 
					ca6e7a0d55 | ||
| 
						 | 
					f8867924c1 | ||
| 
						 | 
					5d5befa4c3 | ||
| 
						 | 
					e076ca8e62 | ||
| 
						 | 
					e2abd78a98 | ||
| 
						 | 
					9f4d9052dc | ||
| 
						 | 
					2cd90d2bf5 | ||
| 
						 | 
					2e04ce0915 | ||
| 
						 | 
					e3ba2a10ca | ||
| 
						 | 
					41a18e1d7e | ||
| 
						 | 
					755c41dc4b | ||
| 
						 | 
					53bfe01cea | ||
| 
						 | 
					dab7531ecc | ||
| 
						 | 
					2547c6c81f | ||
| 
						 | 
					513dfcc00e | ||
| 
						 | 
					05de38d11e | ||
| 
						 | 
					80f3e39eb8 | ||
| 
						 | 
					3f4339b61b | ||
| 
						 | 
					e6d2a8471b | ||
| 
						 | 
					8435052a6b | ||
| 
						 | 
					d63c888039 | ||
| 
						 | 
					10fca844b1 | ||
| 
						 | 
					a75d6ea070 | ||
| 
						 | 
					660103339f | ||
| 
						 | 
					d81e7213b7 | ||
| 
						 | 
					6838df9246 | ||
| 
						 | 
					d1714a57c5 | ||
| 
						 | 
					455adc3029 | ||
| 
						 | 
					eee7b9e576 | ||
| 
						 | 
					5bbdc122ad | ||
| 
						 | 
					72e2c8f088 | ||
| 
						 | 
					94acb3c1a0 | ||
| 
						 | 
					75143f819f | ||
| 
						 | 
					7d45cf5a1d | ||
| 
						 | 
					1a4ba8cd91 | ||
| 
						 | 
					9894494537 | ||
| 
						 | 
					fc68b60086 | ||
| 
						 | 
					2dadd2fab4 | ||
| 
						 | 
					f9e4edc996 | ||
| 
						 | 
					55b8b5fec1 | ||
| 
						 | 
					a8d23bb675 | ||
| 
						 | 
					98e5787e1b | ||
| 
						 | 
					3fb727c34d | ||
| 
						 | 
					5dac2aa007 | ||
| 
						 | 
					7b3f71ba5f | ||
| 
						 | 
					e75de023b6 | ||
| 
						 | 
					68a02240a6 | ||
| 
						 | 
					5461db945c | ||
| 
						 | 
					22eb01184f | ||
| 
						 | 
					8fbd9f1340 | ||
| 
						 | 
					520561c577 | ||
| 
						 | 
					32d8a5379e | ||
| 
						 | 
					f0cff24214 | ||
| 
						 | 
					81015585d2 | ||
| 
						 | 
					ad88c19baa | ||
| 
						 | 
					17741efa02 | ||
| 
						 | 
					de6cb6fe5c | ||
| 
						 | 
					601b542a9d | ||
| 
						 | 
					0458bbf2c0 | ||
| 
						 | 
					06c0e754ce | ||
| 
						 | 
					9cdb49c96e | ||
| 
						 | 
					09bbe4c7f0 | ||
| 
						 | 
					b9a778a2b8 | ||
| 
						 | 
					4a9e4dff0d | ||
| 
						 | 
					5c312df969 | ||
| 
						 | 
					e1f45fed54 | ||
| 
						 | 
					509c1d2860 | ||
| 
						 | 
					2d55657c03 | ||
| 
						 | 
					5a5dd2c793 | ||
| 
						 | 
					eb33abcc55 | ||
| 
						 | 
					ce0ca940c2 | ||
| 
						 | 
					c3799a2480 | ||
| 
						 | 
					0ddfbd2346 | ||
| 
						 | 
					defd366a41 | ||
| 
						 | 
					68f64498c2 | ||
| 
						 | 
					4f5779a8e7 | ||
| 
						 | 
					0b828b4aa6 | ||
| 
						 | 
					8f5eceefe8 | ||
| 
						 | 
					263b1a05b0 | ||
| 
						 | 
					19761b8506 | ||
| 
						 | 
					9d55abc969 | ||
| 
						 | 
					f1ebdd6a9c | ||
| 
						 | 
					bafcad9028 | ||
| 
						 | 
					b745a48f41 | ||
| 
						 | 
					a8bd629c4e | ||
| 
						 | 
					7de4b03b38 | ||
| 
						 | 
					e7289ed5f7 | ||
| 
						 | 
					3d85f02a09 | ||
| 
						 | 
					df60b50769 | ||
| 
						 | 
					fe61dfb8a2 | ||
| 
						 | 
					4ab814df83 | ||
| 
						 | 
					2556706d67 | ||
| 
						 | 
					850a198ff1 | ||
| 
						 | 
					377173b57e | ||
| 
						 | 
					98f5779f42 | ||
| 
						 | 
					70e3b1ca56 | ||
| 
						 | 
					421c7a61f0 | ||
| 
						 | 
					fb00fda903 | ||
| 
						 | 
					afe7cf78d5 | ||
| 
						 | 
					fbac04f666 | ||
| 
						 | 
					014967ace3 | ||
| 
						 | 
					de32a2d749 | ||
| 
						 | 
					383d2cdab7 | ||
| 
						 | 
					1b57de3aef | ||
| 
						 | 
					0cbad869b0 | ||
| 
						 | 
					15b5671b78 | ||
| 
						 | 
					6715208bdb | ||
| 
						 | 
					d169dd7300 | ||
| 
						 | 
					9e50ed8ef1 | ||
| 
						 | 
					e8576790be | ||
| 
						 | 
					6dbf1d1026 | ||
| 
						 | 
					5ab9f47745 | ||
| 
						 | 
					5b48d061c8 | ||
| 
						 | 
					d66a307941 | ||
| 
						 | 
					1bd2fa1b24 | ||
| 
						 | 
					77b47d55f1 | ||
| 
						 | 
					f442c1e89e | ||
| 
						 | 
					518ad0177a | ||
| 
						 | 
					af030e4273 | ||
| 
						 | 
					26a99cd895 | ||
| 
						 | 
					3c9d261809 | ||
| 
						 | 
					be959acf80 | ||
| 
						 | 
					00c836e325 | ||
| 
						 | 
					0956bd23dd | ||
| 
						 | 
					34538d8a93 | ||
| 
						 | 
					64eccafa78 | ||
| 
						 | 
					7142fcfeed | ||
| 
						 | 
					a4f7c65374 | ||
| 
						 | 
					8768ba98af | ||
| 
						 | 
					acfc85772a | ||
| 
						 | 
					8e0d212910 | ||
| 
						 | 
					50e440f081 | ||
| 
						 | 
					5ad116abda | ||
| 
						 | 
					a9ae24b653 | ||
| 
						 | 
					8824da8f01 | ||
| 
						 | 
					0a81dc026c | ||
| 
						 | 
					f32370e542 | ||
| 
						 | 
					1f5827155d | ||
| 
						 | 
					1250ac745d | ||
| 
						 | 
					5cf0930ba5 | ||
| 
						 | 
					faa03d5141 | ||
| 
						 | 
					ae1de165d7 | ||
| 
						 | 
					06223a362e | ||
| 
						 | 
					d07d852bb4 | ||
| 
						 | 
					d6cbbd5c64 | ||
| 
						 | 
					10daf0d4d7 | ||
| 
						 | 
					9712272c78 | ||
| 
						 | 
					7301420248 | ||
| 
						 | 
					a7d70663cf | ||
| 
						 | 
					f4498bea28 | ||
| 
						 | 
					7147f24cd7 | ||
| 
						 | 
					05d47d2627 | ||
| 
						 | 
					a1141160bc | ||
| 
						 | 
					59ca2179ff | ||
| 
						 | 
					67cc20d004 | 
							
								
								
									
										25
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
*.diff
 | 
			
		||||
*.patch
 | 
			
		||||
*.orig
 | 
			
		||||
*.rej
 | 
			
		||||
 | 
			
		||||
*~
 | 
			
		||||
*.a
 | 
			
		||||
*.lo
 | 
			
		||||
*.o
 | 
			
		||||
*.dylib
 | 
			
		||||
 | 
			
		||||
*.gcda
 | 
			
		||||
*.gcno
 | 
			
		||||
*.gcov
 | 
			
		||||
 | 
			
		||||
/example
 | 
			
		||||
/example64
 | 
			
		||||
/examplesh
 | 
			
		||||
/libz.so*
 | 
			
		||||
/minigzip
 | 
			
		||||
/minigzip64
 | 
			
		||||
/minigzipsh
 | 
			
		||||
/zlib.pc
 | 
			
		||||
 | 
			
		||||
.DS_Store
 | 
			
		||||
							
								
								
									
										127
									
								
								CMakeLists.txt
									
									
									
									
									
								
							
							
						
						
									
										127
									
								
								CMakeLists.txt
									
									
									
									
									
								
							@@ -3,9 +3,16 @@ set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON)
 | 
			
		||||
 | 
			
		||||
project(zlib C)
 | 
			
		||||
 | 
			
		||||
if(NOT DEFINED BUILD_SHARED_LIBS)
 | 
			
		||||
    option(BUILD_SHARED_LIBS "Build a shared library form of zlib" ON)
 | 
			
		||||
endif()
 | 
			
		||||
set(VERSION "1.2.8")
 | 
			
		||||
 | 
			
		||||
option(ASM686 "Enable building i686 assembly implementation")
 | 
			
		||||
option(AMD64 "Enable building amd64 assembly implementation")
 | 
			
		||||
 | 
			
		||||
set(INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables")
 | 
			
		||||
set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries")
 | 
			
		||||
set(INSTALL_INC_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers")
 | 
			
		||||
set(INSTALL_MAN_DIR "${CMAKE_INSTALL_PREFIX}/share/man" CACHE PATH "Installation directory for manual pages")
 | 
			
		||||
set(INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_PREFIX}/share/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files")
 | 
			
		||||
 | 
			
		||||
include(CheckTypeSize)
 | 
			
		||||
include(CheckFunctionExists)
 | 
			
		||||
@@ -20,7 +27,7 @@ check_include_file(stddef.h    HAVE_STDDEF_H)
 | 
			
		||||
#
 | 
			
		||||
# Check to see if we have large file support
 | 
			
		||||
#
 | 
			
		||||
set(CMAKE_REQUIRED_DEFINITIONS -D_LARGEFILE64_SOURCE)
 | 
			
		||||
set(CMAKE_REQUIRED_DEFINITIONS -D_LARGEFILE64_SOURCE=1)
 | 
			
		||||
# We add these other definitions here because CheckTypeSize.cmake
 | 
			
		||||
# in CMake 2.4.x does not automatically do so and we want
 | 
			
		||||
# compatibility with CMake 2.4.x.
 | 
			
		||||
@@ -35,7 +42,7 @@ if(HAVE_STDDEF_H)
 | 
			
		||||
endif()
 | 
			
		||||
check_type_size(off64_t OFF64_T)
 | 
			
		||||
if(HAVE_OFF64_T)
 | 
			
		||||
   add_definitions(-D_LARGEFILE64_SOURCE)
 | 
			
		||||
   add_definitions(-D_LARGEFILE64_SOURCE=1)
 | 
			
		||||
endif()
 | 
			
		||||
set(CMAKE_REQUIRED_DEFINITIONS) # clear variable
 | 
			
		||||
 | 
			
		||||
@@ -52,32 +59,31 @@ endif()
 | 
			
		||||
#
 | 
			
		||||
check_include_file(unistd.h Z_HAVE_UNISTD_H)
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Check for errno.h
 | 
			
		||||
check_include_file(errno.h HAVE_ERRNO_H)
 | 
			
		||||
if(NOT HAVE_ERRNO_H)
 | 
			
		||||
   add_definitions(-DNO_ERRNO_H)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if(MSVC)
 | 
			
		||||
    set(CMAKE_DEBUG_POSTFIX "d")
 | 
			
		||||
    add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
 | 
			
		||||
    add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE)
 | 
			
		||||
    include_directories(${CMAKE_CURRENT_SOURCE_DIR})
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if(NOT CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR)
 | 
			
		||||
    # If we're doing an out of source build and the user has a zconf.h
 | 
			
		||||
    # in their source tree...
 | 
			
		||||
    if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h)
 | 
			
		||||
     message(FATAL_ERROR "You must remove zconf.h from the source tree.  This f
 | 
			
		||||
ile is generated by the ./configure script shipped with zlib.  CMake generates t
 | 
			
		||||
his file for you automatically in the build directory")
 | 
			
		||||
        message(STATUS "Renaming")
 | 
			
		||||
        message(STATUS "    ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h")
 | 
			
		||||
        message(STATUS "to 'zconf.h.included' because this file is included with zlib")
 | 
			
		||||
        message(STATUS "but CMake generates it automatically in the build directory.")
 | 
			
		||||
        file(RENAME ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.included)
 | 
			
		||||
  endif()
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.in
 | 
			
		||||
               ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h @ONLY)
 | 
			
		||||
include_directories(${CMAKE_CURRENT_BINARY_DIR})
 | 
			
		||||
set(ZLIB_PC ${CMAKE_CURRENT_BINARY_DIR}/zlib.pc)
 | 
			
		||||
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zlib.pc.cmakein
 | 
			
		||||
		${ZLIB_PC} @ONLY)
 | 
			
		||||
configure_file(	${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.cmakein
 | 
			
		||||
		${CMAKE_CURRENT_BINARY_DIR}/zconf.h @ONLY)
 | 
			
		||||
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#============================================================================
 | 
			
		||||
@@ -85,7 +91,7 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR})
 | 
			
		||||
#============================================================================
 | 
			
		||||
 | 
			
		||||
set(ZLIB_PUBLIC_HDRS
 | 
			
		||||
    zconf.h
 | 
			
		||||
    ${CMAKE_CURRENT_BINARY_DIR}/zconf.h
 | 
			
		||||
    zlib.h
 | 
			
		||||
)
 | 
			
		||||
set(ZLIB_PRIVATE_HDRS
 | 
			
		||||
@@ -115,28 +121,71 @@ set(ZLIB_SRCS
 | 
			
		||||
    trees.c
 | 
			
		||||
    uncompr.c
 | 
			
		||||
    zutil.c
 | 
			
		||||
    win32/zlib1.rc
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
if(NOT MINGW)
 | 
			
		||||
    set(ZLIB_DLL_SRCS
 | 
			
		||||
        win32/zlib1.rc # If present will override custom build rule below.
 | 
			
		||||
    )
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if(CMAKE_COMPILER_IS_GNUCC)
 | 
			
		||||
    if(ASM686)
 | 
			
		||||
        set(ZLIB_ASMS contrib/asm686/match.S)
 | 
			
		||||
    elseif (AMD64)
 | 
			
		||||
        set(ZLIB_ASMS contrib/amd64/amd64-match.S)
 | 
			
		||||
    endif ()
 | 
			
		||||
 | 
			
		||||
	if(ZLIB_ASMS)
 | 
			
		||||
		add_definitions(-DASMV)
 | 
			
		||||
		set_source_files_properties(${ZLIB_ASMS} PROPERTIES LANGUAGE C COMPILE_FLAGS -DNO_UNDERLINE)
 | 
			
		||||
	endif()
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if(MSVC)
 | 
			
		||||
    if(ASM686)
 | 
			
		||||
		ENABLE_LANGUAGE(ASM_MASM)
 | 
			
		||||
        set(ZLIB_ASMS
 | 
			
		||||
			contrib/masmx86/inffas32.asm
 | 
			
		||||
			contrib/masmx86/match686.asm
 | 
			
		||||
		)
 | 
			
		||||
    elseif (AMD64)
 | 
			
		||||
		ENABLE_LANGUAGE(ASM_MASM)
 | 
			
		||||
        set(ZLIB_ASMS
 | 
			
		||||
			contrib/masmx64/gvmat64.asm
 | 
			
		||||
			contrib/masmx64/inffasx64.asm
 | 
			
		||||
		)
 | 
			
		||||
    endif()
 | 
			
		||||
 | 
			
		||||
	if(ZLIB_ASMS)
 | 
			
		||||
		add_definitions(-DASMV -DASMINF)
 | 
			
		||||
	endif()
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
# parse the full version number from zlib.h and include in ZLIB_FULL_VERSION
 | 
			
		||||
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/zlib.h _zlib_h_contents)
 | 
			
		||||
string(REGEX REPLACE ".*#define[ \t]+ZLIB_VERSION[ \t]+\"([0-9A-Za-z.]+)\".*"
 | 
			
		||||
string(REGEX REPLACE ".*#define[ \t]+ZLIB_VERSION[ \t]+\"([-0-9A-Za-z.]+)\".*"
 | 
			
		||||
    "\\1" ZLIB_FULL_VERSION ${_zlib_h_contents})
 | 
			
		||||
 | 
			
		||||
if(MINGW)
 | 
			
		||||
    # This gets us DLL resource information when compiling on MinGW.
 | 
			
		||||
    if(NOT CMAKE_RC_COMPILER)
 | 
			
		||||
        set(CMAKE_RC_COMPILER windres.exe)
 | 
			
		||||
    endif()
 | 
			
		||||
 | 
			
		||||
    add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj
 | 
			
		||||
                       COMMAND windres.exe
 | 
			
		||||
                       COMMAND ${CMAKE_RC_COMPILER}
 | 
			
		||||
                            -D GCC_WINDRES
 | 
			
		||||
                            -I ${CMAKE_CURRENT_SOURCE_DIR}
 | 
			
		||||
                            -I ${CMAKE_CURRENT_BINARY_DIR}
 | 
			
		||||
                            -o ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj
 | 
			
		||||
                            -i ${CMAKE_CURRENT_SOURCE_DIR}/win32/zlib1.rc)
 | 
			
		||||
    set(ZLIB_SRCS ${ZLIB_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj)
 | 
			
		||||
    set(ZLIB_DLL_SRCS ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj)
 | 
			
		||||
endif(MINGW)
 | 
			
		||||
 | 
			
		||||
add_library(zlib ${ZLIB_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
 | 
			
		||||
add_library(zlib SHARED ${ZLIB_SRCS} ${ZLIB_ASMS} ${ZLIB_DLL_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
 | 
			
		||||
add_library(zlibstatic STATIC ${ZLIB_SRCS} ${ZLIB_ASMS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
 | 
			
		||||
set_target_properties(zlib PROPERTIES DEFINE_SYMBOL ZLIB_DLL)
 | 
			
		||||
 | 
			
		||||
set_target_properties(zlib PROPERTIES SOVERSION 1)
 | 
			
		||||
 | 
			
		||||
if(NOT CYGWIN)
 | 
			
		||||
@@ -152,43 +201,49 @@ endif()
 | 
			
		||||
 | 
			
		||||
if(UNIX)
 | 
			
		||||
    # On unix-like platforms the library is almost always called libz
 | 
			
		||||
   set_target_properties(zlib PROPERTIES OUTPUT_NAME z)
 | 
			
		||||
   set_target_properties(zlib zlibstatic PROPERTIES OUTPUT_NAME z)
 | 
			
		||||
   if(NOT APPLE)
 | 
			
		||||
     set_target_properties(zlib PROPERTIES LINK_FLAGS "-Wl,--version-script,\"${CMAKE_CURRENT_SOURCE_DIR}/zlib.map\"")
 | 
			
		||||
   endif()
 | 
			
		||||
elseif(BUILD_SHARED_LIBS AND WIN32)
 | 
			
		||||
    # Creates zlib1.dll when building shared library version
 | 
			
		||||
    set_target_properties(zlib PROPERTIES SUFFIX "1.dll")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL )
 | 
			
		||||
    install(TARGETS zlib
 | 
			
		||||
        RUNTIME DESTINATION bin
 | 
			
		||||
        ARCHIVE DESTINATION lib
 | 
			
		||||
        LIBRARY DESTINATION lib )
 | 
			
		||||
    install(TARGETS zlib zlibstatic
 | 
			
		||||
        RUNTIME DESTINATION "${INSTALL_BIN_DIR}"
 | 
			
		||||
        ARCHIVE DESTINATION "${INSTALL_LIB_DIR}"
 | 
			
		||||
        LIBRARY DESTINATION "${INSTALL_LIB_DIR}" )
 | 
			
		||||
endif()
 | 
			
		||||
if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL )
 | 
			
		||||
    install(FILES ${ZLIB_PUBLIC_HDRS} DESTINATION include)
 | 
			
		||||
    install(FILES ${ZLIB_PUBLIC_HDRS} DESTINATION "${INSTALL_INC_DIR}")
 | 
			
		||||
endif()
 | 
			
		||||
if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL )
 | 
			
		||||
    install(FILES zlib.3 DESTINATION share/man/man3)
 | 
			
		||||
    install(FILES zlib.3 DESTINATION "${INSTALL_MAN_DIR}/man3")
 | 
			
		||||
endif()
 | 
			
		||||
if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL )
 | 
			
		||||
    install(FILES ${ZLIB_PC} DESTINATION "${INSTALL_PKGCONFIG_DIR}")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
#============================================================================
 | 
			
		||||
# Example binaries
 | 
			
		||||
#============================================================================
 | 
			
		||||
 | 
			
		||||
add_executable(example example.c)
 | 
			
		||||
add_executable(example test/example.c)
 | 
			
		||||
target_link_libraries(example zlib)
 | 
			
		||||
add_test(example example)
 | 
			
		||||
 | 
			
		||||
add_executable(minigzip minigzip.c)
 | 
			
		||||
add_executable(minigzip test/minigzip.c)
 | 
			
		||||
target_link_libraries(minigzip zlib)
 | 
			
		||||
 | 
			
		||||
if(HAVE_OFF64_T)
 | 
			
		||||
    add_executable(example64 example.c)
 | 
			
		||||
    add_executable(example64 test/example.c)
 | 
			
		||||
    target_link_libraries(example64 zlib)
 | 
			
		||||
    set_target_properties(example64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64")
 | 
			
		||||
    add_test(example64 example64)
 | 
			
		||||
 | 
			
		||||
    add_executable(minigzip64 minigzip.c)
 | 
			
		||||
    add_executable(minigzip64 test/minigzip.c)
 | 
			
		||||
    target_link_libraries(minigzip64 zlib)
 | 
			
		||||
    set_target_properties(minigzip64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64")
 | 
			
		||||
endif()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										380
									
								
								ChangeLog
									
									
									
									
									
								
							
							
						
						
									
										380
									
								
								ChangeLog
									
									
									
									
									
								
							@@ -1,6 +1,380 @@
 | 
			
		||||
 | 
			
		||||
                ChangeLog file for zlib
 | 
			
		||||
 | 
			
		||||
Changes in 1.2.8 (28 Apr 2013)
 | 
			
		||||
- Update contrib/minizip/iowin32.c for Windows RT [Vollant]
 | 
			
		||||
- Do not force Z_CONST for C++
 | 
			
		||||
- Clean up contrib/vstudio [Ro<52>]
 | 
			
		||||
- Correct spelling error in zlib.h
 | 
			
		||||
- Fix mixed line endings in contrib/vstudio
 | 
			
		||||
 | 
			
		||||
Changes in 1.2.7.3 (13 Apr 2013)
 | 
			
		||||
- Fix version numbers and DLL names in contrib/vstudio/*/zlib.rc
 | 
			
		||||
 | 
			
		||||
Changes in 1.2.7.2 (13 Apr 2013)
 | 
			
		||||
- Change check for a four-byte type back to hexadecimal
 | 
			
		||||
- Fix typo in win32/Makefile.msc
 | 
			
		||||
- Add casts in gzwrite.c for pointer differences
 | 
			
		||||
 | 
			
		||||
Changes in 1.2.7.1 (24 Mar 2013)
 | 
			
		||||
- Replace use of unsafe string functions with snprintf if available
 | 
			
		||||
- Avoid including stddef.h on Windows for Z_SOLO compile [Niessink]
 | 
			
		||||
- Fix gzgetc undefine when Z_PREFIX set [Turk]
 | 
			
		||||
- Eliminate use of mktemp in Makefile (not always available)
 | 
			
		||||
- Fix bug in 'F' mode for gzopen()
 | 
			
		||||
- Add inflateGetDictionary() function
 | 
			
		||||
- Correct comment in deflate.h
 | 
			
		||||
- Use _snprintf for snprintf in Microsoft C
 | 
			
		||||
- On Darwin, only use /usr/bin/libtool if libtool is not Apple
 | 
			
		||||
- Delete "--version" file if created by "ar --version" [Richard G.]
 | 
			
		||||
- Fix configure check for veracity of compiler error return codes
 | 
			
		||||
- Fix CMake compilation of static lib for MSVC2010 x64
 | 
			
		||||
- Remove unused variable in infback9.c
 | 
			
		||||
- Fix argument checks in gzlog_compress() and gzlog_write()
 | 
			
		||||
- Clean up the usage of z_const and respect const usage within zlib
 | 
			
		||||
- Clean up examples/gzlog.[ch] comparisons of different types
 | 
			
		||||
- Avoid shift equal to bits in type (caused endless loop)
 | 
			
		||||
- Fix unintialized value bug in gzputc() introduced by const patches
 | 
			
		||||
- Fix memory allocation error in examples/zran.c [Nor]
 | 
			
		||||
- Fix bug where gzopen(), gzclose() would write an empty file
 | 
			
		||||
- Fix bug in gzclose() when gzwrite() runs out of memory
 | 
			
		||||
- Check for input buffer malloc failure in examples/gzappend.c
 | 
			
		||||
- Add note to contrib/blast to use binary mode in stdio
 | 
			
		||||
- Fix comparisons of differently signed integers in contrib/blast
 | 
			
		||||
- Check for invalid code length codes in contrib/puff
 | 
			
		||||
- Fix serious but very rare decompression bug in inftrees.c
 | 
			
		||||
- Update inflateBack() comments, since inflate() can be faster
 | 
			
		||||
- Use underscored I/O function names for WINAPI_FAMILY
 | 
			
		||||
- Add _tr_flush_bits to the external symbols prefixed by --zprefix
 | 
			
		||||
- Add contrib/vstudio/vc10 pre-build step for static only
 | 
			
		||||
- Quote --version-script argument in CMakeLists.txt
 | 
			
		||||
- Don't specify --version-script on Apple platforms in CMakeLists.txt
 | 
			
		||||
- Fix casting error in contrib/testzlib/testzlib.c
 | 
			
		||||
- Fix types in contrib/minizip to match result of get_crc_table()
 | 
			
		||||
- Simplify contrib/vstudio/vc10 with 'd' suffix
 | 
			
		||||
- Add TOP support to win32/Makefile.msc
 | 
			
		||||
- Suport i686 and amd64 assembler builds in CMakeLists.txt
 | 
			
		||||
- Fix typos in the use of _LARGEFILE64_SOURCE in zconf.h
 | 
			
		||||
- Add vc11 and vc12 build files to contrib/vstudio
 | 
			
		||||
- Add gzvprintf() as an undocumented function in zlib
 | 
			
		||||
- Fix configure for Sun shell
 | 
			
		||||
- Remove runtime check in configure for four-byte integer type
 | 
			
		||||
- Add casts and consts to ease user conversion to C++
 | 
			
		||||
- Add man pages for minizip and miniunzip
 | 
			
		||||
- In Makefile uninstall, don't rm if preceding cd fails
 | 
			
		||||
- Do not return Z_BUF_ERROR if deflateParam() has nothing to write
 | 
			
		||||
 | 
			
		||||
Changes in 1.2.7 (2 May 2012)
 | 
			
		||||
- Replace use of memmove() with a simple copy for portability
 | 
			
		||||
- Test for existence of strerror
 | 
			
		||||
- Restore gzgetc_ for backward compatibility with 1.2.6
 | 
			
		||||
- Fix build with non-GNU make on Solaris
 | 
			
		||||
- Require gcc 4.0 or later on Mac OS X to use the hidden attribute
 | 
			
		||||
- Include unistd.h for Watcom C
 | 
			
		||||
- Use __WATCOMC__ instead of __WATCOM__
 | 
			
		||||
- Do not use the visibility attribute if NO_VIZ defined
 | 
			
		||||
- Improve the detection of no hidden visibility attribute
 | 
			
		||||
- Avoid using __int64 for gcc or solo compilation
 | 
			
		||||
- Cast to char * in gzprintf to avoid warnings [Zinser]
 | 
			
		||||
- Fix make_vms.com for VAX [Zinser]
 | 
			
		||||
- Don't use library or built-in byte swaps
 | 
			
		||||
- Simplify test and use of gcc hidden attribute
 | 
			
		||||
- Fix bug in gzclose_w() when gzwrite() fails to allocate memory
 | 
			
		||||
- Add "x" (O_EXCL) and "e" (O_CLOEXEC) modes support to gzopen()
 | 
			
		||||
- Fix bug in test/minigzip.c for configure --solo
 | 
			
		||||
- Fix contrib/vstudio project link errors [Mohanathas]
 | 
			
		||||
- Add ability to choose the builder in make_vms.com [Schweda]
 | 
			
		||||
- Add DESTDIR support to mingw32 win32/Makefile.gcc
 | 
			
		||||
- Fix comments in win32/Makefile.gcc for proper usage
 | 
			
		||||
- Allow overriding the default install locations for cmake
 | 
			
		||||
- Generate and install the pkg-config file with cmake
 | 
			
		||||
- Build both a static and a shared version of zlib with cmake
 | 
			
		||||
- Include version symbols for cmake builds
 | 
			
		||||
- If using cmake with MSVC, add the source directory to the includes
 | 
			
		||||
- Remove unneeded EXTRA_CFLAGS from win32/Makefile.gcc [Truta]
 | 
			
		||||
- Move obsolete emx makefile to old [Truta]
 | 
			
		||||
- Allow the use of -Wundef when compiling or using zlib
 | 
			
		||||
- Avoid the use of the -u option with mktemp
 | 
			
		||||
- Improve inflate() documentation on the use of Z_FINISH
 | 
			
		||||
- Recognize clang as gcc
 | 
			
		||||
- Add gzopen_w() in Windows for wide character path names
 | 
			
		||||
- Rename zconf.h in CMakeLists.txt to move it out of the way
 | 
			
		||||
- Add source directory in CMakeLists.txt for building examples
 | 
			
		||||
- Look in build directory for zlib.pc in CMakeLists.txt
 | 
			
		||||
- Remove gzflags from zlibvc.def in vc9 and vc10
 | 
			
		||||
- Fix contrib/minizip compilation in the MinGW environment
 | 
			
		||||
- Update ./configure for Solaris, support --64 [Mooney]
 | 
			
		||||
- Remove -R. from Solaris shared build (possible security issue)
 | 
			
		||||
- Avoid race condition for parallel make (-j) running example
 | 
			
		||||
- Fix type mismatch between get_crc_table() and crc_table
 | 
			
		||||
- Fix parsing of version with "-" in CMakeLists.txt [Snider, Ziegler]
 | 
			
		||||
- Fix the path to zlib.map in CMakeLists.txt
 | 
			
		||||
- Force the native libtool in Mac OS X to avoid GNU libtool [Beebe]
 | 
			
		||||
- Add instructions to win32/Makefile.gcc for shared install [Torri]
 | 
			
		||||
 | 
			
		||||
Changes in 1.2.6.1 (12 Feb 2012)
 | 
			
		||||
- Avoid the use of the Objective-C reserved name "id"
 | 
			
		||||
- Include io.h in gzguts.h for Microsoft compilers
 | 
			
		||||
- Fix problem with ./configure --prefix and gzgetc macro
 | 
			
		||||
- Include gz_header definition when compiling zlib solo
 | 
			
		||||
- Put gzflags() functionality back in zutil.c
 | 
			
		||||
- Avoid library header include in crc32.c for Z_SOLO
 | 
			
		||||
- Use name in GCC_CLASSIC as C compiler for coverage testing, if set
 | 
			
		||||
- Minor cleanup in contrib/minizip/zip.c [Vollant]
 | 
			
		||||
- Update make_vms.com [Zinser]
 | 
			
		||||
- Remove unnecessary gzgetc_ function
 | 
			
		||||
- Use optimized byte swap operations for Microsoft and GNU [Snyder]
 | 
			
		||||
- Fix minor typo in zlib.h comments [Rzesniowiecki]
 | 
			
		||||
 | 
			
		||||
Changes in 1.2.6 (29 Jan 2012)
 | 
			
		||||
- Update the Pascal interface in contrib/pascal
 | 
			
		||||
- Fix function numbers for gzgetc_ in zlibvc.def files
 | 
			
		||||
- Fix configure.ac for contrib/minizip [Schiffer]
 | 
			
		||||
- Fix large-entry detection in minizip on 64-bit systems [Schiffer]
 | 
			
		||||
- Have ./configure use the compiler return code for error indication
 | 
			
		||||
- Fix CMakeLists.txt for cross compilation [McClure]
 | 
			
		||||
- Fix contrib/minizip/zip.c for 64-bit architectures [Dalsnes]
 | 
			
		||||
- Fix compilation of contrib/minizip on FreeBSD [Marquez]
 | 
			
		||||
- Correct suggested usages in win32/Makefile.msc [Shachar, Horvath]
 | 
			
		||||
- Include io.h for Turbo C / Borland C on all platforms [Truta]
 | 
			
		||||
- Make version explicit in contrib/minizip/configure.ac [Bosmans]
 | 
			
		||||
- Avoid warning for no encryption in contrib/minizip/zip.c [Vollant]
 | 
			
		||||
- Minor cleanup up contrib/minizip/unzip.c [Vollant]
 | 
			
		||||
- Fix bug when compiling minizip with C++ [Vollant]
 | 
			
		||||
- Protect for long name and extra fields in contrib/minizip [Vollant]
 | 
			
		||||
- Avoid some warnings in contrib/minizip [Vollant]
 | 
			
		||||
- Add -I../.. -L../.. to CFLAGS for minizip and miniunzip
 | 
			
		||||
- Add missing libs to minizip linker command
 | 
			
		||||
- Add support for VPATH builds in contrib/minizip
 | 
			
		||||
- Add an --enable-demos option to contrib/minizip/configure
 | 
			
		||||
- Add the generation of configure.log by ./configure
 | 
			
		||||
- Exit when required parameters not provided to win32/Makefile.gcc
 | 
			
		||||
- Have gzputc return the character written instead of the argument
 | 
			
		||||
- Use the -m option on ldconfig for BSD systems [Tobias]
 | 
			
		||||
- Correct in zlib.map when deflateResetKeep was added
 | 
			
		||||
 | 
			
		||||
Changes in 1.2.5.3 (15 Jan 2012)
 | 
			
		||||
- Restore gzgetc function for binary compatibility
 | 
			
		||||
- Do not use _lseeki64 under Borland C++ [Truta]
 | 
			
		||||
- Update win32/Makefile.msc to build test/*.c [Truta]
 | 
			
		||||
- Remove old/visualc6 given CMakefile and other alternatives
 | 
			
		||||
- Update AS400 build files and documentation [Monnerat]
 | 
			
		||||
- Update win32/Makefile.gcc to build test/*.c [Truta]
 | 
			
		||||
- Permit stronger flushes after Z_BLOCK flushes
 | 
			
		||||
- Avoid extraneous empty blocks when doing empty flushes
 | 
			
		||||
- Permit Z_NULL arguments to deflatePending
 | 
			
		||||
- Allow deflatePrime() to insert bits in the middle of a stream
 | 
			
		||||
- Remove second empty static block for Z_PARTIAL_FLUSH
 | 
			
		||||
- Write out all of the available bits when using Z_BLOCK
 | 
			
		||||
- Insert the first two strings in the hash table after a flush
 | 
			
		||||
 | 
			
		||||
Changes in 1.2.5.2 (17 Dec 2011)
 | 
			
		||||
- fix ld error: unable to find version dependency 'ZLIB_1.2.5'
 | 
			
		||||
- use relative symlinks for shared libs
 | 
			
		||||
- Avoid searching past window for Z_RLE strategy
 | 
			
		||||
- Assure that high-water mark initialization is always applied in deflate
 | 
			
		||||
- Add assertions to fill_window() in deflate.c to match comments
 | 
			
		||||
- Update python link in README
 | 
			
		||||
- Correct spelling error in gzread.c
 | 
			
		||||
- Fix bug in gzgets() for a concatenated empty gzip stream
 | 
			
		||||
- Correct error in comment for gz_make()
 | 
			
		||||
- Change gzread() and related to ignore junk after gzip streams
 | 
			
		||||
- Allow gzread() and related to continue after gzclearerr()
 | 
			
		||||
- Allow gzrewind() and gzseek() after a premature end-of-file
 | 
			
		||||
- Simplify gzseek() now that raw after gzip is ignored
 | 
			
		||||
- Change gzgetc() to a macro for speed (~40% speedup in testing)
 | 
			
		||||
- Fix gzclose() to return the actual error last encountered
 | 
			
		||||
- Always add large file support for windows
 | 
			
		||||
- Include zconf.h for windows large file support
 | 
			
		||||
- Include zconf.h.cmakein for windows large file support
 | 
			
		||||
- Update zconf.h.cmakein on make distclean
 | 
			
		||||
- Merge vestigial vsnprintf determination from zutil.h to gzguts.h
 | 
			
		||||
- Clarify how gzopen() appends in zlib.h comments
 | 
			
		||||
- Correct documentation of gzdirect() since junk at end now ignored
 | 
			
		||||
- Add a transparent write mode to gzopen() when 'T' is in the mode
 | 
			
		||||
- Update python link in zlib man page
 | 
			
		||||
- Get inffixed.h and MAKEFIXED result to match
 | 
			
		||||
- Add a ./config --solo option to make zlib subset with no libary use
 | 
			
		||||
- Add undocumented inflateResetKeep() function for CAB file decoding
 | 
			
		||||
- Add --cover option to ./configure for gcc coverage testing
 | 
			
		||||
- Add #define ZLIB_CONST option to use const in the z_stream interface
 | 
			
		||||
- Add comment to gzdopen() in zlib.h to use dup() when using fileno()
 | 
			
		||||
- Note behavior of uncompress() to provide as much data as it can
 | 
			
		||||
- Add files in contrib/minizip to aid in building libminizip
 | 
			
		||||
- Split off AR options in Makefile.in and configure
 | 
			
		||||
- Change ON macro to Z_ARG to avoid application conflicts
 | 
			
		||||
- Facilitate compilation with Borland C++ for pragmas and vsnprintf
 | 
			
		||||
- Include io.h for Turbo C / Borland C++
 | 
			
		||||
- Move example.c and minigzip.c to test/
 | 
			
		||||
- Simplify incomplete code table filling in inflate_table()
 | 
			
		||||
- Remove code from inflate.c and infback.c that is impossible to execute
 | 
			
		||||
- Test the inflate code with full coverage
 | 
			
		||||
- Allow deflateSetDictionary, inflateSetDictionary at any time (in raw)
 | 
			
		||||
- Add deflateResetKeep and fix inflateResetKeep to retain dictionary
 | 
			
		||||
- Fix gzwrite.c to accommodate reduced memory zlib compilation
 | 
			
		||||
- Have inflate() with Z_FINISH avoid the allocation of a window
 | 
			
		||||
- Do not set strm->adler when doing raw inflate
 | 
			
		||||
- Fix gzeof() to behave just like feof() when read is not past end of file
 | 
			
		||||
- Fix bug in gzread.c when end-of-file is reached
 | 
			
		||||
- Avoid use of Z_BUF_ERROR in gz* functions except for premature EOF
 | 
			
		||||
- Document gzread() capability to read concurrently written files
 | 
			
		||||
- Remove hard-coding of resource compiler in CMakeLists.txt [Blammo]
 | 
			
		||||
 | 
			
		||||
Changes in 1.2.5.1 (10 Sep 2011)
 | 
			
		||||
- Update FAQ entry on shared builds (#13)
 | 
			
		||||
- Avoid symbolic argument to chmod in Makefile.in
 | 
			
		||||
- Fix bug and add consts in contrib/puff [Oberhumer]
 | 
			
		||||
- Update contrib/puff/zeros.raw test file to have all block types
 | 
			
		||||
- Add full coverage test for puff in contrib/puff/Makefile
 | 
			
		||||
- Fix static-only-build install in Makefile.in
 | 
			
		||||
- Fix bug in unzGetCurrentFileInfo() in contrib/minizip [Kuno]
 | 
			
		||||
- Add libz.a dependency to shared in Makefile.in for parallel builds
 | 
			
		||||
- Spell out "number" (instead of "nb") in zlib.h for total_in, total_out
 | 
			
		||||
- Replace $(...) with `...` in configure for non-bash sh [Bowler]
 | 
			
		||||
- Add darwin* to Darwin* and solaris* to SunOS\ 5* in configure [Groffen]
 | 
			
		||||
- Add solaris* to Linux* in configure to allow gcc use [Groffen]
 | 
			
		||||
- Add *bsd* to Linux* case in configure [Bar-Lev]
 | 
			
		||||
- Add inffast.obj to dependencies in win32/Makefile.msc
 | 
			
		||||
- Correct spelling error in deflate.h [Kohler]
 | 
			
		||||
- Change libzdll.a again to libz.dll.a (!) in win32/Makefile.gcc
 | 
			
		||||
- Add test to configure for GNU C looking for gcc in output of $cc -v
 | 
			
		||||
- Add zlib.pc generation to win32/Makefile.gcc [Weigelt]
 | 
			
		||||
- Fix bug in zlib.h for _FILE_OFFSET_BITS set and _LARGEFILE64_SOURCE not
 | 
			
		||||
- Add comment in zlib.h that adler32_combine with len2 < 0 makes no sense
 | 
			
		||||
- Make NO_DIVIDE option in adler32.c much faster (thanks to John Reiser)
 | 
			
		||||
- Make stronger test in zconf.h to include unistd.h for LFS
 | 
			
		||||
- Apply Darwin patches for 64-bit file offsets to contrib/minizip [Slack]
 | 
			
		||||
- Fix zlib.h LFS support when Z_PREFIX used
 | 
			
		||||
- Add updated as400 support (removed from old) [Monnerat]
 | 
			
		||||
- Avoid deflate sensitivity to volatile input data
 | 
			
		||||
- Avoid division in adler32_combine for NO_DIVIDE
 | 
			
		||||
- Clarify the use of Z_FINISH with deflateBound() amount of space
 | 
			
		||||
- Set binary for output file in puff.c
 | 
			
		||||
- Use u4 type for crc_table to avoid conversion warnings
 | 
			
		||||
- Apply casts in zlib.h to avoid conversion warnings
 | 
			
		||||
- Add OF to prototypes for adler32_combine_ and crc32_combine_ [Miller]
 | 
			
		||||
- Improve inflateSync() documentation to note indeterminancy
 | 
			
		||||
- Add deflatePending() function to return the amount of pending output
 | 
			
		||||
- Correct the spelling of "specification" in FAQ [Randers-Pehrson]
 | 
			
		||||
- Add a check in configure for stdarg.h, use for gzprintf()
 | 
			
		||||
- Check that pointers fit in ints when gzprint() compiled old style
 | 
			
		||||
- Add dummy name before $(SHAREDLIBV) in Makefile [Bar-Lev, Bowler]
 | 
			
		||||
- Delete line in configure that adds -L. libz.a to LDFLAGS [Weigelt]
 | 
			
		||||
- Add debug records in assmebler code [Londer]
 | 
			
		||||
- Update RFC references to use http://tools.ietf.org/html/... [Li]
 | 
			
		||||
- Add --archs option, use of libtool to configure for Mac OS X [Borstel]
 | 
			
		||||
 | 
			
		||||
Changes in 1.2.5 (19 Apr 2010)
 | 
			
		||||
- Disable visibility attribute in win32/Makefile.gcc [Bar-Lev]
 | 
			
		||||
- Default to libdir as sharedlibdir in configure [Nieder]
 | 
			
		||||
- Update copyright dates on modified source files
 | 
			
		||||
- Update trees.c to be able to generate modified trees.h
 | 
			
		||||
- Exit configure for MinGW, suggesting win32/Makefile.gcc
 | 
			
		||||
- Check for NULL path in gz_open [Homurlu]
 | 
			
		||||
 | 
			
		||||
Changes in 1.2.4.5 (18 Apr 2010)
 | 
			
		||||
- Set sharedlibdir in configure [Torok]
 | 
			
		||||
- Set LDFLAGS in Makefile.in [Bar-Lev]
 | 
			
		||||
- Avoid mkdir objs race condition in Makefile.in [Bowler]
 | 
			
		||||
- Add ZLIB_INTERNAL in front of internal inter-module functions and arrays
 | 
			
		||||
- Define ZLIB_INTERNAL to hide internal functions and arrays for GNU C
 | 
			
		||||
- Don't use hidden attribute when it is a warning generator (e.g. Solaris)
 | 
			
		||||
 | 
			
		||||
Changes in 1.2.4.4 (18 Apr 2010)
 | 
			
		||||
- Fix CROSS_PREFIX executable testing, CHOST extract, mingw* [Torok]
 | 
			
		||||
- Undefine _LARGEFILE64_SOURCE in zconf.h if it is zero, but not if empty
 | 
			
		||||
- Try to use bash or ksh regardless of functionality of /bin/sh
 | 
			
		||||
- Fix configure incompatibility with NetBSD sh
 | 
			
		||||
- Remove attempt to run under bash or ksh since have better NetBSD fix
 | 
			
		||||
- Fix win32/Makefile.gcc for MinGW [Bar-Lev]
 | 
			
		||||
- Add diagnostic messages when using CROSS_PREFIX in configure
 | 
			
		||||
- Added --sharedlibdir option to configure [Weigelt]
 | 
			
		||||
- Use hidden visibility attribute when available [Frysinger]
 | 
			
		||||
 | 
			
		||||
Changes in 1.2.4.3 (10 Apr 2010)
 | 
			
		||||
- Only use CROSS_PREFIX in configure for ar and ranlib if they exist
 | 
			
		||||
- Use CROSS_PREFIX for nm [Bar-Lev]
 | 
			
		||||
- Assume _LARGEFILE64_SOURCE defined is equivalent to true
 | 
			
		||||
- Avoid use of undefined symbols in #if with && and ||
 | 
			
		||||
- Make *64 prototypes in gzguts.h consistent with functions
 | 
			
		||||
- Add -shared load option for MinGW in configure [Bowler]
 | 
			
		||||
- Move z_off64_t to public interface, use instead of off64_t
 | 
			
		||||
- Remove ! from shell test in configure (not portable to Solaris)
 | 
			
		||||
- Change +0 macro tests to -0 for possibly increased portability
 | 
			
		||||
 | 
			
		||||
Changes in 1.2.4.2 (9 Apr 2010)
 | 
			
		||||
- Add consistent carriage returns to readme.txt's in masmx86 and masmx64
 | 
			
		||||
- Really provide prototypes for *64 functions when building without LFS
 | 
			
		||||
- Only define unlink() in minigzip.c if unistd.h not included
 | 
			
		||||
- Update README to point to contrib/vstudio project files
 | 
			
		||||
- Move projects/vc6 to old/ and remove projects/
 | 
			
		||||
- Include stdlib.h in minigzip.c for setmode() definition under WinCE
 | 
			
		||||
- Clean up assembler builds in win32/Makefile.msc [Rowe]
 | 
			
		||||
- Include sys/types.h for Microsoft for off_t definition
 | 
			
		||||
- Fix memory leak on error in gz_open()
 | 
			
		||||
- Symbolize nm as $NM in configure [Weigelt]
 | 
			
		||||
- Use TEST_LDSHARED instead of LDSHARED to link test programs [Weigelt]
 | 
			
		||||
- Add +0 to _FILE_OFFSET_BITS and _LFS64_LARGEFILE in case not defined
 | 
			
		||||
- Fix bug in gzeof() to take into account unused input data
 | 
			
		||||
- Avoid initialization of structures with variables in puff.c
 | 
			
		||||
- Updated win32/README-WIN32.txt [Rowe]
 | 
			
		||||
 | 
			
		||||
Changes in 1.2.4.1 (28 Mar 2010)
 | 
			
		||||
- Remove the use of [a-z] constructs for sed in configure [gentoo 310225]
 | 
			
		||||
- Remove $(SHAREDLIB) from LIBS in Makefile.in [Creech]
 | 
			
		||||
- Restore "for debugging" comment on sprintf() in gzlib.c
 | 
			
		||||
- Remove fdopen for MVS from gzguts.h
 | 
			
		||||
- Put new README-WIN32.txt in win32 [Rowe]
 | 
			
		||||
- Add check for shell to configure and invoke another shell if needed
 | 
			
		||||
- Fix big fat stinking bug in gzseek() on uncompressed files
 | 
			
		||||
- Remove vestigial F_OPEN64 define in zutil.h
 | 
			
		||||
- Set and check the value of _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE
 | 
			
		||||
- Avoid errors on non-LFS systems when applications define LFS macros
 | 
			
		||||
- Set EXE to ".exe" in configure for MINGW [Kahle]
 | 
			
		||||
- Match crc32() in crc32.c exactly to the prototype in zlib.h [Sherrill]
 | 
			
		||||
- Add prefix for cross-compilation in win32/makefile.gcc [Bar-Lev]
 | 
			
		||||
- Add DLL install in win32/makefile.gcc [Bar-Lev]
 | 
			
		||||
- Allow Linux* or linux* from uname in configure [Bar-Lev]
 | 
			
		||||
- Allow ldconfig to be redefined in configure and Makefile.in [Bar-Lev]
 | 
			
		||||
- Add cross-compilation prefixes to configure [Bar-Lev]
 | 
			
		||||
- Match type exactly in gz_load() invocation in gzread.c
 | 
			
		||||
- Match type exactly of zcalloc() in zutil.c to zlib.h alloc_func
 | 
			
		||||
- Provide prototypes for *64 functions when building zlib without LFS
 | 
			
		||||
- Don't use -lc when linking shared library on MinGW
 | 
			
		||||
- Remove errno.h check in configure and vestigial errno code in zutil.h
 | 
			
		||||
 | 
			
		||||
Changes in 1.2.4 (14 Mar 2010)
 | 
			
		||||
- Fix VER3 extraction in configure for no fourth subversion
 | 
			
		||||
- Update zlib.3, add docs to Makefile.in to make .pdf out of it
 | 
			
		||||
- Add zlib.3.pdf to distribution
 | 
			
		||||
- Don't set error code in gzerror() if passed pointer is NULL
 | 
			
		||||
- Apply destination directory fixes to CMakeLists.txt [Lowman]
 | 
			
		||||
- Move #cmakedefine's to a new zconf.in.cmakein
 | 
			
		||||
- Restore zconf.h for builds that don't use configure or cmake
 | 
			
		||||
- Add distclean to dummy Makefile for convenience
 | 
			
		||||
- Update and improve INDEX, README, and FAQ
 | 
			
		||||
- Update CMakeLists.txt for the return of zconf.h [Lowman]
 | 
			
		||||
- Update contrib/vstudio/vc9 and vc10 [Vollant]
 | 
			
		||||
- Change libz.dll.a back to libzdll.a in win32/Makefile.gcc
 | 
			
		||||
- Apply license and readme changes to contrib/asm686 [Raiter]
 | 
			
		||||
- Check file name lengths and add -c option in minigzip.c [Li]
 | 
			
		||||
- Update contrib/amd64 and contrib/masmx86/ [Vollant]
 | 
			
		||||
- Avoid use of "eof" parameter in trees.c to not shadow library variable
 | 
			
		||||
- Update make_vms.com for removal of zlibdefs.h [Zinser]
 | 
			
		||||
- Update assembler code and vstudio projects in contrib [Vollant]
 | 
			
		||||
- Remove outdated assembler code contrib/masm686 and contrib/asm586
 | 
			
		||||
- Remove old vc7 and vc8 from contrib/vstudio
 | 
			
		||||
- Update win32/Makefile.msc, add ZLIB_VER_SUBREVISION [Rowe]
 | 
			
		||||
- Fix memory leaks in gzclose_r() and gzclose_w(), file leak in gz_open()
 | 
			
		||||
- Add contrib/gcc_gvmat64 for longest_match and inflate_fast [Vollant]
 | 
			
		||||
- Remove *64 functions from win32/zlib.def (they're not 64-bit yet)
 | 
			
		||||
- Fix bug in void-returning vsprintf() case in gzwrite.c
 | 
			
		||||
- Fix name change from inflate.h in contrib/inflate86/inffas86.c
 | 
			
		||||
- Check if temporary file exists before removing in make_vms.com [Zinser]
 | 
			
		||||
- Fix make install and uninstall for --static option
 | 
			
		||||
- Fix usage of _MSC_VER in gzguts.h and zutil.h [Truta]
 | 
			
		||||
- Update readme.txt in contrib/masmx64 and masmx86 to assemble
 | 
			
		||||
 | 
			
		||||
Changes in 1.2.3.9 (21 Feb 2010)
 | 
			
		||||
- Expunge gzio.c
 | 
			
		||||
- Move as400 build information to old
 | 
			
		||||
@@ -67,7 +441,7 @@ Changes in 1.2.3.6 (17 Jan 2010)
 | 
			
		||||
- Correct email address in configure for system options
 | 
			
		||||
- Update make_vms.com and add make_vms.com to contrib/minizip [Zinser]
 | 
			
		||||
- Update zlib.map [Brown]
 | 
			
		||||
- Fix Makefile.in for Solaris 10 make of example64 and minizip64 [T<EFBFBD>r<EFBFBD>k]
 | 
			
		||||
- Fix Makefile.in for Solaris 10 make of example64 and minizip64 [Torok]
 | 
			
		||||
- Apply various fixes to CMakeLists.txt [Lowman]
 | 
			
		||||
- Add checks on len in gzread() and gzwrite()
 | 
			
		||||
- Add error message for no more room for gzungetc()
 | 
			
		||||
@@ -151,7 +525,7 @@ Changes in 1.2.3.4 (21 Dec 2009)
 | 
			
		||||
- Clear bytes after deflate lookahead to avoid use of uninitialized data
 | 
			
		||||
- Change a limit in inftrees.c to be more transparent to Coverity Prevent
 | 
			
		||||
- Update win32/zlib.def with exported symbols from zlib.h
 | 
			
		||||
- Correct spelling error in zlib.h [Willem]
 | 
			
		||||
- Correct spelling errors in zlib.h [Willem, Sobrado]
 | 
			
		||||
- Allow Z_BLOCK for deflate() to force a new block
 | 
			
		||||
- Allow negative bits in inflatePrime() to delete existing bit buffer
 | 
			
		||||
- Add Z_TREES flush option to inflate() to return at end of trees
 | 
			
		||||
@@ -256,7 +630,7 @@ Changes in 1.2.2.4 (11 July 2005)
 | 
			
		||||
  compile
 | 
			
		||||
- Fix some spelling errors in comments [Betts]
 | 
			
		||||
- Correct inflateInit2() error return documentation in zlib.h
 | 
			
		||||
- Added zran.c example of compressed data random access to examples
 | 
			
		||||
- Add zran.c example of compressed data random access to examples
 | 
			
		||||
  directory, shows use of inflatePrime()
 | 
			
		||||
- Fix cast for assignments to strm->state in inflate.c and infback.c
 | 
			
		||||
- Fix zlibCompileFlags() in zutil.c to use 1L for long shifts [Oberhumer]
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										205
									
								
								FAQ
									
									
									
									
									
								
							
							
						
						
									
										205
									
								
								FAQ
									
									
									
									
									
								
							@@ -3,8 +3,8 @@
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
If your question is not there, please check the zlib home page
 | 
			
		||||
http://www.zlib.org which may have more recent information.
 | 
			
		||||
The lastest zlib FAQ is at http://www.gzip.org/zlib/zlib_faq.html
 | 
			
		||||
http://zlib.net/ which may have more recent information.
 | 
			
		||||
The lastest zlib FAQ is at http://zlib.net/zlib_faq.html
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 1. Is zlib Y2K-compliant?
 | 
			
		||||
@@ -13,54 +13,51 @@ The lastest zlib FAQ is at http://www.gzip.org/zlib/zlib_faq.html
 | 
			
		||||
 | 
			
		||||
 2. Where can I get a Windows DLL version?
 | 
			
		||||
 | 
			
		||||
    The zlib sources can be compiled without change to produce a DLL.
 | 
			
		||||
    See the file win32/DLL_FAQ.txt in the zlib distribution.
 | 
			
		||||
    Pointers to the precompiled DLL are found in the zlib web site at
 | 
			
		||||
    http://www.zlib.org.
 | 
			
		||||
    The zlib sources can be compiled without change to produce a DLL.  See the
 | 
			
		||||
    file win32/DLL_FAQ.txt in the zlib distribution.  Pointers to the
 | 
			
		||||
    precompiled DLL are found in the zlib web site at http://zlib.net/ .
 | 
			
		||||
 | 
			
		||||
 3. Where can I get a Visual Basic interface to zlib?
 | 
			
		||||
 | 
			
		||||
    See
 | 
			
		||||
        * http://www.dogma.net/markn/articles/zlibtool/zlibtool.htm
 | 
			
		||||
        * contrib/visual-basic.txt in the zlib distribution
 | 
			
		||||
        * http://marknelson.us/1997/01/01/zlib-engine/
 | 
			
		||||
        * win32/DLL_FAQ.txt in the zlib distribution
 | 
			
		||||
 | 
			
		||||
 4. compress() returns Z_BUF_ERROR.
 | 
			
		||||
 | 
			
		||||
    Make sure that before the call of compress, the length of the compressed
 | 
			
		||||
    buffer is equal to the total size of the compressed buffer and not
 | 
			
		||||
    Make sure that before the call of compress(), the length of the compressed
 | 
			
		||||
    buffer is equal to the available size of the compressed buffer and not
 | 
			
		||||
    zero.  For Visual Basic, check that this parameter is passed by reference
 | 
			
		||||
    ("as any"), not by value ("as long").
 | 
			
		||||
 | 
			
		||||
 5. deflate() or inflate() returns Z_BUF_ERROR.
 | 
			
		||||
 | 
			
		||||
    Before making the call, make sure that avail_in and avail_out are not
 | 
			
		||||
    zero. When setting the parameter flush equal to Z_FINISH, also make sure
 | 
			
		||||
    that avail_out is big enough to allow processing all pending input.
 | 
			
		||||
    Note that a Z_BUF_ERROR is not fatal--another call to deflate() or
 | 
			
		||||
    inflate() can be made with more input or output space. A Z_BUF_ERROR
 | 
			
		||||
    may in fact be unavoidable depending on how the functions are used, since
 | 
			
		||||
    it is not possible to tell whether or not there is more output pending
 | 
			
		||||
    when strm.avail_out returns with zero.
 | 
			
		||||
    Before making the call, make sure that avail_in and avail_out are not zero.
 | 
			
		||||
    When setting the parameter flush equal to Z_FINISH, also make sure that
 | 
			
		||||
    avail_out is big enough to allow processing all pending input.  Note that a
 | 
			
		||||
    Z_BUF_ERROR is not fatal--another call to deflate() or inflate() can be
 | 
			
		||||
    made with more input or output space.  A Z_BUF_ERROR may in fact be
 | 
			
		||||
    unavoidable depending on how the functions are used, since it is not
 | 
			
		||||
    possible to tell whether or not there is more output pending when
 | 
			
		||||
    strm.avail_out returns with zero.  See http://zlib.net/zlib_how.html for a
 | 
			
		||||
    heavily annotated example.
 | 
			
		||||
 | 
			
		||||
 6. Where's the zlib documentation (man pages, etc.)?
 | 
			
		||||
 | 
			
		||||
    It's in zlib.h for the moment, and Francis S. Lin has converted it to a
 | 
			
		||||
    web page zlib.html. Volunteers to transform this to Unix-style man pages,
 | 
			
		||||
    please contact us (zlib@gzip.org). Examples of zlib usage are in the files
 | 
			
		||||
    example.c and minigzip.c.
 | 
			
		||||
    It's in zlib.h .  Examples of zlib usage are in the files test/example.c
 | 
			
		||||
    and test/minigzip.c, with more in examples/ .
 | 
			
		||||
 | 
			
		||||
 7. Why don't you use GNU autoconf or libtool or ...?
 | 
			
		||||
 | 
			
		||||
    Because we would like to keep zlib as a very small and simple
 | 
			
		||||
    package. zlib is rather portable and doesn't need much configuration.
 | 
			
		||||
    Because we would like to keep zlib as a very small and simple package.
 | 
			
		||||
    zlib is rather portable and doesn't need much configuration.
 | 
			
		||||
 | 
			
		||||
 8. I found a bug in zlib.
 | 
			
		||||
 | 
			
		||||
    Most of the time, such problems are due to an incorrect usage of
 | 
			
		||||
    zlib. Please try to reproduce the problem with a small program and send
 | 
			
		||||
    the corresponding source to us at zlib@gzip.org . Do not send
 | 
			
		||||
    multi-megabyte data files without prior agreement.
 | 
			
		||||
    Most of the time, such problems are due to an incorrect usage of zlib.
 | 
			
		||||
    Please try to reproduce the problem with a small program and send the
 | 
			
		||||
    corresponding source to us at zlib@gzip.org .  Do not send multi-megabyte
 | 
			
		||||
    data files without prior agreement.
 | 
			
		||||
 | 
			
		||||
 9. Why do I get "undefined reference to gzputc"?
 | 
			
		||||
 | 
			
		||||
@@ -87,8 +84,10 @@ The lastest zlib FAQ is at http://www.gzip.org/zlib/zlib_faq.html
 | 
			
		||||
 | 
			
		||||
13. How can I make a Unix shared library?
 | 
			
		||||
 | 
			
		||||
    make clean
 | 
			
		||||
    ./configure -s
 | 
			
		||||
    By default a shared (and a static) library is built for Unix.  So:
 | 
			
		||||
 | 
			
		||||
    make distclean
 | 
			
		||||
    ./configure
 | 
			
		||||
    make
 | 
			
		||||
 | 
			
		||||
14. How do I install a shared zlib library on Unix?
 | 
			
		||||
@@ -100,7 +99,9 @@ The lastest zlib FAQ is at http://www.gzip.org/zlib/zlib_faq.html
 | 
			
		||||
    However, many flavors of Unix come with a shared zlib already installed.
 | 
			
		||||
    Before going to the trouble of compiling a shared version of zlib and
 | 
			
		||||
    trying to install it, you may want to check if it's already there!  If you
 | 
			
		||||
    can #include <zlib.h>, it's there. The -lz option will probably link to it.
 | 
			
		||||
    can #include <zlib.h>, it's there.  The -lz option will probably link to
 | 
			
		||||
    it.  You can check the version at the top of zlib.h or with the
 | 
			
		||||
    ZLIB_VERSION symbol defined in zlib.h .
 | 
			
		||||
 | 
			
		||||
15. I have a question about OttoPDF.
 | 
			
		||||
 | 
			
		||||
@@ -109,8 +110,8 @@ The lastest zlib FAQ is at http://www.gzip.org/zlib/zlib_faq.html
 | 
			
		||||
 | 
			
		||||
16. Can zlib decode Flate data in an Adobe PDF file?
 | 
			
		||||
 | 
			
		||||
    Yes. See http://www.fastio.com/ (ClibPDF), or http://www.pdflib.com/ .
 | 
			
		||||
    To modify PDF forms, see http://sourceforge.net/projects/acroformtool/ .
 | 
			
		||||
    Yes. See http://www.pdflib.com/ . To modify PDF forms, see
 | 
			
		||||
    http://sourceforge.net/projects/acroformtool/ .
 | 
			
		||||
 | 
			
		||||
17. Why am I getting this "register_frame_info not found" error on Solaris?
 | 
			
		||||
 | 
			
		||||
@@ -130,31 +131,31 @@ The lastest zlib FAQ is at http://www.gzip.org/zlib/zlib_faq.html
 | 
			
		||||
 | 
			
		||||
    The compress and deflate functions produce data in the zlib format, which
 | 
			
		||||
    is different and incompatible with the gzip format.  The gz* functions in
 | 
			
		||||
    zlib on the other hand use the gzip format. Both the zlib and gzip
 | 
			
		||||
    formats use the same compressed data format internally, but have different
 | 
			
		||||
    headers and trailers around the compressed data.
 | 
			
		||||
    zlib on the other hand use the gzip format.  Both the zlib and gzip formats
 | 
			
		||||
    use the same compressed data format internally, but have different headers
 | 
			
		||||
    and trailers around the compressed data.
 | 
			
		||||
 | 
			
		||||
19. Ok, so why are there two different formats?
 | 
			
		||||
 | 
			
		||||
    The gzip format was designed to retain the directory information about
 | 
			
		||||
    a single file, such as the name and last modification date. The zlib
 | 
			
		||||
    format on the other hand was designed for in-memory and communication
 | 
			
		||||
    channel applications, and has a much more compact header and trailer and
 | 
			
		||||
    uses a faster integrity check than gzip.
 | 
			
		||||
    The gzip format was designed to retain the directory information about a
 | 
			
		||||
    single file, such as the name and last modification date.  The zlib format
 | 
			
		||||
    on the other hand was designed for in-memory and communication channel
 | 
			
		||||
    applications, and has a much more compact header and trailer and uses a
 | 
			
		||||
    faster integrity check than gzip.
 | 
			
		||||
 | 
			
		||||
20. Well that's nice, but how do I make a gzip file in memory?
 | 
			
		||||
 | 
			
		||||
    You can request that deflate write the gzip format instead of the zlib
 | 
			
		||||
    format using deflateInit2(). You can also request that inflate decode
 | 
			
		||||
    the gzip format using inflateInit2(). Read zlib.h for more details.
 | 
			
		||||
    format using deflateInit2().  You can also request that inflate decode the
 | 
			
		||||
    gzip format using inflateInit2().  Read zlib.h for more details.
 | 
			
		||||
 | 
			
		||||
21. Is zlib thread-safe?
 | 
			
		||||
 | 
			
		||||
    Yes.  However any library routines that zlib uses and any application-
 | 
			
		||||
    provided memory allocation routines must also be thread-safe.  zlib's gz*
 | 
			
		||||
    functions use stdio library routines, and most of zlib's functions use the
 | 
			
		||||
    library memory allocation routines by default. zlib's Init functions allow
 | 
			
		||||
    for the application to provide custom memory allocation routines.
 | 
			
		||||
    library memory allocation routines by default.  zlib's *Init* functions
 | 
			
		||||
    allow for the application to provide custom memory allocation routines.
 | 
			
		||||
 | 
			
		||||
    Of course, you should only operate on any given zlib or gzip stream from a
 | 
			
		||||
    single thread at a time.
 | 
			
		||||
@@ -197,37 +198,35 @@ The lastest zlib FAQ is at http://www.gzip.org/zlib/zlib_faq.html
 | 
			
		||||
 | 
			
		||||
26. Will zlib work on a 64-bit machine?
 | 
			
		||||
 | 
			
		||||
    It should. It has been tested on 64-bit machines, and has no dependence
 | 
			
		||||
    on any data types being limited to 32-bits in length. If you have any
 | 
			
		||||
    Yes.  It has been tested on 64-bit machines, and has no dependence on any
 | 
			
		||||
    data types being limited to 32-bits in length.  If you have any
 | 
			
		||||
    difficulties, please provide a complete problem report to zlib@gzip.org
 | 
			
		||||
 | 
			
		||||
27. Will zlib decompress data from the PKWare Data Compression Library?
 | 
			
		||||
 | 
			
		||||
    No. The PKWare DCL uses a completely different compressed data format
 | 
			
		||||
    than does PKZIP and zlib. However, you can look in zlib's contrib/blast
 | 
			
		||||
    No.  The PKWare DCL uses a completely different compressed data format than
 | 
			
		||||
    does PKZIP and zlib.  However, you can look in zlib's contrib/blast
 | 
			
		||||
    directory for a possible solution to your problem.
 | 
			
		||||
 | 
			
		||||
28. Can I access data randomly in a compressed stream?
 | 
			
		||||
 | 
			
		||||
    No, not without some preparation. If when compressing you periodically
 | 
			
		||||
    use Z_FULL_FLUSH, carefully write all the pending data at those points,
 | 
			
		||||
    and keep an index of those locations, then you can start decompression
 | 
			
		||||
    at those points. You have to be careful to not use Z_FULL_FLUSH too
 | 
			
		||||
    often, since it can significantly degrade compression.
 | 
			
		||||
    No, not without some preparation.  If when compressing you periodically use
 | 
			
		||||
    Z_FULL_FLUSH, carefully write all the pending data at those points, and
 | 
			
		||||
    keep an index of those locations, then you can start decompression at those
 | 
			
		||||
    points.  You have to be careful to not use Z_FULL_FLUSH too often, since it
 | 
			
		||||
    can significantly degrade compression.  Alternatively, you can scan a
 | 
			
		||||
    deflate stream once to generate an index, and then use that index for
 | 
			
		||||
    random access.  See examples/zran.c .
 | 
			
		||||
 | 
			
		||||
29. Does zlib work on MVS, OS/390, CICS, etc.?
 | 
			
		||||
 | 
			
		||||
    Yes, there are working ports of zlib 1.1.4 to MVS which you can find
 | 
			
		||||
    here:
 | 
			
		||||
    It has in the past, but we have not heard of any recent evidence.  There
 | 
			
		||||
    were working ports of zlib 1.1.4 to MVS, but those links no longer work.
 | 
			
		||||
    If you know of recent, successful applications of zlib on these operating
 | 
			
		||||
    systems, please let us know.  Thanks.
 | 
			
		||||
 | 
			
		||||
    http://www.homerow.net/asm/zlib390.htm
 | 
			
		||||
    http://www.homerow.net/asm/zlibLE.htm
 | 
			
		||||
 | 
			
		||||
    If these are updated to more recent versions of zlib, please let us
 | 
			
		||||
    know. Thanks.
 | 
			
		||||
 | 
			
		||||
30. Is there some simpler, easier to read version of inflate I can look at
 | 
			
		||||
    to understand the deflate format?
 | 
			
		||||
30. Is there some simpler, easier to read version of inflate I can look at to
 | 
			
		||||
    understand the deflate format?
 | 
			
		||||
 | 
			
		||||
    First off, you should read RFC 1951.  Second, yes.  Look in zlib's
 | 
			
		||||
    contrib/puff directory.
 | 
			
		||||
@@ -253,21 +252,22 @@ The lastest zlib FAQ is at http://www.gzip.org/zlib/zlib_faq.html
 | 
			
		||||
    single call.  gzseek() and gztell() may be limited to 4 GB depending on how
 | 
			
		||||
    zlib is compiled.  See the zlibCompileFlags() function in zlib.h.
 | 
			
		||||
 | 
			
		||||
    The word "may" appears several times above since there is a 4 GB limit
 | 
			
		||||
    only if the compiler's "long" type is 32 bits. If the compiler's "long"
 | 
			
		||||
    type is 64 bits, then the limit is 16 exabytes.
 | 
			
		||||
    The word "may" appears several times above since there is a 4 GB limit only
 | 
			
		||||
    if the compiler's "long" type is 32 bits.  If the compiler's "long" type is
 | 
			
		||||
    64 bits, then the limit is 16 exabytes.
 | 
			
		||||
 | 
			
		||||
33. Does zlib have any security vulnerabilities?
 | 
			
		||||
 | 
			
		||||
    The only one that we are aware of is potentially in gzprintf(). If zlib
 | 
			
		||||
    is compiled to use sprintf() or vsprintf(), then there is no protection
 | 
			
		||||
    against a buffer overflow of a 4K string space, other than the caller of
 | 
			
		||||
    gzprintf() assuring that the output will not exceed 4K. On the other
 | 
			
		||||
    hand, if zlib is compiled to use snprintf() or vsnprintf(), which should
 | 
			
		||||
    normally be the case, then there is no vulnerability. The ./configure
 | 
			
		||||
    script will display warnings if an insecure variation of sprintf() will
 | 
			
		||||
    be used by gzprintf(). Also the zlibCompileFlags() function will return
 | 
			
		||||
    information on what variant of sprintf() is used by gzprintf().
 | 
			
		||||
    The only one that we are aware of is potentially in gzprintf().  If zlib is
 | 
			
		||||
    compiled to use sprintf() or vsprintf(), then there is no protection
 | 
			
		||||
    against a buffer overflow of an 8K string space (or other value as set by
 | 
			
		||||
    gzbuffer()), other than the caller of gzprintf() assuring that the output
 | 
			
		||||
    will not exceed 8K.  On the other hand, if zlib is compiled to use
 | 
			
		||||
    snprintf() or vsnprintf(), which should normally be the case, then there is
 | 
			
		||||
    no vulnerability.  The ./configure script will display warnings if an
 | 
			
		||||
    insecure variation of sprintf() will be used by gzprintf().  Also the
 | 
			
		||||
    zlibCompileFlags() function will return information on what variant of
 | 
			
		||||
    sprintf() is used by gzprintf().
 | 
			
		||||
 | 
			
		||||
    If you don't have snprintf() or vsnprintf() and would like one, you can
 | 
			
		||||
    find a portable implementation here:
 | 
			
		||||
@@ -275,33 +275,35 @@ The lastest zlib FAQ is at http://www.gzip.org/zlib/zlib_faq.html
 | 
			
		||||
        http://www.ijs.si/software/snprintf/
 | 
			
		||||
 | 
			
		||||
    Note that you should be using the most recent version of zlib.  Versions
 | 
			
		||||
    1.1.3 and before were subject to a double-free vulnerability, and version
 | 
			
		||||
    1.2.1 was subject to an access exception when decompressing invalid
 | 
			
		||||
    compressed data.
 | 
			
		||||
    1.1.3 and before were subject to a double-free vulnerability, and versions
 | 
			
		||||
    1.2.1 and 1.2.2 were subject to an access exception when decompressing
 | 
			
		||||
    invalid compressed data.
 | 
			
		||||
 | 
			
		||||
34. Is there a Java version of zlib?
 | 
			
		||||
 | 
			
		||||
    Probably what you want is to use zlib in Java. zlib is already included
 | 
			
		||||
    as part of the Java SDK in the java.util.zip package. If you really want
 | 
			
		||||
    a version of zlib written in the Java language, look on the zlib home
 | 
			
		||||
    page for links: http://www.zlib.org/
 | 
			
		||||
    page for links: http://zlib.net/ .
 | 
			
		||||
 | 
			
		||||
35. I get this or that compiler or source-code scanner warning when I crank it
 | 
			
		||||
    up to maximally-pedantic. Can't you guys write proper code?
 | 
			
		||||
 | 
			
		||||
    Many years ago, we gave up attempting to avoid warnings on every compiler
 | 
			
		||||
    in the universe.  It just got to be a waste of time, and some compilers
 | 
			
		||||
    were downright silly. So now, we simply make sure that the code always
 | 
			
		||||
    works.
 | 
			
		||||
    were downright silly as well as contradicted each other.  So now, we simply
 | 
			
		||||
    make sure that the code always works.
 | 
			
		||||
 | 
			
		||||
36. Valgrind (or some similar memory access checker) says that deflate is
 | 
			
		||||
    performing a conditional jump that depends on an uninitialized value.
 | 
			
		||||
    Isn't that a bug?
 | 
			
		||||
 | 
			
		||||
    No. That is intentional for performance reasons, and the output of
 | 
			
		||||
    deflate is not affected. This only started showing up recently since
 | 
			
		||||
    zlib 1.2.x uses malloc() by default for allocations, whereas earlier
 | 
			
		||||
    versions used calloc(), which zeros out the allocated memory.
 | 
			
		||||
    No.  That is intentional for performance reasons, and the output of deflate
 | 
			
		||||
    is not affected.  This only started showing up recently since zlib 1.2.x
 | 
			
		||||
    uses malloc() by default for allocations, whereas earlier versions used
 | 
			
		||||
    calloc(), which zeros out the allocated memory.  Even though the code was
 | 
			
		||||
    correct, versions 1.2.4 and later was changed to not stimulate these
 | 
			
		||||
    checkers.
 | 
			
		||||
 | 
			
		||||
37. Will zlib read the (insert any ancient or arcane format here) compressed
 | 
			
		||||
    data format?
 | 
			
		||||
@@ -311,20 +313,21 @@ The lastest zlib FAQ is at http://www.gzip.org/zlib/zlib_faq.html
 | 
			
		||||
 | 
			
		||||
38. How can I encrypt/decrypt zip files with zlib?
 | 
			
		||||
 | 
			
		||||
    zlib doesn't support encryption. The original PKZIP encryption is very weak
 | 
			
		||||
    and can be broken with freely available programs. To get strong encryption,
 | 
			
		||||
    use GnuPG, http://www.gnupg.org/ , which already includes zlib compression.
 | 
			
		||||
    For PKZIP compatible "encryption", look at http://www.info-zip.org/
 | 
			
		||||
    zlib doesn't support encryption.  The original PKZIP encryption is very
 | 
			
		||||
    weak and can be broken with freely available programs.  To get strong
 | 
			
		||||
    encryption, use GnuPG, http://www.gnupg.org/ , which already includes zlib
 | 
			
		||||
    compression.  For PKZIP compatible "encryption", look at
 | 
			
		||||
    http://www.info-zip.org/
 | 
			
		||||
 | 
			
		||||
39. What's the difference between the "gzip" and "deflate" HTTP 1.1 encodings?
 | 
			
		||||
 | 
			
		||||
    "gzip" is the gzip format, and "deflate" is the zlib format.  They should
 | 
			
		||||
    probably have called the second one "zlib" instead to avoid confusion
 | 
			
		||||
    with the raw deflate compressed data format. While the HTTP 1.1 RFC 2616
 | 
			
		||||
    probably have called the second one "zlib" instead to avoid confusion with
 | 
			
		||||
    the raw deflate compressed data format.  While the HTTP 1.1 RFC 2616
 | 
			
		||||
    correctly points to the zlib specification in RFC 1950 for the "deflate"
 | 
			
		||||
    transfer encoding, there have been reports of servers and browsers that
 | 
			
		||||
    incorrectly produce or expect raw deflate data per the deflate
 | 
			
		||||
    specficiation in RFC 1951, most notably Microsoft. So even though the
 | 
			
		||||
    specification in RFC 1951, most notably Microsoft.  So even though the
 | 
			
		||||
    "deflate" transfer encoding using the zlib format would be the more
 | 
			
		||||
    efficient approach (and in fact exactly what the zlib format was designed
 | 
			
		||||
    for), using the "gzip" transfer encoding is probably more reliable due to
 | 
			
		||||
@@ -335,9 +338,9 @@ The lastest zlib FAQ is at http://www.gzip.org/zlib/zlib_faq.html
 | 
			
		||||
40. Does zlib support the new "Deflate64" format introduced by PKWare?
 | 
			
		||||
 | 
			
		||||
    No.  PKWare has apparently decided to keep that format proprietary, since
 | 
			
		||||
    they have not documented it as they have previous compression formats.
 | 
			
		||||
    In any case, the compression improvements are so modest compared to other
 | 
			
		||||
    more modern approaches, that it's not worth the effort to implement.
 | 
			
		||||
    they have not documented it as they have previous compression formats.  In
 | 
			
		||||
    any case, the compression improvements are so modest compared to other more
 | 
			
		||||
    modern approaches, that it's not worth the effort to implement.
 | 
			
		||||
 | 
			
		||||
41. I'm having a problem with the zip functions in zlib, can you help?
 | 
			
		||||
 | 
			
		||||
@@ -345,7 +348,7 @@ The lastest zlib FAQ is at http://www.gzip.org/zlib/zlib_faq.html
 | 
			
		||||
    Giles Vollant, which is found in the contrib directory of zlib.  It is not
 | 
			
		||||
    part of zlib.  In fact none of the stuff in contrib is part of zlib.  The
 | 
			
		||||
    files in there are not supported by the zlib authors.  You need to contact
 | 
			
		||||
    the authors of the contribution for help.
 | 
			
		||||
    the authors of the respective contribution for help.
 | 
			
		||||
 | 
			
		||||
42. The match.asm code in contrib is under the GNU General Public License.
 | 
			
		||||
    Since it's part of zlib, doesn't that mean that all of zlib falls under the
 | 
			
		||||
@@ -353,9 +356,13 @@ The lastest zlib FAQ is at http://www.gzip.org/zlib/zlib_faq.html
 | 
			
		||||
 | 
			
		||||
    No.  The files in contrib are not part of zlib.  They were contributed by
 | 
			
		||||
    other authors and are provided as a convenience to the user within the zlib
 | 
			
		||||
    distribution. Each of the items in contrib have their own license.
 | 
			
		||||
    distribution.  Each item in contrib has its own license.
 | 
			
		||||
 | 
			
		||||
43. Can you please sign these lengthy legal documents and fax them back to us
 | 
			
		||||
43. Is zlib subject to export controls?  What is its ECCN?
 | 
			
		||||
 | 
			
		||||
    zlib is not subject to export controls, and so is classified as EAR99.
 | 
			
		||||
 | 
			
		||||
44. Can you please sign these lengthy legal documents and fax them back to us
 | 
			
		||||
    so that we can use your software in our product?
 | 
			
		||||
 | 
			
		||||
    No. Go away. Shoo.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										22
									
								
								INDEX
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								INDEX
									
									
									
									
									
								
							@@ -2,33 +2,37 @@ CMakeLists.txt  cmake build file
 | 
			
		||||
ChangeLog       history of changes
 | 
			
		||||
FAQ             Frequently Asked Questions about zlib
 | 
			
		||||
INDEX           this file
 | 
			
		||||
Makefile        dummy Makefile that tells you to ./configure
 | 
			
		||||
Makefile.in     template for Unix Makefile
 | 
			
		||||
README          guess what
 | 
			
		||||
configure       configure script for Unix
 | 
			
		||||
make_vms.com    makefile for VMS
 | 
			
		||||
test/example.c  zlib usages examples for build testing
 | 
			
		||||
test/minigzip.c minimal gzip-like functionality for build testing
 | 
			
		||||
test/infcover.c inf*.c code coverage for build coverage testing
 | 
			
		||||
treebuild.xml   XML description of source file dependencies
 | 
			
		||||
zconf.h.cmakein zconf.h template for cmake
 | 
			
		||||
zconf.h.in      zconf.h template for configure
 | 
			
		||||
zlib.3          Man page for zlib
 | 
			
		||||
zlib.3.pdf      Man page in PDF format
 | 
			
		||||
zlib.map        Linux symbol information
 | 
			
		||||
zlib.pc.in      Template for pkg-config descriptor
 | 
			
		||||
zlib.pc.cmakein zlib.pc template for cmake
 | 
			
		||||
zlib2ansi       perl script to convert source files for C++ compilation
 | 
			
		||||
 | 
			
		||||
amiga/          makefiles for Amiga SAS C
 | 
			
		||||
as400/          makefiles for IBM AS/400
 | 
			
		||||
as400/          makefiles for AS/400
 | 
			
		||||
doc/            documentation for formats and algorithms
 | 
			
		||||
msdos/          makefiles for MSDOS
 | 
			
		||||
nintendods/     makefile for Nintendo DS
 | 
			
		||||
objs/           destination for object files
 | 
			
		||||
old/            makefiles for various architectures and zlib documentation
 | 
			
		||||
                files that have not yet been updated for zlib 1.2.x
 | 
			
		||||
pics/           destination for position-independent-code object files
 | 
			
		||||
projects/       projects for various Integrated Development Environments
 | 
			
		||||
qnx/            makefiles for QNX
 | 
			
		||||
watcom/         makefiles for OpenWatcom
 | 
			
		||||
win32/          makefiles for Windows
 | 
			
		||||
 | 
			
		||||
                zlib public header files (required for library use):
 | 
			
		||||
zconf.h         (made by configure)
 | 
			
		||||
zconf.h
 | 
			
		||||
zlib.h
 | 
			
		||||
 | 
			
		||||
                private source files used to build the zlib library:
 | 
			
		||||
@@ -57,10 +61,8 @@ uncompr.c
 | 
			
		||||
zutil.c
 | 
			
		||||
zutil.h
 | 
			
		||||
 | 
			
		||||
                source files for sample programs:
 | 
			
		||||
example.c
 | 
			
		||||
minigzip.c
 | 
			
		||||
See examples/README.examples for more
 | 
			
		||||
                source files for sample programs
 | 
			
		||||
See examples/README.examples
 | 
			
		||||
 | 
			
		||||
                unsupported contribution by third parties
 | 
			
		||||
                unsupported contributions by third parties
 | 
			
		||||
See contrib/README.contrib
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								Makefile
									
									
									
									
									
								
							@@ -1,2 +1,5 @@
 | 
			
		||||
all:
 | 
			
		||||
	-@echo "Use ./configure first.  Thank you."
 | 
			
		||||
	-@echo "Please use ./configure first.  Thank you."
 | 
			
		||||
 | 
			
		||||
distclean:
 | 
			
		||||
	make -f Makefile.in distclean
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										144
									
								
								Makefile.in
									
									
									
									
									
								
							
							
						
						
									
										144
									
								
								Makefile.in
									
									
									
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
# Makefile for zlib
 | 
			
		||||
# Copyright (C) 1995-2010 Jean-loup Gailly.
 | 
			
		||||
# Copyright (C) 1995-2013 Jean-loup Gailly, Mark Adler
 | 
			
		||||
# For conditions of distribution and use, see copyright notice in zlib.h
 | 
			
		||||
 | 
			
		||||
# To compile and test, type:
 | 
			
		||||
@@ -25,19 +25,22 @@ CFLAGS=-O
 | 
			
		||||
#           -Wstrict-prototypes -Wmissing-prototypes
 | 
			
		||||
 | 
			
		||||
SFLAGS=-O
 | 
			
		||||
 | 
			
		||||
LDFLAGS=-L. libz.a
 | 
			
		||||
LDFLAGS=
 | 
			
		||||
TEST_LDFLAGS=-L. libz.a
 | 
			
		||||
LDSHARED=$(CC)
 | 
			
		||||
CPP=$(CC) -E
 | 
			
		||||
 | 
			
		||||
STATICLIB=libz.a
 | 
			
		||||
SHAREDLIB=libz.so
 | 
			
		||||
SHAREDLIBV=libz.so.1.2.3.9
 | 
			
		||||
SHAREDLIBV=libz.so.1.2.8
 | 
			
		||||
SHAREDLIBM=libz.so.1
 | 
			
		||||
LIBS=$(STATICLIB) $(SHAREDLIB) $(SHAREDLIBV)
 | 
			
		||||
LIBS=$(STATICLIB) $(SHAREDLIBV)
 | 
			
		||||
 | 
			
		||||
AR=ar rc
 | 
			
		||||
AR=ar
 | 
			
		||||
ARFLAGS=rc
 | 
			
		||||
RANLIB=ranlib
 | 
			
		||||
LDCONFIG=ldconfig
 | 
			
		||||
LDSHAREDLIBC=-lc
 | 
			
		||||
TAR=tar
 | 
			
		||||
SHELL=/bin/sh
 | 
			
		||||
EXE=
 | 
			
		||||
@@ -45,16 +48,19 @@ EXE=
 | 
			
		||||
prefix = /usr/local
 | 
			
		||||
exec_prefix = ${prefix}
 | 
			
		||||
libdir = ${exec_prefix}/lib
 | 
			
		||||
sharedlibdir = ${libdir}
 | 
			
		||||
includedir = ${prefix}/include
 | 
			
		||||
mandir = ${prefix}/share/man
 | 
			
		||||
man3dir = ${mandir}/man3
 | 
			
		||||
pkgconfigdir = ${libdir}/pkgconfig
 | 
			
		||||
 | 
			
		||||
OBJC = adler32.o compress.o crc32.o deflate.o gzclose.o gzlib.o gzread.o \
 | 
			
		||||
	gzwrite.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o
 | 
			
		||||
OBJZ = adler32.o crc32.o deflate.o infback.o inffast.o inflate.o inftrees.o trees.o zutil.o
 | 
			
		||||
OBJG = compress.o uncompr.o gzclose.o gzlib.o gzread.o gzwrite.o
 | 
			
		||||
OBJC = $(OBJZ) $(OBJG)
 | 
			
		||||
 | 
			
		||||
PIC_OBJC = adler32.lo compress.lo crc32.lo deflate.lo gzclose.lo gzlib.lo gzread.lo \
 | 
			
		||||
	gzwrite.lo infback.lo inffast.lo inflate.lo inftrees.lo trees.lo uncompr.lo zutil.lo
 | 
			
		||||
PIC_OBJZ = adler32.lo crc32.lo deflate.lo infback.lo inffast.lo inflate.lo inftrees.lo trees.lo zutil.lo
 | 
			
		||||
PIC_OBJG = compress.lo uncompr.lo gzclose.lo gzlib.lo gzread.lo gzwrite.lo
 | 
			
		||||
PIC_OBJC = $(PIC_OBJZ) $(PIC_OBJG)
 | 
			
		||||
 | 
			
		||||
# to use the asm code: make OBJA=match.o, PIC_OBJA=match.lo
 | 
			
		||||
OBJA =
 | 
			
		||||
@@ -77,35 +83,49 @@ check: test
 | 
			
		||||
test: all teststatic testshared
 | 
			
		||||
 | 
			
		||||
teststatic: static
 | 
			
		||||
	@if echo hello world | ./minigzip | ./minigzip -d && ./example; then \
 | 
			
		||||
	@TMPST=tmpst_$$; \
 | 
			
		||||
	if echo hello world | ./minigzip | ./minigzip -d && ./example $$TMPST ; then \
 | 
			
		||||
	  echo '		*** zlib test OK ***'; \
 | 
			
		||||
	else \
 | 
			
		||||
	  echo '		*** zlib test FAILED ***'; false; \
 | 
			
		||||
	fi
 | 
			
		||||
	-@rm -f foo.gz
 | 
			
		||||
	fi; \
 | 
			
		||||
	rm -f $$TMPST
 | 
			
		||||
 | 
			
		||||
testshared: shared
 | 
			
		||||
	@LD_LIBRARY_PATH=`pwd`:$(LD_LIBRARY_PATH) ; export LD_LIBRARY_PATH; \
 | 
			
		||||
	LD_LIBRARYN32_PATH=`pwd`:$(LD_LIBRARYN32_PATH) ; export LD_LIBRARYN32_PATH; \
 | 
			
		||||
	DYLD_LIBRARY_PATH=`pwd`:$(DYLD_LIBRARY_PATH) ; export DYLD_LIBRARY_PATH; \
 | 
			
		||||
	SHLIB_PATH=`pwd`:$(SHLIB_PATH) ; export SHLIB_PATH; \
 | 
			
		||||
	if echo hello world | ./minigzipsh | ./minigzipsh -d && ./examplesh; then \
 | 
			
		||||
	TMPSH=tmpsh_$$; \
 | 
			
		||||
	if echo hello world | ./minigzipsh | ./minigzipsh -d && ./examplesh $$TMPSH; then \
 | 
			
		||||
	  echo '		*** zlib shared test OK ***'; \
 | 
			
		||||
	else \
 | 
			
		||||
	  echo '		*** zlib shared test FAILED ***'; false; \
 | 
			
		||||
	fi
 | 
			
		||||
	-@rm -f foo.gz
 | 
			
		||||
	fi; \
 | 
			
		||||
	rm -f $$TMPSH
 | 
			
		||||
 | 
			
		||||
test64: all64
 | 
			
		||||
	@if echo hello world | ./minigzip64 | ./minigzip64 -d && ./example64; then \
 | 
			
		||||
	@TMP64=tmp64_$$; \
 | 
			
		||||
	if echo hello world | ./minigzip64 | ./minigzip64 -d && ./example64 $$TMP64; then \
 | 
			
		||||
	  echo '		*** zlib 64-bit test OK ***'; \
 | 
			
		||||
	else \
 | 
			
		||||
	  echo '		*** zlib 64-bit test FAILED ***'; false; \
 | 
			
		||||
	fi
 | 
			
		||||
	-@rm -f foo.gz
 | 
			
		||||
	fi; \
 | 
			
		||||
	rm -f $$TMP64
 | 
			
		||||
 | 
			
		||||
infcover.o: test/infcover.c zlib.h zconf.h
 | 
			
		||||
	$(CC) $(CFLAGS) -I. -c -o $@ test/infcover.c
 | 
			
		||||
 | 
			
		||||
infcover: infcover.o libz.a
 | 
			
		||||
	$(CC) $(CFLAGS) -o $@ infcover.o libz.a
 | 
			
		||||
 | 
			
		||||
cover: infcover
 | 
			
		||||
	rm -f *.gcda
 | 
			
		||||
	./infcover
 | 
			
		||||
	gcov inf*.c
 | 
			
		||||
 | 
			
		||||
libz.a: $(OBJS)
 | 
			
		||||
	$(AR) $@ $(OBJS)
 | 
			
		||||
	$(AR) $(ARFLAGS) $@ $(OBJS)
 | 
			
		||||
	-@ ($(RANLIB) $@ || true) >/dev/null 2>&1
 | 
			
		||||
 | 
			
		||||
match.o: match.S
 | 
			
		||||
@@ -120,31 +140,37 @@ match.lo: match.S
 | 
			
		||||
	mv _match.o match.lo
 | 
			
		||||
	rm -f _match.s
 | 
			
		||||
 | 
			
		||||
example64.o: example.c zlib.h zconf.h
 | 
			
		||||
	$(CC) $(CFLAGS) -D_FILE_OFFSET_BITS=64 -c -o $@ example.c
 | 
			
		||||
example.o: test/example.c zlib.h zconf.h
 | 
			
		||||
	$(CC) $(CFLAGS) -I. -c -o $@ test/example.c
 | 
			
		||||
 | 
			
		||||
minigzip64.o: minigzip.c zlib.h zconf.h
 | 
			
		||||
	$(CC) $(CFLAGS) -D_FILE_OFFSET_BITS=64 -c -o $@ minigzip.c
 | 
			
		||||
minigzip.o: test/minigzip.c zlib.h zconf.h
 | 
			
		||||
	$(CC) $(CFLAGS) -I. -c -o $@ test/minigzip.c
 | 
			
		||||
 | 
			
		||||
example64.o: test/example.c zlib.h zconf.h
 | 
			
		||||
	$(CC) $(CFLAGS) -I. -D_FILE_OFFSET_BITS=64 -c -o $@ test/example.c
 | 
			
		||||
 | 
			
		||||
minigzip64.o: test/minigzip.c zlib.h zconf.h
 | 
			
		||||
	$(CC) $(CFLAGS) -I. -D_FILE_OFFSET_BITS=64 -c -o $@ test/minigzip.c
 | 
			
		||||
 | 
			
		||||
.SUFFIXES: .lo
 | 
			
		||||
 | 
			
		||||
.c.lo:
 | 
			
		||||
	-@if [ ! -d objs ]; then mkdir objs; fi
 | 
			
		||||
	-@mkdir objs 2>/dev/null || test -d objs
 | 
			
		||||
	$(CC) $(SFLAGS) -DPIC -c -o objs/$*.o $<
 | 
			
		||||
	-@mv objs/$*.o $@
 | 
			
		||||
 | 
			
		||||
$(SHAREDLIBV): $(PIC_OBJS)
 | 
			
		||||
	$(LDSHARED) $(SFLAGS) -o $@ $(PIC_OBJS) -lc
 | 
			
		||||
placebo $(SHAREDLIBV): $(PIC_OBJS) libz.a
 | 
			
		||||
	$(LDSHARED) $(SFLAGS) -o $@ $(PIC_OBJS) $(LDSHAREDLIBC) $(LDFLAGS)
 | 
			
		||||
	rm -f $(SHAREDLIB) $(SHAREDLIBM)
 | 
			
		||||
	ln -s $@ $(SHAREDLIB)
 | 
			
		||||
	ln -s $@ $(SHAREDLIBM)
 | 
			
		||||
	-@rmdir objs
 | 
			
		||||
 | 
			
		||||
example$(EXE): example.o $(STATICLIB)
 | 
			
		||||
	$(CC) $(CFLAGS) -o $@ example.o $(LDFLAGS)
 | 
			
		||||
	$(CC) $(CFLAGS) -o $@ example.o $(TEST_LDFLAGS)
 | 
			
		||||
 | 
			
		||||
minigzip$(EXE): minigzip.o $(STATICLIB)
 | 
			
		||||
	$(CC) $(CFLAGS) -o $@ minigzip.o $(LDFLAGS)
 | 
			
		||||
	$(CC) $(CFLAGS) -o $@ minigzip.o $(TEST_LDFLAGS)
 | 
			
		||||
 | 
			
		||||
examplesh$(EXE): example.o $(SHAREDLIBV)
 | 
			
		||||
	$(CC) $(CFLAGS) -o $@ example.o -L. $(SHAREDLIBV)
 | 
			
		||||
@@ -153,24 +179,29 @@ minigzipsh$(EXE): minigzip.o $(SHAREDLIBV)
 | 
			
		||||
	$(CC) $(CFLAGS) -o $@ minigzip.o -L. $(SHAREDLIBV)
 | 
			
		||||
 | 
			
		||||
example64$(EXE): example64.o $(STATICLIB)
 | 
			
		||||
	$(CC) $(CFLAGS) -o $@ example64.o $(LDFLAGS)
 | 
			
		||||
	$(CC) $(CFLAGS) -o $@ example64.o $(TEST_LDFLAGS)
 | 
			
		||||
 | 
			
		||||
minigzip64$(EXE): minigzip64.o $(STATICLIB)
 | 
			
		||||
	$(CC) $(CFLAGS) -o $@ minigzip64.o $(LDFLAGS)
 | 
			
		||||
	$(CC) $(CFLAGS) -o $@ minigzip64.o $(TEST_LDFLAGS)
 | 
			
		||||
 | 
			
		||||
install-libs: $(LIBS)
 | 
			
		||||
	-@if [ ! -d $(DESTDIR)$(exec_prefix)  ]; then mkdir -p $(DESTDIR)$(exec_prefix); fi
 | 
			
		||||
	-@if [ ! -d $(DESTDIR)$(libdir)       ]; then mkdir -p $(DESTDIR)$(libdir); fi
 | 
			
		||||
	-@if [ ! -d $(DESTDIR)$(sharedlibdir) ]; then mkdir -p $(DESTDIR)$(sharedlibdir); fi
 | 
			
		||||
	-@if [ ! -d $(DESTDIR)$(man3dir)      ]; then mkdir -p $(DESTDIR)$(man3dir); fi
 | 
			
		||||
	-@if [ ! -d $(DESTDIR)$(pkgconfigdir) ]; then mkdir -p $(DESTDIR)$(pkgconfigdir); fi
 | 
			
		||||
	cp $(LIBS) $(DESTDIR)$(libdir)
 | 
			
		||||
	cd $(DESTDIR)$(libdir); chmod 755 $(SHAREDLIB) ; chmod u=rw,go=r $(STATICLIB)
 | 
			
		||||
	-@(cd $(DESTDIR)$(libdir); $(RANLIB) libz.a || true) >/dev/null 2>&1
 | 
			
		||||
	cd $(DESTDIR)$(libdir); if test -f $(SHAREDLIBV); then \
 | 
			
		||||
	  rm -f $(SHAREDLIB) $(SHAREDLIBM); \
 | 
			
		||||
	  ln -s $(SHAREDLIBV) $(SHAREDLIB); \
 | 
			
		||||
	  ln -s $(SHAREDLIBV) $(SHAREDLIBM); \
 | 
			
		||||
	  (ldconfig || true)  >/dev/null 2>&1; \
 | 
			
		||||
	cp $(STATICLIB) $(DESTDIR)$(libdir)
 | 
			
		||||
	chmod 644 $(DESTDIR)$(libdir)/$(STATICLIB)
 | 
			
		||||
	-@($(RANLIB) $(DESTDIR)$(libdir)/libz.a || true) >/dev/null 2>&1
 | 
			
		||||
	-@if test -n "$(SHAREDLIBV)"; then \
 | 
			
		||||
	  cp $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir); \
 | 
			
		||||
	  echo "cp $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir)"; \
 | 
			
		||||
	  chmod 755 $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBV); \
 | 
			
		||||
	  echo "chmod 755 $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBV)"; \
 | 
			
		||||
	  rm -f $(DESTDIR)$(sharedlibdir)/$(SHAREDLIB) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBM); \
 | 
			
		||||
	  ln -s $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIB); \
 | 
			
		||||
	  ln -s $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBM); \
 | 
			
		||||
	  ($(LDCONFIG) || true)  >/dev/null 2>&1; \
 | 
			
		||||
	fi
 | 
			
		||||
	cp zlib.3 $(DESTDIR)$(man3dir)
 | 
			
		||||
	chmod 644 $(DESTDIR)$(man3dir)/zlib.3
 | 
			
		||||
@@ -185,28 +216,47 @@ install: install-libs
 | 
			
		||||
	chmod 644 $(DESTDIR)$(includedir)/zlib.h $(DESTDIR)$(includedir)/zconf.h
 | 
			
		||||
 | 
			
		||||
uninstall:
 | 
			
		||||
	cd $(DESTDIR)$(includedir); rm -f zlib.h zconf.h
 | 
			
		||||
	cd $(DESTDIR)$(libdir); rm -f libz.a; \
 | 
			
		||||
	if test -f $(SHAREDLIBV); then \
 | 
			
		||||
	cd $(DESTDIR)$(includedir) && rm -f zlib.h zconf.h
 | 
			
		||||
	cd $(DESTDIR)$(libdir) && rm -f libz.a; \
 | 
			
		||||
	if test -n "$(SHAREDLIBV)" -a -f $(SHAREDLIBV); then \
 | 
			
		||||
	  rm -f $(SHAREDLIBV) $(SHAREDLIB) $(SHAREDLIBM); \
 | 
			
		||||
	fi
 | 
			
		||||
	cd $(DESTDIR)$(man3dir); rm -f zlib.3
 | 
			
		||||
	cd $(DESTDIR)$(pkgconfigdir); rm -f zlib.pc
 | 
			
		||||
	cd $(DESTDIR)$(man3dir) && rm -f zlib.3
 | 
			
		||||
	cd $(DESTDIR)$(pkgconfigdir) && rm -f zlib.pc
 | 
			
		||||
 | 
			
		||||
docs: zlib.3.pdf
 | 
			
		||||
 | 
			
		||||
zlib.3.pdf: zlib.3
 | 
			
		||||
	groff -mandoc -f H -T ps zlib.3 | ps2pdf - zlib.3.pdf
 | 
			
		||||
 | 
			
		||||
zconf.h.cmakein: zconf.h.in
 | 
			
		||||
	-@ TEMPFILE=zconfh_$$; \
 | 
			
		||||
	echo "/#define ZCONF_H/ a\\\\\n#cmakedefine Z_PREFIX\\\\\n#cmakedefine Z_HAVE_UNISTD_H\n" >> $$TEMPFILE &&\
 | 
			
		||||
	sed -f $$TEMPFILE zconf.h.in > zconf.h.cmakein &&\
 | 
			
		||||
	touch -r zconf.h.in zconf.h.cmakein &&\
 | 
			
		||||
	rm $$TEMPFILE
 | 
			
		||||
 | 
			
		||||
zconf: zconf.h.in
 | 
			
		||||
	cp -p zconf.h.in zconf.h
 | 
			
		||||
 | 
			
		||||
mostlyclean: clean
 | 
			
		||||
clean:
 | 
			
		||||
	rm -f *.o *.lo *~ \
 | 
			
		||||
	   example$(EXE) minigzip$(EXE) examplesh$(EXE) minigzipsh$(EXE) \
 | 
			
		||||
	   example64$(EXE) minigzip64$(EXE) \
 | 
			
		||||
	   infcover \
 | 
			
		||||
	   libz.* foo.gz so_locations \
 | 
			
		||||
	   _match.s maketree contrib/infback9/*.o
 | 
			
		||||
	rm -rf objs
 | 
			
		||||
	rm -f *.gcda *.gcno *.gcov
 | 
			
		||||
	rm -f contrib/infback9/*.gcda contrib/infback9/*.gcno contrib/infback9/*.gcov
 | 
			
		||||
 | 
			
		||||
maintainer-clean: distclean
 | 
			
		||||
distclean: clean
 | 
			
		||||
	rm -f Makefile zconf.h zlib.pc
 | 
			
		||||
distclean: clean zconf zconf.h.cmakein docs
 | 
			
		||||
	rm -f Makefile zlib.pc configure.log
 | 
			
		||||
	-@rm -f .DS_Store
 | 
			
		||||
	-@printf 'all:\n\t-@echo "Use ./configure first.  Thank you."\n' > Makefile
 | 
			
		||||
	-@printf 'all:\n\t-@echo "Please use ./configure first.  Thank you."\n' > Makefile
 | 
			
		||||
	-@printf '\ndistclean:\n\tmake -f Makefile.in distclean\n' >> Makefile
 | 
			
		||||
	-@touch -r Makefile.in Makefile
 | 
			
		||||
 | 
			
		||||
tags:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										88
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										88
									
								
								README
									
									
									
									
									
								
							@@ -1,56 +1,52 @@
 | 
			
		||||
ZLIB DATA COMPRESSION LIBRARY
 | 
			
		||||
 | 
			
		||||
zlib 1.2.3.9 is a general purpose data compression library.  All the code is
 | 
			
		||||
zlib 1.2.8 is a general purpose data compression library.  All the code is
 | 
			
		||||
thread safe.  The data format used by the zlib library is described by RFCs
 | 
			
		||||
(Request for Comments) 1950 to 1952 in the files
 | 
			
		||||
http://www.ietf.org/rfc/rfc1950.txt (zlib format), rfc1951.txt (deflate format)
 | 
			
		||||
and rfc1952.txt (gzip format). These documents are also available in other
 | 
			
		||||
formats from ftp://ftp.uu.net/graphics/png/documents/zlib/zdoc-index.html
 | 
			
		||||
http://tools.ietf.org/html/rfc1950 (zlib format), rfc1951 (deflate format) and
 | 
			
		||||
rfc1952 (gzip format).
 | 
			
		||||
 | 
			
		||||
All functions of the compression library are documented in the file zlib.h
 | 
			
		||||
(volunteer to write man pages welcome, contact zlib@gzip.org).  A usage example
 | 
			
		||||
of the library is given in the file example.c which also tests that the library
 | 
			
		||||
is working correctly. Another example is given in the file minigzip.c. The
 | 
			
		||||
compression library itself is composed of all source files except example.c and
 | 
			
		||||
minigzip.c.
 | 
			
		||||
of the library is given in the file test/example.c which also tests that
 | 
			
		||||
the library is working correctly.  Another example is given in the file
 | 
			
		||||
test/minigzip.c.  The compression library itself is composed of all source
 | 
			
		||||
files in the root directory.
 | 
			
		||||
 | 
			
		||||
To compile all files and run the test program, follow the instructions given at
 | 
			
		||||
the top of Makefile. In short "make test; make install" should work for most
 | 
			
		||||
machines. For Unix: "./configure; make test; make install". For MSDOS, use one
 | 
			
		||||
of the special makefiles such as Makefile.msc. For VMS, use make_vms.com.
 | 
			
		||||
the top of Makefile.in.  In short "./configure; make test", and if that goes
 | 
			
		||||
well, "make install" should work for most flavors of Unix.  For Windows, use
 | 
			
		||||
one of the special makefiles in win32/ or contrib/vstudio/ .  For VMS, use
 | 
			
		||||
make_vms.com.
 | 
			
		||||
 | 
			
		||||
Questions about zlib should be sent to <zlib@gzip.org>, or to Gilles Vollant
 | 
			
		||||
<info@winimage.com> for the Windows DLL version.  The zlib home page is
 | 
			
		||||
http://www.zlib.org or http://www.gzip.org/zlib/ Before reporting a problem,
 | 
			
		||||
please check this site to verify that you have the latest version of zlib;
 | 
			
		||||
otherwise get the latest version and check whether the problem still exists or
 | 
			
		||||
not.
 | 
			
		||||
http://zlib.net/ .  Before reporting a problem, please check this site to
 | 
			
		||||
verify that you have the latest version of zlib; otherwise get the latest
 | 
			
		||||
version and check whether the problem still exists or not.
 | 
			
		||||
 | 
			
		||||
PLEASE read the zlib FAQ http://www.gzip.org/zlib/zlib_faq.html before asking
 | 
			
		||||
for help.
 | 
			
		||||
PLEASE read the zlib FAQ http://zlib.net/zlib_faq.html before asking for help.
 | 
			
		||||
 | 
			
		||||
Mark Nelson <markn@ieee.org> wrote an article about zlib for the Jan.  1997
 | 
			
		||||
issue of  Dr. Dobb's Journal; a copy of the article is available in
 | 
			
		||||
http://dogma.net/markn/articles/zlibtool/zlibtool.htm
 | 
			
		||||
issue of Dr.  Dobb's Journal; a copy of the article is available at
 | 
			
		||||
http://marknelson.us/1997/01/01/zlib-engine/ .
 | 
			
		||||
 | 
			
		||||
The changes made in version 1.2.3.9 are documented in the file ChangeLog.
 | 
			
		||||
The changes made in version 1.2.8 are documented in the file ChangeLog.
 | 
			
		||||
 | 
			
		||||
Unsupported third party contributions are provided in directory "contrib".
 | 
			
		||||
Unsupported third party contributions are provided in directory contrib/ .
 | 
			
		||||
 | 
			
		||||
A Java implementation of zlib is available in the Java Development Kit
 | 
			
		||||
http://java.sun.com/j2se/1.4.2/docs/api/java/util/zip/package-summary.html
 | 
			
		||||
See the zlib home page http://www.zlib.org for details.
 | 
			
		||||
zlib is available in Java using the java.util.zip package, documented at
 | 
			
		||||
http://java.sun.com/developer/technicalArticles/Programming/compression/ .
 | 
			
		||||
 | 
			
		||||
A Perl interface to zlib written by Paul Marquess <pmqs@cpan.org> is in the
 | 
			
		||||
CPAN (Comprehensive Perl Archive Network) sites
 | 
			
		||||
http://www.cpan.org/modules/by-module/Compress/
 | 
			
		||||
A Perl interface to zlib written by Paul Marquess <pmqs@cpan.org> is available
 | 
			
		||||
at CPAN (Comprehensive Perl Archive Network) sites, including
 | 
			
		||||
http://search.cpan.org/~pmqs/IO-Compress-Zlib/ .
 | 
			
		||||
 | 
			
		||||
A Python interface to zlib written by A.M. Kuchling <amk@amk.ca> is
 | 
			
		||||
available in Python 1.5 and later versions, see
 | 
			
		||||
http://www.python.org/doc/lib/module-zlib.html
 | 
			
		||||
http://docs.python.org/library/zlib.html .
 | 
			
		||||
 | 
			
		||||
A zlib binding for TCL written by Andreas Kupries <a.kupries@westend.com> is
 | 
			
		||||
availlable at http://www.oche.de/~akupries/soft/trf/trf_zip.html
 | 
			
		||||
zlib is built into tcl: http://wiki.tcl.tk/4610 .
 | 
			
		||||
 | 
			
		||||
An experimental package to read and write files in .zip format, written on top
 | 
			
		||||
of zlib by Gilles Vollant <info@winimage.com>, is available in the
 | 
			
		||||
@@ -74,25 +70,21 @@ Notes for some targets:
 | 
			
		||||
- zlib doesn't work on HP-UX 9.05 with some versions of /bin/cc. It works with
 | 
			
		||||
  other compilers. Use "make test" to check your compiler.
 | 
			
		||||
 | 
			
		||||
- gzdopen is not supported on RISCOS, BEOS and by some Mac compilers.
 | 
			
		||||
- gzdopen is not supported on RISCOS or BEOS.
 | 
			
		||||
 | 
			
		||||
- For PalmOs, see http://palmzlib.sourceforge.net/
 | 
			
		||||
 | 
			
		||||
- When building a shared, i.e. dynamic library on Mac OS X, the library must be
 | 
			
		||||
  installed before testing (do "make install" before "make test"), since the
 | 
			
		||||
  library location is specified in the library.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Acknowledgments:
 | 
			
		||||
 | 
			
		||||
  The deflate format used by zlib was defined by Phil Katz. The deflate
 | 
			
		||||
  and zlib specifications were written by L. Peter Deutsch. Thanks to all the
 | 
			
		||||
  people who reported problems and suggested various improvements in zlib;
 | 
			
		||||
  they are too numerous to cite here.
 | 
			
		||||
  The deflate format used by zlib was defined by Phil Katz.  The deflate and
 | 
			
		||||
  zlib specifications were written by L.  Peter Deutsch.  Thanks to all the
 | 
			
		||||
  people who reported problems and suggested various improvements in zlib; they
 | 
			
		||||
  are too numerous to cite here.
 | 
			
		||||
 | 
			
		||||
Copyright notice:
 | 
			
		||||
 | 
			
		||||
 (C) 1995-2004 Jean-loup Gailly and Mark Adler
 | 
			
		||||
 (C) 1995-2013 Jean-loup Gailly and Mark Adler
 | 
			
		||||
 | 
			
		||||
  This software is provided 'as-is', without any express or implied
 | 
			
		||||
  warranty.  In no event will the authors be held liable for any damages
 | 
			
		||||
@@ -113,13 +105,11 @@ Copyright notice:
 | 
			
		||||
  Jean-loup Gailly        Mark Adler
 | 
			
		||||
  jloup@gzip.org          madler@alumni.caltech.edu
 | 
			
		||||
 | 
			
		||||
If you use the zlib library in a product, we would appreciate *not*
 | 
			
		||||
receiving lengthy legal documents to sign. The sources are provided
 | 
			
		||||
for free but without warranty of any kind.  The library has been
 | 
			
		||||
entirely written by Jean-loup Gailly and Mark Adler; it does not
 | 
			
		||||
include third-party code.
 | 
			
		||||
If you use the zlib library in a product, we would appreciate *not* receiving
 | 
			
		||||
lengthy legal documents to sign.  The sources are provided for free but without
 | 
			
		||||
warranty of any kind.  The library has been entirely written by Jean-loup
 | 
			
		||||
Gailly and Mark Adler; it does not include third-party code.
 | 
			
		||||
 | 
			
		||||
If you redistribute modified sources, we would appreciate that you include
 | 
			
		||||
in the file ChangeLog history information documenting your changes. Please
 | 
			
		||||
read the FAQ for more information on the distribution of modified source
 | 
			
		||||
versions.
 | 
			
		||||
If you redistribute modified sources, we would appreciate that you include in
 | 
			
		||||
the file ChangeLog history information documenting your changes.  Please read
 | 
			
		||||
the FAQ for more information on the distribution of modified source versions.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										68
									
								
								adler32.c
									
									
									
									
									
								
							
							
						
						
									
										68
									
								
								adler32.c
									
									
									
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/* adler32.c -- compute the Adler-32 checksum of a data stream
 | 
			
		||||
 * Copyright (C) 1995-2007 Mark Adler
 | 
			
		||||
 * Copyright (C) 1995-2011 Mark Adler
 | 
			
		||||
 * For conditions of distribution and use, see copyright notice in zlib.h
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
@@ -9,9 +9,9 @@
 | 
			
		||||
 | 
			
		||||
#define local static
 | 
			
		||||
 | 
			
		||||
local uLong adler32_combine_(uLong adler1, uLong adler2, z_off64_t len2);
 | 
			
		||||
local uLong adler32_combine_ OF((uLong adler1, uLong adler2, z_off64_t len2));
 | 
			
		||||
 | 
			
		||||
#define BASE 65521UL    /* largest prime smaller than 65536 */
 | 
			
		||||
#define BASE 65521      /* largest prime smaller than 65536 */
 | 
			
		||||
#define NMAX 5552
 | 
			
		||||
/* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */
 | 
			
		||||
 | 
			
		||||
@@ -21,39 +21,44 @@ local uLong adler32_combine_(uLong adler1, uLong adler2, z_off64_t len2);
 | 
			
		||||
#define DO8(buf,i)  DO4(buf,i); DO4(buf,i+4);
 | 
			
		||||
#define DO16(buf)   DO8(buf,0); DO8(buf,8);
 | 
			
		||||
 | 
			
		||||
/* use NO_DIVIDE if your processor does not do division in hardware */
 | 
			
		||||
/* use NO_DIVIDE if your processor does not do division in hardware --
 | 
			
		||||
   try it both ways to see which is faster */
 | 
			
		||||
#ifdef NO_DIVIDE
 | 
			
		||||
#  define MOD(a) \
 | 
			
		||||
/* note that this assumes BASE is 65521, where 65536 % 65521 == 15
 | 
			
		||||
   (thank you to John Reiser for pointing this out) */
 | 
			
		||||
#  define CHOP(a) \
 | 
			
		||||
    do { \
 | 
			
		||||
        if (a >= (BASE << 16)) a -= (BASE << 16); \
 | 
			
		||||
        if (a >= (BASE << 15)) a -= (BASE << 15); \
 | 
			
		||||
        if (a >= (BASE << 14)) a -= (BASE << 14); \
 | 
			
		||||
        if (a >= (BASE << 13)) a -= (BASE << 13); \
 | 
			
		||||
        if (a >= (BASE << 12)) a -= (BASE << 12); \
 | 
			
		||||
        if (a >= (BASE << 11)) a -= (BASE << 11); \
 | 
			
		||||
        if (a >= (BASE << 10)) a -= (BASE << 10); \
 | 
			
		||||
        if (a >= (BASE << 9)) a -= (BASE << 9); \
 | 
			
		||||
        if (a >= (BASE << 8)) a -= (BASE << 8); \
 | 
			
		||||
        if (a >= (BASE << 7)) a -= (BASE << 7); \
 | 
			
		||||
        if (a >= (BASE << 6)) a -= (BASE << 6); \
 | 
			
		||||
        if (a >= (BASE << 5)) a -= (BASE << 5); \
 | 
			
		||||
        if (a >= (BASE << 4)) a -= (BASE << 4); \
 | 
			
		||||
        if (a >= (BASE << 3)) a -= (BASE << 3); \
 | 
			
		||||
        if (a >= (BASE << 2)) a -= (BASE << 2); \
 | 
			
		||||
        if (a >= (BASE << 1)) a -= (BASE << 1); \
 | 
			
		||||
        unsigned long tmp = a >> 16; \
 | 
			
		||||
        a &= 0xffffUL; \
 | 
			
		||||
        a += (tmp << 4) - tmp; \
 | 
			
		||||
    } while (0)
 | 
			
		||||
#  define MOD28(a) \
 | 
			
		||||
    do { \
 | 
			
		||||
        CHOP(a); \
 | 
			
		||||
        if (a >= BASE) a -= BASE; \
 | 
			
		||||
    } while (0)
 | 
			
		||||
#  define MOD4(a) \
 | 
			
		||||
#  define MOD(a) \
 | 
			
		||||
    do { \
 | 
			
		||||
        if (a >= (BASE << 4)) a -= (BASE << 4); \
 | 
			
		||||
        if (a >= (BASE << 3)) a -= (BASE << 3); \
 | 
			
		||||
        if (a >= (BASE << 2)) a -= (BASE << 2); \
 | 
			
		||||
        if (a >= (BASE << 1)) a -= (BASE << 1); \
 | 
			
		||||
        CHOP(a); \
 | 
			
		||||
        MOD28(a); \
 | 
			
		||||
    } while (0)
 | 
			
		||||
#  define MOD63(a) \
 | 
			
		||||
    do { /* this assumes a is not negative */ \
 | 
			
		||||
        z_off64_t tmp = a >> 32; \
 | 
			
		||||
        a &= 0xffffffffL; \
 | 
			
		||||
        a += (tmp << 8) - (tmp << 5) + tmp; \
 | 
			
		||||
        tmp = a >> 16; \
 | 
			
		||||
        a &= 0xffffL; \
 | 
			
		||||
        a += (tmp << 4) - tmp; \
 | 
			
		||||
        tmp = a >> 16; \
 | 
			
		||||
        a &= 0xffffL; \
 | 
			
		||||
        a += (tmp << 4) - tmp; \
 | 
			
		||||
        if (a >= BASE) a -= BASE; \
 | 
			
		||||
    } while (0)
 | 
			
		||||
#else
 | 
			
		||||
#  define MOD(a) a %= BASE
 | 
			
		||||
#  define MOD4(a) a %= BASE
 | 
			
		||||
#  define MOD28(a) a %= BASE
 | 
			
		||||
#  define MOD63(a) a %= BASE
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* ========================================================================= */
 | 
			
		||||
@@ -92,7 +97,7 @@ uLong ZEXPORT adler32(adler, buf, len)
 | 
			
		||||
        }
 | 
			
		||||
        if (adler >= BASE)
 | 
			
		||||
            adler -= BASE;
 | 
			
		||||
        MOD4(sum2);             /* only added so many BASE's */
 | 
			
		||||
        MOD28(sum2);            /* only added so many BASE's */
 | 
			
		||||
        return adler | (sum2 << 16);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -137,8 +142,13 @@ local uLong adler32_combine_(adler1, adler2, len2)
 | 
			
		||||
    unsigned long sum2;
 | 
			
		||||
    unsigned rem;
 | 
			
		||||
 | 
			
		||||
    /* for negative len, return invalid adler32 as a clue for debugging */
 | 
			
		||||
    if (len2 < 0)
 | 
			
		||||
        return 0xffffffffUL;
 | 
			
		||||
 | 
			
		||||
    /* the derivation of this formula is left as an exercise for the reader */
 | 
			
		||||
    rem = (unsigned)(len2 % BASE);
 | 
			
		||||
    MOD63(len2);                /* assumes len2 >= 0 */
 | 
			
		||||
    rem = (unsigned)len2;
 | 
			
		||||
    sum1 = adler1 & 0xffff;
 | 
			
		||||
    sum2 = rem * sum1;
 | 
			
		||||
    MOD(sum2);
 | 
			
		||||
 
 | 
			
		||||
@@ -129,4 +129,87 @@ STRPGMEXP PGMLVL(*CURRENT) SIGNATURE('ZLIB')
 | 
			
		||||
 | 
			
		||||
  EXPORT SYMBOL("zlibCompileFlags")
 | 
			
		||||
 | 
			
		||||
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
 | 
			
		||||
/*   Version 1.2.5 additional entry points.                         */
 | 
			
		||||
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
 | 
			
		||||
 | 
			
		||||
/********************************************************************/
 | 
			
		||||
/*   *MODULE      ADLER32      ZLIB         01/02/01  00:15:09      */
 | 
			
		||||
/********************************************************************/
 | 
			
		||||
 | 
			
		||||
  EXPORT SYMBOL("adler32_combine")
 | 
			
		||||
  EXPORT SYMBOL("adler32_combine64")
 | 
			
		||||
 | 
			
		||||
/********************************************************************/
 | 
			
		||||
/*   *MODULE      CRC32        ZLIB         01/02/01  00:15:09      */
 | 
			
		||||
/********************************************************************/
 | 
			
		||||
 | 
			
		||||
  EXPORT SYMBOL("crc32_combine")
 | 
			
		||||
  EXPORT SYMBOL("crc32_combine64")
 | 
			
		||||
 | 
			
		||||
/********************************************************************/
 | 
			
		||||
/*   *MODULE      GZLIB        ZLIB         01/02/01  00:15:09      */
 | 
			
		||||
/********************************************************************/
 | 
			
		||||
 | 
			
		||||
  EXPORT SYMBOL("gzbuffer")
 | 
			
		||||
  EXPORT SYMBOL("gzoffset")
 | 
			
		||||
  EXPORT SYMBOL("gzoffset64")
 | 
			
		||||
  EXPORT SYMBOL("gzopen64")
 | 
			
		||||
  EXPORT SYMBOL("gzseek64")
 | 
			
		||||
  EXPORT SYMBOL("gztell64")
 | 
			
		||||
 | 
			
		||||
/********************************************************************/
 | 
			
		||||
/*   *MODULE      GZREAD       ZLIB         01/02/01  00:15:09      */
 | 
			
		||||
/********************************************************************/
 | 
			
		||||
 | 
			
		||||
  EXPORT SYMBOL("gzclose_r")
 | 
			
		||||
 | 
			
		||||
/********************************************************************/
 | 
			
		||||
/*   *MODULE      GZWRITE      ZLIB         01/02/01  00:15:09      */
 | 
			
		||||
/********************************************************************/
 | 
			
		||||
 | 
			
		||||
  EXPORT SYMBOL("gzclose_w")
 | 
			
		||||
 | 
			
		||||
/********************************************************************/
 | 
			
		||||
/*   *MODULE      INFLATE      ZLIB         01/02/01  00:15:09      */
 | 
			
		||||
/********************************************************************/
 | 
			
		||||
 | 
			
		||||
  EXPORT SYMBOL("inflateMark")
 | 
			
		||||
  EXPORT SYMBOL("inflatePrime")
 | 
			
		||||
  EXPORT SYMBOL("inflateReset2")
 | 
			
		||||
  EXPORT SYMBOL("inflateUndermine")
 | 
			
		||||
 | 
			
		||||
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
 | 
			
		||||
/*   Version 1.2.6 additional entry points.                         */
 | 
			
		||||
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
 | 
			
		||||
 | 
			
		||||
/********************************************************************/
 | 
			
		||||
/*   *MODULE      DEFLATE      ZLIB         01/02/01  00:15:09      */
 | 
			
		||||
/********************************************************************/
 | 
			
		||||
 | 
			
		||||
  EXPORT SYMBOL("deflateResetKeep")
 | 
			
		||||
  EXPORT SYMBOL("deflatePending")
 | 
			
		||||
 | 
			
		||||
/********************************************************************/
 | 
			
		||||
/*   *MODULE      GZWRITE      ZLIB         01/02/01  00:15:09      */
 | 
			
		||||
/********************************************************************/
 | 
			
		||||
 | 
			
		||||
  EXPORT SYMBOL("gzgetc_")
 | 
			
		||||
 | 
			
		||||
/********************************************************************/
 | 
			
		||||
/*   *MODULE      INFLATE      ZLIB         01/02/01  00:15:09      */
 | 
			
		||||
/********************************************************************/
 | 
			
		||||
 | 
			
		||||
  EXPORT SYMBOL("inflateResetKeep")
 | 
			
		||||
 | 
			
		||||
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
 | 
			
		||||
/*   Version 1.2.8 additional entry points.                         */
 | 
			
		||||
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
 | 
			
		||||
 | 
			
		||||
/********************************************************************/
 | 
			
		||||
/*   *MODULE      INFLATE      ZLIB         01/02/01  00:15:09      */
 | 
			
		||||
/********************************************************************/
 | 
			
		||||
 | 
			
		||||
  EXPORT SYMBOL("inflateGetDictionary")
 | 
			
		||||
 | 
			
		||||
ENDPGMEXP
 | 
			
		||||
							
								
								
									
										110
									
								
								as400/compile.clp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										110
									
								
								as400/compile.clp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,110 @@
 | 
			
		||||
/******************************************************************************/
 | 
			
		||||
/*                                                                            */
 | 
			
		||||
/*  ZLIB                                                                      */
 | 
			
		||||
/*                                                                            */
 | 
			
		||||
/*    Compile sources into modules and link them into a service program.      */
 | 
			
		||||
/*                                                                            */
 | 
			
		||||
/******************************************************************************/
 | 
			
		||||
 | 
			
		||||
             PGM
 | 
			
		||||
 | 
			
		||||
/*      Configuration adjustable parameters.                                  */
 | 
			
		||||
 | 
			
		||||
             DCL        VAR(&SRCLIB) TYPE(*CHAR) LEN(10) +
 | 
			
		||||
                          VALUE('ZLIB')                         /* Source library. */
 | 
			
		||||
             DCL        VAR(&SRCFILE) TYPE(*CHAR) LEN(10) +
 | 
			
		||||
                          VALUE('SOURCES')                      /* Source member file. */
 | 
			
		||||
             DCL        VAR(&CTLFILE) TYPE(*CHAR) LEN(10) +
 | 
			
		||||
                          VALUE('TOOLS')                        /* Control member file. */
 | 
			
		||||
 | 
			
		||||
             DCL        VAR(&MODLIB) TYPE(*CHAR) LEN(10) +
 | 
			
		||||
                          VALUE('ZLIB')                         /* Module library. */
 | 
			
		||||
 | 
			
		||||
             DCL        VAR(&SRVLIB) TYPE(*CHAR) LEN(10) +
 | 
			
		||||
                          VALUE('LGPL')                         /* Service program library. */
 | 
			
		||||
 | 
			
		||||
             DCL        VAR(&CFLAGS) TYPE(*CHAR) +
 | 
			
		||||
                          VALUE('OPTIMIZE(40)')                 /* Compile options. */
 | 
			
		||||
 | 
			
		||||
             DCL        VAR(&TGTRLS) TYPE(*CHAR) +
 | 
			
		||||
                          VALUE('V5R3M0')                       /* Target release. */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*      Working storage.                                                      */
 | 
			
		||||
 | 
			
		||||
             DCL        VAR(&CMDLEN) TYPE(*DEC) LEN(15 5) VALUE(300)    /* Command length. */
 | 
			
		||||
             DCL        VAR(&CMD) TYPE(*CHAR) LEN(512)
 | 
			
		||||
             DCL        VAR(&FIXDCMD) TYPE(*CHAR) LEN(512)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*      Compile sources into modules.                                         */
 | 
			
		||||
 | 
			
		||||
             CHGVAR     VAR(&FIXDCMD) VALUE('CRTCMOD' *BCAT &CFLAGS *BCAT      +
 | 
			
		||||
                        'SYSIFCOPT(*IFS64IO)' *BCAT                            +
 | 
			
		||||
                        'DEFINE(''_LARGEFILE64_SOURCE''' *BCAT                 +
 | 
			
		||||
                        '''_LFS64_LARGEFILE=1'') TGTRLS(' *TCAT &TGTRLS *TCAT  +
 | 
			
		||||
                        ') SRCFILE(' *TCAT &SRCLIB *TCAT '/' *TCAT             +
 | 
			
		||||
                        &SRCFILE *TCAT ') MODULE(' *TCAT &MODLIB *TCAT '/')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
             CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'ADLER32)')
 | 
			
		||||
             CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN)
 | 
			
		||||
 | 
			
		||||
             CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'COMPRESS)')
 | 
			
		||||
             CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN)
 | 
			
		||||
 | 
			
		||||
             CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'CRC32)')
 | 
			
		||||
             CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN)
 | 
			
		||||
 | 
			
		||||
             CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'DEFLATE)')
 | 
			
		||||
             CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN)
 | 
			
		||||
 | 
			
		||||
             CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'GZCLOSE)')
 | 
			
		||||
             CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN)
 | 
			
		||||
 | 
			
		||||
             CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'GZLIB)')
 | 
			
		||||
             CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN)
 | 
			
		||||
 | 
			
		||||
             CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'GZREAD)')
 | 
			
		||||
             CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN)
 | 
			
		||||
 | 
			
		||||
             CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'GZWRITE)')
 | 
			
		||||
             CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN)
 | 
			
		||||
 | 
			
		||||
             CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'INFBACK)')
 | 
			
		||||
             CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN)
 | 
			
		||||
 | 
			
		||||
             CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'INFFAST)')
 | 
			
		||||
             CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN)
 | 
			
		||||
 | 
			
		||||
             CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'INFLATE)')
 | 
			
		||||
             CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN)
 | 
			
		||||
 | 
			
		||||
             CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'INFTREES)')
 | 
			
		||||
             CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN)
 | 
			
		||||
 | 
			
		||||
             CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'TREES)')
 | 
			
		||||
             CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN)
 | 
			
		||||
 | 
			
		||||
             CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'UNCOMPR)')
 | 
			
		||||
             CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN)
 | 
			
		||||
 | 
			
		||||
             CHGVAR     VAR(&CMD) VALUE(&FIXDCMD *TCAT 'ZUTIL)')
 | 
			
		||||
             CALL       PGM(QCMDEXC) PARM(&CMD &CMDLEN)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*      Link modules into a service program.                                  */
 | 
			
		||||
 | 
			
		||||
             CRTSRVPGM  SRVPGM(&SRVLIB/ZLIB) +
 | 
			
		||||
                          MODULE(&MODLIB/ADLER32     &MODLIB/COMPRESS    +
 | 
			
		||||
                                 &MODLIB/CRC32       &MODLIB/DEFLATE     +
 | 
			
		||||
                                 &MODLIB/GZCLOSE     &MODLIB/GZLIB       +
 | 
			
		||||
                                 &MODLIB/GZREAD      &MODLIB/GZWRITE     +
 | 
			
		||||
                                 &MODLIB/INFBACK     &MODLIB/INFFAST     +
 | 
			
		||||
                                 &MODLIB/INFLATE     &MODLIB/INFTREES    +
 | 
			
		||||
                                 &MODLIB/TREES       &MODLIB/UNCOMPR     +
 | 
			
		||||
                                 &MODLIB/ZUTIL)                          +
 | 
			
		||||
                          SRCFILE(&SRCLIB/&CTLFILE) SRCMBR(BNDSRC)       +
 | 
			
		||||
                          TEXT('ZLIB 1.2.8') TGTRLS(&TGTRLS)
 | 
			
		||||
 | 
			
		||||
             ENDPGM
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
        ZLIB version 1.2.3 for AS400 installation instructions
 | 
			
		||||
        ZLIB version 1.2.8 for AS400 installation instructions
 | 
			
		||||
 | 
			
		||||
I) From an AS400 *SAVF file:
 | 
			
		||||
 | 
			
		||||
@@ -8,7 +8,7 @@ On the AS400:
 | 
			
		||||
 | 
			
		||||
_       Create the ZLIB AS400 library:
 | 
			
		||||
 | 
			
		||||
        CRTLIB LIB(ZLIB) TYPE(PROD) TEXT('ZLIB compression API library')
 | 
			
		||||
        CRTLIB LIB(ZLIB) TYPE(*PROD) TEXT('ZLIB compression API library')
 | 
			
		||||
 | 
			
		||||
_       Create a work save file, for example:
 | 
			
		||||
 | 
			
		||||
@@ -52,7 +52,7 @@ II) From the original source distribution:
 | 
			
		||||
 | 
			
		||||
1)      On the AS400, create the source library:
 | 
			
		||||
 | 
			
		||||
        CRTLIB LIB(ZLIB) TYPE(PROD) TEXT('ZLIB compression API library')
 | 
			
		||||
        CRTLIB LIB(ZLIB) TYPE(*PROD) TEXT('ZLIB compression API library')
 | 
			
		||||
 | 
			
		||||
2)      Create the source files:
 | 
			
		||||
 | 
			
		||||
@@ -70,7 +70,10 @@ II) From the original source distribution:
 | 
			
		||||
    compress.c          COMPRESS C     ZLIB - Compress a memory buffer
 | 
			
		||||
    crc32.c             CRC32    C     ZLIB - Compute the CRC-32 of a data stream
 | 
			
		||||
    deflate.c           DEFLATE  C     ZLIB - Compress data using the deflation algorithm
 | 
			
		||||
    gzio.c              GZIO     C     ZLIB - IO on .gz files
 | 
			
		||||
    gzclose.c           GZCLOSE  C     ZLIB - Close .gz files
 | 
			
		||||
    gzlib.c             GZLIB    C     ZLIB - Miscellaneous .gz files IO support
 | 
			
		||||
    gzread.c            GZREAD   C     ZLIB - Read .gz files
 | 
			
		||||
    gzwrite.c           GZWRITE  C     ZLIB - Write .gz files
 | 
			
		||||
    infback.c           INFBACK  C     ZLIB - Inflate using a callback interface
 | 
			
		||||
    inffast.c           INFFAST  C     ZLIB - Fast proc. literals & length/distance pairs
 | 
			
		||||
    inflate.c           INFLATE  C     ZLIB - Interface to inflate modules
 | 
			
		||||
@@ -81,6 +84,7 @@ II) From the original source distribution:
 | 
			
		||||
                H                      Original ZLIB C and ILE/RPG include files
 | 
			
		||||
    crc32.h             CRC32    C     ZLIB - CRC32 tables
 | 
			
		||||
    deflate.h           DEFLATE  C     ZLIB - Internal compression state
 | 
			
		||||
    gzguts.h            GZGUTS   C     ZLIB - Definitions for the gzclose module
 | 
			
		||||
    inffast.h           INFFAST  C     ZLIB - Header to use inffast.c
 | 
			
		||||
    inffixed.h          INFFIXED C     ZLIB - Table for decoding fixed codes
 | 
			
		||||
    inflate.h           INFLATE  C     ZLIB - Internal inflate state definitions
 | 
			
		||||
@@ -108,4 +112,4 @@ Notes:  For AS400 ILE RPG programmers, a /copy member defining the ZLIB
 | 
			
		||||
                implementation does not handle conversion from/to ASCII, so
 | 
			
		||||
                text data code conversions must be done explicitely.
 | 
			
		||||
 | 
			
		||||
        Always open zipped files in binary mode.
 | 
			
		||||
        Mainly for the reason above, always open zipped files in binary mode.
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
      *  ZLIB.INC - Interface to the general purpose compression library
 | 
			
		||||
      *
 | 
			
		||||
      *  ILE RPG400 version by Patrick Monnerat, DATASPHERE.
 | 
			
		||||
      *  Version 1.2.3.9
 | 
			
		||||
      *  Version 1.2.8
 | 
			
		||||
      *
 | 
			
		||||
      *
 | 
			
		||||
      *  WARNING:
 | 
			
		||||
@@ -22,16 +22,25 @@
 | 
			
		||||
      *
 | 
			
		||||
      *  Versioning information.
 | 
			
		||||
      *
 | 
			
		||||
     D ZLIB_VERSION    C                   '1.2.3.9'
 | 
			
		||||
     D ZLIB_VERNUM     C                   X'1239'
 | 
			
		||||
     D ZLIB_VERSION    C                   '1.2.8'
 | 
			
		||||
     D ZLIB_VERNUM     C                   X'1280'
 | 
			
		||||
     D ZLIB_VER_MAJOR  C                   1
 | 
			
		||||
     D ZLIB_VER_MINOR  C                   2
 | 
			
		||||
     D ZLIB_VER_REVISION...
 | 
			
		||||
     D                 C                   8
 | 
			
		||||
     D ZLIB_VER_SUBREVISION...
 | 
			
		||||
     D                 C                   0
 | 
			
		||||
      *
 | 
			
		||||
      *  Other equates.
 | 
			
		||||
      *
 | 
			
		||||
     D Z_NO_FLUSH      C                   0
 | 
			
		||||
     D Z_PARTIAL_FLUSH...
 | 
			
		||||
     D                 C                   1
 | 
			
		||||
     D Z_SYNC_FLUSH    C                   2
 | 
			
		||||
     D Z_FULL_FLUSH    C                   3
 | 
			
		||||
     D Z_FINISH        C                   4
 | 
			
		||||
     D Z_BLOCK         C                   5
 | 
			
		||||
     D Z_TREES         C                   6
 | 
			
		||||
      *
 | 
			
		||||
     D Z_OK            C                   0
 | 
			
		||||
     D Z_STREAM_END    C                   1
 | 
			
		||||
@@ -72,6 +81,7 @@
 | 
			
		||||
     D z_streamp       S               *                                        Stream struct ptr
 | 
			
		||||
     D gzFile          S               *                                        File pointer
 | 
			
		||||
     D z_off_t         S             10i 0                                      Stream offsets
 | 
			
		||||
     D z_off64_t       S             20i 0                                      Stream offsets
 | 
			
		||||
      *
 | 
			
		||||
      **************************************************************************
 | 
			
		||||
      *                               Structures
 | 
			
		||||
@@ -101,15 +111,15 @@
 | 
			
		||||
      **************************************************************************
 | 
			
		||||
      *
 | 
			
		||||
     D compress        PR            10I 0 extproc('compress')
 | 
			
		||||
     D  dest                      32767    options(*varsize)                    Destination buffer
 | 
			
		||||
     D  dest                      65535    options(*varsize)                    Destination buffer
 | 
			
		||||
     D  destLen                      10U 0                                      Destination length
 | 
			
		||||
     D  source                    32767    const options(*varsize)              Source buffer
 | 
			
		||||
     D  source                    65535    const options(*varsize)              Source buffer
 | 
			
		||||
     D  sourceLen                    10u 0 value                                Source length
 | 
			
		||||
      *
 | 
			
		||||
     D compress2       PR            10I 0 extproc('compress2')
 | 
			
		||||
     D  dest                      32767    options(*varsize)                    Destination buffer
 | 
			
		||||
     D  dest                      65535    options(*varsize)                    Destination buffer
 | 
			
		||||
     D  destLen                      10U 0                                      Destination length
 | 
			
		||||
     D  source                    32767    const options(*varsize)              Source buffer
 | 
			
		||||
     D  source                    65535    const options(*varsize)              Source buffer
 | 
			
		||||
     D  sourceLen                    10U 0 value                                Source length
 | 
			
		||||
     D  level                        10I 0 value                                Compression level
 | 
			
		||||
      *
 | 
			
		||||
@@ -117,34 +127,50 @@
 | 
			
		||||
     D  sourceLen                    10U 0 value
 | 
			
		||||
      *
 | 
			
		||||
     D uncompress      PR            10I 0 extproc('uncompress')
 | 
			
		||||
     D  dest                      32767    options(*varsize)                    Destination buffer
 | 
			
		||||
     D  dest                      65535    options(*varsize)                    Destination buffer
 | 
			
		||||
     D  destLen                      10U 0                                      Destination length
 | 
			
		||||
     D  source                    32767    const options(*varsize)              Source buffer
 | 
			
		||||
     D  source                    65535    const options(*varsize)              Source buffer
 | 
			
		||||
     D  sourceLen                    10U 0 value                                Source length
 | 
			
		||||
      *
 | 
			
		||||
      /if not defined(LARGE_FILES)
 | 
			
		||||
     D gzopen          PR                  extproc('gzopen')
 | 
			
		||||
     D                                     like(gzFile)
 | 
			
		||||
     D  path                           *   value options(*string)               File pathname
 | 
			
		||||
     D  mode                           *   value options(*string)               Open mode
 | 
			
		||||
      /else
 | 
			
		||||
     D gzopen          PR                  extproc('gzopen64')
 | 
			
		||||
     D                                     like(gzFile)
 | 
			
		||||
     D  path                           *   value options(*string)               File pathname
 | 
			
		||||
     D  mode                           *   value options(*string)               Open mode
 | 
			
		||||
      *
 | 
			
		||||
     D gzopen64        PR                  extproc('gzopen64')
 | 
			
		||||
     D                                     like(gzFile)
 | 
			
		||||
     D  path                           *   value options(*string)               File pathname
 | 
			
		||||
     D  mode                           *   value options(*string)               Open mode
 | 
			
		||||
      /endif
 | 
			
		||||
      *
 | 
			
		||||
     D gzdopen         PR                  extproc('gzdopen')
 | 
			
		||||
     D                                     like(gzFile)
 | 
			
		||||
     D  fd                           10i 0 value                                File descriptor
 | 
			
		||||
     D  fd                           10I 0 value                                File descriptor
 | 
			
		||||
     D  mode                           *   value options(*string)               Open mode
 | 
			
		||||
      *
 | 
			
		||||
     D gzbuffer        PR            10I 0 extproc('gzbuffer')
 | 
			
		||||
     D  file                               value like(gzFile)                   File pointer
 | 
			
		||||
     D  size                         10U 0 value
 | 
			
		||||
      *
 | 
			
		||||
     D gzsetparams     PR            10I 0 extproc('gzsetparams')
 | 
			
		||||
     D  file                               value like(gzFile)                   File pointer
 | 
			
		||||
     D  level                        10I 0 value
 | 
			
		||||
     D  strategy                     10i 0 value
 | 
			
		||||
     D  strategy                     10I 0 value
 | 
			
		||||
      *
 | 
			
		||||
     D gzread          PR            10I 0 extproc('gzread')
 | 
			
		||||
     D  file                               value like(gzFile)                   File pointer
 | 
			
		||||
     D  buf                       32767    options(*varsize)                    Buffer
 | 
			
		||||
     D  buf                       65535    options(*varsize)                    Buffer
 | 
			
		||||
     D  len                          10u 0 value                                Buffer length
 | 
			
		||||
      *
 | 
			
		||||
     D gzwrite         PR            10I 0 extproc('gzwrite')
 | 
			
		||||
     D  file                               value like(gzFile)                   File pointer
 | 
			
		||||
     D  buf                       32767    const options(*varsize)              Buffer
 | 
			
		||||
     D  buf                       65535    const options(*varsize)              Buffer
 | 
			
		||||
     D  len                          10u 0 value                                Buffer length
 | 
			
		||||
      *
 | 
			
		||||
     D gzputs          PR            10I 0 extproc('gzputs')
 | 
			
		||||
@@ -153,27 +179,85 @@
 | 
			
		||||
      *
 | 
			
		||||
     D gzgets          PR              *   extproc('gzgets')
 | 
			
		||||
     D  file                               value like(gzFile)                   File pointer
 | 
			
		||||
     D  buf                       32767    options(*varsize)                    Read buffer
 | 
			
		||||
     D  buf                       65535    options(*varsize)                    Read buffer
 | 
			
		||||
     D  len                          10i 0 value                                Buffer length
 | 
			
		||||
      *
 | 
			
		||||
     D gzputc          PR            10i 0 extproc('gzputc')
 | 
			
		||||
     D  file                               value like(gzFile)                   File pointer
 | 
			
		||||
     D  c                            10I 0 value                                Character to write
 | 
			
		||||
      *
 | 
			
		||||
     D gzgetc          PR            10i 0 extproc('gzgetc')
 | 
			
		||||
     D  file                               value like(gzFile)                   File pointer
 | 
			
		||||
      *
 | 
			
		||||
     D gzgetc_         PR            10i 0 extproc('gzgetc_')
 | 
			
		||||
     D  file                               value like(gzFile)                   File pointer
 | 
			
		||||
      *
 | 
			
		||||
     D gzungetc        PR            10i 0 extproc('gzungetc')
 | 
			
		||||
     D  c                            10I 0 value                                Character to push
 | 
			
		||||
     D  file                               value like(gzFile)                   File pointer
 | 
			
		||||
      *
 | 
			
		||||
     D gzflush         PR            10i 0 extproc('gzflush')
 | 
			
		||||
     D  file                               value like(gzFile)                   File pointer
 | 
			
		||||
     D  flush                        10I 0 value                                Type of flush
 | 
			
		||||
      *
 | 
			
		||||
      /if not defined(LARGE_FILES)
 | 
			
		||||
     D gzseek          PR                  extproc('gzseek')
 | 
			
		||||
     D                                     like(z_off_t)
 | 
			
		||||
     D  file                               value like(gzFile)                   File pointer
 | 
			
		||||
     D  offset                             value like(z_off_t)                  Offset
 | 
			
		||||
     D  whence                       10i 0 value                                Origin
 | 
			
		||||
      /else
 | 
			
		||||
     D gzseek          PR                  extproc('gzseek64')
 | 
			
		||||
     D                                     like(z_off_t)
 | 
			
		||||
     D  file                               value like(gzFile)                   File pointer
 | 
			
		||||
     D  offset                             value like(z_off_t)                  Offset
 | 
			
		||||
     D  whence                       10i 0 value                                Origin
 | 
			
		||||
      *
 | 
			
		||||
     D gzseek64        PR                  extproc('gzseek64')
 | 
			
		||||
     D                                     like(z_off64_t)
 | 
			
		||||
     D  file                               value like(gzFile)                   File pointer
 | 
			
		||||
     D  offset                             value like(z_off64_t)                Offset
 | 
			
		||||
     D  whence                       10i 0 value                                Origin
 | 
			
		||||
      /endif
 | 
			
		||||
      *
 | 
			
		||||
     D gzrewind        PR            10i 0 extproc('gzrewind')
 | 
			
		||||
     D  file                               value like(gzFile)                   File pointer
 | 
			
		||||
      *
 | 
			
		||||
      /if not defined(LARGE_FILES)
 | 
			
		||||
     D gztell          PR                  extproc('gztell')
 | 
			
		||||
     D                                     like(z_off_t)
 | 
			
		||||
     D  file                               value like(gzFile)                   File pointer
 | 
			
		||||
      /else
 | 
			
		||||
     D gztell          PR                  extproc('gztell64')
 | 
			
		||||
     D                                     like(z_off_t)
 | 
			
		||||
     D  file                               value like(gzFile)                   File pointer
 | 
			
		||||
      *
 | 
			
		||||
     D gztell64        PR                  extproc('gztell64')
 | 
			
		||||
     D                                     like(z_off64_t)
 | 
			
		||||
     D  file                               value like(gzFile)                   File pointer
 | 
			
		||||
      /endif
 | 
			
		||||
      *
 | 
			
		||||
      /if not defined(LARGE_FILES)
 | 
			
		||||
     D gzoffset        PR                  extproc('gzoffset')
 | 
			
		||||
     D                                     like(z_off_t)
 | 
			
		||||
     D  file                               value like(gzFile)                   File pointer
 | 
			
		||||
      /else
 | 
			
		||||
     D gzoffset        PR                  extproc('gzoffset64')
 | 
			
		||||
     D                                     like(z_off_t)
 | 
			
		||||
     D  file                               value like(gzFile)                   File pointer
 | 
			
		||||
      *
 | 
			
		||||
     D gzoffset64      PR                  extproc('gzoffset64')
 | 
			
		||||
     D                                     like(z_off64_t)
 | 
			
		||||
     D  file                               value like(gzFile)                   File pointer
 | 
			
		||||
      /endif
 | 
			
		||||
      *
 | 
			
		||||
     D gzeof           PR            10i 0 extproc('gzeof')
 | 
			
		||||
     D  file                               value like(gzFile)                   File pointer
 | 
			
		||||
      *
 | 
			
		||||
     D gzclose_r       PR            10i 0 extproc('gzclose_r')
 | 
			
		||||
     D  file                               value like(gzFile)                   File pointer
 | 
			
		||||
      *
 | 
			
		||||
     D gzclose_w       PR            10i 0 extproc('gzclose_w')
 | 
			
		||||
     D  file                               value like(gzFile)                   File pointer
 | 
			
		||||
      *
 | 
			
		||||
     D gzclose         PR            10i 0 extproc('gzclose')
 | 
			
		||||
@@ -234,7 +318,7 @@
 | 
			
		||||
     D deflateSetDictionary...
 | 
			
		||||
     D                 PR            10I 0 extproc('deflateSetDictionary')      Init. dictionary
 | 
			
		||||
     D  strm                               like(z_stream)                       Compression stream
 | 
			
		||||
     D  dictionary                32767    const options(*varsize)              Dictionary bytes
 | 
			
		||||
     D  dictionary                65535    const options(*varsize)              Dictionary bytes
 | 
			
		||||
     D  dictLength                   10U 0 value                                Dictionary length
 | 
			
		||||
      *
 | 
			
		||||
     D deflateCopy     PR            10I 0 extproc('deflateCopy')               Compress strm 2 strm
 | 
			
		||||
@@ -253,9 +337,14 @@
 | 
			
		||||
     D  strm                               like(z_stream)                       Compression stream
 | 
			
		||||
     D  sourcelen                    10U 0 value                                Compression level
 | 
			
		||||
      *
 | 
			
		||||
     D deflatePending  PR            10I 0 extproc('deflatePending')            Change level & strat
 | 
			
		||||
     D  strm                               like(z_stream)                       Compression stream
 | 
			
		||||
     D  pending                      10U 0                                      Pending bytes
 | 
			
		||||
     D  bits                         10I 0                                      Pending bits
 | 
			
		||||
      *
 | 
			
		||||
     D deflatePrime    PR            10I 0 extproc('deflatePrime')              Change level & strat
 | 
			
		||||
     D  strm                               like(z_stream)                       Compression stream
 | 
			
		||||
     D  bits                         10I 0 value                                Number of bits to insert
 | 
			
		||||
     D  bits                         10I 0 value                                # of bits to insert
 | 
			
		||||
     D  value                        10I 0 value                                Bits to insert
 | 
			
		||||
      *
 | 
			
		||||
     D inflateInit2    PR            10I 0 extproc('inflateInit2_')             Init. expansion
 | 
			
		||||
@@ -267,9 +356,15 @@
 | 
			
		||||
     D inflateSetDictionary...
 | 
			
		||||
     D                 PR            10I 0 extproc('inflateSetDictionary')      Init. dictionary
 | 
			
		||||
     D  strm                               like(z_stream)                       Expansion stream
 | 
			
		||||
     D  dictionary                32767    const options(*varsize)              Dictionary bytes
 | 
			
		||||
     D  dictionary                65535    const options(*varsize)              Dictionary bytes
 | 
			
		||||
     D  dictLength                   10U 0 value                                Dictionary length
 | 
			
		||||
      *
 | 
			
		||||
     D inflateGetDictionary...
 | 
			
		||||
     D                 PR            10I 0 extproc('inflateGetDictionary')      Get dictionary
 | 
			
		||||
     D  strm                               like(z_stream)                       Expansion stream
 | 
			
		||||
     D  dictionary                65535    options(*varsize)                    Dictionary bytes
 | 
			
		||||
     D  dictLength                   10U 0                                      Dictionary length
 | 
			
		||||
      *
 | 
			
		||||
     D inflateSync     PR            10I 0 extproc('inflateSync')               Sync. expansion
 | 
			
		||||
     D  strm                               like(z_stream)                       Expansion stream
 | 
			
		||||
      *
 | 
			
		||||
@@ -278,13 +373,25 @@
 | 
			
		||||
     D  source                             like(z_stream)                       Source stream
 | 
			
		||||
      *
 | 
			
		||||
     D inflateReset    PR            10I 0 extproc('inflateReset')              End and init. stream
 | 
			
		||||
     D  strm                               like(z_stream)                       Expansion stream
 | 
			
		||||
      *
 | 
			
		||||
     D inflateReset2   PR            10I 0 extproc('inflateReset2')             End and init. stream
 | 
			
		||||
     D  strm                               like(z_stream)                       Expansion stream
 | 
			
		||||
     D  windowBits                   10I 0 value                                Log2(buffer size)
 | 
			
		||||
      *
 | 
			
		||||
     D inflatePrime    PR            10I 0 extproc('inflatePrime')              Insert bits
 | 
			
		||||
     D  strm                               like(z_stream)                       Expansion stream
 | 
			
		||||
     D  bits                         10I 0 value                                Bit count
 | 
			
		||||
     D  value                        10I 0 value                                Bits to insert
 | 
			
		||||
      *
 | 
			
		||||
     D inflateMark     PR            10I 0 extproc('inflateMark')               Get inflate info
 | 
			
		||||
     D  strm                               like(z_stream)                       Expansion stream
 | 
			
		||||
      *
 | 
			
		||||
     D inflateBackInit...
 | 
			
		||||
     D                 PR            10I 0 extproc('inflateBackInit_')
 | 
			
		||||
     D  strm                               like(z_stream)                       Expansion stream
 | 
			
		||||
     D  windowBits                   10I 0 value                                Log2(buffer size)
 | 
			
		||||
     D  window                    32767    options(*varsize)                    Buffer
 | 
			
		||||
     D  window                    65535    options(*varsize)                    Buffer
 | 
			
		||||
     D  version                        *   value options(*string)               Version string
 | 
			
		||||
     D  stream_size                  10i 0 value                                Stream struct. size
 | 
			
		||||
      *
 | 
			
		||||
@@ -307,12 +414,12 @@
 | 
			
		||||
      *
 | 
			
		||||
     D adler32         PR            10U 0 extproc('adler32')                   New checksum
 | 
			
		||||
     D  adler                        10U 0 value                                Old checksum
 | 
			
		||||
     D  buf                       32767    const options(*varsize)              Bytes to accumulate
 | 
			
		||||
     D  buf                       65535    const options(*varsize)              Bytes to accumulate
 | 
			
		||||
     D  len                          10U 0 value                                Buffer length
 | 
			
		||||
      *
 | 
			
		||||
     D crc32           PR            10U 0 extproc('crc32')                     New checksum
 | 
			
		||||
     D  crc                          10U 0 value                                Old checksum
 | 
			
		||||
     D  buf                       32767    const options(*varsize)              Bytes to accumulate
 | 
			
		||||
     D  buf                       65535    const options(*varsize)              Bytes to accumulate
 | 
			
		||||
     D  len                          10U 0 value                                Buffer length
 | 
			
		||||
      *
 | 
			
		||||
      **************************************************************************
 | 
			
		||||
@@ -328,4 +435,17 @@
 | 
			
		||||
      *
 | 
			
		||||
     D get_crc_table   PR              *   extproc('get_crc_table')             Ptr to ulongs
 | 
			
		||||
      *
 | 
			
		||||
     D inflateUndermine...
 | 
			
		||||
     D                 PR            10I 0 extproc('inflateUndermine')
 | 
			
		||||
     D  strm                               like(z_stream)                       Expansion stream
 | 
			
		||||
     D  arg                          10I 0 value                                Error code
 | 
			
		||||
      *
 | 
			
		||||
     D inflateResetKeep...
 | 
			
		||||
     D                 PR            10I 0 extproc('inflateResetKeep')          End and init. stream
 | 
			
		||||
     D  strm                               like(z_stream)                       Expansion stream
 | 
			
		||||
      *
 | 
			
		||||
     D deflateResetKeep...
 | 
			
		||||
     D                 PR            10I 0 extproc('deflateResetKeep')          End and init. stream
 | 
			
		||||
     D  strm                               like(z_stream)                       Expansion stream
 | 
			
		||||
      *
 | 
			
		||||
      /endif
 | 
			
		||||
@@ -29,7 +29,7 @@ int ZEXPORT compress2 (dest, destLen, source, sourceLen, level)
 | 
			
		||||
    z_stream stream;
 | 
			
		||||
    int err;
 | 
			
		||||
 | 
			
		||||
    stream.next_in = (Bytef*)source;
 | 
			
		||||
    stream.next_in = (z_const Bytef *)source;
 | 
			
		||||
    stream.avail_in = (uInt)sourceLen;
 | 
			
		||||
#ifdef MAXSEG_64K
 | 
			
		||||
    /* Check for source > 64K on 16-bit machine: */
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										558
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										558
									
								
								configure
									
									
									
									
										vendored
									
									
								
							@@ -13,87 +13,191 @@
 | 
			
		||||
# If you have problems, try without defining CC and CFLAGS before reporting
 | 
			
		||||
# an error.
 | 
			
		||||
 | 
			
		||||
# start off configure.log
 | 
			
		||||
echo -------------------- >> configure.log
 | 
			
		||||
echo $0 $* >> configure.log
 | 
			
		||||
date >> configure.log
 | 
			
		||||
 | 
			
		||||
# set command prefix for cross-compilation
 | 
			
		||||
if [ -n "${CHOST}" ]; then
 | 
			
		||||
    uname="`echo "${CHOST}" | sed -e 's/^[^-]*-\([^-]*\)$/\1/' -e 's/^[^-]*-[^-]*-\([^-]*\)$/\1/' -e 's/^[^-]*-[^-]*-\([^-]*\)-.*$/\1/'`"
 | 
			
		||||
    CROSS_PREFIX="${CHOST}-"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# destination name for static library
 | 
			
		||||
STATICLIB=libz.a
 | 
			
		||||
LDFLAGS="${LDFLAGS} -L. ${STATICLIB}"
 | 
			
		||||
 | 
			
		||||
# extract zlib version numbers from zlib.h
 | 
			
		||||
VER=`sed -n -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`
 | 
			
		||||
VER3=`sed -n -e '/VERSION "/s/.*"\([0-9]*\\.[0-9]*\\.[0-9]*\)\\..*/\1/p' < zlib.h`
 | 
			
		||||
VER3=`sed -n -e '/VERSION "/s/.*"\([0-9]*\\.[0-9]*\\.[0-9]*\).*/\1/p' < zlib.h`
 | 
			
		||||
VER2=`sed -n -e '/VERSION "/s/.*"\([0-9]*\\.[0-9]*\)\\..*/\1/p' < zlib.h`
 | 
			
		||||
VER1=`sed -n -e '/VERSION "/s/.*"\([0-9]*\)\\..*/\1/p' < zlib.h`
 | 
			
		||||
 | 
			
		||||
# establish commands for library building
 | 
			
		||||
if "${CROSS_PREFIX}ar" --version >/dev/null 2>/dev/null || test $? -lt 126; then
 | 
			
		||||
    AR=${AR-"${CROSS_PREFIX}ar"}
 | 
			
		||||
    test -n "${CROSS_PREFIX}" && echo Using ${AR} | tee -a configure.log
 | 
			
		||||
else
 | 
			
		||||
    AR=${AR-"ar"}
 | 
			
		||||
AR_RC="${AR} rc"
 | 
			
		||||
    test -n "${CROSS_PREFIX}" && echo Using ${AR} | tee -a configure.log
 | 
			
		||||
fi
 | 
			
		||||
ARFLAGS=${ARFLAGS-"rc"}
 | 
			
		||||
if "${CROSS_PREFIX}ranlib" --version >/dev/null 2>/dev/null || test $? -lt 126; then
 | 
			
		||||
    RANLIB=${RANLIB-"${CROSS_PREFIX}ranlib"}
 | 
			
		||||
    test -n "${CROSS_PREFIX}" && echo Using ${RANLIB} | tee -a configure.log
 | 
			
		||||
else
 | 
			
		||||
    RANLIB=${RANLIB-"ranlib"}
 | 
			
		||||
fi
 | 
			
		||||
if "${CROSS_PREFIX}nm" --version >/dev/null 2>/dev/null || test $? -lt 126; then
 | 
			
		||||
    NM=${NM-"${CROSS_PREFIX}nm"}
 | 
			
		||||
    test -n "${CROSS_PREFIX}" && echo Using ${NM} | tee -a configure.log
 | 
			
		||||
else
 | 
			
		||||
    NM=${NM-"nm"}
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# set defaults before processing command line options
 | 
			
		||||
LDCONFIG=${LDCONFIG-"ldconfig"}
 | 
			
		||||
LDSHAREDLIBC="${LDSHAREDLIBC--lc}"
 | 
			
		||||
ARCHS=
 | 
			
		||||
prefix=${prefix-/usr/local}
 | 
			
		||||
exec_prefix=${exec_prefix-'${prefix}'}
 | 
			
		||||
libdir=${libdir-'${exec_prefix}/lib'}
 | 
			
		||||
sharedlibdir=${sharedlibdir-'${libdir}'}
 | 
			
		||||
includedir=${includedir-'${prefix}/include'}
 | 
			
		||||
mandir=${mandir-'${prefix}/share/man'}
 | 
			
		||||
shared_ext='.so'
 | 
			
		||||
shared=1
 | 
			
		||||
solo=0
 | 
			
		||||
cover=0
 | 
			
		||||
zprefix=0
 | 
			
		||||
zconst=0
 | 
			
		||||
build64=0
 | 
			
		||||
gcc=0
 | 
			
		||||
old_cc="$CC"
 | 
			
		||||
old_cflags="$CFLAGS"
 | 
			
		||||
OBJC='$(OBJZ) $(OBJG)'
 | 
			
		||||
PIC_OBJC='$(PIC_OBJZ) $(PIC_OBJG)'
 | 
			
		||||
 | 
			
		||||
# leave this script, optionally in a bad way
 | 
			
		||||
leave()
 | 
			
		||||
{
 | 
			
		||||
  if test "$*" != "0"; then
 | 
			
		||||
    echo "** $0 aborting." | tee -a configure.log
 | 
			
		||||
  fi
 | 
			
		||||
  rm -f $test.[co] $test $test$shared_ext $test.gcno ./--version
 | 
			
		||||
  echo -------------------- >> configure.log
 | 
			
		||||
  echo >> configure.log
 | 
			
		||||
  echo >> configure.log
 | 
			
		||||
  exit $1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# process command line options
 | 
			
		||||
while test $# -ge 1
 | 
			
		||||
do
 | 
			
		||||
case "$1" in
 | 
			
		||||
    -h* | --help)
 | 
			
		||||
      echo 'usage:'
 | 
			
		||||
      echo '  configure [--zprefix] [--prefix=PREFIX]  [--eprefix=EXPREFIX]'
 | 
			
		||||
      echo '    [--static] [--64] [--libdir=LIBDIR] [--includedir=INCLUDEDIR]'
 | 
			
		||||
      echo 'usage:' | tee -a configure.log
 | 
			
		||||
      echo '  configure [--const] [--zprefix] [--prefix=PREFIX]  [--eprefix=EXPREFIX]' | tee -a configure.log
 | 
			
		||||
      echo '    [--static] [--64] [--libdir=LIBDIR] [--sharedlibdir=LIBDIR]' | tee -a configure.log
 | 
			
		||||
      echo '    [--includedir=INCLUDEDIR] [--archs="-arch i386 -arch x86_64"]' | tee -a configure.log
 | 
			
		||||
        exit 0 ;;
 | 
			
		||||
    -p*=* | --prefix=*) prefix=`echo $1 | sed 's/[-a-z_]*=//'`; shift ;;
 | 
			
		||||
    -e*=* | --eprefix=*) exec_prefix=`echo $1 | sed 's/[-a-z_]*=//'`; shift ;;
 | 
			
		||||
    -l*=* | --libdir=*) libdir=`echo $1 | sed 's/[-a-z_]*=//'`; shift ;;
 | 
			
		||||
    -i*=* | --includedir=*) includedir=`echo $1 | sed 's/[-a-z_]*=//'`;shift ;;
 | 
			
		||||
    -u*=* | --uname=*) uname=`echo $1 | sed 's/[-a-z_]*=//'`;shift ;;
 | 
			
		||||
    -p*=* | --prefix=*) prefix=`echo $1 | sed 's/.*=//'`; shift ;;
 | 
			
		||||
    -e*=* | --eprefix=*) exec_prefix=`echo $1 | sed 's/.*=//'`; shift ;;
 | 
			
		||||
    -l*=* | --libdir=*) libdir=`echo $1 | sed 's/.*=//'`; shift ;;
 | 
			
		||||
    --sharedlibdir=*) sharedlibdir=`echo $1 | sed 's/.*=//'`; shift ;;
 | 
			
		||||
    -i*=* | --includedir=*) includedir=`echo $1 | sed 's/.*=//'`;shift ;;
 | 
			
		||||
    -u*=* | --uname=*) uname=`echo $1 | sed 's/.*=//'`;shift ;;
 | 
			
		||||
    -p* | --prefix) prefix="$2"; shift; shift ;;
 | 
			
		||||
    -e* | --eprefix) exec_prefix="$2"; shift; shift ;;
 | 
			
		||||
    -l* | --libdir) libdir="$2"; shift; shift ;;
 | 
			
		||||
    -i* | --includedir) includedir="$2"; shift; shift ;;
 | 
			
		||||
    -s* | --shared | --enable-shared) shared=1; shift ;;
 | 
			
		||||
    -t | --static) shared=0; shift ;;
 | 
			
		||||
    --solo) solo=1; shift ;;
 | 
			
		||||
    --cover) cover=1; shift ;;
 | 
			
		||||
    -z* | --zprefix) zprefix=1; shift ;;
 | 
			
		||||
    -6* | --64) build64=1; shift ;;
 | 
			
		||||
    --sysconfdir=*) echo "ignored option: --sysconfdir"; shift ;;
 | 
			
		||||
    --localstatedir=*) echo "ignored option: --localstatedir"; shift ;;
 | 
			
		||||
    *) echo "unknown option: $1"; echo "$0 --help for help"; exit 1 ;;
 | 
			
		||||
    -a*=* | --archs=*) ARCHS=`echo $1 | sed 's/.*=//'`; shift ;;
 | 
			
		||||
    --sysconfdir=*) echo "ignored option: --sysconfdir" | tee -a configure.log; shift ;;
 | 
			
		||||
    --localstatedir=*) echo "ignored option: --localstatedir" | tee -a configure.log; shift ;;
 | 
			
		||||
    -c* | --const) zconst=1; shift ;;
 | 
			
		||||
    *)
 | 
			
		||||
      echo "unknown option: $1" | tee -a configure.log
 | 
			
		||||
      echo "$0 --help for help" | tee -a configure.log
 | 
			
		||||
      leave 1;;
 | 
			
		||||
    esac
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
# temporary file name
 | 
			
		||||
test=ztest$$
 | 
			
		||||
 | 
			
		||||
# put arguments in log, also put test file in log if used in arguments
 | 
			
		||||
show()
 | 
			
		||||
{
 | 
			
		||||
  case "$*" in
 | 
			
		||||
    *$test.c*)
 | 
			
		||||
      echo === $test.c === >> configure.log
 | 
			
		||||
      cat $test.c >> configure.log
 | 
			
		||||
      echo === >> configure.log;;
 | 
			
		||||
  esac
 | 
			
		||||
  echo $* >> configure.log
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# check for gcc vs. cc and set compile and link flags based on the system identified by uname
 | 
			
		||||
cat > $test.c <<EOF
 | 
			
		||||
extern int getchar();
 | 
			
		||||
int hello() {return getchar();}
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
test -z "$CC" && echo Checking for gcc...
 | 
			
		||||
cc=${CC-gcc}
 | 
			
		||||
test -z "$CC" && echo Checking for ${CROSS_PREFIX}gcc... | tee -a configure.log
 | 
			
		||||
cc=${CC-${CROSS_PREFIX}gcc}
 | 
			
		||||
cflags=${CFLAGS-"-O3"}
 | 
			
		||||
# to force the asm version use: CFLAGS="-O3 -DASMV" ./configure
 | 
			
		||||
case "$cc" in
 | 
			
		||||
  *gcc*) gcc=1 ;;
 | 
			
		||||
  *clang*) gcc=1 ;;
 | 
			
		||||
esac
 | 
			
		||||
case `$cc -v 2>&1` in
 | 
			
		||||
  *gcc*) gcc=1 ;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
if test "$gcc" -eq 1 && ($cc -c $cflags $test.c) 2>/dev/null; then
 | 
			
		||||
show $cc -c $test.c
 | 
			
		||||
if test "$gcc" -eq 1 && ($cc -c $test.c) >> configure.log 2>&1; then
 | 
			
		||||
  echo ... using gcc >> configure.log
 | 
			
		||||
  CC="$cc"
 | 
			
		||||
  SFLAGS="${CFLAGS-"-O3"} -fPIC"
 | 
			
		||||
  CFLAGS="${CFLAGS-"-O3"}"
 | 
			
		||||
  CFLAGS="${CFLAGS--O3} ${ARCHS}"
 | 
			
		||||
  SFLAGS="${CFLAGS--O3} -fPIC"
 | 
			
		||||
  LDFLAGS="${LDFLAGS} ${ARCHS}"
 | 
			
		||||
  if test $build64 -eq 1; then
 | 
			
		||||
    CFLAGS="${CFLAGS} -m64"
 | 
			
		||||
    SFLAGS="${SFLAGS} -m64"
 | 
			
		||||
  fi
 | 
			
		||||
  if test "${ZLIBGCCWARN}" = "YES"; then
 | 
			
		||||
    if test "$zconst" -eq 1; then
 | 
			
		||||
      CFLAGS="${CFLAGS} -Wall -Wextra -Wcast-qual -pedantic -DZLIB_CONST"
 | 
			
		||||
    else
 | 
			
		||||
      CFLAGS="${CFLAGS} -Wall -Wextra -pedantic"
 | 
			
		||||
    fi
 | 
			
		||||
  fi
 | 
			
		||||
  if test -z "$uname"; then
 | 
			
		||||
    uname=`(uname -s || echo unknown) 2>/dev/null`
 | 
			
		||||
  fi
 | 
			
		||||
  case "$uname" in
 | 
			
		||||
  Linux | linux | GNU | GNU/* | *BSD | DragonFly) LDSHARED=${LDSHARED-"$cc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map"} ;;
 | 
			
		||||
  Linux* | linux* | GNU | GNU/* | solaris*)
 | 
			
		||||
        LDSHARED=${LDSHARED-"$cc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map"} ;;
 | 
			
		||||
  *BSD | *bsd* | DragonFly)
 | 
			
		||||
        LDSHARED=${LDSHARED-"$cc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map"}
 | 
			
		||||
        LDCONFIG="ldconfig -m" ;;
 | 
			
		||||
  CYGWIN* | Cygwin* | cygwin* | OS/2*)
 | 
			
		||||
        EXE='.exe' ;;
 | 
			
		||||
  MINGW* | mingw*)
 | 
			
		||||
# temporary bypass
 | 
			
		||||
        rm -f $test.[co] $test $test$shared_ext
 | 
			
		||||
        echo "Please use win32/Makefile.gcc instead." | tee -a configure.log
 | 
			
		||||
        leave 1
 | 
			
		||||
        LDSHARED=${LDSHARED-"$cc -shared"}
 | 
			
		||||
        LDSHAREDLIBC=""
 | 
			
		||||
        EXE='.exe' ;;
 | 
			
		||||
  QNX*)  # This is for QNX6. I suppose that the QNX rule below is for QNX2,QNX4
 | 
			
		||||
         # (alain.bonnefoy@icbt.com)
 | 
			
		||||
                 LDSHARED=${LDSHARED-"$cc -shared -Wl,-hlibz.so.1"} ;;
 | 
			
		||||
@@ -107,16 +211,25 @@ if test "$gcc" -eq 1 && ($cc -c $cflags $test.c) 2>/dev/null; then
 | 
			
		||||
                 shared_ext='.sl'
 | 
			
		||||
                 SHAREDLIB='libz.sl' ;;
 | 
			
		||||
         esac ;;
 | 
			
		||||
  Darwin*)   shared_ext='.dylib'
 | 
			
		||||
  Darwin* | darwin*)
 | 
			
		||||
             shared_ext='.dylib'
 | 
			
		||||
             SHAREDLIB=libz$shared_ext
 | 
			
		||||
             SHAREDLIBV=libz.$VER$shared_ext
 | 
			
		||||
             SHAREDLIBM=libz.$VER1$shared_ext
 | 
			
		||||
             LDSHARED=${LDSHARED-"$cc -dynamiclib -install_name $libdir/$SHAREDLIBM -compatibility_version $VER1 -current_version $VER3"} ;;
 | 
			
		||||
             LDSHARED=${LDSHARED-"$cc -dynamiclib -install_name $libdir/$SHAREDLIBM -compatibility_version $VER1 -current_version $VER3"}
 | 
			
		||||
             if libtool -V 2>&1 | grep Apple > /dev/null; then
 | 
			
		||||
                 AR="libtool"
 | 
			
		||||
             else
 | 
			
		||||
                 AR="/usr/bin/libtool"
 | 
			
		||||
             fi
 | 
			
		||||
             ARFLAGS="-o" ;;
 | 
			
		||||
  *)             LDSHARED=${LDSHARED-"$cc -shared"} ;;
 | 
			
		||||
  esac
 | 
			
		||||
else
 | 
			
		||||
  # find system name and corresponding cc options
 | 
			
		||||
  CC=${CC-cc}
 | 
			
		||||
  gcc=0
 | 
			
		||||
  echo ... using $CC >> configure.log
 | 
			
		||||
  if test -z "$uname"; then
 | 
			
		||||
    uname=`(uname -sr || echo unknown) 2>/dev/null`
 | 
			
		||||
  fi
 | 
			
		||||
@@ -147,19 +260,34 @@ else
 | 
			
		||||
             CFLAGS=${CFLAGS-"-4 -O"}
 | 
			
		||||
             LDSHARED=${LDSHARED-"cc"}
 | 
			
		||||
             RANLIB=${RANLIB-"true"}
 | 
			
		||||
             AR_RC="cc -A" ;;
 | 
			
		||||
             AR="cc"
 | 
			
		||||
             ARFLAGS="-A" ;;
 | 
			
		||||
  SCO_SV\ 3.2*) SFLAGS=${CFLAGS-"-O3 -dy -KPIC "}
 | 
			
		||||
             CFLAGS=${CFLAGS-"-O3"}
 | 
			
		||||
             LDSHARED=${LDSHARED-"cc -dy -KPIC -G"} ;;
 | 
			
		||||
  SunOS\ 5*) LDSHARED=${LDSHARED-"cc -G"}
 | 
			
		||||
  SunOS\ 5* | solaris*)
 | 
			
		||||
         LDSHARED=${LDSHARED-"cc -G -h libz$shared_ext.$VER1"}
 | 
			
		||||
         SFLAGS=${CFLAGS-"-fast -KPIC"}
 | 
			
		||||
         CFLAGS=${CFLAGS-"-fast"}
 | 
			
		||||
         if test $build64 -eq 1; then
 | 
			
		||||
             # old versions of SunPRO/Workshop/Studio don't support -m64,
 | 
			
		||||
             # but newer ones do.  Check for it.
 | 
			
		||||
             flag64=`$CC -flags | egrep -- '^-m64'`
 | 
			
		||||
             if test x"$flag64" != x"" ; then
 | 
			
		||||
                 CFLAGS="${CFLAGS} -m64"
 | 
			
		||||
                 SFLAGS="${SFLAGS} -m64"
 | 
			
		||||
             else
 | 
			
		||||
                 case `(uname -m || echo unknown) 2>/dev/null` in
 | 
			
		||||
                   i86*)
 | 
			
		||||
             SFLAGS=${CFLAGS-"-xpentium -fast -KPIC -R."}
 | 
			
		||||
             CFLAGS=${CFLAGS-"-xpentium -fast"} ;;
 | 
			
		||||
                     SFLAGS="$SFLAGS -xarch=amd64"
 | 
			
		||||
                     CFLAGS="$CFLAGS -xarch=amd64" ;;
 | 
			
		||||
                   *)
 | 
			
		||||
             SFLAGS=${CFLAGS-"-fast -xcg92 -KPIC -R."}
 | 
			
		||||
             CFLAGS=${CFLAGS-"-fast -xcg92"} ;;
 | 
			
		||||
         esac ;;
 | 
			
		||||
                     SFLAGS="$SFLAGS -xarch=v9"
 | 
			
		||||
                     CFLAGS="$CFLAGS -xarch=v9" ;;
 | 
			
		||||
                 esac
 | 
			
		||||
             fi
 | 
			
		||||
         fi
 | 
			
		||||
         ;;
 | 
			
		||||
  SunOS\ 4*) SFLAGS=${CFLAGS-"-O2 -PIC"}
 | 
			
		||||
             CFLAGS=${CFLAGS-"-O2"}
 | 
			
		||||
             LDSHARED=${LDSHARED-"ld"} ;;
 | 
			
		||||
@@ -189,25 +317,79 @@ else
 | 
			
		||||
  esac
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# destination names for shared library if not defined above
 | 
			
		||||
SHAREDLIB=${SHAREDLIB-"libz$shared_ext"}
 | 
			
		||||
SHAREDLIBV=${SHAREDLIBV-"libz$shared_ext.$VER"}
 | 
			
		||||
SHAREDLIBM=${SHAREDLIBM-"libz$shared_ext.$VER1"}
 | 
			
		||||
 | 
			
		||||
echo >> configure.log
 | 
			
		||||
 | 
			
		||||
# define functions for testing compiler and library characteristics and logging the results
 | 
			
		||||
 | 
			
		||||
cat > $test.c <<EOF
 | 
			
		||||
#error error
 | 
			
		||||
EOF
 | 
			
		||||
if ($CC -c $CFLAGS $test.c) 2>/dev/null; then
 | 
			
		||||
  try()
 | 
			
		||||
  {
 | 
			
		||||
    show $*
 | 
			
		||||
    test "`( $* ) 2>&1 | tee -a configure.log`" = ""
 | 
			
		||||
  }
 | 
			
		||||
  echo - using any output from compiler to indicate an error >> configure.log
 | 
			
		||||
else
 | 
			
		||||
try()
 | 
			
		||||
{
 | 
			
		||||
  show $*
 | 
			
		||||
  ( $* ) >> configure.log 2>&1
 | 
			
		||||
  ret=$?
 | 
			
		||||
  if test $ret -ne 0; then
 | 
			
		||||
    echo "(exit code "$ret")" >> configure.log
 | 
			
		||||
  fi
 | 
			
		||||
  return $ret
 | 
			
		||||
}
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
tryboth()
 | 
			
		||||
{
 | 
			
		||||
  show $*
 | 
			
		||||
  got=`( $* ) 2>&1`
 | 
			
		||||
  ret=$?
 | 
			
		||||
  printf %s "$got" >> configure.log
 | 
			
		||||
  if test $ret -ne 0; then
 | 
			
		||||
    return $ret
 | 
			
		||||
  fi
 | 
			
		||||
  test "$got" = ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
cat > $test.c << EOF
 | 
			
		||||
int foo() { return 0; }
 | 
			
		||||
EOF
 | 
			
		||||
echo "Checking for obsessive-compulsive compiler options..." >> configure.log
 | 
			
		||||
if try $CC -c $CFLAGS $test.c; then
 | 
			
		||||
  :
 | 
			
		||||
else
 | 
			
		||||
  echo "Compiler error reporting is too harsh for $0 (perhaps remove -Werror)." | tee -a configure.log
 | 
			
		||||
  leave 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
echo >> configure.log
 | 
			
		||||
 | 
			
		||||
# see if shared library build supported
 | 
			
		||||
cat > $test.c <<EOF
 | 
			
		||||
extern int getchar();
 | 
			
		||||
int hello() {return getchar();}
 | 
			
		||||
EOF
 | 
			
		||||
if test $shared -eq 1; then
 | 
			
		||||
  echo Checking for shared library support...
 | 
			
		||||
  echo Checking for shared library support... | tee -a configure.log
 | 
			
		||||
  # we must test in two steps (cc then ld), required at least on SunOS 4.x
 | 
			
		||||
  if test "`($CC -w -c $SFLAGS $test.c) 2>&1`" = "" &&
 | 
			
		||||
     test "`($LDSHARED $SFLAGS -o $test$shared_ext $test.o) 2>&1`" = ""; then
 | 
			
		||||
    echo Building shared library $SHAREDLIBV with $CC.
 | 
			
		||||
  if try $CC -w -c $SFLAGS $test.c &&
 | 
			
		||||
     try $LDSHARED $SFLAGS -o $test$shared_ext $test.o; then
 | 
			
		||||
    echo Building shared library $SHAREDLIBV with $CC. | tee -a configure.log
 | 
			
		||||
  elif test -z "$old_cc" -a -z "$old_cflags"; then
 | 
			
		||||
    echo No shared library support.
 | 
			
		||||
    echo No shared library support. | tee -a configure.log
 | 
			
		||||
    shared=0;
 | 
			
		||||
  else
 | 
			
		||||
    echo Tested $CC -w -c $SFLAGS $test.c
 | 
			
		||||
    $CC -w -c $SFLAGS $test.c
 | 
			
		||||
    echo Tested $LDSHARED $SFLAGS -o $test$shared_ext $test.o
 | 
			
		||||
    $LDSHARED $SFLAGS -o $test$shared_ext $test.o
 | 
			
		||||
    echo 'No shared library support; try without defining CC and CFLAGS'
 | 
			
		||||
    echo 'No shared library support; try without defining CC and CFLAGS' | tee -a configure.log
 | 
			
		||||
    shared=0;
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
@@ -215,25 +397,46 @@ if test $shared -eq 0; then
 | 
			
		||||
  LDSHARED="$CC"
 | 
			
		||||
  ALL="static"
 | 
			
		||||
  TEST="all teststatic"
 | 
			
		||||
  echo Building static library $STATICLIB version $VER with $CC.
 | 
			
		||||
  SHAREDLIB=""
 | 
			
		||||
  SHAREDLIBV=""
 | 
			
		||||
  SHAREDLIBM=""
 | 
			
		||||
  echo Building static library $STATICLIB version $VER with $CC. | tee -a configure.log
 | 
			
		||||
else
 | 
			
		||||
  ALL="static shared"
 | 
			
		||||
  TEST="all teststatic testshared"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# check for underscores in external names for use by assembler code
 | 
			
		||||
CPP=${CPP-"$CC -E"}
 | 
			
		||||
case $CFLAGS in
 | 
			
		||||
  *ASMV*)
 | 
			
		||||
    echo >> configure.log
 | 
			
		||||
    show "$NM $test.o | grep _hello"
 | 
			
		||||
    if test "`$NM $test.o | grep _hello | tee -a configure.log`" = ""; then
 | 
			
		||||
      CPP="$CPP -DNO_UNDERLINE"
 | 
			
		||||
      echo Checking for underline in external names... No. | tee -a configure.log
 | 
			
		||||
    else
 | 
			
		||||
      echo Checking for underline in external names... Yes. | tee -a configure.log
 | 
			
		||||
    fi ;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
echo >> configure.log
 | 
			
		||||
 | 
			
		||||
# check for large file support, and if none, check for fseeko()
 | 
			
		||||
cat > $test.c <<EOF
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
off64_t dummy = 0;
 | 
			
		||||
EOF
 | 
			
		||||
if test "`($CC -c $CFLAGS -D_LARGEFILE64_SOURCE=1 $test.c) 2>&1`" = ""; then
 | 
			
		||||
if try $CC -c $CFLAGS -D_LARGEFILE64_SOURCE=1 $test.c; then
 | 
			
		||||
  CFLAGS="${CFLAGS} -D_LARGEFILE64_SOURCE=1"
 | 
			
		||||
  SFLAGS="${SFLAGS} -D_LARGEFILE64_SOURCE=1"
 | 
			
		||||
  ALL="${ALL} all64"
 | 
			
		||||
  TEST="${TEST} test64"
 | 
			
		||||
  echo "Checking for off64_t... Yes."
 | 
			
		||||
  echo "Checking for fseeko... Yes."
 | 
			
		||||
  echo "Checking for off64_t... Yes." | tee -a configure.log
 | 
			
		||||
  echo "Checking for fseeko... Yes." | tee -a configure.log
 | 
			
		||||
else
 | 
			
		||||
  echo "Checking for off64_t... No."
 | 
			
		||||
  echo "Checking for off64_t... No." | tee -a configure.log
 | 
			
		||||
  echo >> configure.log
 | 
			
		||||
  cat > $test.c <<EOF
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
int main(void) {
 | 
			
		||||
@@ -241,262 +444,335 @@ int main(void) {
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
EOF
 | 
			
		||||
  if test "`($CC $CFLAGS -o $test $test.c) 2>&1`" = ""; then
 | 
			
		||||
    echo "Checking for fseeko... Yes."
 | 
			
		||||
  if try $CC $CFLAGS -o $test $test.c; then
 | 
			
		||||
    echo "Checking for fseeko... Yes." | tee -a configure.log
 | 
			
		||||
  else
 | 
			
		||||
    CFLAGS="${CFLAGS} -DNO_FSEEKO"
 | 
			
		||||
    SFLAGS="${SFLAGS} -DNO_FSEEKO"
 | 
			
		||||
    echo "Checking for fseeko... No."
 | 
			
		||||
    echo "Checking for fseeko... No." | tee -a configure.log
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
sed "/^#cmakedefine/D" < zconf.h.in > zconf.h
 | 
			
		||||
echo >> configure.log
 | 
			
		||||
 | 
			
		||||
# check for strerror() for use by gz* functions
 | 
			
		||||
cat > $test.c <<EOF
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include <errno.h>
 | 
			
		||||
int main() { return strlen(strerror(errno)); }
 | 
			
		||||
EOF
 | 
			
		||||
if try $CC $CFLAGS -o $test $test.c; then
 | 
			
		||||
  echo "Checking for strerror... Yes." | tee -a configure.log
 | 
			
		||||
else
 | 
			
		||||
  CFLAGS="${CFLAGS} -DNO_STRERROR"
 | 
			
		||||
  SFLAGS="${SFLAGS} -DNO_STRERROR"
 | 
			
		||||
  echo "Checking for strerror... No." | tee -a configure.log
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# copy clean zconf.h for subsequent edits
 | 
			
		||||
cp -p zconf.h.in zconf.h
 | 
			
		||||
 | 
			
		||||
echo >> configure.log
 | 
			
		||||
 | 
			
		||||
# check for unistd.h and save result in zconf.h
 | 
			
		||||
cat > $test.c <<EOF
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
int main() { return 0; }
 | 
			
		||||
EOF
 | 
			
		||||
if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
 | 
			
		||||
if try $CC -c $CFLAGS $test.c; then
 | 
			
		||||
  sed < zconf.h "/^#ifdef HAVE_UNISTD_H.* may be/s/def HAVE_UNISTD_H\(.*\) may be/ 1\1 was/" > zconf.temp.h
 | 
			
		||||
  mv zconf.temp.h zconf.h
 | 
			
		||||
  echo "Checking for unistd.h... Yes."
 | 
			
		||||
  echo "Checking for unistd.h... Yes." | tee -a configure.log
 | 
			
		||||
else
 | 
			
		||||
  echo "Checking for unistd.h... No."
 | 
			
		||||
  echo "Checking for unistd.h... No." | tee -a configure.log
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
echo >> configure.log
 | 
			
		||||
 | 
			
		||||
# check for stdarg.h and save result in zconf.h
 | 
			
		||||
cat > $test.c <<EOF
 | 
			
		||||
#include <stdarg.h>
 | 
			
		||||
int main() { return 0; }
 | 
			
		||||
EOF
 | 
			
		||||
if try $CC -c $CFLAGS $test.c; then
 | 
			
		||||
  sed < zconf.h "/^#ifdef HAVE_STDARG_H.* may be/s/def HAVE_STDARG_H\(.*\) may be/ 1\1 was/" > zconf.temp.h
 | 
			
		||||
  mv zconf.temp.h zconf.h
 | 
			
		||||
  echo "Checking for stdarg.h... Yes." | tee -a configure.log
 | 
			
		||||
else
 | 
			
		||||
  echo "Checking for stdarg.h... No." | tee -a configure.log
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# if the z_ prefix was requested, save that in zconf.h
 | 
			
		||||
if test $zprefix -eq 1; then
 | 
			
		||||
  sed < zconf.h "/#ifdef Z_PREFIX.* may be/s/def Z_PREFIX\(.*\) may be/ 1\1 was/" > zconf.temp.h
 | 
			
		||||
  mv zconf.temp.h zconf.h
 | 
			
		||||
  echo "Using z_ prefix on all symbols."
 | 
			
		||||
  echo >> configure.log
 | 
			
		||||
  echo "Using z_ prefix on all symbols." | tee -a configure.log
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# if --solo compilation was requested, save that in zconf.h and remove gz stuff from object lists
 | 
			
		||||
if test $solo -eq 1; then
 | 
			
		||||
  sed '/#define ZCONF_H/a\
 | 
			
		||||
#define Z_SOLO
 | 
			
		||||
 | 
			
		||||
' < zconf.h > zconf.temp.h
 | 
			
		||||
  mv zconf.temp.h zconf.h
 | 
			
		||||
OBJC='$(OBJZ)'
 | 
			
		||||
PIC_OBJC='$(PIC_OBJZ)'
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# if code coverage testing was requested, use older gcc if defined, e.g. "gcc-4.2" on Mac OS X
 | 
			
		||||
if test $cover -eq 1; then
 | 
			
		||||
  CFLAGS="${CFLAGS} -fprofile-arcs -ftest-coverage"
 | 
			
		||||
  if test -n "$GCC_CLASSIC"; then
 | 
			
		||||
    CC=$GCC_CLASSIC
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
echo >> configure.log
 | 
			
		||||
 | 
			
		||||
# conduct a series of tests to resolve eight possible cases of using "vs" or "s" printf functions
 | 
			
		||||
# (using stdarg or not), with or without "n" (proving size of buffer), and with or without a
 | 
			
		||||
# return value.  The most secure result is vsnprintf() with a return value.  snprintf() with a
 | 
			
		||||
# return value is secure as well, but then gzprintf() will be limited to 20 arguments.
 | 
			
		||||
cat > $test.c <<EOF
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <stdarg.h>
 | 
			
		||||
#include "zconf.h"
 | 
			
		||||
 | 
			
		||||
int main()
 | 
			
		||||
{
 | 
			
		||||
#ifndef STDC
 | 
			
		||||
  choke me
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
EOF
 | 
			
		||||
if try $CC -c $CFLAGS $test.c; then
 | 
			
		||||
  echo "Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf()." | tee -a configure.log
 | 
			
		||||
 | 
			
		||||
if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
 | 
			
		||||
  echo "Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf()."
 | 
			
		||||
 | 
			
		||||
  echo >> configure.log
 | 
			
		||||
  cat > $test.c <<EOF
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <stdarg.h>
 | 
			
		||||
 | 
			
		||||
int mytest(const char *fmt, ...)
 | 
			
		||||
{
 | 
			
		||||
  char buf[20];
 | 
			
		||||
  va_list ap;
 | 
			
		||||
 | 
			
		||||
  va_start(ap, fmt);
 | 
			
		||||
  vsnprintf(buf, sizeof(buf), fmt, ap);
 | 
			
		||||
  va_end(ap);
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int main()
 | 
			
		||||
{
 | 
			
		||||
  return (mytest("Hello%d\n", 1));
 | 
			
		||||
}
 | 
			
		||||
EOF
 | 
			
		||||
  if try $CC $CFLAGS -o $test $test.c; then
 | 
			
		||||
    echo "Checking for vsnprintf() in stdio.h... Yes." | tee -a configure.log
 | 
			
		||||
 | 
			
		||||
  if test "`($CC $CFLAGS -o $test $test.c) 2>&1`" = ""; then
 | 
			
		||||
    echo "Checking for vsnprintf() in stdio.h... Yes."
 | 
			
		||||
 | 
			
		||||
    echo >> configure.log
 | 
			
		||||
    cat >$test.c <<EOF
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <stdarg.h>
 | 
			
		||||
 | 
			
		||||
int mytest(const char *fmt, ...)
 | 
			
		||||
{
 | 
			
		||||
  int n;
 | 
			
		||||
  char buf[20];
 | 
			
		||||
  va_list ap;
 | 
			
		||||
 | 
			
		||||
  va_start(ap, fmt);
 | 
			
		||||
  n = vsnprintf(buf, sizeof(buf), fmt, ap);
 | 
			
		||||
  va_end(ap);
 | 
			
		||||
  return n;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int main()
 | 
			
		||||
{
 | 
			
		||||
  return (mytest("Hello%d\n", 1));
 | 
			
		||||
}
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
    if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
 | 
			
		||||
      echo "Checking for return value of vsnprintf()... Yes."
 | 
			
		||||
    if try $CC -c $CFLAGS $test.c; then
 | 
			
		||||
      echo "Checking for return value of vsnprintf()... Yes." | tee -a configure.log
 | 
			
		||||
    else
 | 
			
		||||
      CFLAGS="$CFLAGS -DHAS_vsnprintf_void"
 | 
			
		||||
      SFLAGS="$SFLAGS -DHAS_vsnprintf_void"
 | 
			
		||||
      echo "Checking for return value of vsnprintf()... No."
 | 
			
		||||
      echo "  WARNING: apparently vsnprintf() does not return a value. zlib"
 | 
			
		||||
      echo "  can build but will be open to possible string-format security"
 | 
			
		||||
      echo "  vulnerabilities."
 | 
			
		||||
      echo "Checking for return value of vsnprintf()... No." | tee -a configure.log
 | 
			
		||||
      echo "  WARNING: apparently vsnprintf() does not return a value. zlib" | tee -a configure.log
 | 
			
		||||
      echo "  can build but will be open to possible string-format security" | tee -a configure.log
 | 
			
		||||
      echo "  vulnerabilities." | tee -a configure.log
 | 
			
		||||
    fi
 | 
			
		||||
  else
 | 
			
		||||
    CFLAGS="$CFLAGS -DNO_vsnprintf"
 | 
			
		||||
    SFLAGS="$SFLAGS -DNO_vsnprintf"
 | 
			
		||||
    echo "Checking for vsnprintf() in stdio.h... No."
 | 
			
		||||
    echo "  WARNING: vsnprintf() not found, falling back to vsprintf(). zlib"
 | 
			
		||||
    echo "  can build but will be open to possible buffer-overflow security"
 | 
			
		||||
    echo "  vulnerabilities."
 | 
			
		||||
    echo "Checking for vsnprintf() in stdio.h... No." | tee -a configure.log
 | 
			
		||||
    echo "  WARNING: vsnprintf() not found, falling back to vsprintf(). zlib" | tee -a configure.log
 | 
			
		||||
    echo "  can build but will be open to possible buffer-overflow security" | tee -a configure.log
 | 
			
		||||
    echo "  vulnerabilities." | tee -a configure.log
 | 
			
		||||
 | 
			
		||||
    echo >> configure.log
 | 
			
		||||
    cat >$test.c <<EOF
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <stdarg.h>
 | 
			
		||||
 | 
			
		||||
int mytest(const char *fmt, ...)
 | 
			
		||||
{
 | 
			
		||||
  int n;
 | 
			
		||||
  char buf[20];
 | 
			
		||||
  va_list ap;
 | 
			
		||||
 | 
			
		||||
  va_start(ap, fmt);
 | 
			
		||||
  n = vsprintf(buf, fmt, ap);
 | 
			
		||||
  va_end(ap);
 | 
			
		||||
  return n;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int main()
 | 
			
		||||
{
 | 
			
		||||
  return (mytest("Hello%d\n", 1));
 | 
			
		||||
}
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
    if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
 | 
			
		||||
      echo "Checking for return value of vsprintf()... Yes."
 | 
			
		||||
    if try $CC -c $CFLAGS $test.c; then
 | 
			
		||||
      echo "Checking for return value of vsprintf()... Yes." | tee -a configure.log
 | 
			
		||||
    else
 | 
			
		||||
      CFLAGS="$CFLAGS -DHAS_vsprintf_void"
 | 
			
		||||
      SFLAGS="$SFLAGS -DHAS_vsprintf_void"
 | 
			
		||||
      echo "Checking for return value of vsprintf()... No."
 | 
			
		||||
      echo "  WARNING: apparently vsprintf() does not return a value. zlib"
 | 
			
		||||
      echo "  can build but will be open to possible string-format security"
 | 
			
		||||
      echo "  vulnerabilities."
 | 
			
		||||
      echo "Checking for return value of vsprintf()... No." | tee -a configure.log
 | 
			
		||||
      echo "  WARNING: apparently vsprintf() does not return a value. zlib" | tee -a configure.log
 | 
			
		||||
      echo "  can build but will be open to possible string-format security" | tee -a configure.log
 | 
			
		||||
      echo "  vulnerabilities." | tee -a configure.log
 | 
			
		||||
    fi
 | 
			
		||||
  fi
 | 
			
		||||
else
 | 
			
		||||
  echo "Checking whether to use vs[n]printf() or s[n]printf()... using s[n]printf()."
 | 
			
		||||
  echo "Checking whether to use vs[n]printf() or s[n]printf()... using s[n]printf()." | tee -a configure.log
 | 
			
		||||
 | 
			
		||||
  echo >> configure.log
 | 
			
		||||
  cat >$test.c <<EOF
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
 | 
			
		||||
int mytest()
 | 
			
		||||
{
 | 
			
		||||
  char buf[20];
 | 
			
		||||
 | 
			
		||||
  snprintf(buf, sizeof(buf), "%s", "foo");
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int main()
 | 
			
		||||
{
 | 
			
		||||
  return (mytest());
 | 
			
		||||
}
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
  if test "`($CC $CFLAGS -o $test $test.c) 2>&1`" = ""; then
 | 
			
		||||
    echo "Checking for snprintf() in stdio.h... Yes."
 | 
			
		||||
  if try $CC $CFLAGS -o $test $test.c; then
 | 
			
		||||
    echo "Checking for snprintf() in stdio.h... Yes." | tee -a configure.log
 | 
			
		||||
 | 
			
		||||
    echo >> configure.log
 | 
			
		||||
    cat >$test.c <<EOF
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
 | 
			
		||||
int mytest()
 | 
			
		||||
{
 | 
			
		||||
  char buf[20];
 | 
			
		||||
 | 
			
		||||
  return snprintf(buf, sizeof(buf), "%s", "foo");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int main()
 | 
			
		||||
{
 | 
			
		||||
  return (mytest());
 | 
			
		||||
}
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
    if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
 | 
			
		||||
      echo "Checking for return value of snprintf()... Yes."
 | 
			
		||||
    if try $CC -c $CFLAGS $test.c; then
 | 
			
		||||
      echo "Checking for return value of snprintf()... Yes." | tee -a configure.log
 | 
			
		||||
    else
 | 
			
		||||
      CFLAGS="$CFLAGS -DHAS_snprintf_void"
 | 
			
		||||
      SFLAGS="$SFLAGS -DHAS_snprintf_void"
 | 
			
		||||
      echo "Checking for return value of snprintf()... No."
 | 
			
		||||
      echo "  WARNING: apparently snprintf() does not return a value. zlib"
 | 
			
		||||
      echo "  can build but will be open to possible string-format security"
 | 
			
		||||
      echo "  vulnerabilities."
 | 
			
		||||
      echo "Checking for return value of snprintf()... No." | tee -a configure.log
 | 
			
		||||
      echo "  WARNING: apparently snprintf() does not return a value. zlib" | tee -a configure.log
 | 
			
		||||
      echo "  can build but will be open to possible string-format security" | tee -a configure.log
 | 
			
		||||
      echo "  vulnerabilities." | tee -a configure.log
 | 
			
		||||
    fi
 | 
			
		||||
  else
 | 
			
		||||
    CFLAGS="$CFLAGS -DNO_snprintf"
 | 
			
		||||
    SFLAGS="$SFLAGS -DNO_snprintf"
 | 
			
		||||
    echo "Checking for snprintf() in stdio.h... No."
 | 
			
		||||
    echo "  WARNING: snprintf() not found, falling back to sprintf(). zlib"
 | 
			
		||||
    echo "  can build but will be open to possible buffer-overflow security"
 | 
			
		||||
    echo "  vulnerabilities."
 | 
			
		||||
    echo "Checking for snprintf() in stdio.h... No." | tee -a configure.log
 | 
			
		||||
    echo "  WARNING: snprintf() not found, falling back to sprintf(). zlib" | tee -a configure.log
 | 
			
		||||
    echo "  can build but will be open to possible buffer-overflow security" | tee -a configure.log
 | 
			
		||||
    echo "  vulnerabilities." | tee -a configure.log
 | 
			
		||||
 | 
			
		||||
    echo >> configure.log
 | 
			
		||||
    cat >$test.c <<EOF
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
 | 
			
		||||
int mytest()
 | 
			
		||||
{
 | 
			
		||||
  char buf[20];
 | 
			
		||||
 | 
			
		||||
  return sprintf(buf, "%s", "foo");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int main()
 | 
			
		||||
{
 | 
			
		||||
  return (mytest());
 | 
			
		||||
}
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
    if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
 | 
			
		||||
      echo "Checking for return value of sprintf()... Yes."
 | 
			
		||||
    if try $CC -c $CFLAGS $test.c; then
 | 
			
		||||
      echo "Checking for return value of sprintf()... Yes." | tee -a configure.log
 | 
			
		||||
    else
 | 
			
		||||
      CFLAGS="$CFLAGS -DHAS_sprintf_void"
 | 
			
		||||
      SFLAGS="$SFLAGS -DHAS_sprintf_void"
 | 
			
		||||
      echo "Checking for return value of sprintf()... No."
 | 
			
		||||
      echo "  WARNING: apparently sprintf() does not return a value. zlib"
 | 
			
		||||
      echo "  can build but will be open to possible string-format security"
 | 
			
		||||
      echo "  vulnerabilities."
 | 
			
		||||
      echo "Checking for return value of sprintf()... No." | tee -a configure.log
 | 
			
		||||
      echo "  WARNING: apparently sprintf() does not return a value. zlib" | tee -a configure.log
 | 
			
		||||
      echo "  can build but will be open to possible string-format security" | tee -a configure.log
 | 
			
		||||
      echo "  vulnerabilities." | tee -a configure.log
 | 
			
		||||
    fi
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# see if we can hide zlib internal symbols that are linked between separate source files
 | 
			
		||||
if test "$gcc" -eq 1; then
 | 
			
		||||
  echo >> configure.log
 | 
			
		||||
  cat > $test.c <<EOF
 | 
			
		||||
#include <errno.h>
 | 
			
		||||
int main() { return 0; }
 | 
			
		||||
#define ZLIB_INTERNAL __attribute__((visibility ("hidden")))
 | 
			
		||||
int ZLIB_INTERNAL foo;
 | 
			
		||||
int main()
 | 
			
		||||
{
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
EOF
 | 
			
		||||
if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
 | 
			
		||||
  echo "Checking for errno.h... Yes."
 | 
			
		||||
  if tryboth $CC -c $CFLAGS $test.c; then
 | 
			
		||||
    CFLAGS="$CFLAGS -DHAVE_HIDDEN"
 | 
			
		||||
    SFLAGS="$SFLAGS -DHAVE_HIDDEN"
 | 
			
		||||
    echo "Checking for attribute(visibility) support... Yes." | tee -a configure.log
 | 
			
		||||
  else
 | 
			
		||||
  echo "Checking for errno.h... No."
 | 
			
		||||
  CFLAGS="$CFLAGS -DNO_ERRNO_H"
 | 
			
		||||
  SFLAGS="$SFLAGS -DNO_ERRNO_H"
 | 
			
		||||
    echo "Checking for attribute(visibility) support... No." | tee -a configure.log
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
CPP=${CPP-"$CC -E"}
 | 
			
		||||
case $CFLAGS in
 | 
			
		||||
  *ASMV*)
 | 
			
		||||
    if test "`nm $test.o | grep _hello`" = ""; then
 | 
			
		||||
      CPP="$CPP -DNO_UNDERLINE"
 | 
			
		||||
      echo Checking for underline in external names... No.
 | 
			
		||||
    else
 | 
			
		||||
      echo Checking for underline in external names... Yes.
 | 
			
		||||
    fi ;;
 | 
			
		||||
esac
 | 
			
		||||
# show the results in the log
 | 
			
		||||
echo >> configure.log
 | 
			
		||||
echo ALL = $ALL >> configure.log
 | 
			
		||||
echo AR = $AR >> configure.log
 | 
			
		||||
echo ARFLAGS = $ARFLAGS >> configure.log
 | 
			
		||||
echo CC = $CC >> configure.log
 | 
			
		||||
echo CFLAGS = $CFLAGS >> configure.log
 | 
			
		||||
echo CPP = $CPP >> configure.log
 | 
			
		||||
echo EXE = $EXE >> configure.log
 | 
			
		||||
echo LDCONFIG = $LDCONFIG >> configure.log
 | 
			
		||||
echo LDFLAGS = $LDFLAGS >> configure.log
 | 
			
		||||
echo LDSHARED = $LDSHARED >> configure.log
 | 
			
		||||
echo LDSHAREDLIBC = $LDSHAREDLIBC >> configure.log
 | 
			
		||||
echo OBJC = $OBJC >> configure.log
 | 
			
		||||
echo PIC_OBJC = $PIC_OBJC >> configure.log
 | 
			
		||||
echo RANLIB = $RANLIB >> configure.log
 | 
			
		||||
echo SFLAGS = $SFLAGS >> configure.log
 | 
			
		||||
echo SHAREDLIB = $SHAREDLIB >> configure.log
 | 
			
		||||
echo SHAREDLIBM = $SHAREDLIBM >> configure.log
 | 
			
		||||
echo SHAREDLIBV = $SHAREDLIBV >> configure.log
 | 
			
		||||
echo STATICLIB = $STATICLIB >> configure.log
 | 
			
		||||
echo TEST = $TEST >> configure.log
 | 
			
		||||
echo VER = $VER >> configure.log
 | 
			
		||||
echo Z_U4 = $Z_U4 >> configure.log
 | 
			
		||||
echo exec_prefix = $exec_prefix >> configure.log
 | 
			
		||||
echo includedir = $includedir >> configure.log
 | 
			
		||||
echo libdir = $libdir >> configure.log
 | 
			
		||||
echo mandir = $mandir >> configure.log
 | 
			
		||||
echo prefix = $prefix >> configure.log
 | 
			
		||||
echo sharedlibdir = $sharedlibdir >> configure.log
 | 
			
		||||
echo uname = $uname >> configure.log
 | 
			
		||||
 | 
			
		||||
rm -f $test.[co] $test $test$shared_ext
 | 
			
		||||
 | 
			
		||||
# udpate Makefile
 | 
			
		||||
# udpate Makefile with the configure results
 | 
			
		||||
sed < Makefile.in "
 | 
			
		||||
/^CC *=/s#=.*#=$CC#
 | 
			
		||||
/^CFLAGS *=/s#=.*#=$CFLAGS#
 | 
			
		||||
@@ -508,18 +784,25 @@ sed < Makefile.in "
 | 
			
		||||
/^SHAREDLIB *=/s#=.*#=$SHAREDLIB#
 | 
			
		||||
/^SHAREDLIBV *=/s#=.*#=$SHAREDLIBV#
 | 
			
		||||
/^SHAREDLIBM *=/s#=.*#=$SHAREDLIBM#
 | 
			
		||||
/^AR *=/s#=.*#=$AR_RC#
 | 
			
		||||
/^AR *=/s#=.*#=$AR#
 | 
			
		||||
/^ARFLAGS *=/s#=.*#=$ARFLAGS#
 | 
			
		||||
/^RANLIB *=/s#=.*#=$RANLIB#
 | 
			
		||||
/^LDCONFIG *=/s#=.*#=$LDCONFIG#
 | 
			
		||||
/^LDSHAREDLIBC *=/s#=.*#=$LDSHAREDLIBC#
 | 
			
		||||
/^EXE *=/s#=.*#=$EXE#
 | 
			
		||||
/^prefix *=/s#=.*#=$prefix#
 | 
			
		||||
/^exec_prefix *=/s#=.*#=$exec_prefix#
 | 
			
		||||
/^libdir *=/s#=.*#=$libdir#
 | 
			
		||||
/^sharedlibdir *=/s#=.*#=$sharedlibdir#
 | 
			
		||||
/^includedir *=/s#=.*#=$includedir#
 | 
			
		||||
/^mandir *=/s#=.*#=$mandir#
 | 
			
		||||
/^OBJC *=/s#=.*#= $OBJC#
 | 
			
		||||
/^PIC_OBJC *=/s#=.*#= $PIC_OBJC#
 | 
			
		||||
/^all: */s#:.*#: $ALL#
 | 
			
		||||
/^test: */s#:.*#: $TEST#
 | 
			
		||||
" > Makefile
 | 
			
		||||
 | 
			
		||||
# create zlib.pc with the configure results
 | 
			
		||||
sed < zlib.pc.in "
 | 
			
		||||
/^CC *=/s#=.*#=$CC#
 | 
			
		||||
/^CFLAGS *=/s#=.*#=$CFLAGS#
 | 
			
		||||
@@ -529,15 +812,20 @@ sed < zlib.pc.in "
 | 
			
		||||
/^SHAREDLIB *=/s#=.*#=$SHAREDLIB#
 | 
			
		||||
/^SHAREDLIBV *=/s#=.*#=$SHAREDLIBV#
 | 
			
		||||
/^SHAREDLIBM *=/s#=.*#=$SHAREDLIBM#
 | 
			
		||||
/^AR *=/s#=.*#=$AR_RC#
 | 
			
		||||
/^AR *=/s#=.*#=$AR#
 | 
			
		||||
/^ARFLAGS *=/s#=.*#=$ARFLAGS#
 | 
			
		||||
/^RANLIB *=/s#=.*#=$RANLIB#
 | 
			
		||||
/^EXE *=/s#=.*#=$EXE#
 | 
			
		||||
/^prefix *=/s#=.*#=$prefix#
 | 
			
		||||
/^exec_prefix *=/s#=.*#=$exec_prefix#
 | 
			
		||||
/^libdir *=/s#=.*#=$libdir#
 | 
			
		||||
/^sharedlibdir *=/s#=.*#=$sharedlibdir#
 | 
			
		||||
/^includedir *=/s#=.*#=$includedir#
 | 
			
		||||
/^mandir *=/s#=.*#=$mandir#
 | 
			
		||||
/^LDFLAGS *=/s#=.*#=$LDFLAGS#
 | 
			
		||||
" | sed -e "
 | 
			
		||||
s/\@VERSION\@/$VER/g;
 | 
			
		||||
" > zlib.pc
 | 
			
		||||
 | 
			
		||||
# done
 | 
			
		||||
leave 0
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,6 @@ amd64/      by Mikhail Teterin <mi@ALDAN.algebra.com>
 | 
			
		||||
        asm code for AMD64
 | 
			
		||||
        See patch at http://www.freebsd.org/cgi/query-pr.cgi?pr=bin/96393
 | 
			
		||||
 | 
			
		||||
asm586/
 | 
			
		||||
asm686/     by Brian Raiter <breadbox@muppetlabs.com>
 | 
			
		||||
        asm code for Pentium and PPro/PII, using the AT&T (GNU as) syntax
 | 
			
		||||
        See http://www.muppetlabs.com/~breadbox/software/assembly.html
 | 
			
		||||
@@ -26,6 +25,10 @@ delphi/     by Cosmin Truta <cosmint@cs.ubbcluj.ro>
 | 
			
		||||
dotzlib/    by Henrik Ravn <henrik@ravn.com>
 | 
			
		||||
        Support for Microsoft .Net and Visual C++ .Net
 | 
			
		||||
 | 
			
		||||
gcc_gvmat64/by Gilles Vollant <info@winimage.com>
 | 
			
		||||
        GCC Version of x86 64-bit (AMD64 and Intel EM64t) code for x64
 | 
			
		||||
        assembler to replace longest_match() and inflate_fast()
 | 
			
		||||
 | 
			
		||||
infback9/   by Mark Adler <madler@alumni.caltech.edu>
 | 
			
		||||
        Unsupported diffs to infback to decode the deflate64 format
 | 
			
		||||
 | 
			
		||||
@@ -42,17 +45,15 @@ iostream3/  by Ludwig Schwardt <schwardt@sun.ac.za>
 | 
			
		||||
            and Kevin Ruland <kevin@rodin.wustl.edu>
 | 
			
		||||
        Yet another C++ I/O streams interface
 | 
			
		||||
 | 
			
		||||
masm686/    by Dan Higdon <hdan@kinesoft.com>
 | 
			
		||||
            and Chuck Walbourn <chuckw@kinesoft.com>
 | 
			
		||||
        asm code for Pentium Pro/PII, using the MASM syntax
 | 
			
		||||
 | 
			
		||||
masmx64/    by Gilles Vollant <info@winimage.com>
 | 
			
		||||
        x86 64-bit (AMD64 and Intel EM64t) code for x64 assembler to
 | 
			
		||||
	replace longest_match() and inflate_fast()
 | 
			
		||||
        replace longest_match() and inflate_fast(),  also masm x86
 | 
			
		||||
        64-bits translation of Chris Anderson inflate_fast()
 | 
			
		||||
 | 
			
		||||
masmx86/    by Gilles Vollant <info@winimage.com>
 | 
			
		||||
        x86 asm code to replace longest_match() and inflate_fast(),
 | 
			
		||||
        for Visual C++ and MASM
 | 
			
		||||
        for Visual C++ and MASM (32 bits).
 | 
			
		||||
        Based on Brian Raiter (asm686) and Chris Anderson (inflate86)
 | 
			
		||||
 | 
			
		||||
minizip/    by Gilles Vollant <info@winimage.com>
 | 
			
		||||
        Mini zip and unzip based on zlib
 | 
			
		||||
@@ -74,3 +75,4 @@ untgz/      by Pedro A. Aranda Gutierrez <paag@tid.es>
 | 
			
		||||
 | 
			
		||||
vstudio/    by Gilles Vollant <info@winimage.com>
 | 
			
		||||
        Building a minizip-enhanced zlib with Microsoft Visual Studio
 | 
			
		||||
        Includes vc11 from kreuzerkrieg and vc12 from davispuh
 | 
			
		||||
 
 | 
			
		||||
@@ -52,14 +52,73 @@
 | 
			
		||||
#define save_r13        (64-LocalVarsSize)(%rsp)
 | 
			
		||||
#define save_r15        (80-LocalVarsSize)(%rsp)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.globl	match_init, longest_match
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * On AMD64 the first argument of a function (in our case -- the pointer to
 | 
			
		||||
 * deflate_state structure) is passed in %rdi, hence our offsets below are
 | 
			
		||||
 * all off of that.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* you can check the structure offset by running
 | 
			
		||||
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include "deflate.h"
 | 
			
		||||
 | 
			
		||||
void print_depl()
 | 
			
		||||
{
 | 
			
		||||
deflate_state ds;
 | 
			
		||||
deflate_state *s=&ds;
 | 
			
		||||
printf("size pointer=%u\n",(int)sizeof(void*));
 | 
			
		||||
 | 
			
		||||
printf("#define dsWSize         (%3u)(%%rdi)\n",(int)(((char*)&(s->w_size))-((char*)s)));
 | 
			
		||||
printf("#define dsWMask         (%3u)(%%rdi)\n",(int)(((char*)&(s->w_mask))-((char*)s)));
 | 
			
		||||
printf("#define dsWindow        (%3u)(%%rdi)\n",(int)(((char*)&(s->window))-((char*)s)));
 | 
			
		||||
printf("#define dsPrev          (%3u)(%%rdi)\n",(int)(((char*)&(s->prev))-((char*)s)));
 | 
			
		||||
printf("#define dsMatchLen      (%3u)(%%rdi)\n",(int)(((char*)&(s->match_length))-((char*)s)));
 | 
			
		||||
printf("#define dsPrevMatch     (%3u)(%%rdi)\n",(int)(((char*)&(s->prev_match))-((char*)s)));
 | 
			
		||||
printf("#define dsStrStart      (%3u)(%%rdi)\n",(int)(((char*)&(s->strstart))-((char*)s)));
 | 
			
		||||
printf("#define dsMatchStart    (%3u)(%%rdi)\n",(int)(((char*)&(s->match_start))-((char*)s)));
 | 
			
		||||
printf("#define dsLookahead     (%3u)(%%rdi)\n",(int)(((char*)&(s->lookahead))-((char*)s)));
 | 
			
		||||
printf("#define dsPrevLen       (%3u)(%%rdi)\n",(int)(((char*)&(s->prev_length))-((char*)s)));
 | 
			
		||||
printf("#define dsMaxChainLen   (%3u)(%%rdi)\n",(int)(((char*)&(s->max_chain_length))-((char*)s)));
 | 
			
		||||
printf("#define dsGoodMatch     (%3u)(%%rdi)\n",(int)(((char*)&(s->good_match))-((char*)s)));
 | 
			
		||||
printf("#define dsNiceMatch     (%3u)(%%rdi)\n",(int)(((char*)&(s->nice_match))-((char*)s)));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
  to compile for XCode 3.2 on MacOSX x86_64
 | 
			
		||||
  - run "gcc -g -c -DXCODE_MAC_X64_STRUCTURE amd64-match.S"
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef CURRENT_LINX_XCODE_MAC_X64_STRUCTURE
 | 
			
		||||
#define dsWSize		( 68)(%rdi)
 | 
			
		||||
#define dsWMask		( 76)(%rdi)
 | 
			
		||||
#define dsWindow	( 80)(%rdi)
 | 
			
		||||
#define dsPrev		( 96)(%rdi)
 | 
			
		||||
#define dsMatchLen	(144)(%rdi)
 | 
			
		||||
#define dsPrevMatch	(148)(%rdi)
 | 
			
		||||
#define dsStrStart	(156)(%rdi)
 | 
			
		||||
#define dsMatchStart	(160)(%rdi)
 | 
			
		||||
#define dsLookahead	(164)(%rdi)
 | 
			
		||||
#define dsPrevLen	(168)(%rdi)
 | 
			
		||||
#define dsMaxChainLen	(172)(%rdi)
 | 
			
		||||
#define dsGoodMatch	(188)(%rdi)
 | 
			
		||||
#define dsNiceMatch	(192)(%rdi)
 | 
			
		||||
 | 
			
		||||
#else 
 | 
			
		||||
 | 
			
		||||
#ifndef STRUCT_OFFSET
 | 
			
		||||
#	define STRUCT_OFFSET	(0)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define dsWSize		( 56 + STRUCT_OFFSET)(%rdi)
 | 
			
		||||
#define dsWMask		( 64 + STRUCT_OFFSET)(%rdi)
 | 
			
		||||
#define dsWindow	( 72 + STRUCT_OFFSET)(%rdi)
 | 
			
		||||
@@ -74,7 +133,10 @@
 | 
			
		||||
#define dsGoodMatch	(180 + STRUCT_OFFSET)(%rdi)
 | 
			
		||||
#define dsNiceMatch	(184 + STRUCT_OFFSET)(%rdi)
 | 
			
		||||
 | 
			
		||||
.globl	match_init, longest_match
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.text
 | 
			
		||||
 | 
			
		||||
@@ -222,7 +284,9 @@ LoopEntry:	cmpw	-1(%windowbestlen, %curmatch), %scanendw
 | 
			
		||||
 * straightforward "rep cmpsb" would not drastically degrade
 | 
			
		||||
 * performance -- unrolling it, for example, makes no difference.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#undef USE_SSE	/* works, but is 6-7% slower, than non-SSE... */
 | 
			
		||||
 | 
			
		||||
LoopCmps:
 | 
			
		||||
#ifdef USE_SSE
 | 
			
		||||
		/* Preload the SSE registers */
 | 
			
		||||
@@ -244,29 +308,55 @@ LoopCmps:
 | 
			
		||||
		notw	%ax
 | 
			
		||||
		bsfw	%ax, %ax
 | 
			
		||||
		jnz	LeaveLoopCmps
 | 
			
		||||
		add	$16, %rdx
 | 
			
		||||
		
 | 
			
		||||
		/* this is the only iteration of the loop with a possibility of having
 | 
			
		||||
		   incremented rdx by 0x108 (each loop iteration add 16*4 = 0x40 
 | 
			
		||||
		   and (0x40*4)+8=0x108 */
 | 
			
		||||
		add	$8, %rdx
 | 
			
		||||
		jz LenMaximum
 | 
			
		||||
		add	$8, %rdx
 | 
			
		||||
 | 
			
		||||
		
 | 
			
		||||
		pmovmskb %xmm3, %rax
 | 
			
		||||
		notw	%ax
 | 
			
		||||
		bsfw	%ax, %ax
 | 
			
		||||
		jnz	LeaveLoopCmps
 | 
			
		||||
		
 | 
			
		||||
		
 | 
			
		||||
		add	$16, %rdx
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		pmovmskb %xmm5, %rax
 | 
			
		||||
		notw	%ax
 | 
			
		||||
		bsfw	%ax, %ax
 | 
			
		||||
		jnz	LeaveLoopCmps
 | 
			
		||||
		
 | 
			
		||||
		add	$16, %rdx
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		pmovmskb %xmm7, %rax
 | 
			
		||||
		notw	%ax
 | 
			
		||||
		bsfw	%ax, %ax
 | 
			
		||||
		jnz	LeaveLoopCmps
 | 
			
		||||
		
 | 
			
		||||
		add	$16, %rdx
 | 
			
		||||
		
 | 
			
		||||
		jmp	LoopCmps
 | 
			
		||||
LeaveLoopCmps:	add	%rax, %rdx
 | 
			
		||||
#else
 | 
			
		||||
		mov	(%windowbestlen, %rdx), %rax
 | 
			
		||||
		xor	(%prev, %rdx), %rax
 | 
			
		||||
		jnz	LeaveLoopCmps
 | 
			
		||||
		add	$8, %rdx
 | 
			
		||||
		
 | 
			
		||||
		mov	8(%windowbestlen, %rdx), %rax
 | 
			
		||||
		xor	8(%prev, %rdx), %rax
 | 
			
		||||
		jnz	LeaveLoopCmps8
 | 
			
		||||
 | 
			
		||||
		mov	16(%windowbestlen, %rdx), %rax
 | 
			
		||||
		xor	16(%prev, %rdx), %rax
 | 
			
		||||
		jnz	LeaveLoopCmps16
 | 
			
		||||
				
 | 
			
		||||
		add	$24, %rdx
 | 
			
		||||
		jnz	LoopCmps
 | 
			
		||||
		jmp	LenMaximum
 | 
			
		||||
#	if 0
 | 
			
		||||
@@ -274,10 +364,15 @@ LeaveLoopCmps:	add	%rax, %rdx
 | 
			
		||||
 * This three-liner is tantalizingly simple, but bsf is a slow instruction,
 | 
			
		||||
 * and the complicated alternative down below is quite a bit faster. Sad...
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
LeaveLoopCmps:	bsf	%rax, %rax /* find the first non-zero bit */
 | 
			
		||||
		shrl	$3, %eax /* divide by 8 to get the byte */
 | 
			
		||||
		add	%rax, %rdx
 | 
			
		||||
#	else
 | 
			
		||||
LeaveLoopCmps16:
 | 
			
		||||
		add	$8, %rdx
 | 
			
		||||
LeaveLoopCmps8:
 | 
			
		||||
		add	$8, %rdx
 | 
			
		||||
LeaveLoopCmps:	testl   $0xFFFFFFFF, %eax /* Check the first 4 bytes */
 | 
			
		||||
		jnz     Check16
 | 
			
		||||
		add     $4, %rdx
 | 
			
		||||
 
 | 
			
		||||
@@ -1,43 +0,0 @@
 | 
			
		||||
This is a patched version of zlib modified to use
 | 
			
		||||
Pentium-optimized assembly code in the deflation algorithm. The files
 | 
			
		||||
changed/added by this patch are:
 | 
			
		||||
 | 
			
		||||
README.586
 | 
			
		||||
match.S
 | 
			
		||||
 | 
			
		||||
The effectiveness of these modifications is a bit marginal, as the the
 | 
			
		||||
program's bottleneck seems to be mostly L1-cache contention, for which
 | 
			
		||||
there is no real way to work around without rewriting the basic
 | 
			
		||||
algorithm. The speedup on average is around 5-10% (which is generally
 | 
			
		||||
less than the amount of variance between subsequent executions).
 | 
			
		||||
However, when used at level 9 compression, the cache contention can
 | 
			
		||||
drop enough for the assembly version to achieve 10-20% speedup (and
 | 
			
		||||
sometimes more, depending on the amount of overall redundancy in the
 | 
			
		||||
files). Even here, though, cache contention can still be the limiting
 | 
			
		||||
factor, depending on the nature of the program using the zlib library.
 | 
			
		||||
This may also mean that better improvements will be seen on a Pentium
 | 
			
		||||
with MMX, which suffers much less from L1-cache contention, but I have
 | 
			
		||||
not yet verified this.
 | 
			
		||||
 | 
			
		||||
Note that this code has been tailored for the Pentium in particular,
 | 
			
		||||
and will not perform well on the Pentium Pro (due to the use of a
 | 
			
		||||
partial register in the inner loop).
 | 
			
		||||
 | 
			
		||||
If you are using an assembler other than GNU as, you will have to
 | 
			
		||||
translate match.S to use your assembler's syntax. (Have fun.)
 | 
			
		||||
 | 
			
		||||
Brian Raiter
 | 
			
		||||
breadbox@muppetlabs.com
 | 
			
		||||
April, 1998
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Added for zlib 1.1.3:
 | 
			
		||||
 | 
			
		||||
The patches come from
 | 
			
		||||
http://www.muppetlabs.com/~breadbox/software/assembly.html
 | 
			
		||||
 | 
			
		||||
To compile zlib with this asm file, copy match.S to the zlib directory
 | 
			
		||||
then do:
 | 
			
		||||
 | 
			
		||||
CFLAGS="-O3 -DASMV" ./configure
 | 
			
		||||
make OBJA=match.o
 | 
			
		||||
@@ -1,364 +0,0 @@
 | 
			
		||||
/* match.s -- Pentium-optimized version of longest_match()
 | 
			
		||||
 * Written for zlib 1.1.2
 | 
			
		||||
 * Copyright (C) 1998 Brian Raiter <breadbox@muppetlabs.com>
 | 
			
		||||
 *
 | 
			
		||||
 * This is free software; you can redistribute it and/or modify it
 | 
			
		||||
 * under the terms of the GNU General Public License.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef NO_UNDERLINE
 | 
			
		||||
#define	match_init	_match_init
 | 
			
		||||
#define	longest_match	_longest_match
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define	MAX_MATCH	(258)
 | 
			
		||||
#define	MIN_MATCH	(3)
 | 
			
		||||
#define	MIN_LOOKAHEAD	(MAX_MATCH + MIN_MATCH + 1)
 | 
			
		||||
#define	MAX_MATCH_8	((MAX_MATCH + 7) & ~7)
 | 
			
		||||
 | 
			
		||||
/* stack frame offsets */
 | 
			
		||||
 | 
			
		||||
#define	wmask			0	/* local copy of s->wmask	*/
 | 
			
		||||
#define	window			4	/* local copy of s->window	*/
 | 
			
		||||
#define	windowbestlen		8	/* s->window + bestlen		*/
 | 
			
		||||
#define	chainlenscanend		12	/* high word: current chain len	*/
 | 
			
		||||
					/* low word: last bytes sought	*/
 | 
			
		||||
#define	scanstart		16	/* first two bytes of string	*/
 | 
			
		||||
#define	scanalign		20	/* dword-misalignment of string	*/
 | 
			
		||||
#define	nicematch		24	/* a good enough match size	*/
 | 
			
		||||
#define	bestlen			28	/* size of best match so far	*/
 | 
			
		||||
#define	scan			32	/* ptr to string wanting match	*/
 | 
			
		||||
 | 
			
		||||
#define	LocalVarsSize		(36)
 | 
			
		||||
/*	saved ebx		36 */
 | 
			
		||||
/*	saved edi		40 */
 | 
			
		||||
/*	saved esi		44 */
 | 
			
		||||
/*	saved ebp		48 */
 | 
			
		||||
/*	return address		52 */
 | 
			
		||||
#define	deflatestate		56	/* the function arguments	*/
 | 
			
		||||
#define	curmatch		60
 | 
			
		||||
 | 
			
		||||
/* Offsets for fields in the deflate_state structure. These numbers
 | 
			
		||||
 * are calculated from the definition of deflate_state, with the
 | 
			
		||||
 * assumption that the compiler will dword-align the fields. (Thus,
 | 
			
		||||
 * changing the definition of deflate_state could easily cause this
 | 
			
		||||
 * program to crash horribly, without so much as a warning at
 | 
			
		||||
 * compile time. Sigh.)
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* All the +zlib1222add offsets are due to the addition of fields
 | 
			
		||||
 *  in zlib in the deflate_state structure since the asm code was first written
 | 
			
		||||
 * (if you compile with zlib 1.0.4 or older, use "zlib1222add equ (-4)").
 | 
			
		||||
 * (if you compile with zlib between 1.0.5 and 1.2.2.1, use "zlib1222add equ 0").
 | 
			
		||||
 * if you compile with zlib 1.2.2.2 or later , use "zlib1222add equ 8").
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#define zlib1222add		(8)
 | 
			
		||||
 | 
			
		||||
#define	dsWSize			(36+zlib1222add)
 | 
			
		||||
#define	dsWMask			(44+zlib1222add)
 | 
			
		||||
#define	dsWindow		(48+zlib1222add)
 | 
			
		||||
#define	dsPrev			(56+zlib1222add)
 | 
			
		||||
#define	dsMatchLen		(88+zlib1222add)
 | 
			
		||||
#define	dsPrevMatch		(92+zlib1222add)
 | 
			
		||||
#define	dsStrStart		(100+zlib1222add)
 | 
			
		||||
#define	dsMatchStart		(104+zlib1222add)
 | 
			
		||||
#define	dsLookahead		(108+zlib1222add)
 | 
			
		||||
#define	dsPrevLen		(112+zlib1222add)
 | 
			
		||||
#define	dsMaxChainLen		(116+zlib1222add)
 | 
			
		||||
#define	dsGoodMatch		(132+zlib1222add)
 | 
			
		||||
#define	dsNiceMatch		(136+zlib1222add)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.file "match.S"
 | 
			
		||||
 | 
			
		||||
.globl	match_init, longest_match
 | 
			
		||||
 | 
			
		||||
.text
 | 
			
		||||
 | 
			
		||||
/* uInt longest_match(deflate_state *deflatestate, IPos curmatch) */
 | 
			
		||||
 | 
			
		||||
longest_match:
 | 
			
		||||
 | 
			
		||||
/* Save registers that the compiler may be using, and adjust %esp to	*/
 | 
			
		||||
/* make room for our stack frame.					*/
 | 
			
		||||
 | 
			
		||||
		pushl	%ebp
 | 
			
		||||
		pushl	%edi
 | 
			
		||||
		pushl	%esi
 | 
			
		||||
		pushl	%ebx
 | 
			
		||||
		subl	$LocalVarsSize, %esp
 | 
			
		||||
 | 
			
		||||
/* Retrieve the function arguments. %ecx will hold cur_match		*/
 | 
			
		||||
/* throughout the entire function. %edx will hold the pointer to the	*/
 | 
			
		||||
/* deflate_state structure during the function's setup (before		*/
 | 
			
		||||
/* entering the main loop).						*/
 | 
			
		||||
 | 
			
		||||
		movl	deflatestate(%esp), %edx
 | 
			
		||||
		movl	curmatch(%esp), %ecx
 | 
			
		||||
 | 
			
		||||
/* if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead;	*/
 | 
			
		||||
 | 
			
		||||
		movl	dsNiceMatch(%edx), %eax
 | 
			
		||||
		movl	dsLookahead(%edx), %ebx
 | 
			
		||||
		cmpl	%eax, %ebx
 | 
			
		||||
		jl	LookaheadLess
 | 
			
		||||
		movl	%eax, %ebx
 | 
			
		||||
LookaheadLess:	movl	%ebx, nicematch(%esp)
 | 
			
		||||
 | 
			
		||||
/* register Bytef *scan = s->window + s->strstart;			*/
 | 
			
		||||
 | 
			
		||||
		movl	dsWindow(%edx), %esi
 | 
			
		||||
		movl	%esi, window(%esp)
 | 
			
		||||
		movl	dsStrStart(%edx), %ebp
 | 
			
		||||
		lea	(%esi,%ebp), %edi
 | 
			
		||||
		movl	%edi, scan(%esp)
 | 
			
		||||
 | 
			
		||||
/* Determine how many bytes the scan ptr is off from being		*/
 | 
			
		||||
/* dword-aligned.							*/
 | 
			
		||||
 | 
			
		||||
		movl	%edi, %eax
 | 
			
		||||
		negl	%eax
 | 
			
		||||
		andl	$3, %eax
 | 
			
		||||
		movl	%eax, scanalign(%esp)
 | 
			
		||||
 | 
			
		||||
/* IPos limit = s->strstart > (IPos)MAX_DIST(s) ?			*/
 | 
			
		||||
/*     s->strstart - (IPos)MAX_DIST(s) : NIL;				*/
 | 
			
		||||
 | 
			
		||||
		movl	dsWSize(%edx), %eax
 | 
			
		||||
		subl	$MIN_LOOKAHEAD, %eax
 | 
			
		||||
		subl	%eax, %ebp
 | 
			
		||||
		jg	LimitPositive
 | 
			
		||||
		xorl	%ebp, %ebp
 | 
			
		||||
LimitPositive:
 | 
			
		||||
 | 
			
		||||
/* unsigned chain_length = s->max_chain_length;				*/
 | 
			
		||||
/* if (s->prev_length >= s->good_match) {				*/
 | 
			
		||||
/*     chain_length >>= 2;						*/
 | 
			
		||||
/* }									*/
 | 
			
		||||
 | 
			
		||||
		movl	dsPrevLen(%edx), %eax
 | 
			
		||||
		movl	dsGoodMatch(%edx), %ebx
 | 
			
		||||
		cmpl	%ebx, %eax
 | 
			
		||||
		movl	dsMaxChainLen(%edx), %ebx
 | 
			
		||||
		jl	LastMatchGood
 | 
			
		||||
		shrl	$2, %ebx
 | 
			
		||||
LastMatchGood:
 | 
			
		||||
 | 
			
		||||
/* chainlen is decremented once beforehand so that the function can	*/
 | 
			
		||||
/* use the sign flag instead of the zero flag for the exit test.	*/
 | 
			
		||||
/* It is then shifted into the high word, to make room for the scanend	*/
 | 
			
		||||
/* scanend value, which it will always accompany.			*/
 | 
			
		||||
 | 
			
		||||
		decl	%ebx
 | 
			
		||||
		shll	$16, %ebx
 | 
			
		||||
 | 
			
		||||
/* int best_len = s->prev_length;					*/
 | 
			
		||||
 | 
			
		||||
		movl	dsPrevLen(%edx), %eax
 | 
			
		||||
		movl	%eax, bestlen(%esp)
 | 
			
		||||
 | 
			
		||||
/* Store the sum of s->window + best_len in %esi locally, and in %esi.	*/
 | 
			
		||||
 | 
			
		||||
		addl	%eax, %esi
 | 
			
		||||
		movl	%esi, windowbestlen(%esp)
 | 
			
		||||
 | 
			
		||||
/* register ush scan_start = *(ushf*)scan;				*/
 | 
			
		||||
/* register ush scan_end   = *(ushf*)(scan+best_len-1);			*/
 | 
			
		||||
 | 
			
		||||
		movw	(%edi), %bx
 | 
			
		||||
		movw	%bx, scanstart(%esp)
 | 
			
		||||
		movw	-1(%edi,%eax), %bx
 | 
			
		||||
		movl	%ebx, chainlenscanend(%esp)
 | 
			
		||||
 | 
			
		||||
/* Posf *prev = s->prev;						*/
 | 
			
		||||
/* uInt wmask = s->w_mask;						*/
 | 
			
		||||
 | 
			
		||||
		movl	dsPrev(%edx), %edi
 | 
			
		||||
		movl	dsWMask(%edx), %edx
 | 
			
		||||
		mov	%edx, wmask(%esp)
 | 
			
		||||
 | 
			
		||||
/* Jump into the main loop.						*/
 | 
			
		||||
 | 
			
		||||
		jmp	LoopEntry
 | 
			
		||||
 | 
			
		||||
.balign 16
 | 
			
		||||
 | 
			
		||||
/* do {
 | 
			
		||||
 *     match = s->window + cur_match;
 | 
			
		||||
 *     if (*(ushf*)(match+best_len-1) != scan_end ||
 | 
			
		||||
 *         *(ushf*)match != scan_start) continue;
 | 
			
		||||
 *     [...]
 | 
			
		||||
 * } while ((cur_match = prev[cur_match & wmask]) > limit
 | 
			
		||||
 *          && --chain_length != 0);
 | 
			
		||||
 *
 | 
			
		||||
 * Here is the inner loop of the function. The function will spend the
 | 
			
		||||
 * majority of its time in this loop, and majority of that time will
 | 
			
		||||
 * be spent in the first ten instructions.
 | 
			
		||||
 *
 | 
			
		||||
 * Within this loop:
 | 
			
		||||
 * %ebx = chainlenscanend - i.e., ((chainlen << 16) | scanend)
 | 
			
		||||
 * %ecx = curmatch
 | 
			
		||||
 * %edx = curmatch & wmask
 | 
			
		||||
 * %esi = windowbestlen - i.e., (window + bestlen)
 | 
			
		||||
 * %edi = prev
 | 
			
		||||
 * %ebp = limit
 | 
			
		||||
 *
 | 
			
		||||
 * Two optimization notes on the choice of instructions:
 | 
			
		||||
 *
 | 
			
		||||
 * The first instruction uses a 16-bit address, which costs an extra,
 | 
			
		||||
 * unpairable cycle. This is cheaper than doing a 32-bit access and
 | 
			
		||||
 * zeroing the high word, due to the 3-cycle misalignment penalty which
 | 
			
		||||
 * would occur half the time. This also turns out to be cheaper than
 | 
			
		||||
 * doing two separate 8-bit accesses, as the memory is so rarely in the
 | 
			
		||||
 * L1 cache.
 | 
			
		||||
 *
 | 
			
		||||
 * The window buffer, however, apparently spends a lot of time in the
 | 
			
		||||
 * cache, and so it is faster to retrieve the word at the end of the
 | 
			
		||||
 * match string with two 8-bit loads. The instructions that test the
 | 
			
		||||
 * word at the beginning of the match string, however, are executed
 | 
			
		||||
 * much less frequently, and there it was cheaper to use 16-bit
 | 
			
		||||
 * instructions, which avoided the necessity of saving off and
 | 
			
		||||
 * subsequently reloading one of the other registers.
 | 
			
		||||
 */
 | 
			
		||||
LookupLoop:
 | 
			
		||||
							/* 1 U & V  */
 | 
			
		||||
		movw	(%edi,%edx,2), %cx		/* 2 U pipe */
 | 
			
		||||
		movl	wmask(%esp), %edx		/* 2 V pipe */
 | 
			
		||||
		cmpl	%ebp, %ecx			/* 3 U pipe */
 | 
			
		||||
		jbe	LeaveNow			/* 3 V pipe */
 | 
			
		||||
		subl	$0x00010000, %ebx		/* 4 U pipe */
 | 
			
		||||
		js	LeaveNow			/* 4 V pipe */
 | 
			
		||||
LoopEntry:	movb	-1(%esi,%ecx), %al		/* 5 U pipe */
 | 
			
		||||
		andl	%ecx, %edx			/* 5 V pipe */
 | 
			
		||||
		cmpb	%bl, %al			/* 6 U pipe */
 | 
			
		||||
		jnz	LookupLoop			/* 6 V pipe */
 | 
			
		||||
		movb	(%esi,%ecx), %ah
 | 
			
		||||
		cmpb	%bh, %ah
 | 
			
		||||
		jnz	LookupLoop
 | 
			
		||||
		movl	window(%esp), %eax
 | 
			
		||||
		movw	(%eax,%ecx), %ax
 | 
			
		||||
		cmpw	scanstart(%esp), %ax
 | 
			
		||||
		jnz	LookupLoop
 | 
			
		||||
 | 
			
		||||
/* Store the current value of chainlen.					*/
 | 
			
		||||
 | 
			
		||||
		movl	%ebx, chainlenscanend(%esp)
 | 
			
		||||
 | 
			
		||||
/* Point %edi to the string under scrutiny, and %esi to the string we	*/
 | 
			
		||||
/* are hoping to match it up with. In actuality, %esi and %edi are	*/
 | 
			
		||||
/* both pointed (MAX_MATCH_8 - scanalign) bytes ahead, and %edx is	*/
 | 
			
		||||
/* initialized to -(MAX_MATCH_8 - scanalign).				*/
 | 
			
		||||
 | 
			
		||||
		movl	window(%esp), %esi
 | 
			
		||||
		movl	scan(%esp), %edi
 | 
			
		||||
		addl	%ecx, %esi
 | 
			
		||||
		movl	scanalign(%esp), %eax
 | 
			
		||||
		movl	$(-MAX_MATCH_8), %edx
 | 
			
		||||
		lea	MAX_MATCH_8(%edi,%eax), %edi
 | 
			
		||||
		lea	MAX_MATCH_8(%esi,%eax), %esi
 | 
			
		||||
 | 
			
		||||
/* Test the strings for equality, 8 bytes at a time. At the end,
 | 
			
		||||
 * adjust %edx so that it is offset to the exact byte that mismatched.
 | 
			
		||||
 *
 | 
			
		||||
 * We already know at this point that the first three bytes of the
 | 
			
		||||
 * strings match each other, and they can be safely passed over before
 | 
			
		||||
 * starting the compare loop. So what this code does is skip over 0-3
 | 
			
		||||
 * bytes, as much as necessary in order to dword-align the %edi
 | 
			
		||||
 * pointer. (%esi will still be misaligned three times out of four.)
 | 
			
		||||
 *
 | 
			
		||||
 * It should be confessed that this loop usually does not represent
 | 
			
		||||
 * much of the total running time. Replacing it with a more
 | 
			
		||||
 * straightforward "rep cmpsb" would not drastically degrade
 | 
			
		||||
 * performance.
 | 
			
		||||
 */
 | 
			
		||||
LoopCmps:
 | 
			
		||||
		movl	(%esi,%edx), %eax
 | 
			
		||||
		movl	(%edi,%edx), %ebx
 | 
			
		||||
		xorl	%ebx, %eax
 | 
			
		||||
		jnz	LeaveLoopCmps
 | 
			
		||||
		movl	4(%esi,%edx), %eax
 | 
			
		||||
		movl	4(%edi,%edx), %ebx
 | 
			
		||||
		xorl	%ebx, %eax
 | 
			
		||||
		jnz	LeaveLoopCmps4
 | 
			
		||||
		addl	$8, %edx
 | 
			
		||||
		jnz	LoopCmps
 | 
			
		||||
		jmp	LenMaximum
 | 
			
		||||
LeaveLoopCmps4:	addl	$4, %edx
 | 
			
		||||
LeaveLoopCmps:	testl	$0x0000FFFF, %eax
 | 
			
		||||
		jnz	LenLower
 | 
			
		||||
		addl	$2, %edx
 | 
			
		||||
		shrl	$16, %eax
 | 
			
		||||
LenLower:	subb	$1, %al
 | 
			
		||||
		adcl	$0, %edx
 | 
			
		||||
 | 
			
		||||
/* Calculate the length of the match. If it is longer than MAX_MATCH,	*/
 | 
			
		||||
/* then automatically accept it as the best possible match and leave.	*/
 | 
			
		||||
 | 
			
		||||
		lea	(%edi,%edx), %eax
 | 
			
		||||
		movl	scan(%esp), %edi
 | 
			
		||||
		subl	%edi, %eax
 | 
			
		||||
		cmpl	$MAX_MATCH, %eax
 | 
			
		||||
		jge	LenMaximum
 | 
			
		||||
 | 
			
		||||
/* If the length of the match is not longer than the best match we	*/
 | 
			
		||||
/* have so far, then forget it and return to the lookup loop.		*/
 | 
			
		||||
 | 
			
		||||
		movl	deflatestate(%esp), %edx
 | 
			
		||||
		movl	bestlen(%esp), %ebx
 | 
			
		||||
		cmpl	%ebx, %eax
 | 
			
		||||
		jg	LongerMatch
 | 
			
		||||
		movl	chainlenscanend(%esp), %ebx
 | 
			
		||||
		movl	windowbestlen(%esp), %esi
 | 
			
		||||
		movl	dsPrev(%edx), %edi
 | 
			
		||||
		movl	wmask(%esp), %edx
 | 
			
		||||
		andl	%ecx, %edx
 | 
			
		||||
		jmp	LookupLoop
 | 
			
		||||
 | 
			
		||||
/*         s->match_start = cur_match;					*/
 | 
			
		||||
/*         best_len = len;						*/
 | 
			
		||||
/*         if (len >= nice_match) break;				*/
 | 
			
		||||
/*         scan_end = *(ushf*)(scan+best_len-1);			*/
 | 
			
		||||
 | 
			
		||||
LongerMatch:	movl	nicematch(%esp), %ebx
 | 
			
		||||
		movl	%eax, bestlen(%esp)
 | 
			
		||||
		movl	%ecx, dsMatchStart(%edx)
 | 
			
		||||
		cmpl	%ebx, %eax
 | 
			
		||||
		jge	LeaveNow
 | 
			
		||||
		movl	window(%esp), %esi
 | 
			
		||||
		addl	%eax, %esi
 | 
			
		||||
		movl	%esi, windowbestlen(%esp)
 | 
			
		||||
		movl	chainlenscanend(%esp), %ebx
 | 
			
		||||
		movw	-1(%edi,%eax), %bx
 | 
			
		||||
		movl	dsPrev(%edx), %edi
 | 
			
		||||
		movl	%ebx, chainlenscanend(%esp)
 | 
			
		||||
		movl	wmask(%esp), %edx
 | 
			
		||||
		andl	%ecx, %edx
 | 
			
		||||
		jmp	LookupLoop
 | 
			
		||||
 | 
			
		||||
/* Accept the current string, with the maximum possible length.		*/
 | 
			
		||||
 | 
			
		||||
LenMaximum:	movl	deflatestate(%esp), %edx
 | 
			
		||||
		movl	$MAX_MATCH, bestlen(%esp)
 | 
			
		||||
		movl	%ecx, dsMatchStart(%edx)
 | 
			
		||||
 | 
			
		||||
/* if ((uInt)best_len <= s->lookahead) return (uInt)best_len;		*/
 | 
			
		||||
/* return s->lookahead;							*/
 | 
			
		||||
 | 
			
		||||
LeaveNow:
 | 
			
		||||
		movl	deflatestate(%esp), %edx
 | 
			
		||||
		movl	bestlen(%esp), %ebx
 | 
			
		||||
		movl	dsLookahead(%edx), %eax
 | 
			
		||||
		cmpl	%eax, %ebx
 | 
			
		||||
		jg	LookaheadRet
 | 
			
		||||
		movl	%ebx, %eax
 | 
			
		||||
LookaheadRet:
 | 
			
		||||
 | 
			
		||||
/* Restore the stack and return from whence we came.			*/
 | 
			
		||||
 | 
			
		||||
		addl	$LocalVarsSize, %esp
 | 
			
		||||
		popl	%ebx
 | 
			
		||||
		popl	%esi
 | 
			
		||||
		popl	%edi
 | 
			
		||||
		popl	%ebp
 | 
			
		||||
match_init:	ret
 | 
			
		||||
@@ -32,3 +32,20 @@ then do:
 | 
			
		||||
 | 
			
		||||
CFLAGS="-O3 -DASMV" ./configure
 | 
			
		||||
make OBJA=match.o
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Update:
 | 
			
		||||
 | 
			
		||||
I've been ignoring these assembly routines for years, believing that
 | 
			
		||||
gcc's generated code had caught up with it sometime around gcc 2.95
 | 
			
		||||
and the major rearchitecting of the Pentium 4. However, I recently
 | 
			
		||||
learned that, despite what I believed, this code still has some life
 | 
			
		||||
in it. On the Pentium 4 and AMD64 chips, it continues to run about 8%
 | 
			
		||||
faster than the code produced by gcc 4.1.
 | 
			
		||||
 | 
			
		||||
In acknowledgement of its continuing usefulness, I've altered the
 | 
			
		||||
license to match that of the rest of zlib. Share and Enjoy!
 | 
			
		||||
 | 
			
		||||
Brian Raiter
 | 
			
		||||
breadbox@muppetlabs.com
 | 
			
		||||
April, 2007
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,23 @@
 | 
			
		||||
/* match.s -- Pentium-Pro-optimized version of longest_match()
 | 
			
		||||
 * Written for zlib 1.1.2
 | 
			
		||||
 * Copyright (C) 1998 Brian Raiter <breadbox@muppetlabs.com>
 | 
			
		||||
/* match.S -- x86 assembly version of the zlib longest_match() function.
 | 
			
		||||
 * Optimized for the Intel 686 chips (PPro and later).
 | 
			
		||||
 *
 | 
			
		||||
 * This is free software; you can redistribute it and/or modify it
 | 
			
		||||
 * under the terms of the GNU General Public License.
 | 
			
		||||
 * Copyright (C) 1998, 2007 Brian Raiter <breadbox@muppetlabs.com>
 | 
			
		||||
 *
 | 
			
		||||
 * This software is provided 'as-is', without any express or implied
 | 
			
		||||
 * warranty.  In no event will the author be held liable for any damages
 | 
			
		||||
 * arising from the use of this software.
 | 
			
		||||
 *
 | 
			
		||||
 * Permission is granted to anyone to use this software for any purpose,
 | 
			
		||||
 * including commercial applications, and to alter it and redistribute it
 | 
			
		||||
 * freely, subject to the following restrictions:
 | 
			
		||||
 *
 | 
			
		||||
 * 1. The origin of this software must not be misrepresented; you must not
 | 
			
		||||
 *    claim that you wrote the original software. If you use this software
 | 
			
		||||
 *    in a product, an acknowledgment in the product documentation would be
 | 
			
		||||
 *    appreciated but is not required.
 | 
			
		||||
 * 2. Altered source versions must be plainly marked as such, and must not be
 | 
			
		||||
 *    misrepresented as being the original software.
 | 
			
		||||
 * 3. This notice may not be removed or altered from any source distribution.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef NO_UNDERLINE
 | 
			
		||||
@@ -69,17 +83,25 @@
 | 
			
		||||
.text
 | 
			
		||||
 | 
			
		||||
/* uInt longest_match(deflate_state *deflatestate, IPos curmatch) */
 | 
			
		||||
.cfi_sections	.debug_frame
 | 
			
		||||
 | 
			
		||||
longest_match:
 | 
			
		||||
 | 
			
		||||
.cfi_startproc
 | 
			
		||||
/* Save registers that the compiler may be using, and adjust %esp to	*/
 | 
			
		||||
/* make room for our stack frame.					*/
 | 
			
		||||
 | 
			
		||||
		pushl	%ebp
 | 
			
		||||
		.cfi_def_cfa_offset 8
 | 
			
		||||
		.cfi_offset ebp, -8
 | 
			
		||||
		pushl	%edi
 | 
			
		||||
		.cfi_def_cfa_offset 12
 | 
			
		||||
		pushl	%esi
 | 
			
		||||
		.cfi_def_cfa_offset 16
 | 
			
		||||
		pushl	%ebx
 | 
			
		||||
		.cfi_def_cfa_offset 20
 | 
			
		||||
		subl	$LocalVarsSize, %esp
 | 
			
		||||
		.cfi_def_cfa_offset LocalVarsSize+20
 | 
			
		||||
 | 
			
		||||
/* Retrieve the function arguments. %ecx will hold cur_match		*/
 | 
			
		||||
/* throughout the entire function. %edx will hold the pointer to the	*/
 | 
			
		||||
@@ -322,8 +344,14 @@ LookaheadRet:
 | 
			
		||||
/* Restore the stack and return from whence we came.			*/
 | 
			
		||||
 | 
			
		||||
		addl	$LocalVarsSize, %esp
 | 
			
		||||
		.cfi_def_cfa_offset 20
 | 
			
		||||
		popl	%ebx
 | 
			
		||||
		.cfi_def_cfa_offset 16
 | 
			
		||||
		popl	%esi
 | 
			
		||||
		.cfi_def_cfa_offset 12
 | 
			
		||||
		popl	%edi
 | 
			
		||||
		.cfi_def_cfa_offset 8
 | 
			
		||||
		popl	%ebp
 | 
			
		||||
		.cfi_def_cfa_offset 4
 | 
			
		||||
.cfi_endproc
 | 
			
		||||
match_init:	ret
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
/* blast.c
 | 
			
		||||
 * Copyright (C) 2003 Mark Adler
 | 
			
		||||
 * Copyright (C) 2003, 2012 Mark Adler
 | 
			
		||||
 * For conditions of distribution and use, see copyright notice in blast.h
 | 
			
		||||
 * version 1.1, 16 Feb 2003
 | 
			
		||||
 * version 1.2, 24 Oct 2012
 | 
			
		||||
 *
 | 
			
		||||
 * blast.c decompresses data compressed by the PKWare Compression Library.
 | 
			
		||||
 * This function provides functionality similar to the explode() function of
 | 
			
		||||
@@ -22,6 +22,8 @@
 | 
			
		||||
 *
 | 
			
		||||
 * 1.0  12 Feb 2003     - First version
 | 
			
		||||
 * 1.1  16 Feb 2003     - Fixed distance check for > 4 GB uncompressed data
 | 
			
		||||
 * 1.2  24 Oct 2012     - Add note about using binary mode in stdio
 | 
			
		||||
 *                      - Fix comparisons of differently signed integers
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <setjmp.h>             /* for setjmp(), longjmp(), and jmp_buf */
 | 
			
		||||
@@ -279,7 +281,7 @@ local int decomp(struct state *s)
 | 
			
		||||
    int dict;           /* log2(dictionary size) - 6 */
 | 
			
		||||
    int symbol;         /* decoded symbol, extra bits for distance */
 | 
			
		||||
    int len;            /* length for copy */
 | 
			
		||||
    int dist;           /* distance for copy */
 | 
			
		||||
    unsigned dist;      /* distance for copy */
 | 
			
		||||
    int copy;           /* copy counter */
 | 
			
		||||
    unsigned char *from, *to;   /* copy pointers */
 | 
			
		||||
    static int virgin = 1;                              /* build tables once */
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
/* blast.h -- interface for blast.c
 | 
			
		||||
  Copyright (C) 2003 Mark Adler
 | 
			
		||||
  version 1.1, 16 Feb 2003
 | 
			
		||||
  Copyright (C) 2003, 2012 Mark Adler
 | 
			
		||||
  version 1.2, 24 Oct 2012
 | 
			
		||||
 | 
			
		||||
  This software is provided 'as-is', without any express or implied
 | 
			
		||||
  warranty.  In no event will the author be held liable for any damages
 | 
			
		||||
@@ -28,6 +28,10 @@
 | 
			
		||||
 * that library.  (Note: PKWare overused the "implode" verb, and the format
 | 
			
		||||
 * used by their library implode() function is completely different and
 | 
			
		||||
 * incompatible with the implode compression method supported by PKZIP.)
 | 
			
		||||
 *
 | 
			
		||||
 * The binary mode for stdio functions should be used to assure that the
 | 
			
		||||
 * compressed data is not corrupted when read or written.  For example:
 | 
			
		||||
 * fopen(..., "rb") and fopen(..., "wb").
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -152,7 +152,7 @@ procedure DecompressToUserBuf(const InBuf: Pointer; InBytes: Integer;
 | 
			
		||||
  const OutBuf: Pointer; BufSize: Integer);
 | 
			
		||||
 | 
			
		||||
const
 | 
			
		||||
  zlib_version = '1.2.3';
 | 
			
		||||
  zlib_version = '1.2.8';
 | 
			
		||||
 | 
			
		||||
type
 | 
			
		||||
  EZlibError = class(Exception);
 | 
			
		||||
 
 | 
			
		||||
@@ -63,9 +63,9 @@ uncompr.obj: uncompr.c zlib.h zconf.h
 | 
			
		||||
 | 
			
		||||
zutil.obj: zutil.c zutil.h zlib.h zconf.h
 | 
			
		||||
 | 
			
		||||
example.obj: example.c zlib.h zconf.h
 | 
			
		||||
example.obj: test/example.c zlib.h zconf.h
 | 
			
		||||
 | 
			
		||||
minigzip.obj: minigzip.c zlib.h zconf.h
 | 
			
		||||
minigzip.obj: test/minigzip.c zlib.h zconf.h
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# For the sake of the old Borland make,
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
//
 | 
			
		||||
// <EFBFBD> Copyright Henrik Ravn 2004
 | 
			
		||||
// © Copyright Henrik Ravn 2004
 | 
			
		||||
//
 | 
			
		||||
// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
 | 
			
		||||
// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 | 
			
		||||
@@ -156,7 +156,7 @@ namespace DotZLibTests
 | 
			
		||||
        public void Info_Version()
 | 
			
		||||
        {
 | 
			
		||||
            Info info = new Info();
 | 
			
		||||
            Assert.AreEqual("1.2.3", Info.Version);
 | 
			
		||||
            Assert.AreEqual("1.2.8", Info.Version);
 | 
			
		||||
            Assert.AreEqual(32, info.SizeOfUInt);
 | 
			
		||||
            Assert.AreEqual(32, info.SizeOfULong);
 | 
			
		||||
            Assert.AreEqual(32, info.SizeOfPointer);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										574
									
								
								contrib/gcc_gvmat64/gvmat64.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										574
									
								
								contrib/gcc_gvmat64/gvmat64.S
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,574 @@
 | 
			
		||||
/*
 | 
			
		||||
;uInt longest_match_x64(
 | 
			
		||||
;    deflate_state *s,
 | 
			
		||||
;    IPos cur_match);                             // current match 
 | 
			
		||||
 | 
			
		||||
; gvmat64.S -- Asm portion of the optimized longest_match for 32 bits x86_64
 | 
			
		||||
;  (AMD64 on Athlon 64, Opteron, Phenom
 | 
			
		||||
;     and Intel EM64T on Pentium 4 with EM64T, Pentium D, Core 2 Duo, Core I5/I7)
 | 
			
		||||
; this file is translation from gvmat64.asm to GCC 4.x (for Linux, Mac XCode)
 | 
			
		||||
; Copyright (C) 1995-2010 Jean-loup Gailly, Brian Raiter and Gilles Vollant.
 | 
			
		||||
;
 | 
			
		||||
; File written by Gilles Vollant, by converting to assembly the longest_match
 | 
			
		||||
;  from Jean-loup Gailly in deflate.c of zLib and infoZip zip.
 | 
			
		||||
;  and by taking inspiration on asm686 with masm, optimised assembly code
 | 
			
		||||
;        from Brian Raiter, written 1998
 | 
			
		||||
;
 | 
			
		||||
;  This software is provided 'as-is', without any express or implied
 | 
			
		||||
;  warranty.  In no event will the authors be held liable for any damages
 | 
			
		||||
;  arising from the use of this software.
 | 
			
		||||
;
 | 
			
		||||
;  Permission is granted to anyone to use this software for any purpose,
 | 
			
		||||
;  including commercial applications, and to alter it and redistribute it
 | 
			
		||||
;  freely, subject to the following restrictions:
 | 
			
		||||
;
 | 
			
		||||
;  1. The origin of this software must not be misrepresented; you must not
 | 
			
		||||
;     claim that you wrote the original software. If you use this software
 | 
			
		||||
;     in a product, an acknowledgment in the product documentation would be
 | 
			
		||||
;     appreciated but is not required.
 | 
			
		||||
;  2. Altered source versions must be plainly marked as such, and must not be
 | 
			
		||||
;     misrepresented as being the original software
 | 
			
		||||
;  3. This notice may not be removed or altered from any source distribution.
 | 
			
		||||
;
 | 
			
		||||
;         http://www.zlib.net
 | 
			
		||||
;         http://www.winimage.com/zLibDll
 | 
			
		||||
;         http://www.muppetlabs.com/~breadbox/software/assembly.html
 | 
			
		||||
;
 | 
			
		||||
; to compile this file for zLib, I use option:
 | 
			
		||||
;   gcc -c -arch x86_64 gvmat64.S
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;uInt longest_match(s, cur_match)
 | 
			
		||||
;    deflate_state *s;
 | 
			
		||||
;    IPos cur_match;                             // current match /
 | 
			
		||||
;
 | 
			
		||||
; with XCode for Mac, I had strange error with some jump on intel syntax
 | 
			
		||||
; this is why BEFORE_JMP and AFTER_JMP are used
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define BEFORE_JMP .att_syntax
 | 
			
		||||
#define AFTER_JMP .intel_syntax noprefix
 | 
			
		||||
 | 
			
		||||
#ifndef NO_UNDERLINE
 | 
			
		||||
#	define	match_init	_match_init
 | 
			
		||||
#	define	longest_match	_longest_match
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
.intel_syntax noprefix
 | 
			
		||||
 | 
			
		||||
.globl	match_init, longest_match
 | 
			
		||||
.text
 | 
			
		||||
longest_match:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define LocalVarsSize 96
 | 
			
		||||
/*
 | 
			
		||||
; register used : rax,rbx,rcx,rdx,rsi,rdi,r8,r9,r10,r11,r12
 | 
			
		||||
; free register :  r14,r15
 | 
			
		||||
; register can be saved : rsp
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#define chainlenwmask     (rsp + 8 - LocalVarsSize)
 | 
			
		||||
#define nicematch         (rsp + 16 - LocalVarsSize)
 | 
			
		||||
 | 
			
		||||
#define save_rdi        (rsp + 24 - LocalVarsSize)
 | 
			
		||||
#define save_rsi        (rsp + 32 - LocalVarsSize)
 | 
			
		||||
#define save_rbx        (rsp + 40 - LocalVarsSize)
 | 
			
		||||
#define save_rbp        (rsp + 48 - LocalVarsSize)
 | 
			
		||||
#define save_r12        (rsp + 56 - LocalVarsSize)
 | 
			
		||||
#define save_r13        (rsp + 64 - LocalVarsSize)
 | 
			
		||||
#define save_r14        (rsp + 72 - LocalVarsSize)
 | 
			
		||||
#define save_r15        (rsp + 80 - LocalVarsSize)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
;  all the +4 offsets are due to the addition of pending_buf_size (in zlib
 | 
			
		||||
;  in the deflate_state structure since the asm code was first written
 | 
			
		||||
;  (if you compile with zlib 1.0.4 or older, remove the +4).
 | 
			
		||||
;  Note : these value are good with a 8 bytes boundary pack structure
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#define    MAX_MATCH              258
 | 
			
		||||
#define    MIN_MATCH              3
 | 
			
		||||
#define    MIN_LOOKAHEAD          (MAX_MATCH+MIN_MATCH+1)
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
;;; Offsets for fields in the deflate_state structure. These numbers
 | 
			
		||||
;;; are calculated from the definition of deflate_state, with the
 | 
			
		||||
;;; assumption that the compiler will dword-align the fields. (Thus,
 | 
			
		||||
;;; changing the definition of deflate_state could easily cause this
 | 
			
		||||
;;; program to crash horribly, without so much as a warning at
 | 
			
		||||
;;; compile time. Sigh.)
 | 
			
		||||
 | 
			
		||||
;  all the +zlib1222add offsets are due to the addition of fields
 | 
			
		||||
;  in zlib in the deflate_state structure since the asm code was first written
 | 
			
		||||
;  (if you compile with zlib 1.0.4 or older, use "zlib1222add equ (-4)").
 | 
			
		||||
;  (if you compile with zlib between 1.0.5 and 1.2.2.1, use "zlib1222add equ 0").
 | 
			
		||||
;  if you compile with zlib 1.2.2.2 or later , use "zlib1222add equ 8").
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* you can check the structure offset by running
 | 
			
		||||
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include "deflate.h"
 | 
			
		||||
 | 
			
		||||
void print_depl()
 | 
			
		||||
{
 | 
			
		||||
deflate_state ds;
 | 
			
		||||
deflate_state *s=&ds;
 | 
			
		||||
printf("size pointer=%u\n",(int)sizeof(void*));
 | 
			
		||||
 | 
			
		||||
printf("#define dsWSize         %u\n",(int)(((char*)&(s->w_size))-((char*)s)));
 | 
			
		||||
printf("#define dsWMask         %u\n",(int)(((char*)&(s->w_mask))-((char*)s)));
 | 
			
		||||
printf("#define dsWindow        %u\n",(int)(((char*)&(s->window))-((char*)s)));
 | 
			
		||||
printf("#define dsPrev          %u\n",(int)(((char*)&(s->prev))-((char*)s)));
 | 
			
		||||
printf("#define dsMatchLen      %u\n",(int)(((char*)&(s->match_length))-((char*)s)));
 | 
			
		||||
printf("#define dsPrevMatch     %u\n",(int)(((char*)&(s->prev_match))-((char*)s)));
 | 
			
		||||
printf("#define dsStrStart      %u\n",(int)(((char*)&(s->strstart))-((char*)s)));
 | 
			
		||||
printf("#define dsMatchStart    %u\n",(int)(((char*)&(s->match_start))-((char*)s)));
 | 
			
		||||
printf("#define dsLookahead     %u\n",(int)(((char*)&(s->lookahead))-((char*)s)));
 | 
			
		||||
printf("#define dsPrevLen       %u\n",(int)(((char*)&(s->prev_length))-((char*)s)));
 | 
			
		||||
printf("#define dsMaxChainLen   %u\n",(int)(((char*)&(s->max_chain_length))-((char*)s)));
 | 
			
		||||
printf("#define dsGoodMatch     %u\n",(int)(((char*)&(s->good_match))-((char*)s)));
 | 
			
		||||
printf("#define dsNiceMatch     %u\n",(int)(((char*)&(s->nice_match))-((char*)s)));
 | 
			
		||||
}
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#define dsWSize          68
 | 
			
		||||
#define dsWMask          76
 | 
			
		||||
#define dsWindow         80
 | 
			
		||||
#define dsPrev           96
 | 
			
		||||
#define dsMatchLen       144
 | 
			
		||||
#define dsPrevMatch      148
 | 
			
		||||
#define dsStrStart       156
 | 
			
		||||
#define dsMatchStart     160
 | 
			
		||||
#define dsLookahead      164
 | 
			
		||||
#define dsPrevLen        168
 | 
			
		||||
#define dsMaxChainLen    172
 | 
			
		||||
#define dsGoodMatch      188
 | 
			
		||||
#define dsNiceMatch      192
 | 
			
		||||
 | 
			
		||||
#define window_size      [ rcx + dsWSize]
 | 
			
		||||
#define WMask            [ rcx + dsWMask]
 | 
			
		||||
#define window_ad        [ rcx + dsWindow]
 | 
			
		||||
#define prev_ad          [ rcx + dsPrev]
 | 
			
		||||
#define strstart         [ rcx + dsStrStart]
 | 
			
		||||
#define match_start      [ rcx + dsMatchStart]
 | 
			
		||||
#define Lookahead        [ rcx + dsLookahead] //; 0ffffffffh on infozip
 | 
			
		||||
#define prev_length      [ rcx + dsPrevLen]
 | 
			
		||||
#define max_chain_length [ rcx + dsMaxChainLen]
 | 
			
		||||
#define good_match       [ rcx + dsGoodMatch]
 | 
			
		||||
#define nice_match       [ rcx + dsNiceMatch]
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
; windows:
 | 
			
		||||
; parameter 1 in rcx(deflate state s), param 2 in rdx (cur match)
 | 
			
		||||
 | 
			
		||||
; see http://weblogs.asp.net/oldnewthing/archive/2004/01/14/58579.aspx and
 | 
			
		||||
; http://msdn.microsoft.com/library/en-us/kmarch/hh/kmarch/64bitAMD_8e951dd2-ee77-4728-8702-55ce4b5dd24a.xml.asp
 | 
			
		||||
;
 | 
			
		||||
; All registers must be preserved across the call, except for
 | 
			
		||||
;   rax, rcx, rdx, r8, r9, r10, and r11, which are scratch.
 | 
			
		||||
 | 
			
		||||
;
 | 
			
		||||
; gcc on macosx-linux:
 | 
			
		||||
; see http://www.x86-64.org/documentation/abi-0.99.pdf
 | 
			
		||||
; param 1 in rdi, param 2 in rsi
 | 
			
		||||
; rbx, rsp, rbp, r12 to r15 must be preserved
 | 
			
		||||
 | 
			
		||||
;;; Save registers that the compiler may be using, and adjust esp to
 | 
			
		||||
;;; make room for our stack frame.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;;; Retrieve the function arguments. r8d will hold cur_match
 | 
			
		||||
;;; throughout the entire function. edx will hold the pointer to the
 | 
			
		||||
;;; deflate_state structure during the function's setup (before
 | 
			
		||||
;;; entering the main loop.
 | 
			
		||||
 | 
			
		||||
; ms: parameter 1 in rcx (deflate_state* s), param 2 in edx -> r8 (cur match)
 | 
			
		||||
; mac: param 1 in rdi, param 2 rsi
 | 
			
		||||
; this clear high 32 bits of r8, which can be garbage in both r8 and rdx
 | 
			
		||||
*/
 | 
			
		||||
        mov [save_rbx],rbx
 | 
			
		||||
        mov [save_rbp],rbp
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        mov rcx,rdi
 | 
			
		||||
 | 
			
		||||
        mov r8d,esi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        mov [save_r12],r12
 | 
			
		||||
        mov [save_r13],r13
 | 
			
		||||
        mov [save_r14],r14
 | 
			
		||||
        mov [save_r15],r15
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//;;; uInt wmask = s->w_mask;
 | 
			
		||||
//;;; unsigned chain_length = s->max_chain_length;
 | 
			
		||||
//;;; if (s->prev_length >= s->good_match) {
 | 
			
		||||
//;;;     chain_length >>= 2;
 | 
			
		||||
//;;; }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        mov edi, prev_length
 | 
			
		||||
        mov esi, good_match
 | 
			
		||||
        mov eax, WMask
 | 
			
		||||
        mov ebx, max_chain_length
 | 
			
		||||
        cmp edi, esi
 | 
			
		||||
        jl  LastMatchGood
 | 
			
		||||
        shr ebx, 2
 | 
			
		||||
LastMatchGood:
 | 
			
		||||
 | 
			
		||||
//;;; chainlen is decremented once beforehand so that the function can
 | 
			
		||||
//;;; use the sign flag instead of the zero flag for the exit test.
 | 
			
		||||
//;;; It is then shifted into the high word, to make room for the wmask
 | 
			
		||||
//;;; value, which it will always accompany.
 | 
			
		||||
 | 
			
		||||
        dec ebx
 | 
			
		||||
        shl ebx, 16
 | 
			
		||||
        or  ebx, eax
 | 
			
		||||
 | 
			
		||||
//;;; on zlib only
 | 
			
		||||
//;;; if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        mov eax, nice_match
 | 
			
		||||
        mov [chainlenwmask], ebx
 | 
			
		||||
        mov r10d, Lookahead
 | 
			
		||||
        cmp r10d, eax
 | 
			
		||||
        cmovnl r10d, eax
 | 
			
		||||
        mov [nicematch],r10d
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//;;; register Bytef *scan = s->window + s->strstart;
 | 
			
		||||
        mov r10, window_ad
 | 
			
		||||
        mov ebp, strstart
 | 
			
		||||
        lea r13, [r10 + rbp]
 | 
			
		||||
 | 
			
		||||
//;;; Determine how many bytes the scan ptr is off from being
 | 
			
		||||
//;;; dword-aligned.
 | 
			
		||||
 | 
			
		||||
         mov r9,r13
 | 
			
		||||
         neg r13
 | 
			
		||||
         and r13,3
 | 
			
		||||
 | 
			
		||||
//;;; IPos limit = s->strstart > (IPos)MAX_DIST(s) ?
 | 
			
		||||
//;;;     s->strstart - (IPos)MAX_DIST(s) : NIL;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        mov eax, window_size
 | 
			
		||||
        sub eax, MIN_LOOKAHEAD
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        xor edi,edi
 | 
			
		||||
        sub ebp, eax
 | 
			
		||||
 | 
			
		||||
        mov r11d, prev_length
 | 
			
		||||
 | 
			
		||||
        cmovng ebp,edi
 | 
			
		||||
 | 
			
		||||
//;;; int best_len = s->prev_length;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//;;; Store the sum of s->window + best_len in esi locally, and in esi.
 | 
			
		||||
 | 
			
		||||
       lea  rsi,[r10+r11]
 | 
			
		||||
 | 
			
		||||
//;;; register ush scan_start = *(ushf*)scan;
 | 
			
		||||
//;;; register ush scan_end   = *(ushf*)(scan+best_len-1);
 | 
			
		||||
//;;; Posf *prev = s->prev;
 | 
			
		||||
 | 
			
		||||
        movzx r12d,word ptr [r9]
 | 
			
		||||
        movzx ebx, word ptr [r9 + r11 - 1]
 | 
			
		||||
 | 
			
		||||
        mov rdi, prev_ad
 | 
			
		||||
 | 
			
		||||
//;;; Jump into the main loop.
 | 
			
		||||
 | 
			
		||||
        mov edx, [chainlenwmask]
 | 
			
		||||
 | 
			
		||||
        cmp bx,word ptr [rsi + r8 - 1]
 | 
			
		||||
        jz  LookupLoopIsZero
 | 
			
		||||
				
 | 
			
		||||
						
 | 
			
		||||
						
 | 
			
		||||
LookupLoop1:
 | 
			
		||||
        and r8d, edx
 | 
			
		||||
 | 
			
		||||
        movzx   r8d, word ptr [rdi + r8*2]
 | 
			
		||||
        cmp r8d, ebp
 | 
			
		||||
        jbe LeaveNow
 | 
			
		||||
		
 | 
			
		||||
		
 | 
			
		||||
		
 | 
			
		||||
        sub edx, 0x00010000
 | 
			
		||||
		BEFORE_JMP
 | 
			
		||||
        js  LeaveNow
 | 
			
		||||
		AFTER_JMP
 | 
			
		||||
 | 
			
		||||
LoopEntry1:
 | 
			
		||||
        cmp bx,word ptr [rsi + r8 - 1]
 | 
			
		||||
		BEFORE_JMP
 | 
			
		||||
        jz  LookupLoopIsZero
 | 
			
		||||
		AFTER_JMP
 | 
			
		||||
 | 
			
		||||
LookupLoop2:
 | 
			
		||||
        and r8d, edx
 | 
			
		||||
 | 
			
		||||
        movzx   r8d, word ptr [rdi + r8*2]
 | 
			
		||||
        cmp r8d, ebp
 | 
			
		||||
		BEFORE_JMP
 | 
			
		||||
        jbe LeaveNow
 | 
			
		||||
		AFTER_JMP
 | 
			
		||||
        sub edx, 0x00010000
 | 
			
		||||
		BEFORE_JMP
 | 
			
		||||
        js  LeaveNow
 | 
			
		||||
		AFTER_JMP
 | 
			
		||||
 | 
			
		||||
LoopEntry2:
 | 
			
		||||
        cmp bx,word ptr [rsi + r8 - 1]
 | 
			
		||||
		BEFORE_JMP
 | 
			
		||||
        jz  LookupLoopIsZero
 | 
			
		||||
		AFTER_JMP
 | 
			
		||||
 | 
			
		||||
LookupLoop4:
 | 
			
		||||
        and r8d, edx
 | 
			
		||||
 | 
			
		||||
        movzx   r8d, word ptr [rdi + r8*2]
 | 
			
		||||
        cmp r8d, ebp
 | 
			
		||||
		BEFORE_JMP
 | 
			
		||||
        jbe LeaveNow
 | 
			
		||||
		AFTER_JMP
 | 
			
		||||
        sub edx, 0x00010000
 | 
			
		||||
		BEFORE_JMP
 | 
			
		||||
        js  LeaveNow
 | 
			
		||||
		AFTER_JMP
 | 
			
		||||
 | 
			
		||||
LoopEntry4:
 | 
			
		||||
 | 
			
		||||
        cmp bx,word ptr [rsi + r8 - 1]
 | 
			
		||||
		BEFORE_JMP
 | 
			
		||||
        jnz LookupLoop1
 | 
			
		||||
        jmp LookupLoopIsZero
 | 
			
		||||
		AFTER_JMP
 | 
			
		||||
/*
 | 
			
		||||
;;; do {
 | 
			
		||||
;;;     match = s->window + cur_match;
 | 
			
		||||
;;;     if (*(ushf*)(match+best_len-1) != scan_end ||
 | 
			
		||||
;;;         *(ushf*)match != scan_start) continue;
 | 
			
		||||
;;;     [...]
 | 
			
		||||
;;; } while ((cur_match = prev[cur_match & wmask]) > limit
 | 
			
		||||
;;;          && --chain_length != 0);
 | 
			
		||||
;;;
 | 
			
		||||
;;; Here is the inner loop of the function. The function will spend the
 | 
			
		||||
;;; majority of its time in this loop, and majority of that time will
 | 
			
		||||
;;; be spent in the first ten instructions.
 | 
			
		||||
;;;
 | 
			
		||||
;;; Within this loop:
 | 
			
		||||
;;; ebx = scanend
 | 
			
		||||
;;; r8d = curmatch
 | 
			
		||||
;;; edx = chainlenwmask - i.e., ((chainlen << 16) | wmask)
 | 
			
		||||
;;; esi = windowbestlen - i.e., (window + bestlen)
 | 
			
		||||
;;; edi = prev
 | 
			
		||||
;;; ebp = limit
 | 
			
		||||
*/
 | 
			
		||||
.balign 16
 | 
			
		||||
LookupLoop:
 | 
			
		||||
        and r8d, edx
 | 
			
		||||
 | 
			
		||||
        movzx   r8d, word ptr [rdi + r8*2]
 | 
			
		||||
        cmp r8d, ebp
 | 
			
		||||
		BEFORE_JMP
 | 
			
		||||
        jbe LeaveNow
 | 
			
		||||
		AFTER_JMP
 | 
			
		||||
        sub edx, 0x00010000
 | 
			
		||||
		BEFORE_JMP
 | 
			
		||||
        js  LeaveNow
 | 
			
		||||
		AFTER_JMP
 | 
			
		||||
 | 
			
		||||
LoopEntry:
 | 
			
		||||
 | 
			
		||||
        cmp bx,word ptr [rsi + r8 - 1]
 | 
			
		||||
		BEFORE_JMP
 | 
			
		||||
        jnz LookupLoop1
 | 
			
		||||
		AFTER_JMP
 | 
			
		||||
LookupLoopIsZero:
 | 
			
		||||
        cmp     r12w, word ptr [r10 + r8]
 | 
			
		||||
		BEFORE_JMP
 | 
			
		||||
        jnz LookupLoop1
 | 
			
		||||
		AFTER_JMP
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//;;; Store the current value of chainlen.
 | 
			
		||||
        mov [chainlenwmask], edx
 | 
			
		||||
/*
 | 
			
		||||
;;; Point edi to the string under scrutiny, and esi to the string we
 | 
			
		||||
;;; are hoping to match it up with. In actuality, esi and edi are
 | 
			
		||||
;;; both pointed (MAX_MATCH_8 - scanalign) bytes ahead, and edx is
 | 
			
		||||
;;; initialized to -(MAX_MATCH_8 - scanalign).
 | 
			
		||||
*/
 | 
			
		||||
        lea rsi,[r8+r10]
 | 
			
		||||
        mov rdx, 0xfffffffffffffef8 //; -(MAX_MATCH_8)
 | 
			
		||||
        lea rsi, [rsi + r13 + 0x0108] //;MAX_MATCH_8]
 | 
			
		||||
        lea rdi, [r9 + r13 + 0x0108] //;MAX_MATCH_8]
 | 
			
		||||
 | 
			
		||||
        prefetcht1 [rsi+rdx]
 | 
			
		||||
        prefetcht1 [rdi+rdx]
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
;;; Test the strings for equality, 8 bytes at a time. At the end,
 | 
			
		||||
;;; adjust rdx so that it is offset to the exact byte that mismatched.
 | 
			
		||||
;;;
 | 
			
		||||
;;; We already know at this point that the first three bytes of the
 | 
			
		||||
;;; strings match each other, and they can be safely passed over before
 | 
			
		||||
;;; starting the compare loop. So what this code does is skip over 0-3
 | 
			
		||||
;;; bytes, as much as necessary in order to dword-align the edi
 | 
			
		||||
;;; pointer. (rsi will still be misaligned three times out of four.)
 | 
			
		||||
;;;
 | 
			
		||||
;;; It should be confessed that this loop usually does not represent
 | 
			
		||||
;;; much of the total running time. Replacing it with a more
 | 
			
		||||
;;; straightforward "rep cmpsb" would not drastically degrade
 | 
			
		||||
;;; performance.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
LoopCmps:
 | 
			
		||||
        mov rax, [rsi + rdx]
 | 
			
		||||
        xor rax, [rdi + rdx]
 | 
			
		||||
        jnz LeaveLoopCmps
 | 
			
		||||
 | 
			
		||||
        mov rax, [rsi + rdx + 8]
 | 
			
		||||
        xor rax, [rdi + rdx + 8]
 | 
			
		||||
        jnz LeaveLoopCmps8
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        mov rax, [rsi + rdx + 8+8]
 | 
			
		||||
        xor rax, [rdi + rdx + 8+8]
 | 
			
		||||
        jnz LeaveLoopCmps16
 | 
			
		||||
 | 
			
		||||
        add rdx,8+8+8
 | 
			
		||||
 | 
			
		||||
		BEFORE_JMP
 | 
			
		||||
        jnz  LoopCmps
 | 
			
		||||
        jmp  LenMaximum
 | 
			
		||||
		AFTER_JMP
 | 
			
		||||
		
 | 
			
		||||
LeaveLoopCmps16: add rdx,8
 | 
			
		||||
LeaveLoopCmps8: add rdx,8
 | 
			
		||||
LeaveLoopCmps:
 | 
			
		||||
 | 
			
		||||
        test    eax, 0x0000FFFF
 | 
			
		||||
        jnz LenLower
 | 
			
		||||
 | 
			
		||||
        test eax,0xffffffff
 | 
			
		||||
 | 
			
		||||
        jnz LenLower32
 | 
			
		||||
 | 
			
		||||
        add rdx,4
 | 
			
		||||
        shr rax,32
 | 
			
		||||
        or ax,ax
 | 
			
		||||
		BEFORE_JMP
 | 
			
		||||
        jnz LenLower
 | 
			
		||||
		AFTER_JMP
 | 
			
		||||
 | 
			
		||||
LenLower32:
 | 
			
		||||
        shr eax,16
 | 
			
		||||
        add rdx,2
 | 
			
		||||
		
 | 
			
		||||
LenLower:		
 | 
			
		||||
        sub al, 1
 | 
			
		||||
        adc rdx, 0
 | 
			
		||||
//;;; Calculate the length of the match. If it is longer than MAX_MATCH,
 | 
			
		||||
//;;; then automatically accept it as the best possible match and leave.
 | 
			
		||||
 | 
			
		||||
        lea rax, [rdi + rdx]
 | 
			
		||||
        sub rax, r9
 | 
			
		||||
        cmp eax, MAX_MATCH
 | 
			
		||||
		BEFORE_JMP
 | 
			
		||||
        jge LenMaximum
 | 
			
		||||
		AFTER_JMP
 | 
			
		||||
/*
 | 
			
		||||
;;; If the length of the match is not longer than the best match we
 | 
			
		||||
;;; have so far, then forget it and return to the lookup loop.
 | 
			
		||||
;///////////////////////////////////
 | 
			
		||||
*/
 | 
			
		||||
        cmp eax, r11d
 | 
			
		||||
        jg  LongerMatch
 | 
			
		||||
 | 
			
		||||
        lea rsi,[r10+r11]
 | 
			
		||||
 | 
			
		||||
        mov rdi, prev_ad
 | 
			
		||||
        mov edx, [chainlenwmask]
 | 
			
		||||
		BEFORE_JMP
 | 
			
		||||
        jmp LookupLoop
 | 
			
		||||
		AFTER_JMP
 | 
			
		||||
/*
 | 
			
		||||
;;;         s->match_start = cur_match;
 | 
			
		||||
;;;         best_len = len;
 | 
			
		||||
;;;         if (len >= nice_match) break;
 | 
			
		||||
;;;         scan_end = *(ushf*)(scan+best_len-1);
 | 
			
		||||
*/
 | 
			
		||||
LongerMatch:
 | 
			
		||||
        mov r11d, eax
 | 
			
		||||
        mov match_start, r8d
 | 
			
		||||
        cmp eax, [nicematch]
 | 
			
		||||
		BEFORE_JMP
 | 
			
		||||
        jge LeaveNow
 | 
			
		||||
		AFTER_JMP
 | 
			
		||||
 | 
			
		||||
        lea rsi,[r10+rax]
 | 
			
		||||
 | 
			
		||||
        movzx   ebx, word ptr [r9 + rax - 1]
 | 
			
		||||
        mov rdi, prev_ad
 | 
			
		||||
        mov edx, [chainlenwmask]
 | 
			
		||||
		BEFORE_JMP
 | 
			
		||||
        jmp LookupLoop
 | 
			
		||||
		AFTER_JMP
 | 
			
		||||
 | 
			
		||||
//;;; Accept the current string, with the maximum possible length.
 | 
			
		||||
 | 
			
		||||
LenMaximum:
 | 
			
		||||
        mov r11d,MAX_MATCH
 | 
			
		||||
        mov match_start, r8d
 | 
			
		||||
 | 
			
		||||
//;;; if ((uInt)best_len <= s->lookahead) return (uInt)best_len;
 | 
			
		||||
//;;; return s->lookahead;
 | 
			
		||||
 | 
			
		||||
LeaveNow:
 | 
			
		||||
        mov eax, Lookahead
 | 
			
		||||
        cmp r11d, eax
 | 
			
		||||
        cmovng eax, r11d
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//;;; Restore the stack and return from whence we came.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//        mov rsi,[save_rsi]
 | 
			
		||||
//        mov rdi,[save_rdi]
 | 
			
		||||
        mov rbx,[save_rbx]
 | 
			
		||||
        mov rbp,[save_rbp]
 | 
			
		||||
        mov r12,[save_r12]
 | 
			
		||||
        mov r13,[save_r13]
 | 
			
		||||
        mov r14,[save_r14]
 | 
			
		||||
        mov r15,[save_r15]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        ret 0
 | 
			
		||||
//; please don't remove this string !
 | 
			
		||||
//; Your can freely use gvmat64 in any free or commercial app
 | 
			
		||||
//; but it is far better don't remove the string in the binary!
 | 
			
		||||
 //   db     0dh,0ah,"asm686 with masm, optimised assembly code from Brian Raiter, written 1998, converted to amd 64 by Gilles Vollant 2005",0dh,0ah,0
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
match_init:
 | 
			
		||||
  ret 0
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -222,14 +222,13 @@ out_func out;
 | 
			
		||||
void FAR *out_desc;
 | 
			
		||||
{
 | 
			
		||||
    struct inflate_state FAR *state;
 | 
			
		||||
    unsigned char FAR *next;    /* next input */
 | 
			
		||||
    z_const unsigned char FAR *next;    /* next input */
 | 
			
		||||
    unsigned char FAR *put;     /* next output */
 | 
			
		||||
    unsigned have;              /* available input */
 | 
			
		||||
    unsigned long left;         /* available output */
 | 
			
		||||
    inflate_mode mode;          /* current inflate mode */
 | 
			
		||||
    int lastblock;              /* true if processing last block */
 | 
			
		||||
    int wrap;                   /* true if the window has wrapped */
 | 
			
		||||
    unsigned long write;        /* window write index */
 | 
			
		||||
    unsigned char FAR *window;  /* allocated sliding window, if needed */
 | 
			
		||||
    unsigned long hold;         /* bit buffer */
 | 
			
		||||
    unsigned bits;              /* bits in bit buffer */
 | 
			
		||||
@@ -259,7 +258,6 @@ void FAR *out_desc;
 | 
			
		||||
    strm->msg = Z_NULL;
 | 
			
		||||
    mode = TYPE;
 | 
			
		||||
    lastblock = 0;
 | 
			
		||||
    write = 0;
 | 
			
		||||
    wrap = 0;
 | 
			
		||||
    window = state->window;
 | 
			
		||||
    next = strm->next_in;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
/* inftree9.c -- generate Huffman trees for efficient decoding
 | 
			
		||||
 * Copyright (C) 1995-2010 Mark Adler
 | 
			
		||||
 * Copyright (C) 1995-2013 Mark Adler
 | 
			
		||||
 * For conditions of distribution and use, see copyright notice in zlib.h
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
#define MAXBITS 15
 | 
			
		||||
 | 
			
		||||
const char inflate9_copyright[] =
 | 
			
		||||
   " inflate9 1.2.3.9 Copyright 1995-2010 Mark Adler ";
 | 
			
		||||
   " inflate9 1.2.8 Copyright 1995-2013 Mark Adler ";
 | 
			
		||||
/*
 | 
			
		||||
  If you use the zlib library in a product, an acknowledgment is welcome
 | 
			
		||||
  in the documentation of your product. If for some reason you cannot
 | 
			
		||||
@@ -64,7 +64,7 @@ unsigned short FAR *work;
 | 
			
		||||
    static const unsigned short lext[31] = { /* Length codes 257..285 extra */
 | 
			
		||||
        128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129,
 | 
			
		||||
        130, 130, 130, 130, 131, 131, 131, 131, 132, 132, 132, 132,
 | 
			
		||||
        133, 133, 133, 133, 144, 193, 201};
 | 
			
		||||
        133, 133, 133, 133, 144, 72, 78};
 | 
			
		||||
    static const unsigned short dbase[32] = { /* Distance codes 0..31 base */
 | 
			
		||||
        1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49,
 | 
			
		||||
        65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073,
 | 
			
		||||
 
 | 
			
		||||
@@ -113,7 +113,7 @@ unsigned start;         /* inflate()'s starting value for strm->avail_out */
 | 
			
		||||
    ar.beg = ar.out - (start - strm->avail_out);
 | 
			
		||||
    ar.end = ar.out + (strm->avail_out - PAD_AVAIL_OUT);
 | 
			
		||||
    ar.wsize = state->wsize;
 | 
			
		||||
    ar.write = state->write;
 | 
			
		||||
    ar.write = state->wnext;
 | 
			
		||||
    ar.window = state->window;
 | 
			
		||||
    ar.hold = state->hold;
 | 
			
		||||
    ar.bits = state->bits;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,413 +0,0 @@
 | 
			
		||||
 | 
			
		||||
; match.asm -- Pentium-Pro optimized version of longest_match()
 | 
			
		||||
;
 | 
			
		||||
; Updated for zlib 1.1.3 and converted to MASM 6.1x
 | 
			
		||||
; Copyright (C) 2000 Dan Higdon <hdan@kinesoft.com>
 | 
			
		||||
;                    and Chuck Walbourn <chuckw@kinesoft.com>
 | 
			
		||||
; Corrections by Cosmin Truta <cosmint@cs.ubbcluj.ro>
 | 
			
		||||
;
 | 
			
		||||
; This is free software; you can redistribute it and/or modify it
 | 
			
		||||
; under the terms of the GNU General Public License.
 | 
			
		||||
 | 
			
		||||
; Based on match.S
 | 
			
		||||
; Written for zlib 1.1.2
 | 
			
		||||
; Copyright (C) 1998 Brian Raiter <breadbox@muppetlabs.com>
 | 
			
		||||
;
 | 
			
		||||
; Modified by Gilles Vollant (2005) for add gzhead and gzindex
 | 
			
		||||
 | 
			
		||||
	.686P
 | 
			
		||||
	.MODEL	FLAT
 | 
			
		||||
 | 
			
		||||
;===========================================================================
 | 
			
		||||
; EQUATES
 | 
			
		||||
;===========================================================================
 | 
			
		||||
 | 
			
		||||
MAX_MATCH	EQU 258
 | 
			
		||||
MIN_MATCH	EQU 3
 | 
			
		||||
MIN_LOOKAHEAD	EQU (MAX_MATCH + MIN_MATCH + 1)
 | 
			
		||||
MAX_MATCH_8	EQU ((MAX_MATCH + 7) AND (NOT 7))
 | 
			
		||||
 | 
			
		||||
;===========================================================================
 | 
			
		||||
; STRUCTURES
 | 
			
		||||
;===========================================================================
 | 
			
		||||
 | 
			
		||||
; This STRUCT assumes a 4-byte alignment
 | 
			
		||||
 | 
			
		||||
DEFLATE_STATE	STRUCT
 | 
			
		||||
ds_strm			dd ?
 | 
			
		||||
ds_status		dd ?
 | 
			
		||||
ds_pending_buf		dd ?
 | 
			
		||||
ds_pending_buf_size	dd ?
 | 
			
		||||
ds_pending_out		dd ?
 | 
			
		||||
ds_pending		dd ?
 | 
			
		||||
ds_wrap			dd ?
 | 
			
		||||
; gzhead and gzindex are added in zlib 1.2.2.2 (see deflate.h)
 | 
			
		||||
ds_gzhead               dd ?
 | 
			
		||||
ds_gzindex              dd ?
 | 
			
		||||
ds_data_type		db ?
 | 
			
		||||
ds_method		db ?
 | 
			
		||||
			db ?	; padding
 | 
			
		||||
			db ?	; padding
 | 
			
		||||
ds_last_flush		dd ?
 | 
			
		||||
ds_w_size		dd ?	; used
 | 
			
		||||
ds_w_bits		dd ?
 | 
			
		||||
ds_w_mask		dd ?	; used
 | 
			
		||||
ds_window		dd ?	; used
 | 
			
		||||
ds_window_size		dd ?
 | 
			
		||||
ds_prev			dd ?	; used
 | 
			
		||||
ds_head			dd ?
 | 
			
		||||
ds_ins_h		dd ?
 | 
			
		||||
ds_hash_size		dd ?
 | 
			
		||||
ds_hash_bits		dd ?
 | 
			
		||||
ds_hash_mask		dd ?
 | 
			
		||||
ds_hash_shift		dd ?
 | 
			
		||||
ds_block_start		dd ?
 | 
			
		||||
ds_match_length		dd ?	; used
 | 
			
		||||
ds_prev_match		dd ?	; used
 | 
			
		||||
ds_match_available	dd ?
 | 
			
		||||
ds_strstart		dd ?	; used
 | 
			
		||||
ds_match_start		dd ?	; used
 | 
			
		||||
ds_lookahead		dd ?	; used
 | 
			
		||||
ds_prev_length		dd ?	; used
 | 
			
		||||
ds_max_chain_length	dd ?	; used
 | 
			
		||||
ds_max_laxy_match	dd ?
 | 
			
		||||
ds_level		dd ?
 | 
			
		||||
ds_strategy		dd ?
 | 
			
		||||
ds_good_match		dd ?	; used
 | 
			
		||||
ds_nice_match		dd ?	; used
 | 
			
		||||
 | 
			
		||||
; Don't need anymore of the struct for match
 | 
			
		||||
DEFLATE_STATE	ENDS
 | 
			
		||||
 | 
			
		||||
;===========================================================================
 | 
			
		||||
; CODE
 | 
			
		||||
;===========================================================================
 | 
			
		||||
_TEXT	SEGMENT
 | 
			
		||||
 | 
			
		||||
;---------------------------------------------------------------------------
 | 
			
		||||
; match_init
 | 
			
		||||
;---------------------------------------------------------------------------
 | 
			
		||||
	ALIGN	4
 | 
			
		||||
PUBLIC	_match_init
 | 
			
		||||
_match_init	PROC
 | 
			
		||||
	; no initialization needed
 | 
			
		||||
	ret
 | 
			
		||||
_match_init	ENDP
 | 
			
		||||
 | 
			
		||||
;---------------------------------------------------------------------------
 | 
			
		||||
; uInt longest_match(deflate_state *deflatestate, IPos curmatch)
 | 
			
		||||
;---------------------------------------------------------------------------
 | 
			
		||||
	ALIGN	4
 | 
			
		||||
 | 
			
		||||
PUBLIC	_longest_match
 | 
			
		||||
_longest_match	PROC
 | 
			
		||||
 | 
			
		||||
; Since this code uses EBP for a scratch register, the stack frame must
 | 
			
		||||
; be manually constructed and referenced relative to the ESP register.
 | 
			
		||||
 | 
			
		||||
; Stack image
 | 
			
		||||
; Variables
 | 
			
		||||
chainlenwmask	=  0	; high word: current chain len
 | 
			
		||||
			; low word: s->wmask
 | 
			
		||||
window		=  4	; local copy of s->window
 | 
			
		||||
windowbestlen	=  8	; s->window + bestlen
 | 
			
		||||
scanend		= 12	; last two bytes of string
 | 
			
		||||
scanstart	= 16	; first two bytes of string
 | 
			
		||||
scanalign	= 20	; dword-misalignment of string
 | 
			
		||||
nicematch	= 24	; a good enough match size
 | 
			
		||||
bestlen		= 28	; size of best match so far
 | 
			
		||||
scan		= 32	; ptr to string wanting match
 | 
			
		||||
varsize		= 36	; number of bytes (also offset to last saved register)
 | 
			
		||||
 | 
			
		||||
; Saved Registers (actually pushed into place)
 | 
			
		||||
ebx_save	= 36
 | 
			
		||||
edi_save	= 40
 | 
			
		||||
esi_save	= 44
 | 
			
		||||
ebp_save	= 48
 | 
			
		||||
 | 
			
		||||
; Parameters
 | 
			
		||||
retaddr		= 52
 | 
			
		||||
deflatestate	= 56
 | 
			
		||||
curmatch	= 60
 | 
			
		||||
 | 
			
		||||
; Save registers that the compiler may be using
 | 
			
		||||
	push	ebp
 | 
			
		||||
	push	edi
 | 
			
		||||
	push	esi
 | 
			
		||||
	push	ebx
 | 
			
		||||
 | 
			
		||||
; Allocate local variable space
 | 
			
		||||
	sub	esp,varsize
 | 
			
		||||
 | 
			
		||||
; Retrieve the function arguments. ecx will hold cur_match
 | 
			
		||||
; throughout the entire function. edx will hold the pointer to the
 | 
			
		||||
; deflate_state structure during the function's setup (before
 | 
			
		||||
; entering the main loop).
 | 
			
		||||
 | 
			
		||||
	mov	edx, [esp+deflatestate]
 | 
			
		||||
ASSUME	edx:PTR DEFLATE_STATE
 | 
			
		||||
 | 
			
		||||
	mov	ecx, [esp+curmatch]
 | 
			
		||||
 | 
			
		||||
; uInt wmask = s->w_mask;
 | 
			
		||||
; unsigned chain_length = s->max_chain_length;
 | 
			
		||||
; if (s->prev_length >= s->good_match) {
 | 
			
		||||
;     chain_length >>= 2;
 | 
			
		||||
; }
 | 
			
		||||
 | 
			
		||||
	mov	eax, [edx].ds_prev_length
 | 
			
		||||
	mov	ebx, [edx].ds_good_match
 | 
			
		||||
	cmp	eax, ebx
 | 
			
		||||
	mov	eax, [edx].ds_w_mask
 | 
			
		||||
	mov	ebx, [edx].ds_max_chain_length
 | 
			
		||||
	jl	SHORT LastMatchGood
 | 
			
		||||
	shr	ebx, 2
 | 
			
		||||
LastMatchGood:
 | 
			
		||||
 | 
			
		||||
; chainlen is decremented once beforehand so that the function can
 | 
			
		||||
; use the sign flag instead of the zero flag for the exit test.
 | 
			
		||||
; It is then shifted into the high word, to make room for the wmask
 | 
			
		||||
; value, which it will always accompany.
 | 
			
		||||
 | 
			
		||||
	dec	ebx
 | 
			
		||||
	shl	ebx, 16
 | 
			
		||||
	or	ebx, eax
 | 
			
		||||
	mov	[esp+chainlenwmask], ebx
 | 
			
		||||
 | 
			
		||||
; if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead;
 | 
			
		||||
 | 
			
		||||
	mov	eax, [edx].ds_nice_match
 | 
			
		||||
	mov	ebx, [edx].ds_lookahead
 | 
			
		||||
	cmp	ebx, eax
 | 
			
		||||
	jl	SHORT LookaheadLess
 | 
			
		||||
	mov	ebx, eax
 | 
			
		||||
LookaheadLess:
 | 
			
		||||
	mov	[esp+nicematch], ebx
 | 
			
		||||
 | 
			
		||||
;/* register Bytef *scan = s->window + s->strstart;                     */
 | 
			
		||||
 | 
			
		||||
	mov	esi, [edx].ds_window
 | 
			
		||||
	mov	[esp+window], esi
 | 
			
		||||
	mov	ebp, [edx].ds_strstart
 | 
			
		||||
	lea	edi, [esi+ebp]
 | 
			
		||||
	mov	[esp+scan],edi
 | 
			
		||||
 | 
			
		||||
;/* Determine how many bytes the scan ptr is off from being             */
 | 
			
		||||
;/* dword-aligned.                                                      */
 | 
			
		||||
 | 
			
		||||
	mov	eax, edi
 | 
			
		||||
	neg	eax
 | 
			
		||||
	and	eax, 3
 | 
			
		||||
	mov	[esp+scanalign], eax
 | 
			
		||||
 | 
			
		||||
;/* IPos limit = s->strstart > (IPos)MAX_DIST(s) ?                      */
 | 
			
		||||
;/*     s->strstart - (IPos)MAX_DIST(s) : NIL;                          */
 | 
			
		||||
 | 
			
		||||
	mov	eax, [edx].ds_w_size
 | 
			
		||||
	sub	eax, MIN_LOOKAHEAD
 | 
			
		||||
	sub	ebp, eax
 | 
			
		||||
	jg	SHORT LimitPositive
 | 
			
		||||
	xor	ebp, ebp
 | 
			
		||||
LimitPositive:
 | 
			
		||||
 | 
			
		||||
;/* int best_len = s->prev_length;                                      */
 | 
			
		||||
 | 
			
		||||
	mov	eax, [edx].ds_prev_length
 | 
			
		||||
	mov	[esp+bestlen], eax
 | 
			
		||||
 | 
			
		||||
;/* Store the sum of s->window + best_len in %esi locally, and in %esi. */
 | 
			
		||||
 | 
			
		||||
	add	esi, eax
 | 
			
		||||
	mov	[esp+windowbestlen], esi
 | 
			
		||||
 | 
			
		||||
;/* register ush scan_start = *(ushf*)scan;                             */
 | 
			
		||||
;/* register ush scan_end   = *(ushf*)(scan+best_len-1);                */
 | 
			
		||||
;/* Posf *prev = s->prev;                                               */
 | 
			
		||||
 | 
			
		||||
	movzx	ebx, WORD PTR[edi]
 | 
			
		||||
	mov	[esp+scanstart], ebx
 | 
			
		||||
	movzx	ebx, WORD PTR[eax+edi-1]
 | 
			
		||||
	mov	[esp+scanend], ebx
 | 
			
		||||
	mov	edi, [edx].ds_prev
 | 
			
		||||
 | 
			
		||||
;/* Jump into the main loop.                                            */
 | 
			
		||||
 | 
			
		||||
	mov	edx, [esp+chainlenwmask]
 | 
			
		||||
	jmp	SHORT LoopEntry
 | 
			
		||||
 | 
			
		||||
;/* do {
 | 
			
		||||
; *     match = s->window + cur_match;
 | 
			
		||||
; *     if (*(ushf*)(match+best_len-1) != scan_end ||
 | 
			
		||||
; *         *(ushf*)match != scan_start) continue;
 | 
			
		||||
; *     [...]
 | 
			
		||||
; * } while ((cur_match = prev[cur_match & wmask]) > limit
 | 
			
		||||
; *          && --chain_length != 0);
 | 
			
		||||
; *
 | 
			
		||||
; * Here is the inner loop of the function. The function will spend the
 | 
			
		||||
; * majority of its time in this loop, and majority of that time will
 | 
			
		||||
; * be spent in the first ten instructions.
 | 
			
		||||
; *
 | 
			
		||||
; * Within this loop:
 | 
			
		||||
; * %ebx = scanend
 | 
			
		||||
; * %ecx = curmatch
 | 
			
		||||
; * %edx = chainlenwmask - i.e., ((chainlen << 16) | wmask)
 | 
			
		||||
; * %esi = windowbestlen - i.e., (window + bestlen)
 | 
			
		||||
; * %edi = prev
 | 
			
		||||
; * %ebp = limit
 | 
			
		||||
; */
 | 
			
		||||
 | 
			
		||||
	ALIGN	4
 | 
			
		||||
LookupLoop:
 | 
			
		||||
	and	ecx, edx
 | 
			
		||||
	movzx	ecx, WORD PTR[edi+ecx*2]
 | 
			
		||||
	cmp	ecx, ebp
 | 
			
		||||
	jbe	LeaveNow
 | 
			
		||||
	sub	edx, 000010000H
 | 
			
		||||
	js	LeaveNow
 | 
			
		||||
 | 
			
		||||
LoopEntry:
 | 
			
		||||
	movzx	eax, WORD PTR[esi+ecx-1]
 | 
			
		||||
	cmp	eax, ebx
 | 
			
		||||
	jnz	SHORT LookupLoop
 | 
			
		||||
 | 
			
		||||
	mov	eax, [esp+window]
 | 
			
		||||
	movzx	eax, WORD PTR[eax+ecx]
 | 
			
		||||
	cmp	eax, [esp+scanstart]
 | 
			
		||||
	jnz	SHORT LookupLoop
 | 
			
		||||
 | 
			
		||||
;/* Store the current value of chainlen.                                */
 | 
			
		||||
 | 
			
		||||
	mov	[esp+chainlenwmask], edx
 | 
			
		||||
 | 
			
		||||
;/* Point %edi to the string under scrutiny, and %esi to the string we  */
 | 
			
		||||
;/* are hoping to match it up with. In actuality, %esi and %edi are     */
 | 
			
		||||
;/* both pointed (MAX_MATCH_8 - scanalign) bytes ahead, and %edx is     */
 | 
			
		||||
;/* initialized to -(MAX_MATCH_8 - scanalign).                          */
 | 
			
		||||
 | 
			
		||||
	mov	esi, [esp+window]
 | 
			
		||||
	mov	edi, [esp+scan]
 | 
			
		||||
	add	esi, ecx
 | 
			
		||||
	mov	eax, [esp+scanalign]
 | 
			
		||||
	mov	edx, -MAX_MATCH_8
 | 
			
		||||
	lea	edi, [edi+eax+MAX_MATCH_8]
 | 
			
		||||
	lea	esi, [esi+eax+MAX_MATCH_8]
 | 
			
		||||
 | 
			
		||||
;/* Test the strings for equality, 8 bytes at a time. At the end,
 | 
			
		||||
; * adjust %edx so that it is offset to the exact byte that mismatched.
 | 
			
		||||
; *
 | 
			
		||||
; * We already know at this point that the first three bytes of the
 | 
			
		||||
; * strings match each other, and they can be safely passed over before
 | 
			
		||||
; * starting the compare loop. So what this code does is skip over 0-3
 | 
			
		||||
; * bytes, as much as necessary in order to dword-align the %edi
 | 
			
		||||
; * pointer. (%esi will still be misaligned three times out of four.)
 | 
			
		||||
; *
 | 
			
		||||
; * It should be confessed that this loop usually does not represent
 | 
			
		||||
; * much of the total running time. Replacing it with a more
 | 
			
		||||
; * straightforward "rep cmpsb" would not drastically degrade
 | 
			
		||||
; * performance.
 | 
			
		||||
; */
 | 
			
		||||
 | 
			
		||||
LoopCmps:
 | 
			
		||||
	mov	eax, DWORD PTR[esi+edx]
 | 
			
		||||
	xor	eax, DWORD PTR[edi+edx]
 | 
			
		||||
	jnz	SHORT LeaveLoopCmps
 | 
			
		||||
 | 
			
		||||
	mov	eax, DWORD PTR[esi+edx+4]
 | 
			
		||||
	xor	eax, DWORD PTR[edi+edx+4]
 | 
			
		||||
	jnz	SHORT LeaveLoopCmps4
 | 
			
		||||
 | 
			
		||||
	add	edx, 8
 | 
			
		||||
	jnz	SHORT LoopCmps
 | 
			
		||||
	jmp	LenMaximum
 | 
			
		||||
	ALIGN	4
 | 
			
		||||
 | 
			
		||||
LeaveLoopCmps4:
 | 
			
		||||
	add	edx, 4
 | 
			
		||||
 | 
			
		||||
LeaveLoopCmps:
 | 
			
		||||
	test	eax, 00000FFFFH
 | 
			
		||||
	jnz	SHORT LenLower
 | 
			
		||||
 | 
			
		||||
	add	edx, 2
 | 
			
		||||
	shr	eax, 16
 | 
			
		||||
 | 
			
		||||
LenLower:
 | 
			
		||||
	sub	al, 1
 | 
			
		||||
	adc	edx, 0
 | 
			
		||||
 | 
			
		||||
;/* Calculate the length of the match. If it is longer than MAX_MATCH,  */
 | 
			
		||||
;/* then automatically accept it as the best possible match and leave.  */
 | 
			
		||||
 | 
			
		||||
	lea	eax, [edi+edx]
 | 
			
		||||
	mov	edi, [esp+scan]
 | 
			
		||||
	sub	eax, edi
 | 
			
		||||
	cmp	eax, MAX_MATCH
 | 
			
		||||
	jge	SHORT LenMaximum
 | 
			
		||||
 | 
			
		||||
;/* If the length of the match is not longer than the best match we     */
 | 
			
		||||
;/* have so far, then forget it and return to the lookup loop.          */
 | 
			
		||||
 | 
			
		||||
	mov	edx, [esp+deflatestate]
 | 
			
		||||
	mov	ebx, [esp+bestlen]
 | 
			
		||||
	cmp	eax, ebx
 | 
			
		||||
	jg	SHORT LongerMatch
 | 
			
		||||
	mov	esi, [esp+windowbestlen]
 | 
			
		||||
	mov	edi, [edx].ds_prev
 | 
			
		||||
	mov	ebx, [esp+scanend]
 | 
			
		||||
	mov	edx, [esp+chainlenwmask]
 | 
			
		||||
	jmp	LookupLoop
 | 
			
		||||
	ALIGN	4
 | 
			
		||||
 | 
			
		||||
;/*         s->match_start = cur_match;                                 */
 | 
			
		||||
;/*         best_len = len;                                             */
 | 
			
		||||
;/*         if (len >= nice_match) break;                               */
 | 
			
		||||
;/*         scan_end = *(ushf*)(scan+best_len-1);                       */
 | 
			
		||||
 | 
			
		||||
LongerMatch:
 | 
			
		||||
	mov	ebx, [esp+nicematch]
 | 
			
		||||
	mov	[esp+bestlen], eax
 | 
			
		||||
	mov	[edx].ds_match_start, ecx
 | 
			
		||||
	cmp	eax, ebx
 | 
			
		||||
	jge	SHORT LeaveNow
 | 
			
		||||
	mov	esi, [esp+window]
 | 
			
		||||
	add	esi, eax
 | 
			
		||||
	mov	[esp+windowbestlen], esi
 | 
			
		||||
	movzx	ebx, WORD PTR[edi+eax-1]
 | 
			
		||||
	mov	edi, [edx].ds_prev
 | 
			
		||||
	mov	[esp+scanend], ebx
 | 
			
		||||
	mov	edx, [esp+chainlenwmask]
 | 
			
		||||
	jmp	LookupLoop
 | 
			
		||||
	ALIGN	4
 | 
			
		||||
 | 
			
		||||
;/* Accept the current string, with the maximum possible length.        */
 | 
			
		||||
 | 
			
		||||
LenMaximum:
 | 
			
		||||
	mov	edx, [esp+deflatestate]
 | 
			
		||||
	mov	DWORD PTR[esp+bestlen], MAX_MATCH
 | 
			
		||||
	mov	[edx].ds_match_start, ecx
 | 
			
		||||
 | 
			
		||||
;/* if ((uInt)best_len <= s->lookahead) return (uInt)best_len;          */
 | 
			
		||||
;/* return s->lookahead;                                                */
 | 
			
		||||
 | 
			
		||||
LeaveNow:
 | 
			
		||||
	mov	edx, [esp+deflatestate]
 | 
			
		||||
	mov	ebx, [esp+bestlen]
 | 
			
		||||
	mov	eax, [edx].ds_lookahead
 | 
			
		||||
	cmp	ebx, eax
 | 
			
		||||
	jg	SHORT LookaheadRet
 | 
			
		||||
	mov	eax, ebx
 | 
			
		||||
LookaheadRet:
 | 
			
		||||
 | 
			
		||||
; Restore the stack and return from whence we came.
 | 
			
		||||
 | 
			
		||||
	add	esp, varsize
 | 
			
		||||
	pop	ebx
 | 
			
		||||
	pop	esi
 | 
			
		||||
	pop	edi
 | 
			
		||||
	pop	ebp
 | 
			
		||||
	ret
 | 
			
		||||
 | 
			
		||||
_longest_match	ENDP
 | 
			
		||||
 | 
			
		||||
_TEXT	ENDS
 | 
			
		||||
END
 | 
			
		||||
@@ -2,8 +2,10 @@
 | 
			
		||||
;    deflate_state *s,
 | 
			
		||||
;    IPos cur_match);                             /* current match */
 | 
			
		||||
 | 
			
		||||
; gvmat64.asm -- Asm portion of the optimized longest_match for 32 bits x86
 | 
			
		||||
; Copyright (C) 1995-2005 Jean-loup Gailly, Brian Raiter and Gilles Vollant.
 | 
			
		||||
; gvmat64.asm -- Asm portion of the optimized longest_match for 32 bits x86_64
 | 
			
		||||
;  (AMD64 on Athlon 64, Opteron, Phenom
 | 
			
		||||
;     and Intel EM64T on Pentium 4 with EM64T, Pentium D, Core 2 Duo, Core I5/I7)
 | 
			
		||||
; Copyright (C) 1995-2010 Jean-loup Gailly, Brian Raiter and Gilles Vollant.
 | 
			
		||||
;
 | 
			
		||||
; File written by Gilles Vollant, by converting to assembly the longest_match
 | 
			
		||||
;  from Jean-loup Gailly in deflate.c of zLib and infoZip zip.
 | 
			
		||||
@@ -11,6 +13,24 @@
 | 
			
		||||
;  and by taking inspiration on asm686 with masm, optimised assembly code
 | 
			
		||||
;        from Brian Raiter, written 1998
 | 
			
		||||
;
 | 
			
		||||
;  This software is provided 'as-is', without any express or implied
 | 
			
		||||
;  warranty.  In no event will the authors be held liable for any damages
 | 
			
		||||
;  arising from the use of this software.
 | 
			
		||||
;
 | 
			
		||||
;  Permission is granted to anyone to use this software for any purpose,
 | 
			
		||||
;  including commercial applications, and to alter it and redistribute it
 | 
			
		||||
;  freely, subject to the following restrictions:
 | 
			
		||||
;
 | 
			
		||||
;  1. The origin of this software must not be misrepresented; you must not
 | 
			
		||||
;     claim that you wrote the original software. If you use this software
 | 
			
		||||
;     in a product, an acknowledgment in the product documentation would be
 | 
			
		||||
;     appreciated but is not required.
 | 
			
		||||
;  2. Altered source versions must be plainly marked as such, and must not be
 | 
			
		||||
;     misrepresented as being the original software
 | 
			
		||||
;  3. This notice may not be removed or altered from any source distribution.
 | 
			
		||||
;
 | 
			
		||||
;
 | 
			
		||||
;
 | 
			
		||||
;         http://www.zlib.net
 | 
			
		||||
;         http://www.winimage.com/zLibDll
 | 
			
		||||
;         http://www.muppetlabs.com/~breadbox/software/assembly.html
 | 
			
		||||
@@ -26,10 +46,10 @@
 | 
			
		||||
;
 | 
			
		||||
; This file compile with Microsoft Macro Assembler (x64) for AMD64
 | 
			
		||||
;
 | 
			
		||||
;   ml64.exe is given with Visual Studio 2005 and Windows 2003 server DDK
 | 
			
		||||
;   ml64.exe is given with Visual Studio 2005/2008/2010 and Windows WDK
 | 
			
		||||
;
 | 
			
		||||
;   (you can get Windows 2003 server DDK with ml64 and cl for AMD64 from
 | 
			
		||||
;      http://www.microsoft.com/whdc/devtools/ddk/default.mspx for low price)
 | 
			
		||||
;   (you can get Windows WDK with ml64 for AMD64 from
 | 
			
		||||
;      http://www.microsoft.com/whdc/Devtools/wdk/default.mspx for low price)
 | 
			
		||||
;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -71,6 +91,25 @@ save_r13        equ  rsp + 64 - LocalVarsSize
 | 
			
		||||
;save_r15        equ  rsp + 80 - LocalVarsSize
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
; summary of register usage
 | 
			
		||||
; scanend     ebx
 | 
			
		||||
; scanendw    bx
 | 
			
		||||
; chainlenwmask   edx
 | 
			
		||||
; curmatch    rsi
 | 
			
		||||
; curmatchd   esi
 | 
			
		||||
; windowbestlen   r8
 | 
			
		||||
; scanalign   r9
 | 
			
		||||
; scanalignd  r9d
 | 
			
		||||
; window      r10
 | 
			
		||||
; bestlen     r11
 | 
			
		||||
; bestlend    r11d
 | 
			
		||||
; scanstart   r12d
 | 
			
		||||
; scanstartw  r12w
 | 
			
		||||
; scan        r13
 | 
			
		||||
; nicematch   r14d
 | 
			
		||||
; limit       r15
 | 
			
		||||
; limitd      r15d
 | 
			
		||||
; prev        rcx
 | 
			
		||||
 | 
			
		||||
;  all the +4 offsets are due to the addition of pending_buf_size (in zlib
 | 
			
		||||
;  in the deflate_state structure since the asm code was first written
 | 
			
		||||
 
 | 
			
		||||
@@ -130,7 +130,7 @@ unsigned start;         /* inflate()'s starting value for strm->avail_out */
 | 
			
		||||
    ar.beg = ar.out - (start - strm->avail_out);
 | 
			
		||||
    ar.end = ar.out + (strm->avail_out - PAD_AVAIL_OUT);
 | 
			
		||||
    ar.wsize = state->wsize;
 | 
			
		||||
    ar.write = state->write;
 | 
			
		||||
    ar.write = state->wnext;
 | 
			
		||||
    ar.window = state->window;
 | 
			
		||||
    ar.hold = state->hold;
 | 
			
		||||
    ar.bits = state->bits;
 | 
			
		||||
 
 | 
			
		||||
@@ -9,11 +9,15 @@
 | 
			
		||||
;   ml64.exe /Flinffasx64 /c /Zi inffasx64.asm
 | 
			
		||||
;   with Microsoft Macro Assembler (x64) for AMD64
 | 
			
		||||
;
 | 
			
		||||
;   ml64.exe is given with Visual Studio 2005, Windows 2003 server DDK
 | 
			
		||||
 | 
			
		||||
; This file compile with Microsoft Macro Assembler (x64) for AMD64
 | 
			
		||||
;
 | 
			
		||||
;   (you can get Windows 2003 server DDK with ml64 and cl.exe for AMD64 from
 | 
			
		||||
;      http://www.microsoft.com/whdc/devtools/ddk/default.mspx for low price)
 | 
			
		||||
;   ml64.exe is given with Visual Studio 2005/2008/2010 and Windows WDK
 | 
			
		||||
;
 | 
			
		||||
;   (you can get Windows WDK with ml64 for AMD64 from
 | 
			
		||||
;      http://www.microsoft.com/whdc/Devtools/wdk/default.mspx for low price)
 | 
			
		||||
;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.code
 | 
			
		||||
inffas8664fnc PROC
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,10 @@ inffasx64.asm and inffas8664.c were written by Chris Anderson, by optimizing
 | 
			
		||||
 | 
			
		||||
Use instructions
 | 
			
		||||
----------------
 | 
			
		||||
Copy these files into the zlib source directory.
 | 
			
		||||
Assemble the .asm files using MASM and put the object files into the zlib source
 | 
			
		||||
directory.  You can also get object files here:
 | 
			
		||||
 | 
			
		||||
     http://www.winimage.com/zLibDll/zlib124_masm_obj.zip
 | 
			
		||||
 | 
			
		||||
define ASMV and ASMINF in your project. Include inffas8664.c in your source tree,
 | 
			
		||||
and inffasx64.obj and gvmat64.obj as object to link.
 | 
			
		||||
 
 | 
			
		||||
@@ -1,2 +1,2 @@
 | 
			
		||||
ml /coff /Zi /c /Flgvmat32.lst  gvmat32.asm
 | 
			
		||||
ml /coff /Zi /c /Flmatch686.lst match686.asm
 | 
			
		||||
ml /coff /Zi /c /Flinffas32.lst inffas32.asm
 | 
			
		||||
 
 | 
			
		||||
@@ -1,972 +0,0 @@
 | 
			
		||||
; gvmat32.asm -- Asm portion of the optimized longest_match for 32 bits x86
 | 
			
		||||
; Copyright (C) 1995-1996 Jean-loup Gailly and Gilles Vollant.
 | 
			
		||||
; File written by Gilles Vollant, by modifiying the longest_match
 | 
			
		||||
;  from Jean-loup Gailly in deflate.c
 | 
			
		||||
;
 | 
			
		||||
;         http://www.zlib.net
 | 
			
		||||
;         http://www.winimage.com/zLibDll
 | 
			
		||||
;         http://www.muppetlabs.com/~breadbox/software/assembly.html
 | 
			
		||||
;
 | 
			
		||||
; For Visual C++ 4.x and higher and ML 6.x and higher
 | 
			
		||||
;   ml.exe is in directory \MASM611C of Win95 DDK
 | 
			
		||||
;   ml.exe is also distributed in http://www.masm32.com/masmdl.htm
 | 
			
		||||
;    and in VC++2003 toolkit at http://msdn.microsoft.com/visualc/vctoolkit2003/
 | 
			
		||||
;
 | 
			
		||||
; this file contain two implementation of longest_match
 | 
			
		||||
;
 | 
			
		||||
;  longest_match_7fff : written 1996 by Gilles Vollant optimized for
 | 
			
		||||
;            first Pentium. Assume s->w_mask == 0x7fff
 | 
			
		||||
;  longest_match_686 : written by Brian raiter (1998), optimized for Pentium Pro
 | 
			
		||||
;
 | 
			
		||||
;  for using an seembly version of longest_match, you need define ASMV in project
 | 
			
		||||
;  There is two way in using gvmat32.asm
 | 
			
		||||
;
 | 
			
		||||
;  A) Suggested method
 | 
			
		||||
;    if you want include both longest_match_7fff and longest_match_686
 | 
			
		||||
;    compile the asm file running
 | 
			
		||||
;           ml /coff /Zi /Flgvmat32.lst /c gvmat32.asm
 | 
			
		||||
;    and include gvmat32c.c in your project
 | 
			
		||||
;    if you have an old cpu (386,486 or first Pentium) and s->w_mask==0x7fff,
 | 
			
		||||
;        longest_match_7fff will be used
 | 
			
		||||
;    if you have a more modern CPU (Pentium Pro, II and higher)
 | 
			
		||||
;        longest_match_686 will be used
 | 
			
		||||
;    on old cpu with s->w_mask!=0x7fff, longest_match_686 will be used,
 | 
			
		||||
;        but this is not a sitation you'll find often
 | 
			
		||||
;
 | 
			
		||||
;  B) Alternative
 | 
			
		||||
;    if you are not interresed in old cpu performance and want the smaller
 | 
			
		||||
;       binaries possible
 | 
			
		||||
;
 | 
			
		||||
;    compile the asm file running
 | 
			
		||||
;           ml /coff /Zi /c /Flgvmat32.lst /DNOOLDPENTIUMCODE gvmat32.asm
 | 
			
		||||
;    and do not include gvmat32c.c in your project (ou define also
 | 
			
		||||
;              NOOLDPENTIUMCODE)
 | 
			
		||||
;
 | 
			
		||||
; note : as I known, longest_match_686 is very faster than longest_match_7fff
 | 
			
		||||
;        on pentium Pro/II/III, faster (but less) in P4, but it seem
 | 
			
		||||
;        longest_match_7fff can be faster (very very litte) on AMD Athlon64/K8
 | 
			
		||||
;
 | 
			
		||||
; see below : zlib1222add must be adjuster if you use a zlib version < 1.2.2.2
 | 
			
		||||
 | 
			
		||||
;uInt longest_match_7fff(s, cur_match)
 | 
			
		||||
;    deflate_state *s;
 | 
			
		||||
;    IPos cur_match;                             /* current match */
 | 
			
		||||
 | 
			
		||||
    NbStack         equ     76
 | 
			
		||||
    cur_match       equ     dword ptr[esp+NbStack-0]
 | 
			
		||||
    str_s           equ     dword ptr[esp+NbStack-4]
 | 
			
		||||
; 5 dword on top (ret,ebp,esi,edi,ebx)
 | 
			
		||||
    adrret          equ     dword ptr[esp+NbStack-8]
 | 
			
		||||
    pushebp         equ     dword ptr[esp+NbStack-12]
 | 
			
		||||
    pushedi         equ     dword ptr[esp+NbStack-16]
 | 
			
		||||
    pushesi         equ     dword ptr[esp+NbStack-20]
 | 
			
		||||
    pushebx         equ     dword ptr[esp+NbStack-24]
 | 
			
		||||
 | 
			
		||||
    chain_length    equ     dword ptr [esp+NbStack-28]
 | 
			
		||||
    limit           equ     dword ptr [esp+NbStack-32]
 | 
			
		||||
    best_len        equ     dword ptr [esp+NbStack-36]
 | 
			
		||||
    window          equ     dword ptr [esp+NbStack-40]
 | 
			
		||||
    prev            equ     dword ptr [esp+NbStack-44]
 | 
			
		||||
    scan_start      equ      word ptr [esp+NbStack-48]
 | 
			
		||||
    wmask           equ     dword ptr [esp+NbStack-52]
 | 
			
		||||
    match_start_ptr equ     dword ptr [esp+NbStack-56]
 | 
			
		||||
    nice_match      equ     dword ptr [esp+NbStack-60]
 | 
			
		||||
    scan            equ     dword ptr [esp+NbStack-64]
 | 
			
		||||
 | 
			
		||||
    windowlen       equ     dword ptr [esp+NbStack-68]
 | 
			
		||||
    match_start     equ     dword ptr [esp+NbStack-72]
 | 
			
		||||
    strend          equ     dword ptr [esp+NbStack-76]
 | 
			
		||||
    NbStackAdd      equ     (NbStack-24)
 | 
			
		||||
 | 
			
		||||
    .386p
 | 
			
		||||
 | 
			
		||||
    name    gvmatch
 | 
			
		||||
    .MODEL  FLAT
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;  all the +zlib1222add offsets are due to the addition of fields
 | 
			
		||||
;  in zlib in the deflate_state structure since the asm code was first written
 | 
			
		||||
;  (if you compile with zlib 1.0.4 or older, use "zlib1222add equ (-4)").
 | 
			
		||||
;  (if you compile with zlib between 1.0.5 and 1.2.2.1, use "zlib1222add equ 0").
 | 
			
		||||
;  if you compile with zlib 1.2.2.2 or later , use "zlib1222add equ 8").
 | 
			
		||||
 | 
			
		||||
    zlib1222add         equ     8
 | 
			
		||||
 | 
			
		||||
;  Note : these value are good with a 8 bytes boundary pack structure
 | 
			
		||||
    dep_chain_length    equ     74h+zlib1222add
 | 
			
		||||
    dep_window          equ     30h+zlib1222add
 | 
			
		||||
    dep_strstart        equ     64h+zlib1222add
 | 
			
		||||
    dep_prev_length     equ     70h+zlib1222add
 | 
			
		||||
    dep_nice_match      equ     88h+zlib1222add
 | 
			
		||||
    dep_w_size          equ     24h+zlib1222add
 | 
			
		||||
    dep_prev            equ     38h+zlib1222add
 | 
			
		||||
    dep_w_mask          equ     2ch+zlib1222add
 | 
			
		||||
    dep_good_match      equ     84h+zlib1222add
 | 
			
		||||
    dep_match_start     equ     68h+zlib1222add
 | 
			
		||||
    dep_lookahead       equ     6ch+zlib1222add
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
_TEXT                   segment
 | 
			
		||||
 | 
			
		||||
IFDEF NOUNDERLINE
 | 
			
		||||
   IFDEF NOOLDPENTIUMCODE
 | 
			
		||||
            public  longest_match
 | 
			
		||||
            public  match_init
 | 
			
		||||
   ELSE
 | 
			
		||||
            public  longest_match_7fff
 | 
			
		||||
            public  cpudetect32
 | 
			
		||||
            public  longest_match_686
 | 
			
		||||
   ENDIF
 | 
			
		||||
ELSE
 | 
			
		||||
   IFDEF NOOLDPENTIUMCODE
 | 
			
		||||
            public  _longest_match
 | 
			
		||||
            public  _match_init
 | 
			
		||||
   ELSE
 | 
			
		||||
            public  _longest_match_7fff
 | 
			
		||||
            public  _cpudetect32
 | 
			
		||||
            public  _longest_match_686
 | 
			
		||||
   ENDIF
 | 
			
		||||
ENDIF
 | 
			
		||||
 | 
			
		||||
    MAX_MATCH           equ     258
 | 
			
		||||
    MIN_MATCH           equ     3
 | 
			
		||||
    MIN_LOOKAHEAD       equ     (MAX_MATCH+MIN_MATCH+1)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
IFNDEF NOOLDPENTIUMCODE
 | 
			
		||||
IFDEF NOUNDERLINE
 | 
			
		||||
longest_match_7fff   proc near
 | 
			
		||||
ELSE
 | 
			
		||||
_longest_match_7fff  proc near
 | 
			
		||||
ENDIF
 | 
			
		||||
 | 
			
		||||
    mov     edx,[esp+4]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    push    ebp
 | 
			
		||||
    push    edi
 | 
			
		||||
    push    esi
 | 
			
		||||
    push    ebx
 | 
			
		||||
 | 
			
		||||
    sub     esp,NbStackAdd
 | 
			
		||||
 | 
			
		||||
; initialize or check the variables used in match.asm.
 | 
			
		||||
    mov     ebp,edx
 | 
			
		||||
 | 
			
		||||
; chain_length = s->max_chain_length
 | 
			
		||||
; if (prev_length>=good_match) chain_length >>= 2
 | 
			
		||||
    mov     edx,[ebp+dep_chain_length]
 | 
			
		||||
    mov     ebx,[ebp+dep_prev_length]
 | 
			
		||||
    cmp     [ebp+dep_good_match],ebx
 | 
			
		||||
    ja      noshr
 | 
			
		||||
    shr     edx,2
 | 
			
		||||
noshr:
 | 
			
		||||
; we increment chain_length because in the asm, the --chain_lenght is in the beginning of the loop
 | 
			
		||||
    inc     edx
 | 
			
		||||
    mov     edi,[ebp+dep_nice_match]
 | 
			
		||||
    mov     chain_length,edx
 | 
			
		||||
    mov     eax,[ebp+dep_lookahead]
 | 
			
		||||
    cmp     eax,edi
 | 
			
		||||
; if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead;
 | 
			
		||||
    jae     nolookaheadnicematch
 | 
			
		||||
    mov     edi,eax
 | 
			
		||||
nolookaheadnicematch:
 | 
			
		||||
; best_len = s->prev_length
 | 
			
		||||
    mov     best_len,ebx
 | 
			
		||||
 | 
			
		||||
; window = s->window
 | 
			
		||||
    mov     esi,[ebp+dep_window]
 | 
			
		||||
    mov     ecx,[ebp+dep_strstart]
 | 
			
		||||
    mov     window,esi
 | 
			
		||||
 | 
			
		||||
    mov     nice_match,edi
 | 
			
		||||
; scan = window + strstart
 | 
			
		||||
    add     esi,ecx
 | 
			
		||||
    mov     scan,esi
 | 
			
		||||
; dx = *window
 | 
			
		||||
    mov     dx,word ptr [esi]
 | 
			
		||||
; bx = *(window+best_len-1)
 | 
			
		||||
    mov     bx,word ptr [esi+ebx-1]
 | 
			
		||||
    add     esi,MAX_MATCH-1
 | 
			
		||||
; scan_start = *scan
 | 
			
		||||
    mov     scan_start,dx
 | 
			
		||||
; strend = scan + MAX_MATCH-1
 | 
			
		||||
    mov     strend,esi
 | 
			
		||||
; bx = scan_end = *(window+best_len-1)
 | 
			
		||||
 | 
			
		||||
;    IPos limit = s->strstart > (IPos)MAX_DIST(s) ?
 | 
			
		||||
;        s->strstart - (IPos)MAX_DIST(s) : NIL;
 | 
			
		||||
 | 
			
		||||
    mov     esi,[ebp+dep_w_size]
 | 
			
		||||
    sub     esi,MIN_LOOKAHEAD
 | 
			
		||||
; here esi = MAX_DIST(s)
 | 
			
		||||
    sub     ecx,esi
 | 
			
		||||
    ja      nodist
 | 
			
		||||
    xor     ecx,ecx
 | 
			
		||||
nodist:
 | 
			
		||||
    mov     limit,ecx
 | 
			
		||||
 | 
			
		||||
; prev = s->prev
 | 
			
		||||
    mov     edx,[ebp+dep_prev]
 | 
			
		||||
    mov     prev,edx
 | 
			
		||||
 | 
			
		||||
;
 | 
			
		||||
    mov     edx,dword ptr [ebp+dep_match_start]
 | 
			
		||||
    mov     bp,scan_start
 | 
			
		||||
    mov     eax,cur_match
 | 
			
		||||
    mov     match_start,edx
 | 
			
		||||
 | 
			
		||||
    mov     edx,window
 | 
			
		||||
    mov     edi,edx
 | 
			
		||||
    add     edi,best_len
 | 
			
		||||
    mov     esi,prev
 | 
			
		||||
    dec     edi
 | 
			
		||||
; windowlen = window + best_len -1
 | 
			
		||||
    mov     windowlen,edi
 | 
			
		||||
 | 
			
		||||
    jmp     beginloop2
 | 
			
		||||
    align   4
 | 
			
		||||
 | 
			
		||||
; here, in the loop
 | 
			
		||||
;       eax = ax = cur_match
 | 
			
		||||
;       ecx = limit
 | 
			
		||||
;        bx = scan_end
 | 
			
		||||
;        bp = scan_start
 | 
			
		||||
;       edi = windowlen (window + best_len -1)
 | 
			
		||||
;       esi = prev
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;// here; chain_length <=16
 | 
			
		||||
normalbeg0add16:
 | 
			
		||||
    add     chain_length,16
 | 
			
		||||
    jz      exitloop
 | 
			
		||||
normalbeg0:
 | 
			
		||||
    cmp     word ptr[edi+eax],bx
 | 
			
		||||
    je      normalbeg2noroll
 | 
			
		||||
rcontlabnoroll:
 | 
			
		||||
; cur_match = prev[cur_match & wmask]
 | 
			
		||||
    and     eax,7fffh
 | 
			
		||||
    mov     ax,word ptr[esi+eax*2]
 | 
			
		||||
; if cur_match > limit, go to exitloop
 | 
			
		||||
    cmp     ecx,eax
 | 
			
		||||
    jnb     exitloop
 | 
			
		||||
; if --chain_length != 0, go to exitloop
 | 
			
		||||
    dec     chain_length
 | 
			
		||||
    jnz     normalbeg0
 | 
			
		||||
    jmp     exitloop
 | 
			
		||||
 | 
			
		||||
normalbeg2noroll:
 | 
			
		||||
; if (scan_start==*(cur_match+window)) goto normalbeg2
 | 
			
		||||
    cmp     bp,word ptr[edx+eax]
 | 
			
		||||
    jne     rcontlabnoroll
 | 
			
		||||
    jmp     normalbeg2
 | 
			
		||||
 | 
			
		||||
contloop3:
 | 
			
		||||
    mov     edi,windowlen
 | 
			
		||||
 | 
			
		||||
; cur_match = prev[cur_match & wmask]
 | 
			
		||||
    and     eax,7fffh
 | 
			
		||||
    mov     ax,word ptr[esi+eax*2]
 | 
			
		||||
; if cur_match > limit, go to exitloop
 | 
			
		||||
    cmp     ecx,eax
 | 
			
		||||
jnbexitloopshort1:
 | 
			
		||||
    jnb     exitloop
 | 
			
		||||
; if --chain_length != 0, go to exitloop
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
; begin the main loop
 | 
			
		||||
beginloop2:
 | 
			
		||||
    sub     chain_length,16+1
 | 
			
		||||
; if chain_length <=16, don't use the unrolled loop
 | 
			
		||||
    jna     normalbeg0add16
 | 
			
		||||
 | 
			
		||||
do16:
 | 
			
		||||
    cmp     word ptr[edi+eax],bx
 | 
			
		||||
    je      normalbeg2dc0
 | 
			
		||||
 | 
			
		||||
maccn   MACRO   lab
 | 
			
		||||
    and     eax,7fffh
 | 
			
		||||
    mov     ax,word ptr[esi+eax*2]
 | 
			
		||||
    cmp     ecx,eax
 | 
			
		||||
    jnb     exitloop
 | 
			
		||||
    cmp     word ptr[edi+eax],bx
 | 
			
		||||
    je      lab
 | 
			
		||||
    ENDM
 | 
			
		||||
 | 
			
		||||
rcontloop0:
 | 
			
		||||
    maccn   normalbeg2dc1
 | 
			
		||||
 | 
			
		||||
rcontloop1:
 | 
			
		||||
    maccn   normalbeg2dc2
 | 
			
		||||
 | 
			
		||||
rcontloop2:
 | 
			
		||||
    maccn   normalbeg2dc3
 | 
			
		||||
 | 
			
		||||
rcontloop3:
 | 
			
		||||
    maccn   normalbeg2dc4
 | 
			
		||||
 | 
			
		||||
rcontloop4:
 | 
			
		||||
    maccn   normalbeg2dc5
 | 
			
		||||
 | 
			
		||||
rcontloop5:
 | 
			
		||||
    maccn   normalbeg2dc6
 | 
			
		||||
 | 
			
		||||
rcontloop6:
 | 
			
		||||
    maccn   normalbeg2dc7
 | 
			
		||||
 | 
			
		||||
rcontloop7:
 | 
			
		||||
    maccn   normalbeg2dc8
 | 
			
		||||
 | 
			
		||||
rcontloop8:
 | 
			
		||||
    maccn   normalbeg2dc9
 | 
			
		||||
 | 
			
		||||
rcontloop9:
 | 
			
		||||
    maccn   normalbeg2dc10
 | 
			
		||||
 | 
			
		||||
rcontloop10:
 | 
			
		||||
    maccn   short normalbeg2dc11
 | 
			
		||||
 | 
			
		||||
rcontloop11:
 | 
			
		||||
    maccn   short normalbeg2dc12
 | 
			
		||||
 | 
			
		||||
rcontloop12:
 | 
			
		||||
    maccn   short normalbeg2dc13
 | 
			
		||||
 | 
			
		||||
rcontloop13:
 | 
			
		||||
    maccn   short normalbeg2dc14
 | 
			
		||||
 | 
			
		||||
rcontloop14:
 | 
			
		||||
    maccn   short normalbeg2dc15
 | 
			
		||||
 | 
			
		||||
rcontloop15:
 | 
			
		||||
    and     eax,7fffh
 | 
			
		||||
    mov     ax,word ptr[esi+eax*2]
 | 
			
		||||
    cmp     ecx,eax
 | 
			
		||||
    jnb     exitloop
 | 
			
		||||
 | 
			
		||||
    sub     chain_length,16
 | 
			
		||||
    ja      do16
 | 
			
		||||
    jmp     normalbeg0add16
 | 
			
		||||
 | 
			
		||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
			
		||||
 | 
			
		||||
normbeg MACRO   rcontlab,valsub
 | 
			
		||||
; if we are here, we know that *(match+best_len-1) == scan_end
 | 
			
		||||
    cmp     bp,word ptr[edx+eax]
 | 
			
		||||
; if (match != scan_start) goto rcontlab
 | 
			
		||||
    jne     rcontlab
 | 
			
		||||
; calculate the good chain_length, and we'll compare scan and match string
 | 
			
		||||
    add     chain_length,16-valsub
 | 
			
		||||
    jmp     iseq
 | 
			
		||||
    ENDM
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
normalbeg2dc11:
 | 
			
		||||
    normbeg rcontloop11,11
 | 
			
		||||
 | 
			
		||||
normalbeg2dc12:
 | 
			
		||||
    normbeg short rcontloop12,12
 | 
			
		||||
 | 
			
		||||
normalbeg2dc13:
 | 
			
		||||
    normbeg short rcontloop13,13
 | 
			
		||||
 | 
			
		||||
normalbeg2dc14:
 | 
			
		||||
    normbeg short rcontloop14,14
 | 
			
		||||
 | 
			
		||||
normalbeg2dc15:
 | 
			
		||||
    normbeg short rcontloop15,15
 | 
			
		||||
 | 
			
		||||
normalbeg2dc10:
 | 
			
		||||
    normbeg rcontloop10,10
 | 
			
		||||
 | 
			
		||||
normalbeg2dc9:
 | 
			
		||||
    normbeg rcontloop9,9
 | 
			
		||||
 | 
			
		||||
normalbeg2dc8:
 | 
			
		||||
    normbeg rcontloop8,8
 | 
			
		||||
 | 
			
		||||
normalbeg2dc7:
 | 
			
		||||
    normbeg rcontloop7,7
 | 
			
		||||
 | 
			
		||||
normalbeg2dc6:
 | 
			
		||||
    normbeg rcontloop6,6
 | 
			
		||||
 | 
			
		||||
normalbeg2dc5:
 | 
			
		||||
    normbeg rcontloop5,5
 | 
			
		||||
 | 
			
		||||
normalbeg2dc4:
 | 
			
		||||
    normbeg rcontloop4,4
 | 
			
		||||
 | 
			
		||||
normalbeg2dc3:
 | 
			
		||||
    normbeg rcontloop3,3
 | 
			
		||||
 | 
			
		||||
normalbeg2dc2:
 | 
			
		||||
    normbeg rcontloop2,2
 | 
			
		||||
 | 
			
		||||
normalbeg2dc1:
 | 
			
		||||
    normbeg rcontloop1,1
 | 
			
		||||
 | 
			
		||||
normalbeg2dc0:
 | 
			
		||||
    normbeg rcontloop0,0
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
; we go in normalbeg2 because *(ushf*)(match+best_len-1) == scan_end
 | 
			
		||||
 | 
			
		||||
normalbeg2:
 | 
			
		||||
    mov     edi,window
 | 
			
		||||
 | 
			
		||||
    cmp     bp,word ptr[edi+eax]
 | 
			
		||||
    jne     contloop3                   ; if *(ushf*)match != scan_start, continue
 | 
			
		||||
 | 
			
		||||
iseq:
 | 
			
		||||
; if we are here, we know that *(match+best_len-1) == scan_end
 | 
			
		||||
; and (match == scan_start)
 | 
			
		||||
 | 
			
		||||
    mov     edi,edx
 | 
			
		||||
    mov     esi,scan                    ; esi = scan
 | 
			
		||||
    add     edi,eax                     ; edi = window + cur_match = match
 | 
			
		||||
 | 
			
		||||
    mov     edx,[esi+3]                 ; compare manually dword at match+3
 | 
			
		||||
    xor     edx,[edi+3]                 ; and scan +3
 | 
			
		||||
 | 
			
		||||
    jz      begincompare                ; if equal, go to long compare
 | 
			
		||||
 | 
			
		||||
; we will determine the unmatch byte and calculate len (in esi)
 | 
			
		||||
    or      dl,dl
 | 
			
		||||
    je      eq1rr
 | 
			
		||||
    mov     esi,3
 | 
			
		||||
    jmp     trfinval
 | 
			
		||||
eq1rr:
 | 
			
		||||
    or      dx,dx
 | 
			
		||||
    je      eq1
 | 
			
		||||
 | 
			
		||||
    mov     esi,4
 | 
			
		||||
    jmp     trfinval
 | 
			
		||||
eq1:
 | 
			
		||||
    and     edx,0ffffffh
 | 
			
		||||
    jz      eq11
 | 
			
		||||
    mov     esi,5
 | 
			
		||||
    jmp     trfinval
 | 
			
		||||
eq11:
 | 
			
		||||
    mov     esi,6
 | 
			
		||||
    jmp     trfinval
 | 
			
		||||
 | 
			
		||||
begincompare:
 | 
			
		||||
    ; here we now scan and match begin same
 | 
			
		||||
    add     edi,6
 | 
			
		||||
    add     esi,6
 | 
			
		||||
    mov     ecx,(MAX_MATCH-(2+4))/4     ; scan for at most MAX_MATCH bytes
 | 
			
		||||
    repe    cmpsd                       ; loop until mismatch
 | 
			
		||||
 | 
			
		||||
    je      trfin                       ; go to trfin if not unmatch
 | 
			
		||||
; we determine the unmatch byte
 | 
			
		||||
    sub     esi,4
 | 
			
		||||
    mov     edx,[edi-4]
 | 
			
		||||
    xor     edx,[esi]
 | 
			
		||||
 | 
			
		||||
    or      dl,dl
 | 
			
		||||
    jnz     trfin
 | 
			
		||||
    inc     esi
 | 
			
		||||
 | 
			
		||||
    or      dx,dx
 | 
			
		||||
    jnz     trfin
 | 
			
		||||
    inc     esi
 | 
			
		||||
 | 
			
		||||
    and     edx,0ffffffh
 | 
			
		||||
    jnz     trfin
 | 
			
		||||
    inc     esi
 | 
			
		||||
 | 
			
		||||
trfin:
 | 
			
		||||
    sub     esi,scan          ; esi = len
 | 
			
		||||
trfinval:
 | 
			
		||||
; here we have finised compare, and esi contain len of equal string
 | 
			
		||||
    cmp     esi,best_len        ; if len > best_len, go newbestlen
 | 
			
		||||
    ja      short newbestlen
 | 
			
		||||
; now we restore edx, ecx and esi, for the big loop
 | 
			
		||||
    mov     esi,prev
 | 
			
		||||
    mov     ecx,limit
 | 
			
		||||
    mov     edx,window
 | 
			
		||||
    jmp     contloop3
 | 
			
		||||
 | 
			
		||||
newbestlen:
 | 
			
		||||
    mov     best_len,esi        ; len become best_len
 | 
			
		||||
 | 
			
		||||
    mov     match_start,eax     ; save new position as match_start
 | 
			
		||||
    cmp     esi,nice_match      ; if best_len >= nice_match, exit
 | 
			
		||||
    jae     exitloop
 | 
			
		||||
    mov     ecx,scan
 | 
			
		||||
    mov     edx,window          ; restore edx=window
 | 
			
		||||
    add     ecx,esi
 | 
			
		||||
    add     esi,edx
 | 
			
		||||
 | 
			
		||||
    dec     esi
 | 
			
		||||
    mov     windowlen,esi       ; windowlen = window + best_len-1
 | 
			
		||||
    mov     bx,[ecx-1]          ; bx = *(scan+best_len-1) = scan_end
 | 
			
		||||
 | 
			
		||||
; now we restore ecx and esi, for the big loop :
 | 
			
		||||
    mov     esi,prev
 | 
			
		||||
    mov     ecx,limit
 | 
			
		||||
    jmp     contloop3
 | 
			
		||||
 | 
			
		||||
exitloop:
 | 
			
		||||
; exit : s->match_start=match_start
 | 
			
		||||
    mov     ebx,match_start
 | 
			
		||||
    mov     ebp,str_s
 | 
			
		||||
    mov     ecx,best_len
 | 
			
		||||
    mov     dword ptr [ebp+dep_match_start],ebx
 | 
			
		||||
    mov     eax,dword ptr [ebp+dep_lookahead]
 | 
			
		||||
    cmp     ecx,eax
 | 
			
		||||
    ja      minexlo
 | 
			
		||||
    mov     eax,ecx
 | 
			
		||||
minexlo:
 | 
			
		||||
; return min(best_len,s->lookahead)
 | 
			
		||||
 | 
			
		||||
; restore stack and register ebx,esi,edi,ebp
 | 
			
		||||
    add     esp,NbStackAdd
 | 
			
		||||
 | 
			
		||||
    pop     ebx
 | 
			
		||||
    pop     esi
 | 
			
		||||
    pop     edi
 | 
			
		||||
    pop     ebp
 | 
			
		||||
    ret
 | 
			
		||||
InfoAuthor:
 | 
			
		||||
; please don't remove this string !
 | 
			
		||||
; Your are free use gvmat32 in any fre or commercial apps if you don't remove the string in the binary!
 | 
			
		||||
    db     0dh,0ah,"GVMat32 optimised assembly code written 1996-98 by Gilles Vollant",0dh,0ah
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
IFDEF NOUNDERLINE
 | 
			
		||||
longest_match_7fff   endp
 | 
			
		||||
ELSE
 | 
			
		||||
_longest_match_7fff  endp
 | 
			
		||||
ENDIF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
IFDEF NOUNDERLINE
 | 
			
		||||
cpudetect32     proc near
 | 
			
		||||
ELSE
 | 
			
		||||
_cpudetect32    proc near
 | 
			
		||||
ENDIF
 | 
			
		||||
 | 
			
		||||
    push    ebx
 | 
			
		||||
 | 
			
		||||
    pushfd                  ; push original EFLAGS
 | 
			
		||||
    pop     eax             ; get original EFLAGS
 | 
			
		||||
    mov     ecx, eax        ; save original EFLAGS
 | 
			
		||||
    xor     eax, 40000h     ; flip AC bit in EFLAGS
 | 
			
		||||
    push    eax             ; save new EFLAGS value on stack
 | 
			
		||||
    popfd                   ; replace current EFLAGS value
 | 
			
		||||
    pushfd                  ; get new EFLAGS
 | 
			
		||||
    pop     eax             ; store new EFLAGS in EAX
 | 
			
		||||
    xor     eax, ecx        ; can<61>t toggle AC bit, processor=80386
 | 
			
		||||
    jz      end_cpu_is_386  ; jump if 80386 processor
 | 
			
		||||
    push    ecx
 | 
			
		||||
    popfd                   ; restore AC bit in EFLAGS first
 | 
			
		||||
 | 
			
		||||
    pushfd
 | 
			
		||||
    pushfd
 | 
			
		||||
    pop     ecx
 | 
			
		||||
 | 
			
		||||
    mov     eax, ecx        ; get original EFLAGS
 | 
			
		||||
    xor     eax, 200000h    ; flip ID bit in EFLAGS
 | 
			
		||||
    push    eax             ; save new EFLAGS value on stack
 | 
			
		||||
    popfd                   ; replace current EFLAGS value
 | 
			
		||||
    pushfd                  ; get new EFLAGS
 | 
			
		||||
    pop     eax             ; store new EFLAGS in EAX
 | 
			
		||||
    popfd                   ; restore original EFLAGS
 | 
			
		||||
    xor     eax, ecx        ; can<61>t toggle ID bit,
 | 
			
		||||
    je      is_old_486      ; processor=old
 | 
			
		||||
 | 
			
		||||
    mov     eax,1
 | 
			
		||||
    db      0fh,0a2h        ;CPUID
 | 
			
		||||
 | 
			
		||||
exitcpudetect:
 | 
			
		||||
    pop ebx
 | 
			
		||||
    ret
 | 
			
		||||
 | 
			
		||||
end_cpu_is_386:
 | 
			
		||||
    mov     eax,0300h
 | 
			
		||||
    jmp     exitcpudetect
 | 
			
		||||
 | 
			
		||||
is_old_486:
 | 
			
		||||
    mov     eax,0400h
 | 
			
		||||
    jmp     exitcpudetect
 | 
			
		||||
 | 
			
		||||
IFDEF NOUNDERLINE
 | 
			
		||||
cpudetect32     endp
 | 
			
		||||
ELSE
 | 
			
		||||
_cpudetect32    endp
 | 
			
		||||
ENDIF
 | 
			
		||||
ENDIF
 | 
			
		||||
 | 
			
		||||
MAX_MATCH       equ     258
 | 
			
		||||
MIN_MATCH       equ     3
 | 
			
		||||
MIN_LOOKAHEAD   equ     (MAX_MATCH + MIN_MATCH + 1)
 | 
			
		||||
MAX_MATCH_8_     equ     ((MAX_MATCH + 7) AND 0FFF0h)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;;; stack frame offsets
 | 
			
		||||
 | 
			
		||||
chainlenwmask   equ  esp + 0    ; high word: current chain len
 | 
			
		||||
                    ; low word: s->wmask
 | 
			
		||||
window      equ  esp + 4    ; local copy of s->window
 | 
			
		||||
windowbestlen   equ  esp + 8    ; s->window + bestlen
 | 
			
		||||
scanstart   equ  esp + 16   ; first two bytes of string
 | 
			
		||||
scanend     equ  esp + 12   ; last two bytes of string
 | 
			
		||||
scanalign   equ  esp + 20   ; dword-misalignment of string
 | 
			
		||||
nicematch   equ  esp + 24   ; a good enough match size
 | 
			
		||||
bestlen     equ  esp + 28   ; size of best match so far
 | 
			
		||||
scan        equ  esp + 32   ; ptr to string wanting match
 | 
			
		||||
 | 
			
		||||
LocalVarsSize   equ 36
 | 
			
		||||
;   saved ebx   byte esp + 36
 | 
			
		||||
;   saved edi   byte esp + 40
 | 
			
		||||
;   saved esi   byte esp + 44
 | 
			
		||||
;   saved ebp   byte esp + 48
 | 
			
		||||
;   return address  byte esp + 52
 | 
			
		||||
deflatestate    equ  esp + 56   ; the function arguments
 | 
			
		||||
curmatch    equ  esp + 60
 | 
			
		||||
 | 
			
		||||
;;; Offsets for fields in the deflate_state structure. These numbers
 | 
			
		||||
;;; are calculated from the definition of deflate_state, with the
 | 
			
		||||
;;; assumption that the compiler will dword-align the fields. (Thus,
 | 
			
		||||
;;; changing the definition of deflate_state could easily cause this
 | 
			
		||||
;;; program to crash horribly, without so much as a warning at
 | 
			
		||||
;;; compile time. Sigh.)
 | 
			
		||||
 | 
			
		||||
dsWSize     equ 36+zlib1222add
 | 
			
		||||
dsWMask     equ 44+zlib1222add
 | 
			
		||||
dsWindow    equ 48+zlib1222add
 | 
			
		||||
dsPrev      equ 56+zlib1222add
 | 
			
		||||
dsMatchLen  equ 88+zlib1222add
 | 
			
		||||
dsPrevMatch equ 92+zlib1222add
 | 
			
		||||
dsStrStart  equ 100+zlib1222add
 | 
			
		||||
dsMatchStart    equ 104+zlib1222add
 | 
			
		||||
dsLookahead equ 108+zlib1222add
 | 
			
		||||
dsPrevLen   equ 112+zlib1222add
 | 
			
		||||
dsMaxChainLen   equ 116+zlib1222add
 | 
			
		||||
dsGoodMatch equ 132+zlib1222add
 | 
			
		||||
dsNiceMatch equ 136+zlib1222add
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;;; match.asm -- Pentium-Pro-optimized version of longest_match()
 | 
			
		||||
;;; Written for zlib 1.1.2
 | 
			
		||||
;;; Copyright (C) 1998 Brian Raiter <breadbox@muppetlabs.com>
 | 
			
		||||
;;; You can look at http://www.muppetlabs.com/~breadbox/software/assembly.html
 | 
			
		||||
;;;
 | 
			
		||||
;;; This is free software; you can redistribute it and/or modify it
 | 
			
		||||
;;; under the terms of the GNU General Public License.
 | 
			
		||||
 | 
			
		||||
;GLOBAL _longest_match, _match_init
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;SECTION    .text
 | 
			
		||||
 | 
			
		||||
;;; uInt longest_match(deflate_state *deflatestate, IPos curmatch)
 | 
			
		||||
 | 
			
		||||
;_longest_match:
 | 
			
		||||
IFDEF NOOLDPENTIUMCODE
 | 
			
		||||
    IFDEF NOUNDERLINE
 | 
			
		||||
    longest_match       proc near
 | 
			
		||||
    ELSE
 | 
			
		||||
    _longest_match      proc near
 | 
			
		||||
    ENDIF
 | 
			
		||||
ELSE
 | 
			
		||||
    IFDEF NOUNDERLINE
 | 
			
		||||
    longest_match_686   proc near
 | 
			
		||||
    ELSE
 | 
			
		||||
    _longest_match_686  proc near
 | 
			
		||||
    ENDIF
 | 
			
		||||
ENDIF
 | 
			
		||||
 | 
			
		||||
;;; Save registers that the compiler may be using, and adjust esp to
 | 
			
		||||
;;; make room for our stack frame.
 | 
			
		||||
 | 
			
		||||
        push    ebp
 | 
			
		||||
        push    edi
 | 
			
		||||
        push    esi
 | 
			
		||||
        push    ebx
 | 
			
		||||
        sub esp, LocalVarsSize
 | 
			
		||||
 | 
			
		||||
;;; Retrieve the function arguments. ecx will hold cur_match
 | 
			
		||||
;;; throughout the entire function. edx will hold the pointer to the
 | 
			
		||||
;;; deflate_state structure during the function's setup (before
 | 
			
		||||
;;; entering the main loop.
 | 
			
		||||
 | 
			
		||||
        mov edx, [deflatestate]
 | 
			
		||||
        mov ecx, [curmatch]
 | 
			
		||||
 | 
			
		||||
;;; uInt wmask = s->w_mask;
 | 
			
		||||
;;; unsigned chain_length = s->max_chain_length;
 | 
			
		||||
;;; if (s->prev_length >= s->good_match) {
 | 
			
		||||
;;;     chain_length >>= 2;
 | 
			
		||||
;;; }
 | 
			
		||||
 | 
			
		||||
        mov eax, [edx + dsPrevLen]
 | 
			
		||||
        mov ebx, [edx + dsGoodMatch]
 | 
			
		||||
        cmp eax, ebx
 | 
			
		||||
        mov eax, [edx + dsWMask]
 | 
			
		||||
        mov ebx, [edx + dsMaxChainLen]
 | 
			
		||||
        jl  LastMatchGood
 | 
			
		||||
        shr ebx, 2
 | 
			
		||||
LastMatchGood:
 | 
			
		||||
 | 
			
		||||
;;; chainlen is decremented once beforehand so that the function can
 | 
			
		||||
;;; use the sign flag instead of the zero flag for the exit test.
 | 
			
		||||
;;; It is then shifted into the high word, to make room for the wmask
 | 
			
		||||
;;; value, which it will always accompany.
 | 
			
		||||
 | 
			
		||||
        dec ebx
 | 
			
		||||
        shl ebx, 16
 | 
			
		||||
        or  ebx, eax
 | 
			
		||||
        mov [chainlenwmask], ebx
 | 
			
		||||
 | 
			
		||||
;;; if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead;
 | 
			
		||||
 | 
			
		||||
        mov eax, [edx + dsNiceMatch]
 | 
			
		||||
        mov ebx, [edx + dsLookahead]
 | 
			
		||||
        cmp ebx, eax
 | 
			
		||||
        jl  LookaheadLess
 | 
			
		||||
        mov ebx, eax
 | 
			
		||||
LookaheadLess:  mov [nicematch], ebx
 | 
			
		||||
 | 
			
		||||
;;; register Bytef *scan = s->window + s->strstart;
 | 
			
		||||
 | 
			
		||||
        mov esi, [edx + dsWindow]
 | 
			
		||||
        mov [window], esi
 | 
			
		||||
        mov ebp, [edx + dsStrStart]
 | 
			
		||||
        lea edi, [esi + ebp]
 | 
			
		||||
        mov [scan], edi
 | 
			
		||||
 | 
			
		||||
;;; Determine how many bytes the scan ptr is off from being
 | 
			
		||||
;;; dword-aligned.
 | 
			
		||||
 | 
			
		||||
        mov eax, edi
 | 
			
		||||
        neg eax
 | 
			
		||||
        and eax, 3
 | 
			
		||||
        mov [scanalign], eax
 | 
			
		||||
 | 
			
		||||
;;; IPos limit = s->strstart > (IPos)MAX_DIST(s) ?
 | 
			
		||||
;;;     s->strstart - (IPos)MAX_DIST(s) : NIL;
 | 
			
		||||
 | 
			
		||||
        mov eax, [edx + dsWSize]
 | 
			
		||||
        sub eax, MIN_LOOKAHEAD
 | 
			
		||||
        sub ebp, eax
 | 
			
		||||
        jg  LimitPositive
 | 
			
		||||
        xor ebp, ebp
 | 
			
		||||
LimitPositive:
 | 
			
		||||
 | 
			
		||||
;;; int best_len = s->prev_length;
 | 
			
		||||
 | 
			
		||||
        mov eax, [edx + dsPrevLen]
 | 
			
		||||
        mov [bestlen], eax
 | 
			
		||||
 | 
			
		||||
;;; Store the sum of s->window + best_len in esi locally, and in esi.
 | 
			
		||||
 | 
			
		||||
        add esi, eax
 | 
			
		||||
        mov [windowbestlen], esi
 | 
			
		||||
 | 
			
		||||
;;; register ush scan_start = *(ushf*)scan;
 | 
			
		||||
;;; register ush scan_end   = *(ushf*)(scan+best_len-1);
 | 
			
		||||
;;; Posf *prev = s->prev;
 | 
			
		||||
 | 
			
		||||
        movzx   ebx, word ptr [edi]
 | 
			
		||||
        mov [scanstart], ebx
 | 
			
		||||
        movzx   ebx, word ptr [edi + eax - 1]
 | 
			
		||||
        mov [scanend], ebx
 | 
			
		||||
        mov edi, [edx + dsPrev]
 | 
			
		||||
 | 
			
		||||
;;; Jump into the main loop.
 | 
			
		||||
 | 
			
		||||
        mov edx, [chainlenwmask]
 | 
			
		||||
        jmp short LoopEntry
 | 
			
		||||
 | 
			
		||||
align 4
 | 
			
		||||
 | 
			
		||||
;;; do {
 | 
			
		||||
;;;     match = s->window + cur_match;
 | 
			
		||||
;;;     if (*(ushf*)(match+best_len-1) != scan_end ||
 | 
			
		||||
;;;         *(ushf*)match != scan_start) continue;
 | 
			
		||||
;;;     [...]
 | 
			
		||||
;;; } while ((cur_match = prev[cur_match & wmask]) > limit
 | 
			
		||||
;;;          && --chain_length != 0);
 | 
			
		||||
;;;
 | 
			
		||||
;;; Here is the inner loop of the function. The function will spend the
 | 
			
		||||
;;; majority of its time in this loop, and majority of that time will
 | 
			
		||||
;;; be spent in the first ten instructions.
 | 
			
		||||
;;;
 | 
			
		||||
;;; Within this loop:
 | 
			
		||||
;;; ebx = scanend
 | 
			
		||||
;;; ecx = curmatch
 | 
			
		||||
;;; edx = chainlenwmask - i.e., ((chainlen << 16) | wmask)
 | 
			
		||||
;;; esi = windowbestlen - i.e., (window + bestlen)
 | 
			
		||||
;;; edi = prev
 | 
			
		||||
;;; ebp = limit
 | 
			
		||||
 | 
			
		||||
LookupLoop:
 | 
			
		||||
        and ecx, edx
 | 
			
		||||
        movzx   ecx, word ptr [edi + ecx*2]
 | 
			
		||||
        cmp ecx, ebp
 | 
			
		||||
        jbe LeaveNow
 | 
			
		||||
        sub edx, 00010000h
 | 
			
		||||
        js  LeaveNow
 | 
			
		||||
LoopEntry:  movzx   eax, word ptr [esi + ecx - 1]
 | 
			
		||||
        cmp eax, ebx
 | 
			
		||||
        jnz LookupLoop
 | 
			
		||||
        mov eax, [window]
 | 
			
		||||
        movzx   eax, word ptr [eax + ecx]
 | 
			
		||||
        cmp eax, [scanstart]
 | 
			
		||||
        jnz LookupLoop
 | 
			
		||||
 | 
			
		||||
;;; Store the current value of chainlen.
 | 
			
		||||
 | 
			
		||||
        mov [chainlenwmask], edx
 | 
			
		||||
 | 
			
		||||
;;; Point edi to the string under scrutiny, and esi to the string we
 | 
			
		||||
;;; are hoping to match it up with. In actuality, esi and edi are
 | 
			
		||||
;;; both pointed (MAX_MATCH_8 - scanalign) bytes ahead, and edx is
 | 
			
		||||
;;; initialized to -(MAX_MATCH_8 - scanalign).
 | 
			
		||||
 | 
			
		||||
        mov esi, [window]
 | 
			
		||||
        mov edi, [scan]
 | 
			
		||||
        add esi, ecx
 | 
			
		||||
        mov eax, [scanalign]
 | 
			
		||||
        mov edx, 0fffffef8h; -(MAX_MATCH_8)
 | 
			
		||||
        lea edi, [edi + eax + 0108h] ;MAX_MATCH_8]
 | 
			
		||||
        lea esi, [esi + eax + 0108h] ;MAX_MATCH_8]
 | 
			
		||||
 | 
			
		||||
;;; Test the strings for equality, 8 bytes at a time. At the end,
 | 
			
		||||
;;; adjust edx so that it is offset to the exact byte that mismatched.
 | 
			
		||||
;;;
 | 
			
		||||
;;; We already know at this point that the first three bytes of the
 | 
			
		||||
;;; strings match each other, and they can be safely passed over before
 | 
			
		||||
;;; starting the compare loop. So what this code does is skip over 0-3
 | 
			
		||||
;;; bytes, as much as necessary in order to dword-align the edi
 | 
			
		||||
;;; pointer. (esi will still be misaligned three times out of four.)
 | 
			
		||||
;;;
 | 
			
		||||
;;; It should be confessed that this loop usually does not represent
 | 
			
		||||
;;; much of the total running time. Replacing it with a more
 | 
			
		||||
;;; straightforward "rep cmpsb" would not drastically degrade
 | 
			
		||||
;;; performance.
 | 
			
		||||
 | 
			
		||||
LoopCmps:
 | 
			
		||||
        mov eax, [esi + edx]
 | 
			
		||||
        xor eax, [edi + edx]
 | 
			
		||||
        jnz LeaveLoopCmps
 | 
			
		||||
        mov eax, [esi + edx + 4]
 | 
			
		||||
        xor eax, [edi + edx + 4]
 | 
			
		||||
        jnz LeaveLoopCmps4
 | 
			
		||||
        add edx, 8
 | 
			
		||||
        jnz LoopCmps
 | 
			
		||||
        jmp short LenMaximum
 | 
			
		||||
LeaveLoopCmps4: add edx, 4
 | 
			
		||||
LeaveLoopCmps:  test    eax, 0000FFFFh
 | 
			
		||||
        jnz LenLower
 | 
			
		||||
        add edx,  2
 | 
			
		||||
        shr eax, 16
 | 
			
		||||
LenLower:   sub al, 1
 | 
			
		||||
        adc edx, 0
 | 
			
		||||
 | 
			
		||||
;;; Calculate the length of the match. If it is longer than MAX_MATCH,
 | 
			
		||||
;;; then automatically accept it as the best possible match and leave.
 | 
			
		||||
 | 
			
		||||
        lea eax, [edi + edx]
 | 
			
		||||
        mov edi, [scan]
 | 
			
		||||
        sub eax, edi
 | 
			
		||||
        cmp eax, MAX_MATCH
 | 
			
		||||
        jge LenMaximum
 | 
			
		||||
 | 
			
		||||
;;; If the length of the match is not longer than the best match we
 | 
			
		||||
;;; have so far, then forget it and return to the lookup loop.
 | 
			
		||||
 | 
			
		||||
        mov edx, [deflatestate]
 | 
			
		||||
        mov ebx, [bestlen]
 | 
			
		||||
        cmp eax, ebx
 | 
			
		||||
        jg  LongerMatch
 | 
			
		||||
        mov esi, [windowbestlen]
 | 
			
		||||
        mov edi, [edx + dsPrev]
 | 
			
		||||
        mov ebx, [scanend]
 | 
			
		||||
        mov edx, [chainlenwmask]
 | 
			
		||||
        jmp LookupLoop
 | 
			
		||||
 | 
			
		||||
;;;         s->match_start = cur_match;
 | 
			
		||||
;;;         best_len = len;
 | 
			
		||||
;;;         if (len >= nice_match) break;
 | 
			
		||||
;;;         scan_end = *(ushf*)(scan+best_len-1);
 | 
			
		||||
 | 
			
		||||
LongerMatch:    mov ebx, [nicematch]
 | 
			
		||||
        mov [bestlen], eax
 | 
			
		||||
        mov [edx + dsMatchStart], ecx
 | 
			
		||||
        cmp eax, ebx
 | 
			
		||||
        jge LeaveNow
 | 
			
		||||
        mov esi, [window]
 | 
			
		||||
        add esi, eax
 | 
			
		||||
        mov [windowbestlen], esi
 | 
			
		||||
        movzx   ebx, word ptr [edi + eax - 1]
 | 
			
		||||
        mov edi, [edx + dsPrev]
 | 
			
		||||
        mov [scanend], ebx
 | 
			
		||||
        mov edx, [chainlenwmask]
 | 
			
		||||
        jmp LookupLoop
 | 
			
		||||
 | 
			
		||||
;;; Accept the current string, with the maximum possible length.
 | 
			
		||||
 | 
			
		||||
LenMaximum: mov edx, [deflatestate]
 | 
			
		||||
        mov dword ptr [bestlen], MAX_MATCH
 | 
			
		||||
        mov [edx + dsMatchStart], ecx
 | 
			
		||||
 | 
			
		||||
;;; if ((uInt)best_len <= s->lookahead) return (uInt)best_len;
 | 
			
		||||
;;; return s->lookahead;
 | 
			
		||||
 | 
			
		||||
LeaveNow:
 | 
			
		||||
        mov edx, [deflatestate]
 | 
			
		||||
        mov ebx, [bestlen]
 | 
			
		||||
        mov eax, [edx + dsLookahead]
 | 
			
		||||
        cmp ebx, eax
 | 
			
		||||
        jg  LookaheadRet
 | 
			
		||||
        mov eax, ebx
 | 
			
		||||
LookaheadRet:
 | 
			
		||||
 | 
			
		||||
;;; Restore the stack and return from whence we came.
 | 
			
		||||
 | 
			
		||||
        add esp, LocalVarsSize
 | 
			
		||||
        pop ebx
 | 
			
		||||
        pop esi
 | 
			
		||||
        pop edi
 | 
			
		||||
        pop ebp
 | 
			
		||||
 | 
			
		||||
        ret
 | 
			
		||||
; please don't remove this string !
 | 
			
		||||
; Your can freely use gvmat32 in any free or commercial app if you don't remove the string in the binary!
 | 
			
		||||
    db     0dh,0ah,"asm686 with masm, optimised assembly code from Brian Raiter, written 1998",0dh,0ah
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
IFDEF NOOLDPENTIUMCODE
 | 
			
		||||
    IFDEF NOUNDERLINE
 | 
			
		||||
    longest_match       endp
 | 
			
		||||
    ELSE
 | 
			
		||||
    _longest_match      endp
 | 
			
		||||
    ENDIF
 | 
			
		||||
 | 
			
		||||
    IFDEF NOUNDERLINE
 | 
			
		||||
    match_init      proc near
 | 
			
		||||
                    ret
 | 
			
		||||
    match_init      endp
 | 
			
		||||
    ELSE
 | 
			
		||||
    _match_init     proc near
 | 
			
		||||
                    ret
 | 
			
		||||
    _match_init     endp
 | 
			
		||||
    ENDIF
 | 
			
		||||
ELSE
 | 
			
		||||
    IFDEF NOUNDERLINE
 | 
			
		||||
    longest_match_686   endp
 | 
			
		||||
    ELSE
 | 
			
		||||
    _longest_match_686  endp
 | 
			
		||||
    ENDIF
 | 
			
		||||
ENDIF
 | 
			
		||||
 | 
			
		||||
_TEXT   ends
 | 
			
		||||
end
 | 
			
		||||
@@ -1,62 +0,0 @@
 | 
			
		||||
/* gvmat32.c -- C portion of the optimized longest_match for 32 bits x86
 | 
			
		||||
 * Copyright (C) 1995-1996 Jean-loup Gailly and Gilles Vollant.
 | 
			
		||||
 * File written by Gilles Vollant, by modifiying the longest_match
 | 
			
		||||
 *  from Jean-loup Gailly in deflate.c
 | 
			
		||||
 *  it prepare all parameters and call the assembly longest_match_gvasm
 | 
			
		||||
 *  longest_match execute standard C code is wmask != 0x7fff
 | 
			
		||||
 *     (assembly code is faster with a fixed wmask)
 | 
			
		||||
 *
 | 
			
		||||
 * Read comment at beginning of gvmat32.asm for more information
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#if defined(ASMV) && (!defined(NOOLDPENTIUMCODE))
 | 
			
		||||
#include "deflate.h"
 | 
			
		||||
 | 
			
		||||
/* if your C compiler don't add underline before function name,
 | 
			
		||||
        define ADD_UNDERLINE_ASMFUNC */
 | 
			
		||||
#ifdef ADD_UNDERLINE_ASMFUNC
 | 
			
		||||
#define longest_match_7fff _longest_match_7fff
 | 
			
		||||
#define longest_match_686  _longest_match_686
 | 
			
		||||
#define cpudetect32        _cpudetect32
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
unsigned long cpudetect32();
 | 
			
		||||
 | 
			
		||||
uInt longest_match_c(
 | 
			
		||||
    deflate_state *s,
 | 
			
		||||
    IPos cur_match);                             /* current match */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
uInt longest_match_7fff(
 | 
			
		||||
    deflate_state *s,
 | 
			
		||||
    IPos cur_match);                             /* current match */
 | 
			
		||||
 | 
			
		||||
uInt longest_match_686(
 | 
			
		||||
    deflate_state *s,
 | 
			
		||||
    IPos cur_match);                             /* current match */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
static uInt iIsPPro=2;
 | 
			
		||||
 | 
			
		||||
void match_init ()
 | 
			
		||||
{
 | 
			
		||||
    iIsPPro = (((cpudetect32()/0x100)&0xf)>=6) ? 1 : 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uInt longest_match(
 | 
			
		||||
    deflate_state *s,
 | 
			
		||||
    IPos cur_match)                             /* current match */
 | 
			
		||||
{
 | 
			
		||||
    if (iIsPPro!=0)
 | 
			
		||||
        return longest_match_686(s,cur_match);
 | 
			
		||||
 | 
			
		||||
    if (s->w_mask != 0x7fff)
 | 
			
		||||
        return longest_match_686(s,cur_match);
 | 
			
		||||
 | 
			
		||||
    /* now ((s->w_mask == 0x7fff) && (iIsPPro==0)) */
 | 
			
		||||
        return longest_match_7fff(s,cur_match);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#endif /* defined(ASMV) && (!defined(NOOLDPENTIUMCODE)) */
 | 
			
		||||
@@ -73,11 +73,6 @@ inflate_fast_use_mmx:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
_TEXT			segment
 | 
			
		||||
PUBLIC _inflate_fast
 | 
			
		||||
 | 
			
		||||
ALIGN 4
 | 
			
		||||
_inflate_fast:
 | 
			
		||||
	jmp inflate_fast_entry
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -163,7 +158,8 @@ distbits_state	 equ	(76+4+zlib1222sup)	;/* state->distbits */
 | 
			
		||||
;SECTION .text
 | 
			
		||||
 | 
			
		||||
ALIGN 4
 | 
			
		||||
inflate_fast_entry:
 | 
			
		||||
_inflate_fast proc near
 | 
			
		||||
.FPO (16, 4, 0, 0, 1, 0)
 | 
			
		||||
	push  edi
 | 
			
		||||
	push  esi
 | 
			
		||||
	push  ebp
 | 
			
		||||
@@ -1078,6 +1074,7 @@ L_done:
 | 
			
		||||
	pop  esi
 | 
			
		||||
	pop  edi
 | 
			
		||||
	ret
 | 
			
		||||
_inflate_fast endp
 | 
			
		||||
 | 
			
		||||
_TEXT	ends
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										479
									
								
								contrib/masmx86/match686.asm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										479
									
								
								contrib/masmx86/match686.asm
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,479 @@
 | 
			
		||||
; match686.asm -- Asm portion of the optimized longest_match for 32 bits x86
 | 
			
		||||
; Copyright (C) 1995-1996 Jean-loup Gailly, Brian Raiter and Gilles Vollant.
 | 
			
		||||
; File written by Gilles Vollant, by converting match686.S from Brian Raiter
 | 
			
		||||
; for MASM. This is as assembly version of longest_match
 | 
			
		||||
;  from Jean-loup Gailly in deflate.c
 | 
			
		||||
;
 | 
			
		||||
;         http://www.zlib.net
 | 
			
		||||
;         http://www.winimage.com/zLibDll
 | 
			
		||||
;         http://www.muppetlabs.com/~breadbox/software/assembly.html
 | 
			
		||||
;
 | 
			
		||||
; For Visual C++ 4.x and higher and ML 6.x and higher
 | 
			
		||||
;   ml.exe is distributed in
 | 
			
		||||
;  http://www.microsoft.com/downloads/details.aspx?FamilyID=7a1c9da0-0510-44a2-b042-7ef370530c64
 | 
			
		||||
;
 | 
			
		||||
; this file contain two implementation of longest_match
 | 
			
		||||
;
 | 
			
		||||
;  this longest_match was written by Brian raiter (1998), optimized for Pentium Pro
 | 
			
		||||
;   (and the faster known version of match_init on modern Core 2 Duo and AMD Phenom)
 | 
			
		||||
;
 | 
			
		||||
;  for using an assembly version of longest_match, you need define ASMV in project
 | 
			
		||||
;
 | 
			
		||||
;    compile the asm file running
 | 
			
		||||
;           ml /coff /Zi /c /Flmatch686.lst match686.asm
 | 
			
		||||
;    and do not include match686.obj in your project
 | 
			
		||||
;
 | 
			
		||||
; note: contrib of zLib 1.2.3 and earlier contained both a deprecated version for
 | 
			
		||||
;  Pentium (prior Pentium Pro) and this version for Pentium Pro and modern processor
 | 
			
		||||
;  with autoselect (with cpu detection code)
 | 
			
		||||
;  if you want support the old pentium optimization, you can still use these version
 | 
			
		||||
;
 | 
			
		||||
; this file is not optimized for old pentium, but it compatible with all x86 32 bits
 | 
			
		||||
; processor (starting 80386)
 | 
			
		||||
;
 | 
			
		||||
;
 | 
			
		||||
; see below : zlib1222add must be adjuster if you use a zlib version < 1.2.2.2
 | 
			
		||||
 | 
			
		||||
;uInt longest_match(s, cur_match)
 | 
			
		||||
;    deflate_state *s;
 | 
			
		||||
;    IPos cur_match;                             /* current match */
 | 
			
		||||
 | 
			
		||||
    NbStack         equ     76
 | 
			
		||||
    cur_match       equ     dword ptr[esp+NbStack-0]
 | 
			
		||||
    str_s           equ     dword ptr[esp+NbStack-4]
 | 
			
		||||
; 5 dword on top (ret,ebp,esi,edi,ebx)
 | 
			
		||||
    adrret          equ     dword ptr[esp+NbStack-8]
 | 
			
		||||
    pushebp         equ     dword ptr[esp+NbStack-12]
 | 
			
		||||
    pushedi         equ     dword ptr[esp+NbStack-16]
 | 
			
		||||
    pushesi         equ     dword ptr[esp+NbStack-20]
 | 
			
		||||
    pushebx         equ     dword ptr[esp+NbStack-24]
 | 
			
		||||
 | 
			
		||||
    chain_length    equ     dword ptr [esp+NbStack-28]
 | 
			
		||||
    limit           equ     dword ptr [esp+NbStack-32]
 | 
			
		||||
    best_len        equ     dword ptr [esp+NbStack-36]
 | 
			
		||||
    window          equ     dword ptr [esp+NbStack-40]
 | 
			
		||||
    prev            equ     dword ptr [esp+NbStack-44]
 | 
			
		||||
    scan_start      equ      word ptr [esp+NbStack-48]
 | 
			
		||||
    wmask           equ     dword ptr [esp+NbStack-52]
 | 
			
		||||
    match_start_ptr equ     dword ptr [esp+NbStack-56]
 | 
			
		||||
    nice_match      equ     dword ptr [esp+NbStack-60]
 | 
			
		||||
    scan            equ     dword ptr [esp+NbStack-64]
 | 
			
		||||
 | 
			
		||||
    windowlen       equ     dword ptr [esp+NbStack-68]
 | 
			
		||||
    match_start     equ     dword ptr [esp+NbStack-72]
 | 
			
		||||
    strend          equ     dword ptr [esp+NbStack-76]
 | 
			
		||||
    NbStackAdd      equ     (NbStack-24)
 | 
			
		||||
 | 
			
		||||
    .386p
 | 
			
		||||
 | 
			
		||||
    name    gvmatch
 | 
			
		||||
    .MODEL  FLAT
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;  all the +zlib1222add offsets are due to the addition of fields
 | 
			
		||||
;  in zlib in the deflate_state structure since the asm code was first written
 | 
			
		||||
;  (if you compile with zlib 1.0.4 or older, use "zlib1222add equ (-4)").
 | 
			
		||||
;  (if you compile with zlib between 1.0.5 and 1.2.2.1, use "zlib1222add equ 0").
 | 
			
		||||
;  if you compile with zlib 1.2.2.2 or later , use "zlib1222add equ 8").
 | 
			
		||||
 | 
			
		||||
    zlib1222add         equ     8
 | 
			
		||||
 | 
			
		||||
;  Note : these value are good with a 8 bytes boundary pack structure
 | 
			
		||||
    dep_chain_length    equ     74h+zlib1222add
 | 
			
		||||
    dep_window          equ     30h+zlib1222add
 | 
			
		||||
    dep_strstart        equ     64h+zlib1222add
 | 
			
		||||
    dep_prev_length     equ     70h+zlib1222add
 | 
			
		||||
    dep_nice_match      equ     88h+zlib1222add
 | 
			
		||||
    dep_w_size          equ     24h+zlib1222add
 | 
			
		||||
    dep_prev            equ     38h+zlib1222add
 | 
			
		||||
    dep_w_mask          equ     2ch+zlib1222add
 | 
			
		||||
    dep_good_match      equ     84h+zlib1222add
 | 
			
		||||
    dep_match_start     equ     68h+zlib1222add
 | 
			
		||||
    dep_lookahead       equ     6ch+zlib1222add
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
_TEXT                   segment
 | 
			
		||||
 | 
			
		||||
IFDEF NOUNDERLINE
 | 
			
		||||
            public  longest_match
 | 
			
		||||
            public  match_init
 | 
			
		||||
ELSE
 | 
			
		||||
            public  _longest_match
 | 
			
		||||
            public  _match_init
 | 
			
		||||
ENDIF
 | 
			
		||||
 | 
			
		||||
    MAX_MATCH           equ     258
 | 
			
		||||
    MIN_MATCH           equ     3
 | 
			
		||||
    MIN_LOOKAHEAD       equ     (MAX_MATCH+MIN_MATCH+1)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
MAX_MATCH       equ     258
 | 
			
		||||
MIN_MATCH       equ     3
 | 
			
		||||
MIN_LOOKAHEAD   equ     (MAX_MATCH + MIN_MATCH + 1)
 | 
			
		||||
MAX_MATCH_8_     equ     ((MAX_MATCH + 7) AND 0FFF0h)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;;; stack frame offsets
 | 
			
		||||
 | 
			
		||||
chainlenwmask   equ  esp + 0    ; high word: current chain len
 | 
			
		||||
                    ; low word: s->wmask
 | 
			
		||||
window      equ  esp + 4    ; local copy of s->window
 | 
			
		||||
windowbestlen   equ  esp + 8    ; s->window + bestlen
 | 
			
		||||
scanstart   equ  esp + 16   ; first two bytes of string
 | 
			
		||||
scanend     equ  esp + 12   ; last two bytes of string
 | 
			
		||||
scanalign   equ  esp + 20   ; dword-misalignment of string
 | 
			
		||||
nicematch   equ  esp + 24   ; a good enough match size
 | 
			
		||||
bestlen     equ  esp + 28   ; size of best match so far
 | 
			
		||||
scan        equ  esp + 32   ; ptr to string wanting match
 | 
			
		||||
 | 
			
		||||
LocalVarsSize   equ 36
 | 
			
		||||
;   saved ebx   byte esp + 36
 | 
			
		||||
;   saved edi   byte esp + 40
 | 
			
		||||
;   saved esi   byte esp + 44
 | 
			
		||||
;   saved ebp   byte esp + 48
 | 
			
		||||
;   return address  byte esp + 52
 | 
			
		||||
deflatestate    equ  esp + 56   ; the function arguments
 | 
			
		||||
curmatch    equ  esp + 60
 | 
			
		||||
 | 
			
		||||
;;; Offsets for fields in the deflate_state structure. These numbers
 | 
			
		||||
;;; are calculated from the definition of deflate_state, with the
 | 
			
		||||
;;; assumption that the compiler will dword-align the fields. (Thus,
 | 
			
		||||
;;; changing the definition of deflate_state could easily cause this
 | 
			
		||||
;;; program to crash horribly, without so much as a warning at
 | 
			
		||||
;;; compile time. Sigh.)
 | 
			
		||||
 | 
			
		||||
dsWSize     equ 36+zlib1222add
 | 
			
		||||
dsWMask     equ 44+zlib1222add
 | 
			
		||||
dsWindow    equ 48+zlib1222add
 | 
			
		||||
dsPrev      equ 56+zlib1222add
 | 
			
		||||
dsMatchLen  equ 88+zlib1222add
 | 
			
		||||
dsPrevMatch equ 92+zlib1222add
 | 
			
		||||
dsStrStart  equ 100+zlib1222add
 | 
			
		||||
dsMatchStart    equ 104+zlib1222add
 | 
			
		||||
dsLookahead equ 108+zlib1222add
 | 
			
		||||
dsPrevLen   equ 112+zlib1222add
 | 
			
		||||
dsMaxChainLen   equ 116+zlib1222add
 | 
			
		||||
dsGoodMatch equ 132+zlib1222add
 | 
			
		||||
dsNiceMatch equ 136+zlib1222add
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;;; match686.asm -- Pentium-Pro-optimized version of longest_match()
 | 
			
		||||
;;; Written for zlib 1.1.2
 | 
			
		||||
;;; Copyright (C) 1998 Brian Raiter <breadbox@muppetlabs.com>
 | 
			
		||||
;;; You can look at http://www.muppetlabs.com/~breadbox/software/assembly.html
 | 
			
		||||
;;;
 | 
			
		||||
;;
 | 
			
		||||
;;  This software is provided 'as-is', without any express or implied
 | 
			
		||||
;;  warranty.  In no event will the authors be held liable for any damages
 | 
			
		||||
;;  arising from the use of this software.
 | 
			
		||||
;;
 | 
			
		||||
;;  Permission is granted to anyone to use this software for any purpose,
 | 
			
		||||
;;  including commercial applications, and to alter it and redistribute it
 | 
			
		||||
;;  freely, subject to the following restrictions:
 | 
			
		||||
;;
 | 
			
		||||
;;  1. The origin of this software must not be misrepresented; you must not
 | 
			
		||||
;;     claim that you wrote the original software. If you use this software
 | 
			
		||||
;;     in a product, an acknowledgment in the product documentation would be
 | 
			
		||||
;;     appreciated but is not required.
 | 
			
		||||
;;  2. Altered source versions must be plainly marked as such, and must not be
 | 
			
		||||
;;     misrepresented as being the original software
 | 
			
		||||
;;  3. This notice may not be removed or altered from any source distribution.
 | 
			
		||||
;;
 | 
			
		||||
 | 
			
		||||
;GLOBAL _longest_match, _match_init
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;SECTION    .text
 | 
			
		||||
 | 
			
		||||
;;; uInt longest_match(deflate_state *deflatestate, IPos curmatch)
 | 
			
		||||
 | 
			
		||||
;_longest_match:
 | 
			
		||||
    IFDEF NOUNDERLINE
 | 
			
		||||
    longest_match       proc near
 | 
			
		||||
    ELSE
 | 
			
		||||
    _longest_match      proc near
 | 
			
		||||
    ENDIF
 | 
			
		||||
.FPO (9, 4, 0, 0, 1, 0)
 | 
			
		||||
 | 
			
		||||
;;; Save registers that the compiler may be using, and adjust esp to
 | 
			
		||||
;;; make room for our stack frame.
 | 
			
		||||
 | 
			
		||||
        push    ebp
 | 
			
		||||
        push    edi
 | 
			
		||||
        push    esi
 | 
			
		||||
        push    ebx
 | 
			
		||||
        sub esp, LocalVarsSize
 | 
			
		||||
 | 
			
		||||
;;; Retrieve the function arguments. ecx will hold cur_match
 | 
			
		||||
;;; throughout the entire function. edx will hold the pointer to the
 | 
			
		||||
;;; deflate_state structure during the function's setup (before
 | 
			
		||||
;;; entering the main loop.
 | 
			
		||||
 | 
			
		||||
        mov edx, [deflatestate]
 | 
			
		||||
        mov ecx, [curmatch]
 | 
			
		||||
 | 
			
		||||
;;; uInt wmask = s->w_mask;
 | 
			
		||||
;;; unsigned chain_length = s->max_chain_length;
 | 
			
		||||
;;; if (s->prev_length >= s->good_match) {
 | 
			
		||||
;;;     chain_length >>= 2;
 | 
			
		||||
;;; }
 | 
			
		||||
 | 
			
		||||
        mov eax, [edx + dsPrevLen]
 | 
			
		||||
        mov ebx, [edx + dsGoodMatch]
 | 
			
		||||
        cmp eax, ebx
 | 
			
		||||
        mov eax, [edx + dsWMask]
 | 
			
		||||
        mov ebx, [edx + dsMaxChainLen]
 | 
			
		||||
        jl  LastMatchGood
 | 
			
		||||
        shr ebx, 2
 | 
			
		||||
LastMatchGood:
 | 
			
		||||
 | 
			
		||||
;;; chainlen is decremented once beforehand so that the function can
 | 
			
		||||
;;; use the sign flag instead of the zero flag for the exit test.
 | 
			
		||||
;;; It is then shifted into the high word, to make room for the wmask
 | 
			
		||||
;;; value, which it will always accompany.
 | 
			
		||||
 | 
			
		||||
        dec ebx
 | 
			
		||||
        shl ebx, 16
 | 
			
		||||
        or  ebx, eax
 | 
			
		||||
        mov [chainlenwmask], ebx
 | 
			
		||||
 | 
			
		||||
;;; if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead;
 | 
			
		||||
 | 
			
		||||
        mov eax, [edx + dsNiceMatch]
 | 
			
		||||
        mov ebx, [edx + dsLookahead]
 | 
			
		||||
        cmp ebx, eax
 | 
			
		||||
        jl  LookaheadLess
 | 
			
		||||
        mov ebx, eax
 | 
			
		||||
LookaheadLess:  mov [nicematch], ebx
 | 
			
		||||
 | 
			
		||||
;;; register Bytef *scan = s->window + s->strstart;
 | 
			
		||||
 | 
			
		||||
        mov esi, [edx + dsWindow]
 | 
			
		||||
        mov [window], esi
 | 
			
		||||
        mov ebp, [edx + dsStrStart]
 | 
			
		||||
        lea edi, [esi + ebp]
 | 
			
		||||
        mov [scan], edi
 | 
			
		||||
 | 
			
		||||
;;; Determine how many bytes the scan ptr is off from being
 | 
			
		||||
;;; dword-aligned.
 | 
			
		||||
 | 
			
		||||
        mov eax, edi
 | 
			
		||||
        neg eax
 | 
			
		||||
        and eax, 3
 | 
			
		||||
        mov [scanalign], eax
 | 
			
		||||
 | 
			
		||||
;;; IPos limit = s->strstart > (IPos)MAX_DIST(s) ?
 | 
			
		||||
;;;     s->strstart - (IPos)MAX_DIST(s) : NIL;
 | 
			
		||||
 | 
			
		||||
        mov eax, [edx + dsWSize]
 | 
			
		||||
        sub eax, MIN_LOOKAHEAD
 | 
			
		||||
        sub ebp, eax
 | 
			
		||||
        jg  LimitPositive
 | 
			
		||||
        xor ebp, ebp
 | 
			
		||||
LimitPositive:
 | 
			
		||||
 | 
			
		||||
;;; int best_len = s->prev_length;
 | 
			
		||||
 | 
			
		||||
        mov eax, [edx + dsPrevLen]
 | 
			
		||||
        mov [bestlen], eax
 | 
			
		||||
 | 
			
		||||
;;; Store the sum of s->window + best_len in esi locally, and in esi.
 | 
			
		||||
 | 
			
		||||
        add esi, eax
 | 
			
		||||
        mov [windowbestlen], esi
 | 
			
		||||
 | 
			
		||||
;;; register ush scan_start = *(ushf*)scan;
 | 
			
		||||
;;; register ush scan_end   = *(ushf*)(scan+best_len-1);
 | 
			
		||||
;;; Posf *prev = s->prev;
 | 
			
		||||
 | 
			
		||||
        movzx   ebx, word ptr [edi]
 | 
			
		||||
        mov [scanstart], ebx
 | 
			
		||||
        movzx   ebx, word ptr [edi + eax - 1]
 | 
			
		||||
        mov [scanend], ebx
 | 
			
		||||
        mov edi, [edx + dsPrev]
 | 
			
		||||
 | 
			
		||||
;;; Jump into the main loop.
 | 
			
		||||
 | 
			
		||||
        mov edx, [chainlenwmask]
 | 
			
		||||
        jmp short LoopEntry
 | 
			
		||||
 | 
			
		||||
align 4
 | 
			
		||||
 | 
			
		||||
;;; do {
 | 
			
		||||
;;;     match = s->window + cur_match;
 | 
			
		||||
;;;     if (*(ushf*)(match+best_len-1) != scan_end ||
 | 
			
		||||
;;;         *(ushf*)match != scan_start) continue;
 | 
			
		||||
;;;     [...]
 | 
			
		||||
;;; } while ((cur_match = prev[cur_match & wmask]) > limit
 | 
			
		||||
;;;          && --chain_length != 0);
 | 
			
		||||
;;;
 | 
			
		||||
;;; Here is the inner loop of the function. The function will spend the
 | 
			
		||||
;;; majority of its time in this loop, and majority of that time will
 | 
			
		||||
;;; be spent in the first ten instructions.
 | 
			
		||||
;;;
 | 
			
		||||
;;; Within this loop:
 | 
			
		||||
;;; ebx = scanend
 | 
			
		||||
;;; ecx = curmatch
 | 
			
		||||
;;; edx = chainlenwmask - i.e., ((chainlen << 16) | wmask)
 | 
			
		||||
;;; esi = windowbestlen - i.e., (window + bestlen)
 | 
			
		||||
;;; edi = prev
 | 
			
		||||
;;; ebp = limit
 | 
			
		||||
 | 
			
		||||
LookupLoop:
 | 
			
		||||
        and ecx, edx
 | 
			
		||||
        movzx   ecx, word ptr [edi + ecx*2]
 | 
			
		||||
        cmp ecx, ebp
 | 
			
		||||
        jbe LeaveNow
 | 
			
		||||
        sub edx, 00010000h
 | 
			
		||||
        js  LeaveNow
 | 
			
		||||
LoopEntry:  movzx   eax, word ptr [esi + ecx - 1]
 | 
			
		||||
        cmp eax, ebx
 | 
			
		||||
        jnz LookupLoop
 | 
			
		||||
        mov eax, [window]
 | 
			
		||||
        movzx   eax, word ptr [eax + ecx]
 | 
			
		||||
        cmp eax, [scanstart]
 | 
			
		||||
        jnz LookupLoop
 | 
			
		||||
 | 
			
		||||
;;; Store the current value of chainlen.
 | 
			
		||||
 | 
			
		||||
        mov [chainlenwmask], edx
 | 
			
		||||
 | 
			
		||||
;;; Point edi to the string under scrutiny, and esi to the string we
 | 
			
		||||
;;; are hoping to match it up with. In actuality, esi and edi are
 | 
			
		||||
;;; both pointed (MAX_MATCH_8 - scanalign) bytes ahead, and edx is
 | 
			
		||||
;;; initialized to -(MAX_MATCH_8 - scanalign).
 | 
			
		||||
 | 
			
		||||
        mov esi, [window]
 | 
			
		||||
        mov edi, [scan]
 | 
			
		||||
        add esi, ecx
 | 
			
		||||
        mov eax, [scanalign]
 | 
			
		||||
        mov edx, 0fffffef8h; -(MAX_MATCH_8)
 | 
			
		||||
        lea edi, [edi + eax + 0108h] ;MAX_MATCH_8]
 | 
			
		||||
        lea esi, [esi + eax + 0108h] ;MAX_MATCH_8]
 | 
			
		||||
 | 
			
		||||
;;; Test the strings for equality, 8 bytes at a time. At the end,
 | 
			
		||||
;;; adjust edx so that it is offset to the exact byte that mismatched.
 | 
			
		||||
;;;
 | 
			
		||||
;;; We already know at this point that the first three bytes of the
 | 
			
		||||
;;; strings match each other, and they can be safely passed over before
 | 
			
		||||
;;; starting the compare loop. So what this code does is skip over 0-3
 | 
			
		||||
;;; bytes, as much as necessary in order to dword-align the edi
 | 
			
		||||
;;; pointer. (esi will still be misaligned three times out of four.)
 | 
			
		||||
;;;
 | 
			
		||||
;;; It should be confessed that this loop usually does not represent
 | 
			
		||||
;;; much of the total running time. Replacing it with a more
 | 
			
		||||
;;; straightforward "rep cmpsb" would not drastically degrade
 | 
			
		||||
;;; performance.
 | 
			
		||||
 | 
			
		||||
LoopCmps:
 | 
			
		||||
        mov eax, [esi + edx]
 | 
			
		||||
        xor eax, [edi + edx]
 | 
			
		||||
        jnz LeaveLoopCmps
 | 
			
		||||
        mov eax, [esi + edx + 4]
 | 
			
		||||
        xor eax, [edi + edx + 4]
 | 
			
		||||
        jnz LeaveLoopCmps4
 | 
			
		||||
        add edx, 8
 | 
			
		||||
        jnz LoopCmps
 | 
			
		||||
        jmp short LenMaximum
 | 
			
		||||
LeaveLoopCmps4: add edx, 4
 | 
			
		||||
LeaveLoopCmps:  test    eax, 0000FFFFh
 | 
			
		||||
        jnz LenLower
 | 
			
		||||
        add edx,  2
 | 
			
		||||
        shr eax, 16
 | 
			
		||||
LenLower:   sub al, 1
 | 
			
		||||
        adc edx, 0
 | 
			
		||||
 | 
			
		||||
;;; Calculate the length of the match. If it is longer than MAX_MATCH,
 | 
			
		||||
;;; then automatically accept it as the best possible match and leave.
 | 
			
		||||
 | 
			
		||||
        lea eax, [edi + edx]
 | 
			
		||||
        mov edi, [scan]
 | 
			
		||||
        sub eax, edi
 | 
			
		||||
        cmp eax, MAX_MATCH
 | 
			
		||||
        jge LenMaximum
 | 
			
		||||
 | 
			
		||||
;;; If the length of the match is not longer than the best match we
 | 
			
		||||
;;; have so far, then forget it and return to the lookup loop.
 | 
			
		||||
 | 
			
		||||
        mov edx, [deflatestate]
 | 
			
		||||
        mov ebx, [bestlen]
 | 
			
		||||
        cmp eax, ebx
 | 
			
		||||
        jg  LongerMatch
 | 
			
		||||
        mov esi, [windowbestlen]
 | 
			
		||||
        mov edi, [edx + dsPrev]
 | 
			
		||||
        mov ebx, [scanend]
 | 
			
		||||
        mov edx, [chainlenwmask]
 | 
			
		||||
        jmp LookupLoop
 | 
			
		||||
 | 
			
		||||
;;;         s->match_start = cur_match;
 | 
			
		||||
;;;         best_len = len;
 | 
			
		||||
;;;         if (len >= nice_match) break;
 | 
			
		||||
;;;         scan_end = *(ushf*)(scan+best_len-1);
 | 
			
		||||
 | 
			
		||||
LongerMatch:    mov ebx, [nicematch]
 | 
			
		||||
        mov [bestlen], eax
 | 
			
		||||
        mov [edx + dsMatchStart], ecx
 | 
			
		||||
        cmp eax, ebx
 | 
			
		||||
        jge LeaveNow
 | 
			
		||||
        mov esi, [window]
 | 
			
		||||
        add esi, eax
 | 
			
		||||
        mov [windowbestlen], esi
 | 
			
		||||
        movzx   ebx, word ptr [edi + eax - 1]
 | 
			
		||||
        mov edi, [edx + dsPrev]
 | 
			
		||||
        mov [scanend], ebx
 | 
			
		||||
        mov edx, [chainlenwmask]
 | 
			
		||||
        jmp LookupLoop
 | 
			
		||||
 | 
			
		||||
;;; Accept the current string, with the maximum possible length.
 | 
			
		||||
 | 
			
		||||
LenMaximum: mov edx, [deflatestate]
 | 
			
		||||
        mov dword ptr [bestlen], MAX_MATCH
 | 
			
		||||
        mov [edx + dsMatchStart], ecx
 | 
			
		||||
 | 
			
		||||
;;; if ((uInt)best_len <= s->lookahead) return (uInt)best_len;
 | 
			
		||||
;;; return s->lookahead;
 | 
			
		||||
 | 
			
		||||
LeaveNow:
 | 
			
		||||
        mov edx, [deflatestate]
 | 
			
		||||
        mov ebx, [bestlen]
 | 
			
		||||
        mov eax, [edx + dsLookahead]
 | 
			
		||||
        cmp ebx, eax
 | 
			
		||||
        jg  LookaheadRet
 | 
			
		||||
        mov eax, ebx
 | 
			
		||||
LookaheadRet:
 | 
			
		||||
 | 
			
		||||
;;; Restore the stack and return from whence we came.
 | 
			
		||||
 | 
			
		||||
        add esp, LocalVarsSize
 | 
			
		||||
        pop ebx
 | 
			
		||||
        pop esi
 | 
			
		||||
        pop edi
 | 
			
		||||
        pop ebp
 | 
			
		||||
 | 
			
		||||
        ret
 | 
			
		||||
; please don't remove this string !
 | 
			
		||||
; Your can freely use match686 in any free or commercial app if you don't remove the string in the binary!
 | 
			
		||||
    db     0dh,0ah,"asm686 with masm, optimised assembly code from Brian Raiter, written 1998",0dh,0ah
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    IFDEF NOUNDERLINE
 | 
			
		||||
    longest_match       endp
 | 
			
		||||
    ELSE
 | 
			
		||||
    _longest_match      endp
 | 
			
		||||
    ENDIF
 | 
			
		||||
 | 
			
		||||
    IFDEF NOUNDERLINE
 | 
			
		||||
    match_init      proc near
 | 
			
		||||
                    ret
 | 
			
		||||
    match_init      endp
 | 
			
		||||
    ELSE
 | 
			
		||||
    _match_init     proc near
 | 
			
		||||
                    ret
 | 
			
		||||
    _match_init     endp
 | 
			
		||||
    ENDIF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
_TEXT   ends
 | 
			
		||||
end
 | 
			
		||||
@@ -1,3 +0,0 @@
 | 
			
		||||
cl /DASMV /I..\.. /O2 /c gvmat32c.c
 | 
			
		||||
ml /coff /Zi /c /Flgvmat32.lst gvmat32.asm
 | 
			
		||||
ml /coff /Zi /c /Flinffas32.lst inffas32.asm
 | 
			
		||||
@@ -7,15 +7,21 @@ longest_match() and inflate_fast().
 | 
			
		||||
 | 
			
		||||
Use instructions
 | 
			
		||||
----------------
 | 
			
		||||
Copy these files into the zlib source directory, then run the
 | 
			
		||||
appropriate makefile, as suggested below.
 | 
			
		||||
Assemble using MASM, and copy the object files into the zlib source
 | 
			
		||||
directory, then run the appropriate makefile, as suggested below.  You can
 | 
			
		||||
donwload MASM from here:
 | 
			
		||||
 | 
			
		||||
    http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=7a1c9da0-0510-44a2-b042-7ef370530c64
 | 
			
		||||
 | 
			
		||||
You can also get objects files here:
 | 
			
		||||
 | 
			
		||||
    http://www.winimage.com/zLibDll/zlib124_masm_obj.zip
 | 
			
		||||
 | 
			
		||||
Build instructions
 | 
			
		||||
------------------
 | 
			
		||||
* With Microsoft C and MASM:
 | 
			
		||||
nmake -f win32/Makefile.msc LOC="-DASMV -DASMINF" OBJA="gvmat32c.obj gvmat32.obj inffas32.obj"
 | 
			
		||||
nmake -f win32/Makefile.msc LOC="-DASMV -DASMINF" OBJA="match686.obj inffas32.obj"
 | 
			
		||||
 | 
			
		||||
* With Borland C and TASM:
 | 
			
		||||
make -f win32/Makefile.bor LOCAL_ZLIB="-DASMV -DASMINF" OBJA="gvmat32c.obj gvmat32.obj inffas32.obj" OBJPA="+gvmat32c.obj+gvmat32.obj+inffas32.obj"
 | 
			
		||||
make -f win32/Makefile.bor LOCAL_ZLIB="-DASMV -DASMINF" OBJA="match686.obj inffas32.obj" OBJPA="+match686c.obj+match686.obj+inffas32.obj"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										45
									
								
								contrib/minizip/Makefile.am
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								contrib/minizip/Makefile.am
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,45 @@
 | 
			
		||||
lib_LTLIBRARIES = libminizip.la
 | 
			
		||||
 | 
			
		||||
if COND_DEMOS
 | 
			
		||||
bin_PROGRAMS = miniunzip minizip
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
zlib_top_srcdir = $(top_srcdir)/../..
 | 
			
		||||
zlib_top_builddir = $(top_builddir)/../..
 | 
			
		||||
 | 
			
		||||
AM_CPPFLAGS = -I$(zlib_top_srcdir)
 | 
			
		||||
AM_LDFLAGS = -L$(zlib_top_builddir)
 | 
			
		||||
 | 
			
		||||
if WIN32
 | 
			
		||||
iowin32_src = iowin32.c
 | 
			
		||||
iowin32_h = iowin32.h
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
libminizip_la_SOURCES = \
 | 
			
		||||
	ioapi.c \
 | 
			
		||||
	mztools.c \
 | 
			
		||||
	unzip.c \
 | 
			
		||||
	zip.c \
 | 
			
		||||
	${iowin32_src}
 | 
			
		||||
 | 
			
		||||
libminizip_la_LDFLAGS = $(AM_LDFLAGS) -version-info 1:0:0 -lz
 | 
			
		||||
 | 
			
		||||
minizip_includedir = $(includedir)/minizip
 | 
			
		||||
minizip_include_HEADERS = \
 | 
			
		||||
	crypt.h \
 | 
			
		||||
	ioapi.h \
 | 
			
		||||
	mztools.h \
 | 
			
		||||
	unzip.h \
 | 
			
		||||
	zip.h \
 | 
			
		||||
	${iowin32_h}
 | 
			
		||||
 | 
			
		||||
pkgconfigdir = $(libdir)/pkgconfig
 | 
			
		||||
pkgconfig_DATA = minizip.pc
 | 
			
		||||
 | 
			
		||||
EXTRA_PROGRAMS = miniunzip minizip
 | 
			
		||||
 | 
			
		||||
miniunzip_SOURCES = miniunz.c
 | 
			
		||||
miniunzip_LDADD = libminizip.la
 | 
			
		||||
 | 
			
		||||
minizip_SOURCES = minizip.c
 | 
			
		||||
minizip_LDADD = libminizip.la -lz
 | 
			
		||||
							
								
								
									
										32
									
								
								contrib/minizip/configure.ac
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								contrib/minizip/configure.ac
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
#                                               -*- Autoconf -*-
 | 
			
		||||
# Process this file with autoconf to produce a configure script.
 | 
			
		||||
 | 
			
		||||
AC_INIT([minizip], [1.2.8], [bugzilla.redhat.com])
 | 
			
		||||
AC_CONFIG_SRCDIR([minizip.c])
 | 
			
		||||
AM_INIT_AUTOMAKE([foreign])
 | 
			
		||||
LT_INIT
 | 
			
		||||
 | 
			
		||||
AC_MSG_CHECKING([whether to build example programs])
 | 
			
		||||
AC_ARG_ENABLE([demos], AC_HELP_STRING([--enable-demos], [build example programs]))
 | 
			
		||||
AM_CONDITIONAL([COND_DEMOS], [test "$enable_demos" = yes])
 | 
			
		||||
if test "$enable_demos" = yes
 | 
			
		||||
then
 | 
			
		||||
	AC_MSG_RESULT([yes])
 | 
			
		||||
else
 | 
			
		||||
	AC_MSG_RESULT([no])
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
case "${host}" in
 | 
			
		||||
	*-mingw* | mingw*)
 | 
			
		||||
		WIN32="yes"
 | 
			
		||||
		;;
 | 
			
		||||
	*)
 | 
			
		||||
		;;
 | 
			
		||||
esac
 | 
			
		||||
AM_CONDITIONAL([WIN32], [test "${WIN32}" = "yes"])
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
AC_SUBST([HAVE_UNISTD_H], [0])
 | 
			
		||||
AC_CHECK_HEADER([unistd.h], [HAVE_UNISTD_H=1], [])
 | 
			
		||||
AC_CONFIG_FILES([Makefile minizip.pc])
 | 
			
		||||
AC_OUTPUT
 | 
			
		||||
@@ -32,7 +32,7 @@
 | 
			
		||||
/***********************************************************************
 | 
			
		||||
 * Return the next byte in the pseudo-random sequence
 | 
			
		||||
 */
 | 
			
		||||
static int decrypt_byte(unsigned long* pkeys, const unsigned long* pcrc_32_tab)
 | 
			
		||||
static int decrypt_byte(unsigned long* pkeys, const z_crc_t* pcrc_32_tab)
 | 
			
		||||
{
 | 
			
		||||
    unsigned temp;  /* POTENTIAL BUG:  temp*(temp^1) may overflow in an
 | 
			
		||||
                     * unpredictable manner on 16-bit systems; not a problem
 | 
			
		||||
@@ -45,7 +45,7 @@ static int decrypt_byte(unsigned long* pkeys, const unsigned long* pcrc_32_tab)
 | 
			
		||||
/***********************************************************************
 | 
			
		||||
 * Update the encryption keys with the next byte of plain text
 | 
			
		||||
 */
 | 
			
		||||
static int update_keys(unsigned long* pkeys,const unsigned long* pcrc_32_tab,int c)
 | 
			
		||||
static int update_keys(unsigned long* pkeys,const z_crc_t* pcrc_32_tab,int c)
 | 
			
		||||
{
 | 
			
		||||
    (*(pkeys+0)) = CRC32((*(pkeys+0)), c);
 | 
			
		||||
    (*(pkeys+1)) += (*(pkeys+0)) & 0xff;
 | 
			
		||||
@@ -62,7 +62,7 @@ static int update_keys(unsigned long* pkeys,const unsigned long* pcrc_32_tab,int
 | 
			
		||||
 * Initialize the encryption keys and the random header according to
 | 
			
		||||
 * the given password.
 | 
			
		||||
 */
 | 
			
		||||
static void init_keys(const char* passwd,unsigned long* pkeys,const unsigned long* pcrc_32_tab)
 | 
			
		||||
static void init_keys(const char* passwd,unsigned long* pkeys,const z_crc_t* pcrc_32_tab)
 | 
			
		||||
{
 | 
			
		||||
    *(pkeys+0) = 305419896L;
 | 
			
		||||
    *(pkeys+1) = 591751049L;
 | 
			
		||||
@@ -91,7 +91,7 @@ static int crypthead(const char* passwd,      /* password string */
 | 
			
		||||
                     unsigned char* buf,      /* where to write header */
 | 
			
		||||
                     int bufSize,
 | 
			
		||||
                     unsigned long* pkeys,
 | 
			
		||||
                     const unsigned long* pcrc_32_tab,
 | 
			
		||||
                     const z_crc_t* pcrc_32_tab,
 | 
			
		||||
                     unsigned long crcForCrypting)
 | 
			
		||||
{
 | 
			
		||||
    int n;                       /* index in random header */
 | 
			
		||||
 
 | 
			
		||||
@@ -10,10 +10,32 @@
 | 
			
		||||
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#if (defined(_WIN32))
 | 
			
		||||
#if defined(_WIN32) && (!(defined(_CRT_SECURE_NO_WARNINGS)))
 | 
			
		||||
        #define _CRT_SECURE_NO_WARNINGS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__APPLE__) || defined(IOAPI_NO_64)
 | 
			
		||||
// In darwin and perhaps other BSD variants off_t is a 64 bit value, hence no need for specific 64 bit functions
 | 
			
		||||
#define FOPEN_FUNC(filename, mode) fopen(filename, mode)
 | 
			
		||||
	#ifdef __TARGET_OS__Web
 | 
			
		||||
		#define FTELLO_FUNC(stream) ftell(stream)
 | 
			
		||||
		#define FSEEKO_FUNC(stream, offset, origin) fseek(stream, offset, origin)
 | 
			
		||||
	#else
 | 
			
		||||
		#define FTELLO_FUNC(stream) ftello(stream)
 | 
			
		||||
		#define FSEEKO_FUNC(stream, offset, origin) fseeko(stream, offset, origin)
 | 
			
		||||
	#endif
 | 
			
		||||
#else
 | 
			
		||||
#define FOPEN_FUNC(filename, mode) fopen64(filename, mode)
 | 
			
		||||
	#ifdef __TARGET_OS__Web
 | 
			
		||||
		#define FTELLO_FUNC(stream) ftell64(stream)
 | 
			
		||||
		#define FSEEKO_FUNC(stream, offset, origin) fseek64(stream, offset, origin)
 | 
			
		||||
	#else
 | 
			
		||||
		#define FTELLO_FUNC(stream) ftello64(stream)
 | 
			
		||||
		#define FSEEKO_FUNC(stream, offset, origin) fseeko64(stream, offset, origin)
 | 
			
		||||
	#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#include "ioapi.h"
 | 
			
		||||
 | 
			
		||||
voidpf call_zopen64 (const zlib_filefunc64_32_def* pfilefunc,const void*filename,int mode)
 | 
			
		||||
@@ -47,7 +69,7 @@ ZPOS64_T call_ztell64 (const zlib_filefunc64_32_def* pfilefunc,voidpf filestream
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
        uLong tell_uLong = (*(pfilefunc->ztell32_file))(pfilefunc->zfile_func64.opaque,filestream);
 | 
			
		||||
        if ((tell_uLong) == ((uLong)-1))
 | 
			
		||||
        if ((tell_uLong) == MAXU32)
 | 
			
		||||
            return (ZPOS64_T)-1;
 | 
			
		||||
        else
 | 
			
		||||
            return tell_uLong;
 | 
			
		||||
@@ -112,7 +134,7 @@ static voidpf ZCALLBACK fopen64_file_func (voidpf opaque, const void* filename,
 | 
			
		||||
        mode_fopen = "wb";
 | 
			
		||||
 | 
			
		||||
    if ((filename!=NULL) && (mode_fopen != NULL))
 | 
			
		||||
        file = fopen64((const char*)filename, mode_fopen);
 | 
			
		||||
        file = FOPEN_FUNC((const char*)filename, mode_fopen);
 | 
			
		||||
    return file;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -142,7 +164,7 @@ static long ZCALLBACK ftell_file_func (voidpf opaque, voidpf stream)
 | 
			
		||||
static ZPOS64_T ZCALLBACK ftell64_file_func (voidpf opaque, voidpf stream)
 | 
			
		||||
{
 | 
			
		||||
    ZPOS64_T ret;
 | 
			
		||||
    ret = ftello64((FILE *)stream);
 | 
			
		||||
    ret = FTELLO_FUNC((FILE *)stream);
 | 
			
		||||
    return ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -188,7 +210,7 @@ static long ZCALLBACK fseek64_file_func (voidpf  opaque, voidpf stream, ZPOS64_T
 | 
			
		||||
    }
 | 
			
		||||
    ret = 0;
 | 
			
		||||
 | 
			
		||||
    if(fseeko64((FILE *)stream, offset, fseek_origin) != 0)
 | 
			
		||||
    if(FSEEKO_FUNC((FILE *)stream, offset, fseek_origin) != 0)
 | 
			
		||||
                        ret = -1;
 | 
			
		||||
 | 
			
		||||
    return ret;
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,7 @@
 | 
			
		||||
#ifndef _ZLIBIOAPI64_H
 | 
			
		||||
#define _ZLIBIOAPI64_H
 | 
			
		||||
 | 
			
		||||
#if (!defined(_WIN32)) && (!defined(WIN32))
 | 
			
		||||
#if (!defined(_WIN32)) && (!defined(WIN32)) && (!defined(__APPLE__))
 | 
			
		||||
 | 
			
		||||
  // Linux needs this to support file operation on files larger then 4+GB
 | 
			
		||||
  // But might need better if/def to select just the platforms that needs them.
 | 
			
		||||
@@ -38,6 +38,7 @@
 | 
			
		||||
        #ifndef _FILE_OFFSET_BIT
 | 
			
		||||
                #define _FILE_OFFSET_BIT 64
 | 
			
		||||
        #endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
@@ -49,6 +50,11 @@
 | 
			
		||||
#define ftello64 ftell
 | 
			
		||||
#define fseeko64 fseek
 | 
			
		||||
#else
 | 
			
		||||
#ifdef __FreeBSD__
 | 
			
		||||
#define fopen64 fopen
 | 
			
		||||
#define ftello64 ftello
 | 
			
		||||
#define fseeko64 fseeko
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef _MSC_VER
 | 
			
		||||
 #define fopen64 fopen
 | 
			
		||||
 #if (_MSC_VER >= 1400) && (!(defined(NO_MSCVER_FILE64_FUNC)))
 | 
			
		||||
@@ -85,6 +91,8 @@ typedef  64BIT_INT_CUSTOM_TYPE ZPOS64_T;
 | 
			
		||||
typedef uint64_t ZPOS64_T;
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
/* Maximum unsigned 32-bit value used as placeholder for zip64 */
 | 
			
		||||
#define MAXU32 0xffffffff
 | 
			
		||||
 | 
			
		||||
#if defined(_MSC_VER) || defined(__BORLANDC__)
 | 
			
		||||
typedef unsigned __int64 ZPOS64_T;
 | 
			
		||||
 
 | 
			
		||||
@@ -25,6 +25,13 @@
 | 
			
		||||
#define INVALID_SET_FILE_POINTER ((DWORD)-1)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#if defined(WINAPI_FAMILY_PARTITION) && (!(defined(IOWIN32_USING_WINRT_API)))
 | 
			
		||||
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
 | 
			
		||||
#define IOWIN32_USING_WINRT_API 1
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
voidpf  ZCALLBACK win32_open_file_func  OF((voidpf opaque, const char* filename, int mode));
 | 
			
		||||
uLong   ZCALLBACK win32_read_file_func  OF((voidpf opaque, voidpf stream, void* buf, uLong size));
 | 
			
		||||
uLong   ZCALLBACK win32_write_file_func OF((voidpf opaque, voidpf stream, const void* buf, uLong size));
 | 
			
		||||
@@ -93,8 +100,22 @@ voidpf ZCALLBACK win32_open64_file_func (voidpf opaque,const void* filename,int
 | 
			
		||||
 | 
			
		||||
    win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwShareMode,&dwFlagsAndAttributes);
 | 
			
		||||
 | 
			
		||||
#ifdef IOWIN32_USING_WINRT_API
 | 
			
		||||
#ifdef UNICODE
 | 
			
		||||
    if ((filename!=NULL) && (dwDesiredAccess != 0))
 | 
			
		||||
        hFile = CreateFile2((LPCTSTR)filename, dwDesiredAccess, dwShareMode, dwCreationDisposition, NULL);
 | 
			
		||||
#else
 | 
			
		||||
    if ((filename!=NULL) && (dwDesiredAccess != 0))
 | 
			
		||||
    {
 | 
			
		||||
        WCHAR filenameW[FILENAME_MAX + 0x200 + 1];
 | 
			
		||||
        MultiByteToWideChar(CP_ACP,0,(const char*)filename,-1,filenameW,FILENAME_MAX + 0x200);
 | 
			
		||||
        hFile = CreateFile2(filenameW, dwDesiredAccess, dwShareMode, dwCreationDisposition, NULL);
 | 
			
		||||
    }
 | 
			
		||||
#endif
 | 
			
		||||
#else
 | 
			
		||||
    if ((filename!=NULL) && (dwDesiredAccess != 0))
 | 
			
		||||
        hFile = CreateFile((LPCTSTR)filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    return win32_build_iowin(hFile);
 | 
			
		||||
}
 | 
			
		||||
@@ -108,8 +129,17 @@ voidpf ZCALLBACK win32_open64_file_funcA (voidpf opaque,const void* filename,int
 | 
			
		||||
 | 
			
		||||
    win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwShareMode,&dwFlagsAndAttributes);
 | 
			
		||||
 | 
			
		||||
#ifdef IOWIN32_USING_WINRT_API
 | 
			
		||||
    if ((filename!=NULL) && (dwDesiredAccess != 0))
 | 
			
		||||
    {
 | 
			
		||||
        WCHAR filenameW[FILENAME_MAX + 0x200 + 1];
 | 
			
		||||
        MultiByteToWideChar(CP_ACP,0,(const char*)filename,-1,filenameW,FILENAME_MAX + 0x200);
 | 
			
		||||
        hFile = CreateFile2(filenameW, dwDesiredAccess, dwShareMode, dwCreationDisposition, NULL);
 | 
			
		||||
    }
 | 
			
		||||
#else
 | 
			
		||||
    if ((filename!=NULL) && (dwDesiredAccess != 0))
 | 
			
		||||
        hFile = CreateFileA((LPCSTR)filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    return win32_build_iowin(hFile);
 | 
			
		||||
}
 | 
			
		||||
@@ -123,8 +153,13 @@ voidpf ZCALLBACK win32_open64_file_funcW (voidpf opaque,const void* filename,int
 | 
			
		||||
 | 
			
		||||
    win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwShareMode,&dwFlagsAndAttributes);
 | 
			
		||||
 | 
			
		||||
#ifdef IOWIN32_USING_WINRT_API
 | 
			
		||||
    if ((filename!=NULL) && (dwDesiredAccess != 0))
 | 
			
		||||
        hFile = CreateFile2((LPCWSTR)filename, dwDesiredAccess, dwShareMode, dwCreationDisposition,NULL);
 | 
			
		||||
#else
 | 
			
		||||
    if ((filename!=NULL) && (dwDesiredAccess != 0))
 | 
			
		||||
        hFile = CreateFileW((LPCWSTR)filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    return win32_build_iowin(hFile);
 | 
			
		||||
}
 | 
			
		||||
@@ -138,8 +173,22 @@ voidpf ZCALLBACK win32_open_file_func (voidpf opaque,const char* filename,int mo
 | 
			
		||||
 | 
			
		||||
    win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwShareMode,&dwFlagsAndAttributes);
 | 
			
		||||
 | 
			
		||||
#ifdef IOWIN32_USING_WINRT_API
 | 
			
		||||
#ifdef UNICODE
 | 
			
		||||
    if ((filename!=NULL) && (dwDesiredAccess != 0))
 | 
			
		||||
        hFile = CreateFile2((LPCTSTR)filename, dwDesiredAccess, dwShareMode, dwCreationDisposition, NULL);
 | 
			
		||||
#else
 | 
			
		||||
    if ((filename!=NULL) && (dwDesiredAccess != 0))
 | 
			
		||||
    {
 | 
			
		||||
        WCHAR filenameW[FILENAME_MAX + 0x200 + 1];
 | 
			
		||||
        MultiByteToWideChar(CP_ACP,0,(const char*)filename,-1,filenameW,FILENAME_MAX + 0x200);
 | 
			
		||||
        hFile = CreateFile2(filenameW, dwDesiredAccess, dwShareMode, dwCreationDisposition, NULL);
 | 
			
		||||
    }
 | 
			
		||||
#endif
 | 
			
		||||
#else
 | 
			
		||||
    if ((filename!=NULL) && (dwDesiredAccess != 0))
 | 
			
		||||
        hFile = CreateFile((LPCTSTR)filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    return win32_build_iowin(hFile);
 | 
			
		||||
}
 | 
			
		||||
@@ -188,6 +237,26 @@ uLong ZCALLBACK win32_write_file_func (voidpf opaque,voidpf stream,const void* b
 | 
			
		||||
    return ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static BOOL MySetFilePointerEx(HANDLE hFile, LARGE_INTEGER pos, LARGE_INTEGER *newPos,  DWORD dwMoveMethod)
 | 
			
		||||
{
 | 
			
		||||
#ifdef IOWIN32_USING_WINRT_API
 | 
			
		||||
    return SetFilePointerEx(hFile, pos, newPos, dwMoveMethod);
 | 
			
		||||
#else
 | 
			
		||||
    LONG lHigh = pos.HighPart;
 | 
			
		||||
    DWORD dwNewPos = SetFilePointer(hFile, pos.LowPart, &lHigh, FILE_CURRENT);
 | 
			
		||||
    BOOL fOk = TRUE;
 | 
			
		||||
    if (dwNewPos == 0xFFFFFFFF)
 | 
			
		||||
        if (GetLastError() != NO_ERROR)
 | 
			
		||||
            fOk = FALSE;
 | 
			
		||||
    if ((newPos != NULL) && (fOk))
 | 
			
		||||
    {
 | 
			
		||||
        newPos->LowPart = dwNewPos;
 | 
			
		||||
        newPos->HighPart = lHigh;
 | 
			
		||||
    }
 | 
			
		||||
    return fOk;
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
long ZCALLBACK win32_tell_file_func (voidpf opaque,voidpf stream)
 | 
			
		||||
{
 | 
			
		||||
    long ret=-1;
 | 
			
		||||
@@ -196,15 +265,17 @@ long ZCALLBACK win32_tell_file_func (voidpf opaque,voidpf stream)
 | 
			
		||||
        hFile = ((WIN32FILE_IOWIN*)stream) -> hf;
 | 
			
		||||
    if (hFile != NULL)
 | 
			
		||||
    {
 | 
			
		||||
        DWORD dwSet = SetFilePointer(hFile, 0, NULL, FILE_CURRENT);
 | 
			
		||||
        if (dwSet == INVALID_SET_FILE_POINTER)
 | 
			
		||||
        LARGE_INTEGER pos;
 | 
			
		||||
        pos.QuadPart = 0;
 | 
			
		||||
 | 
			
		||||
        if (!MySetFilePointerEx(hFile, pos, &pos, FILE_CURRENT))
 | 
			
		||||
        {
 | 
			
		||||
            DWORD dwErr = GetLastError();
 | 
			
		||||
            ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr;
 | 
			
		||||
            ret = -1;
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
            ret=(long)dwSet;
 | 
			
		||||
            ret=(long)pos.LowPart;
 | 
			
		||||
    }
 | 
			
		||||
    return ret;
 | 
			
		||||
}
 | 
			
		||||
@@ -218,17 +289,17 @@ ZPOS64_T ZCALLBACK win32_tell64_file_func (voidpf opaque, voidpf stream)
 | 
			
		||||
 | 
			
		||||
    if (hFile)
 | 
			
		||||
    {
 | 
			
		||||
        LARGE_INTEGER li;
 | 
			
		||||
        li.QuadPart = 0;
 | 
			
		||||
        li.u.LowPart = SetFilePointer(hFile, li.u.LowPart, &li.u.HighPart, FILE_CURRENT);
 | 
			
		||||
        if ( (li.LowPart == 0xFFFFFFFF) && (GetLastError() != NO_ERROR))
 | 
			
		||||
        LARGE_INTEGER pos;
 | 
			
		||||
        pos.QuadPart = 0;
 | 
			
		||||
 | 
			
		||||
        if (!MySetFilePointerEx(hFile, pos, &pos, FILE_CURRENT))
 | 
			
		||||
        {
 | 
			
		||||
            DWORD dwErr = GetLastError();
 | 
			
		||||
            ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr;
 | 
			
		||||
            ret = (ZPOS64_T)-1;
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
            ret=li.QuadPart;
 | 
			
		||||
            ret=pos.QuadPart;
 | 
			
		||||
    }
 | 
			
		||||
    return ret;
 | 
			
		||||
}
 | 
			
		||||
@@ -258,8 +329,9 @@ long ZCALLBACK win32_seek_file_func (voidpf opaque,voidpf stream,uLong offset,in
 | 
			
		||||
 | 
			
		||||
    if (hFile != NULL)
 | 
			
		||||
    {
 | 
			
		||||
        DWORD dwSet = SetFilePointer(hFile, offset, NULL, dwMoveMethod);
 | 
			
		||||
        if (dwSet == INVALID_SET_FILE_POINTER)
 | 
			
		||||
        LARGE_INTEGER pos;
 | 
			
		||||
        pos.QuadPart = offset;
 | 
			
		||||
        if (!MySetFilePointerEx(hFile, pos, NULL, dwMoveMethod))
 | 
			
		||||
        {
 | 
			
		||||
            DWORD dwErr = GetLastError();
 | 
			
		||||
            ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr;
 | 
			
		||||
@@ -296,9 +368,9 @@ long ZCALLBACK win32_seek64_file_func (voidpf opaque, voidpf stream,ZPOS64_T off
 | 
			
		||||
 | 
			
		||||
    if (hFile)
 | 
			
		||||
    {
 | 
			
		||||
        LARGE_INTEGER* li = (LARGE_INTEGER*)&offset;
 | 
			
		||||
        DWORD dwSet = SetFilePointer(hFile, li->u.LowPart, &li->u.HighPart, dwMoveMethod);
 | 
			
		||||
        if (dwSet == INVALID_SET_FILE_POINTER)
 | 
			
		||||
        LARGE_INTEGER pos;
 | 
			
		||||
        pos.QuadPart = offset;
 | 
			
		||||
        if (!MySetFilePointerEx(hFile, pos, NULL, FILE_CURRENT))
 | 
			
		||||
        {
 | 
			
		||||
            DWORD dwErr = GetLastError();
 | 
			
		||||
            ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr;
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@
 | 
			
		||||
         Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com )
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef _WIN32
 | 
			
		||||
#if (!defined(_WIN32)) && (!defined(WIN32)) && (!defined(__APPLE__))
 | 
			
		||||
        #ifndef __USE_FILE_OFFSET64
 | 
			
		||||
                #define __USE_FILE_OFFSET64
 | 
			
		||||
        #endif
 | 
			
		||||
@@ -27,6 +27,18 @@
 | 
			
		||||
        #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef __APPLE__
 | 
			
		||||
// In darwin and perhaps other BSD variants off_t is a 64 bit value, hence no need for specific 64 bit functions
 | 
			
		||||
#define FOPEN_FUNC(filename, mode) fopen(filename, mode)
 | 
			
		||||
#define FTELLO_FUNC(stream) ftello(stream)
 | 
			
		||||
#define FSEEKO_FUNC(stream, offset, origin) fseeko(stream, offset, origin)
 | 
			
		||||
#else
 | 
			
		||||
#define FOPEN_FUNC(filename, mode) fopen64(filename, mode)
 | 
			
		||||
#define FTELLO_FUNC(stream) ftello64(stream)
 | 
			
		||||
#define FSEEKO_FUNC(stream, offset, origin) fseeko64(stream, offset, origin)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
@@ -34,14 +46,15 @@
 | 
			
		||||
#include <errno.h>
 | 
			
		||||
#include <fcntl.h>
 | 
			
		||||
 | 
			
		||||
#ifdef unix
 | 
			
		||||
# include <unistd.h>
 | 
			
		||||
# include <utime.h>
 | 
			
		||||
#else
 | 
			
		||||
#ifdef _WIN32
 | 
			
		||||
# include <direct.h>
 | 
			
		||||
# include <io.h>
 | 
			
		||||
#else
 | 
			
		||||
# include <unistd.h>
 | 
			
		||||
# include <utime.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#include "unzip.h"
 | 
			
		||||
 | 
			
		||||
#define CASESENSITIVITY (0)
 | 
			
		||||
@@ -84,7 +97,7 @@ void change_file_date(filename,dosdate,tmu_date)
 | 
			
		||||
  SetFileTime(hFile,&ftm,&ftLastAcc,&ftm);
 | 
			
		||||
  CloseHandle(hFile);
 | 
			
		||||
#else
 | 
			
		||||
#ifdef unix
 | 
			
		||||
#ifdef unix || __APPLE__
 | 
			
		||||
  struct utimbuf ut;
 | 
			
		||||
  struct tm newdate;
 | 
			
		||||
  newdate.tm_sec = tmu_date.tm_sec;
 | 
			
		||||
@@ -114,10 +127,10 @@ int mymkdir(dirname)
 | 
			
		||||
    int ret=0;
 | 
			
		||||
#ifdef _WIN32
 | 
			
		||||
    ret = _mkdir(dirname);
 | 
			
		||||
#else
 | 
			
		||||
#ifdef unix
 | 
			
		||||
#elif unix
 | 
			
		||||
    ret = mkdir (dirname,0775);
 | 
			
		||||
#elif __APPLE__
 | 
			
		||||
    ret = mkdir (dirname,0775);
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
    return ret;
 | 
			
		||||
}
 | 
			
		||||
@@ -364,7 +377,7 @@ int do_extract_currentfile(uf,popt_extract_without_path,popt_overwrite,password)
 | 
			
		||||
        {
 | 
			
		||||
            char rep=0;
 | 
			
		||||
            FILE* ftestexist;
 | 
			
		||||
            ftestexist = fopen64(write_filename,"rb");
 | 
			
		||||
            ftestexist = FOPEN_FUNC(write_filename,"rb");
 | 
			
		||||
            if (ftestexist!=NULL)
 | 
			
		||||
            {
 | 
			
		||||
                fclose(ftestexist);
 | 
			
		||||
@@ -395,8 +408,7 @@ int do_extract_currentfile(uf,popt_extract_without_path,popt_overwrite,password)
 | 
			
		||||
 | 
			
		||||
        if ((skip==0) && (err==UNZ_OK))
 | 
			
		||||
        {
 | 
			
		||||
            fout=fopen64(write_filename,"wb");
 | 
			
		||||
 | 
			
		||||
            fout=FOPEN_FUNC(write_filename,"wb");
 | 
			
		||||
            /* some zipfile don't contain directory alone before file */
 | 
			
		||||
            if ((fout==NULL) && ((*popt_extract_without_path)==0) &&
 | 
			
		||||
                                (filename_withoutpath!=(char*)filename_inzip))
 | 
			
		||||
@@ -405,7 +417,7 @@ int do_extract_currentfile(uf,popt_extract_without_path,popt_overwrite,password)
 | 
			
		||||
                *(filename_withoutpath-1)='\0';
 | 
			
		||||
                makedir(write_filename);
 | 
			
		||||
                *(filename_withoutpath-1)=c;
 | 
			
		||||
                fout=fopen64(write_filename,"wb");
 | 
			
		||||
                fout=FOPEN_FUNC(write_filename,"wb");
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (fout==NULL)
 | 
			
		||||
@@ -518,7 +530,7 @@ int do_extract_onefile(uf,filename,opt_extract_without_path,opt_overwrite,passwo
 | 
			
		||||
        return 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#if MINIZIP_ENABLE_MAIN
 | 
			
		||||
int main(argc,argv)
 | 
			
		||||
    int argc;
 | 
			
		||||
    char *argv[];
 | 
			
		||||
@@ -646,3 +658,6 @@ int main(argc,argv)
 | 
			
		||||
 | 
			
		||||
    return ret_value;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										63
									
								
								contrib/minizip/miniunzip.1
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								contrib/minizip/miniunzip.1
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,63 @@
 | 
			
		||||
.\"                                      Hey, EMACS: -*- nroff -*-
 | 
			
		||||
.TH miniunzip 1 "Nov 7, 2001"
 | 
			
		||||
.\" Please adjust this date whenever revising the manpage.
 | 
			
		||||
.\"
 | 
			
		||||
.\" Some roff macros, for reference:
 | 
			
		||||
.\" .nh        disable hyphenation
 | 
			
		||||
.\" .hy        enable hyphenation
 | 
			
		||||
.\" .ad l      left justify
 | 
			
		||||
.\" .ad b      justify to both left and right margins
 | 
			
		||||
.\" .nf        disable filling
 | 
			
		||||
.\" .fi        enable filling
 | 
			
		||||
.\" .br        insert line break
 | 
			
		||||
.\" .sp <n>    insert n+1 empty lines
 | 
			
		||||
.\" for manpage-specific macros, see man(7)
 | 
			
		||||
.SH NAME
 | 
			
		||||
miniunzip - uncompress and examine ZIP archives
 | 
			
		||||
.SH SYNOPSIS
 | 
			
		||||
.B miniunzip
 | 
			
		||||
.RI [ -exvlo ]
 | 
			
		||||
zipfile [ files_to_extract ] [-d tempdir]
 | 
			
		||||
.SH DESCRIPTION
 | 
			
		||||
.B minizip
 | 
			
		||||
is a simple tool which allows the extraction of compressed file
 | 
			
		||||
archives in the ZIP format used by the MS-DOS utility PKZIP.  It was
 | 
			
		||||
written as a demonstration of the
 | 
			
		||||
.IR zlib (3)
 | 
			
		||||
library and therefore lack many of the features of the
 | 
			
		||||
.IR unzip (1)
 | 
			
		||||
program.
 | 
			
		||||
.SH OPTIONS
 | 
			
		||||
A number of options are supported.  With the exception of
 | 
			
		||||
.BI \-d\  tempdir
 | 
			
		||||
these must be supplied before any
 | 
			
		||||
other arguments and are:
 | 
			
		||||
.TP
 | 
			
		||||
.BI \-l\ ,\ \-\-v
 | 
			
		||||
List the files in the archive without extracting them.
 | 
			
		||||
.TP
 | 
			
		||||
.B \-o
 | 
			
		||||
Overwrite files without prompting for confirmation.
 | 
			
		||||
.TP
 | 
			
		||||
.B \-x
 | 
			
		||||
Extract files (default).
 | 
			
		||||
.PP
 | 
			
		||||
The
 | 
			
		||||
.I zipfile
 | 
			
		||||
argument is the name of the archive to process. The next argument can be used
 | 
			
		||||
to specify a single file to extract from the archive.
 | 
			
		||||
 | 
			
		||||
Lastly, the following option can be specified at the end of the command-line:
 | 
			
		||||
.TP
 | 
			
		||||
.BI \-d\  tempdir
 | 
			
		||||
Extract the archive in the directory
 | 
			
		||||
.I tempdir
 | 
			
		||||
rather than the current directory.
 | 
			
		||||
.SH SEE ALSO
 | 
			
		||||
.BR minizip (1),
 | 
			
		||||
.BR zlib (3),
 | 
			
		||||
.BR unzip (1).
 | 
			
		||||
.SH AUTHOR
 | 
			
		||||
This program was written by Gilles Vollant.  This manual page was
 | 
			
		||||
written by Mark Brown <broonie@sirena.org.uk>. The -d tempdir option
 | 
			
		||||
was added by Dirk Eddelbuettel <edd@debian.org>.
 | 
			
		||||
							
								
								
									
										46
									
								
								contrib/minizip/minizip.1
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								contrib/minizip/minizip.1
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
			
		||||
.\"                                      Hey, EMACS: -*- nroff -*-
 | 
			
		||||
.TH minizip 1 "May 2, 2001"
 | 
			
		||||
.\" Please adjust this date whenever revising the manpage.
 | 
			
		||||
.\"
 | 
			
		||||
.\" Some roff macros, for reference:
 | 
			
		||||
.\" .nh        disable hyphenation
 | 
			
		||||
.\" .hy        enable hyphenation
 | 
			
		||||
.\" .ad l      left justify
 | 
			
		||||
.\" .ad b      justify to both left and right margins
 | 
			
		||||
.\" .nf        disable filling
 | 
			
		||||
.\" .fi        enable filling
 | 
			
		||||
.\" .br        insert line break
 | 
			
		||||
.\" .sp <n>    insert n+1 empty lines
 | 
			
		||||
.\" for manpage-specific macros, see man(7)
 | 
			
		||||
.SH NAME
 | 
			
		||||
minizip - create ZIP archives
 | 
			
		||||
.SH SYNOPSIS
 | 
			
		||||
.B minizip
 | 
			
		||||
.RI [ -o ]
 | 
			
		||||
zipfile [ " files" ... ]
 | 
			
		||||
.SH DESCRIPTION
 | 
			
		||||
.B minizip
 | 
			
		||||
is a simple tool which allows the creation of compressed file archives
 | 
			
		||||
in the ZIP format used by the MS-DOS utility PKZIP.  It was written as
 | 
			
		||||
a demonstration of the
 | 
			
		||||
.IR zlib (3)
 | 
			
		||||
library and therefore lack many of the features of the
 | 
			
		||||
.IR zip (1)
 | 
			
		||||
program.
 | 
			
		||||
.SH OPTIONS
 | 
			
		||||
The first argument supplied is the name of the ZIP archive to create or
 | 
			
		||||
.RI -o
 | 
			
		||||
in which case it is ignored and the second argument treated as the
 | 
			
		||||
name of the ZIP file.  If the ZIP file already exists it will be
 | 
			
		||||
overwritten.
 | 
			
		||||
.PP
 | 
			
		||||
Subsequent arguments specify a list of files to place in the ZIP
 | 
			
		||||
archive.  If none are specified then an empty archive will be created.
 | 
			
		||||
.SH SEE ALSO
 | 
			
		||||
.BR miniunzip (1),
 | 
			
		||||
.BR zlib (3),
 | 
			
		||||
.BR zip (1).
 | 
			
		||||
.SH AUTHOR
 | 
			
		||||
This program was written by Gilles Vollant.  This manual page was
 | 
			
		||||
written by Mark Brown <broonie@sirena.org.uk>.
 | 
			
		||||
 | 
			
		||||
@@ -13,7 +13,7 @@
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef _WIN32
 | 
			
		||||
#if (!defined(_WIN32)) && (!defined(WIN32)) && (!defined(__APPLE__))
 | 
			
		||||
        #ifndef __USE_FILE_OFFSET64
 | 
			
		||||
                #define __USE_FILE_OFFSET64
 | 
			
		||||
        #endif
 | 
			
		||||
@@ -28,6 +28,19 @@
 | 
			
		||||
        #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef __APPLE__
 | 
			
		||||
// In darwin and perhaps other BSD variants off_t is a 64 bit value, hence no need for specific 64 bit functions
 | 
			
		||||
#define FOPEN_FUNC(filename, mode) fopen(filename, mode)
 | 
			
		||||
#define FTELLO_FUNC(stream) ftello(stream)
 | 
			
		||||
#define FSEEKO_FUNC(stream, offset, origin) fseeko(stream, offset, origin)
 | 
			
		||||
#else
 | 
			
		||||
#define FOPEN_FUNC(filename, mode) fopen64(filename, mode)
 | 
			
		||||
#define FTELLO_FUNC(stream) ftello64(stream)
 | 
			
		||||
#define FSEEKO_FUNC(stream, offset, origin) fseeko64(stream, offset, origin)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
@@ -35,14 +48,14 @@
 | 
			
		||||
#include <errno.h>
 | 
			
		||||
#include <fcntl.h>
 | 
			
		||||
 | 
			
		||||
#ifdef unix
 | 
			
		||||
#ifdef _WIN32
 | 
			
		||||
# include <direct.h>
 | 
			
		||||
# include <io.h>
 | 
			
		||||
#else
 | 
			
		||||
# include <unistd.h>
 | 
			
		||||
# include <utime.h>
 | 
			
		||||
# include <sys/types.h>
 | 
			
		||||
# include <sys/stat.h>
 | 
			
		||||
#else
 | 
			
		||||
# include <direct.h>
 | 
			
		||||
# include <io.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "zip.h"
 | 
			
		||||
@@ -81,7 +94,7 @@ uLong filetime(f, tmzip, dt)
 | 
			
		||||
  return ret;
 | 
			
		||||
}
 | 
			
		||||
#else
 | 
			
		||||
#ifdef unix
 | 
			
		||||
#ifdef unix || __APPLE__
 | 
			
		||||
uLong filetime(f, tmzip, dt)
 | 
			
		||||
    char *f;               /* name of file to get info on */
 | 
			
		||||
    tm_zip *tmzip;         /* return value: access, modific. and creation times */
 | 
			
		||||
@@ -142,7 +155,7 @@ int check_exist_file(filename)
 | 
			
		||||
{
 | 
			
		||||
    FILE* ftestexist;
 | 
			
		||||
    int ret = 1;
 | 
			
		||||
    ftestexist = fopen64(filename,"rb");
 | 
			
		||||
    ftestexist = FOPEN_FUNC(filename,"rb");
 | 
			
		||||
    if (ftestexist==NULL)
 | 
			
		||||
        ret = 0;
 | 
			
		||||
    else
 | 
			
		||||
@@ -173,7 +186,8 @@ int getFileCrc(const char* filenameinzip,void*buf,unsigned long size_buf,unsigne
 | 
			
		||||
{
 | 
			
		||||
   unsigned long calculate_crc=0;
 | 
			
		||||
   int err=ZIP_OK;
 | 
			
		||||
   FILE * fin = fopen64(filenameinzip,"rb");
 | 
			
		||||
   FILE * fin = FOPEN_FUNC(filenameinzip,"rb");
 | 
			
		||||
 | 
			
		||||
   unsigned long size_read = 0;
 | 
			
		||||
   unsigned long total_read = 0;
 | 
			
		||||
   if (fin==NULL)
 | 
			
		||||
@@ -211,13 +225,12 @@ int isLargeFile(const char* filename)
 | 
			
		||||
{
 | 
			
		||||
  int largeFile = 0;
 | 
			
		||||
  ZPOS64_T pos = 0;
 | 
			
		||||
  FILE* pFile = fopen64(filename, "rb");
 | 
			
		||||
  FILE* pFile = FOPEN_FUNC(filename, "rb");
 | 
			
		||||
 | 
			
		||||
  if(pFile != NULL)
 | 
			
		||||
  {
 | 
			
		||||
    int n = fseeko64(pFile, 0, SEEK_END);
 | 
			
		||||
 | 
			
		||||
    pos = ftello64(pFile);
 | 
			
		||||
    int n = FSEEKO_FUNC(pFile, 0, SEEK_END);
 | 
			
		||||
    pos = FTELLO_FUNC(pFile);
 | 
			
		||||
 | 
			
		||||
                printf("File : %s is %lld bytes\n", filename, pos);
 | 
			
		||||
 | 
			
		||||
@@ -447,7 +460,7 @@ int main(argc,argv)
 | 
			
		||||
                    printf("error in opening %s in zipfile\n",filenameinzip);
 | 
			
		||||
                else
 | 
			
		||||
                {
 | 
			
		||||
                    fin = fopen64(filenameinzip,"rb");
 | 
			
		||||
                    fin = FOPEN_FUNC(filenameinzip,"rb");
 | 
			
		||||
                    if (fin==NULL)
 | 
			
		||||
                    {
 | 
			
		||||
                        err=ZIP_ERRNO;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								contrib/minizip/minizip.pc.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								contrib/minizip/minizip.pc.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
prefix=@prefix@
 | 
			
		||||
exec_prefix=@exec_prefix@
 | 
			
		||||
libdir=@libdir@
 | 
			
		||||
includedir=@includedir@/minizip
 | 
			
		||||
 | 
			
		||||
Name: minizip
 | 
			
		||||
Description: Minizip zip file manipulation library
 | 
			
		||||
Requires:
 | 
			
		||||
Version: @PACKAGE_VERSION@
 | 
			
		||||
Libs: -L${libdir} -lminizip
 | 
			
		||||
Libs.private: -lz
 | 
			
		||||
Cflags: -I${includedir}
 | 
			
		||||
@@ -42,7 +42,7 @@ uLong* bytesRecovered;
 | 
			
		||||
    int entries = 0;
 | 
			
		||||
    uLong totalBytes = 0;
 | 
			
		||||
    char header[30];
 | 
			
		||||
    char filename[256];
 | 
			
		||||
    char filename[1024];
 | 
			
		||||
    char extra[1024];
 | 
			
		||||
    int offset = 0;
 | 
			
		||||
    int offsetCD = 0;
 | 
			
		||||
@@ -73,6 +73,7 @@ uLong* bytesRecovered;
 | 
			
		||||
 | 
			
		||||
        /* Filename */
 | 
			
		||||
        if (fnsize > 0) {
 | 
			
		||||
          if (fnsize < sizeof(filename)) {
 | 
			
		||||
            if (fread(filename, 1, fnsize, fpZip) == fnsize) {
 | 
			
		||||
                if (fwrite(filename, 1, fnsize, fpOut) == fnsize) {
 | 
			
		||||
                offset += fnsize;
 | 
			
		||||
@@ -84,6 +85,10 @@ uLong* bytesRecovered;
 | 
			
		||||
              err = Z_ERRNO;
 | 
			
		||||
              break;
 | 
			
		||||
            }
 | 
			
		||||
          } else {
 | 
			
		||||
            err = Z_ERRNO;
 | 
			
		||||
            break;
 | 
			
		||||
          }
 | 
			
		||||
        } else {
 | 
			
		||||
          err = Z_STREAM_ERROR;
 | 
			
		||||
          break;
 | 
			
		||||
@@ -91,6 +96,7 @@ uLong* bytesRecovered;
 | 
			
		||||
 | 
			
		||||
        /* Extra field */
 | 
			
		||||
        if (extsize > 0) {
 | 
			
		||||
          if (extsize < sizeof(extra)) {
 | 
			
		||||
            if (fread(extra, 1, extsize, fpZip) == extsize) {
 | 
			
		||||
              if (fwrite(extra, 1, extsize, fpOut) == extsize) {
 | 
			
		||||
                offset += extsize;
 | 
			
		||||
@@ -102,6 +108,10 @@ uLong* bytesRecovered;
 | 
			
		||||
              err = Z_ERRNO;
 | 
			
		||||
              break;
 | 
			
		||||
            }
 | 
			
		||||
          } else {
 | 
			
		||||
            err = Z_ERRNO;
 | 
			
		||||
            break;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /* Data */
 | 
			
		||||
 
 | 
			
		||||
@@ -28,4 +28,10 @@ extern int ZEXPORT unzRepair(const char* file,
 | 
			
		||||
                             uLong* nRecovered,
 | 
			
		||||
                             uLong* bytesRecovered);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -188,7 +188,7 @@ typedef struct
 | 
			
		||||
 | 
			
		||||
#    ifndef NOUNCRYPT
 | 
			
		||||
    unsigned long keys[3];     /* keys defining the pseudo-random sequence */
 | 
			
		||||
    const unsigned long* pcrc_32_tab;
 | 
			
		||||
    const z_crc_t* pcrc_32_tab;
 | 
			
		||||
#    endif
 | 
			
		||||
} unz64_s;
 | 
			
		||||
 | 
			
		||||
@@ -583,7 +583,8 @@ local ZPOS64_T unz64local_SearchCentralDir64(const zlib_filefunc64_32_def* pzlib
 | 
			
		||||
*/
 | 
			
		||||
local unzFile unzOpenInternal (const void *path,
 | 
			
		||||
                               zlib_filefunc64_32_def* pzlib_filefunc64_32_def,
 | 
			
		||||
                               int is64bitOpenFunction)
 | 
			
		||||
                               int is64bitOpenFunction,
 | 
			
		||||
                               unsigned int basicOffset)
 | 
			
		||||
{
 | 
			
		||||
    unz64_s us;
 | 
			
		||||
    unz64_s *s;
 | 
			
		||||
@@ -620,6 +621,14 @@ local unzFile unzOpenInternal (const void *path,
 | 
			
		||||
    if (us.filestream==NULL)
 | 
			
		||||
        return NULL;
 | 
			
		||||
 | 
			
		||||
    if (ZSEEK64(us.z_filefunc,
 | 
			
		||||
                us.filestream,
 | 
			
		||||
                basicOffset,
 | 
			
		||||
                ZLIB_FILEFUNC_SEEK_SET)!=0)
 | 
			
		||||
    {
 | 
			
		||||
        err=UNZ_ERRNO;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    central_pos = unz64local_SearchCentralDir64(&us.z_filefunc,us.filestream);
 | 
			
		||||
    if (central_pos)
 | 
			
		||||
    {
 | 
			
		||||
@@ -769,10 +778,10 @@ extern unzFile ZEXPORT unzOpen2 (const char *path,
 | 
			
		||||
    {
 | 
			
		||||
        zlib_filefunc64_32_def zlib_filefunc64_32_def_fill;
 | 
			
		||||
        fill_zlib_filefunc64_32_def_from_filefunc32(&zlib_filefunc64_32_def_fill,pzlib_filefunc32_def);
 | 
			
		||||
        return unzOpenInternal(path, &zlib_filefunc64_32_def_fill, 0);
 | 
			
		||||
        return unzOpenInternal(path, &zlib_filefunc64_32_def_fill, 0, 0);
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
        return unzOpenInternal(path, NULL, 0);
 | 
			
		||||
        return unzOpenInternal(path, NULL, 0, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
extern unzFile ZEXPORT unzOpen2_64 (const void *path,
 | 
			
		||||
@@ -784,26 +793,31 @@ extern unzFile ZEXPORT unzOpen2_64 (const void *path,
 | 
			
		||||
        zlib_filefunc64_32_def_fill.zfile_func64 = *pzlib_filefunc_def;
 | 
			
		||||
        zlib_filefunc64_32_def_fill.ztell32_file = NULL;
 | 
			
		||||
        zlib_filefunc64_32_def_fill.zseek32_file = NULL;
 | 
			
		||||
        return unzOpenInternal(path, &zlib_filefunc64_32_def_fill, 1);
 | 
			
		||||
        return unzOpenInternal(path, &zlib_filefunc64_32_def_fill, 1, 0);
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
        return unzOpenInternal(path, NULL, 1);
 | 
			
		||||
        return unzOpenInternal(path, NULL, 1, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
extern unzFile ZEXPORT unzOpen (const char *path)
 | 
			
		||||
{
 | 
			
		||||
    return unzOpenInternal(path, NULL, 0);
 | 
			
		||||
    return unzOpenInternal(path, NULL, 0, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
extern unzFile ZEXPORT unzOpenOffset (const char *path, unsigned int basicOffset)
 | 
			
		||||
{
 | 
			
		||||
    return unzOpenInternal(path, NULL, 0, basicOffset);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
extern unzFile ZEXPORT unzOpen64 (const void *path)
 | 
			
		||||
{
 | 
			
		||||
    return unzOpenInternal(path, NULL, 1);
 | 
			
		||||
    return unzOpenInternal(path, NULL, 1, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
  Close a ZipFile opened with unzipOpen.
 | 
			
		||||
  If there is files inside the .Zip opened with unzipOpenCurrentFile (see later),
 | 
			
		||||
    these files MUST be closed with unzipCloseCurrentFile before call unzipClose.
 | 
			
		||||
  Close a ZipFile opened with unzOpen.
 | 
			
		||||
  If there is files inside the .Zip opened with unzOpenCurrentFile (see later),
 | 
			
		||||
    these files MUST be closed with unzCloseCurrentFile before call unzClose.
 | 
			
		||||
  return UNZ_OK if there is no problem. */
 | 
			
		||||
extern int ZEXPORT unzClose (unzFile file)
 | 
			
		||||
{
 | 
			
		||||
@@ -1040,26 +1054,26 @@ local int unz64local_GetCurrentFileInfoInternal (unzFile file,
 | 
			
		||||
            {
 | 
			
		||||
                                                        uLong uL;
 | 
			
		||||
 | 
			
		||||
                                                                if(file_info.uncompressed_size == (ZPOS64_T)(unsigned long)-1)
 | 
			
		||||
                                                                if(file_info.uncompressed_size == MAXU32)
 | 
			
		||||
                                                                {
 | 
			
		||||
                                                                        if (unz64local_getLong64(&s->z_filefunc, s->filestream,&file_info.uncompressed_size) != UNZ_OK)
 | 
			
		||||
                                                                                        err=UNZ_ERRNO;
 | 
			
		||||
                                                                }
 | 
			
		||||
 | 
			
		||||
                                                                if(file_info.compressed_size == (ZPOS64_T)(unsigned long)-1)
 | 
			
		||||
                                                                if(file_info.compressed_size == MAXU32)
 | 
			
		||||
                                                                {
 | 
			
		||||
                                                                        if (unz64local_getLong64(&s->z_filefunc, s->filestream,&file_info.compressed_size) != UNZ_OK)
 | 
			
		||||
                                                                                  err=UNZ_ERRNO;
 | 
			
		||||
                                                                }
 | 
			
		||||
 | 
			
		||||
                                                                if(file_info_internal.offset_curfile == (ZPOS64_T)(unsigned long)-1)
 | 
			
		||||
                                                                if(file_info_internal.offset_curfile == MAXU32)
 | 
			
		||||
                                                                {
 | 
			
		||||
                                                                        /* Relative Header offset */
 | 
			
		||||
                                                                        if (unz64local_getLong64(&s->z_filefunc, s->filestream,&file_info_internal.offset_curfile) != UNZ_OK)
 | 
			
		||||
                                                                                err=UNZ_ERRNO;
 | 
			
		||||
                                                                }
 | 
			
		||||
 | 
			
		||||
                                                                if(file_info.disk_num_start == (unsigned long)-1)
 | 
			
		||||
                                                                if(file_info.disk_num_start == MAXU32)
 | 
			
		||||
                                                                {
 | 
			
		||||
                                                                        /* Disk Start Number */
 | 
			
		||||
                                                                        if (unz64local_getLong(&s->z_filefunc, s->filestream,&uL) != UNZ_OK)
 | 
			
		||||
@@ -1145,7 +1159,7 @@ extern int ZEXPORT unzGetCurrentFileInfo (unzFile file,
 | 
			
		||||
                                                szFileName,fileNameBufferSize,
 | 
			
		||||
                                                extraField,extraFieldBufferSize,
 | 
			
		||||
                                                szComment,commentBufferSize);
 | 
			
		||||
    if (err==UNZ_OK)
 | 
			
		||||
    if ((err==UNZ_OK) && (pfile_info != NULL))
 | 
			
		||||
    {
 | 
			
		||||
        pfile_info->version = file_info64.version;
 | 
			
		||||
        pfile_info->version_needed = file_info64.version_needed;
 | 
			
		||||
@@ -1223,7 +1237,7 @@ extern int ZEXPORT unzGoToNextFile (unzFile  file)
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
  Try locate the file szFileName in the zipfile.
 | 
			
		||||
  For the iCaseSensitivity signification, see unzipStringFileNameCompare
 | 
			
		||||
  For the iCaseSensitivity signification, see unzStringFileNameCompare
 | 
			
		||||
 | 
			
		||||
  return value :
 | 
			
		||||
  UNZ_OK if the file is found. It becomes the current file.
 | 
			
		||||
@@ -1696,7 +1710,7 @@ extern int ZEXPORT unzReadCurrentFile  (unzFile file, voidp buf, unsigned len)
 | 
			
		||||
        return UNZ_PARAMERROR;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    if ((pfile_in_zip_read_info->read_buffer == NULL))
 | 
			
		||||
    if (pfile_in_zip_read_info->read_buffer == NULL)
 | 
			
		||||
        return UNZ_END_OF_LIST_OF_FILE;
 | 
			
		||||
    if (len==0)
 | 
			
		||||
        return 0;
 | 
			
		||||
@@ -1998,7 +2012,7 @@ extern int ZEXPORT unzGetLocalExtrafield (unzFile file, voidp buf, unsigned len)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
  Close the file in zip opened with unzipOpenCurrentFile
 | 
			
		||||
  Close the file in zip opened with unzOpenCurrentFile
 | 
			
		||||
  Return UNZ_CRCERROR if all the file was read but the CRC is not good
 | 
			
		||||
*/
 | 
			
		||||
extern int ZEXPORT unzCloseCurrentFile (unzFile file)
 | 
			
		||||
 
 | 
			
		||||
@@ -164,6 +164,7 @@ extern int ZEXPORT unzStringFileNameCompare OF ((const char* fileName1,
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
extern unzFile ZEXPORT unzOpen OF((const char *path));
 | 
			
		||||
extern unzFile ZEXPORT unzOpenOffset OF((const char *path, unsigned int basicOffset));
 | 
			
		||||
extern unzFile ZEXPORT unzOpen64 OF((const void *path));
 | 
			
		||||
/*
 | 
			
		||||
  Open a Zip file. path contain the full pathname (by example,
 | 
			
		||||
@@ -197,9 +198,9 @@ extern unzFile ZEXPORT unzOpen2_64 OF((const void *path,
 | 
			
		||||
 | 
			
		||||
extern int ZEXPORT unzClose OF((unzFile file));
 | 
			
		||||
/*
 | 
			
		||||
  Close a ZipFile opened with unzipOpen.
 | 
			
		||||
  Close a ZipFile opened with unzOpen.
 | 
			
		||||
  If there is files inside the .Zip opened with unzOpenCurrentFile (see later),
 | 
			
		||||
    these files MUST be closed with unzipCloseCurrentFile before call unzipClose.
 | 
			
		||||
    these files MUST be closed with unzCloseCurrentFile before call unzClose.
 | 
			
		||||
  return UNZ_OK if there is no problem. */
 | 
			
		||||
 | 
			
		||||
extern int ZEXPORT unzGetGlobalInfo OF((unzFile file,
 | 
			
		||||
 
 | 
			
		||||
@@ -157,7 +157,7 @@ typedef struct
 | 
			
		||||
    ZPOS64_T totalUncompressedData;
 | 
			
		||||
#ifndef NOCRYPT
 | 
			
		||||
    unsigned long keys[3];     /* keys defining the pseudo-random sequence */
 | 
			
		||||
    const unsigned long* pcrc_32_tab;
 | 
			
		||||
    const z_crc_t* pcrc_32_tab;
 | 
			
		||||
    int crypt_header_size;
 | 
			
		||||
#endif
 | 
			
		||||
} curfile64_info;
 | 
			
		||||
@@ -1067,6 +1067,7 @@ extern int ZEXPORT zipOpenNewFileInZip4_64 (zipFile file, const char* filename,
 | 
			
		||||
    int err = ZIP_OK;
 | 
			
		||||
 | 
			
		||||
#    ifdef NOCRYPT
 | 
			
		||||
    (crcForCrypting);
 | 
			
		||||
    if (password != NULL)
 | 
			
		||||
        return ZIP_PARAMERROR;
 | 
			
		||||
#    endif
 | 
			
		||||
@@ -1114,9 +1115,9 @@ extern int ZEXPORT zipOpenNewFileInZip4_64 (zipFile file, const char* filename,
 | 
			
		||||
    zi->ci.flag = flagBase;
 | 
			
		||||
    if ((level==8) || (level==9))
 | 
			
		||||
      zi->ci.flag |= 2;
 | 
			
		||||
    if ((level==2))
 | 
			
		||||
    if (level==2)
 | 
			
		||||
      zi->ci.flag |= 4;
 | 
			
		||||
    if ((level==1))
 | 
			
		||||
    if (level==1)
 | 
			
		||||
      zi->ci.flag |= 6;
 | 
			
		||||
    if (password != NULL)
 | 
			
		||||
      zi->ci.flag |= 1;
 | 
			
		||||
@@ -1710,7 +1711,7 @@ extern int ZEXPORT zipCloseFileInZipRaw64 (zipFile file, ZPOS64_T uncompressed_s
 | 
			
		||||
        if (err==ZIP_OK)
 | 
			
		||||
            err = zip64local_putValue(&zi->z_filefunc,zi->filestream,crc32,4); /* crc 32, unknown */
 | 
			
		||||
 | 
			
		||||
        if(uncompressed_size >= 0xffffffff)
 | 
			
		||||
        if(uncompressed_size >= 0xffffffff || compressed_size >= 0xffffffff )
 | 
			
		||||
        {
 | 
			
		||||
          if(zi->ci.pos_zip64extrainfo > 0)
 | 
			
		||||
          {
 | 
			
		||||
@@ -1724,6 +1725,8 @@ extern int ZEXPORT zipCloseFileInZipRaw64 (zipFile file, ZPOS64_T uncompressed_s
 | 
			
		||||
            if (err==ZIP_OK) /* uncompressed size, unknown */
 | 
			
		||||
              err = zip64local_putValue(&zi->z_filefunc, zi->filestream, compressed_size, 8);
 | 
			
		||||
          }
 | 
			
		||||
          else
 | 
			
		||||
              err = ZIP_BADZIPFILE; // Caller passed zip64 = 0, so no room for zip64 info -> fatal
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
@@ -1919,7 +1922,7 @@ extern int ZEXPORT zipClose (zipFile file, const char* global_comment)
 | 
			
		||||
    free_linkedlist(&(zi->central_dir));
 | 
			
		||||
 | 
			
		||||
    pos = centraldir_pos_inzip - zi->add_position_when_writting_offset;
 | 
			
		||||
    if(pos >= 0xffffffff)
 | 
			
		||||
    if(pos >= 0xffffffff || zi->number_entry > 0xFFFF)
 | 
			
		||||
    {
 | 
			
		||||
      ZPOS64_T Zip64EOCDpos = ZTELL64(zi->z_filefunc,zi->filestream);
 | 
			
		||||
      Write_Zip64EndOfCentralDirectoryRecord(zi, size_centraldir, centraldir_pos_inzip);
 | 
			
		||||
 
 | 
			
		||||
@@ -63,9 +63,9 @@ uncompr.obj: uncompr.c zlib.h zconf.h
 | 
			
		||||
 | 
			
		||||
zutil.obj: zutil.c zutil.h zlib.h zconf.h
 | 
			
		||||
 | 
			
		||||
example.obj: example.c zlib.h zconf.h
 | 
			
		||||
example.obj: test/example.c zlib.h zconf.h
 | 
			
		||||
 | 
			
		||||
minigzip.obj: minigzip.c zlib.h zconf.h
 | 
			
		||||
minigzip.obj: test/minigzip.c zlib.h zconf.h
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# For the sake of the old Borland make,
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,8 @@ unit zlibpas;
 | 
			
		||||
interface
 | 
			
		||||
 | 
			
		||||
const
 | 
			
		||||
  ZLIB_VERSION = '1.2.3';
 | 
			
		||||
  ZLIB_VERSION = '1.2.8';
 | 
			
		||||
  ZLIB_VERNUM  = $1280;
 | 
			
		||||
 | 
			
		||||
type
 | 
			
		||||
  alloc_func = function(opaque: Pointer; items, size: Integer): Pointer;
 | 
			
		||||
@@ -45,6 +46,23 @@ type
 | 
			
		||||
    reserved: LongInt;    (* reserved for future use *)
 | 
			
		||||
  end;
 | 
			
		||||
 | 
			
		||||
  gz_headerp = ^gz_header;
 | 
			
		||||
  gz_header = packed record
 | 
			
		||||
    text: Integer;        (* true if compressed data believed to be text *)
 | 
			
		||||
    time: LongInt;        (* modification time *)
 | 
			
		||||
    xflags: Integer;      (* extra flags (not used when writing a gzip file) *)
 | 
			
		||||
    os: Integer;          (* operating system *)
 | 
			
		||||
    extra: PChar;         (* pointer to extra field or Z_NULL if none *)
 | 
			
		||||
    extra_len: Integer;   (* extra field length (valid if extra != Z_NULL) *)
 | 
			
		||||
    extra_max: Integer;   (* space at extra (only when reading header) *)
 | 
			
		||||
    name: PChar;          (* pointer to zero-terminated file name or Z_NULL *)
 | 
			
		||||
    name_max: Integer;    (* space at name (only when reading header) *)
 | 
			
		||||
    comment: PChar;       (* pointer to zero-terminated comment or Z_NULL *)
 | 
			
		||||
    comm_max: Integer;    (* space at comment (only when reading header) *)
 | 
			
		||||
    hcrc: Integer;        (* true if there was or will be a header crc *)
 | 
			
		||||
    done: Integer;        (* true when done reading gzip header *)
 | 
			
		||||
  end;
 | 
			
		||||
 | 
			
		||||
(* constants *)
 | 
			
		||||
const
 | 
			
		||||
  Z_NO_FLUSH      = 0;
 | 
			
		||||
@@ -52,6 +70,8 @@ const
 | 
			
		||||
  Z_SYNC_FLUSH    = 2;
 | 
			
		||||
  Z_FULL_FLUSH    = 3;
 | 
			
		||||
  Z_FINISH        = 4;
 | 
			
		||||
  Z_BLOCK         = 5;
 | 
			
		||||
  Z_TREES         = 6;
 | 
			
		||||
 | 
			
		||||
  Z_OK            =  0;
 | 
			
		||||
  Z_STREAM_END    =  1;
 | 
			
		||||
@@ -71,9 +91,11 @@ const
 | 
			
		||||
  Z_FILTERED            = 1;
 | 
			
		||||
  Z_HUFFMAN_ONLY        = 2;
 | 
			
		||||
  Z_RLE                 = 3;
 | 
			
		||||
  Z_FIXED               = 4;
 | 
			
		||||
  Z_DEFAULT_STRATEGY    = 0;
 | 
			
		||||
 | 
			
		||||
  Z_BINARY   = 0;
 | 
			
		||||
  Z_TEXT     = 1;
 | 
			
		||||
  Z_ASCII    = 1;
 | 
			
		||||
  Z_UNKNOWN  = 2;
 | 
			
		||||
 | 
			
		||||
@@ -96,14 +118,21 @@ function deflateSetDictionary(var strm: z_stream; const dictionary: PChar;
 | 
			
		||||
function deflateCopy(var dest, source: z_stream): Integer;
 | 
			
		||||
function deflateReset(var strm: z_stream): Integer;
 | 
			
		||||
function deflateParams(var strm: z_stream; level, strategy: Integer): Integer;
 | 
			
		||||
function deflateTune(var strm: z_stream; good_length, max_lazy, nice_length, max_chain: Integer): Integer;
 | 
			
		||||
function deflateBound(var strm: z_stream; sourceLen: LongInt): LongInt;
 | 
			
		||||
function deflatePending(var strm: z_stream; var pending: Integer; var bits: Integer): Integer;
 | 
			
		||||
function deflatePrime(var strm: z_stream; bits, value: Integer): Integer;
 | 
			
		||||
function deflateSetHeader(var strm: z_stream; head: gz_header): Integer;
 | 
			
		||||
function inflateInit2(var strm: z_stream; windowBits: Integer): Integer;
 | 
			
		||||
function inflateSetDictionary(var strm: z_stream; const dictionary: PChar;
 | 
			
		||||
                              dictLength: Integer): Integer;
 | 
			
		||||
function inflateSync(var strm: z_stream): Integer;
 | 
			
		||||
function inflateCopy(var dest, source: z_stream): Integer;
 | 
			
		||||
function inflateReset(var strm: z_stream): Integer;
 | 
			
		||||
function inflateReset2(var strm: z_stream; windowBits: Integer): Integer;
 | 
			
		||||
function inflatePrime(var strm: z_stream; bits, value: Integer): Integer;
 | 
			
		||||
function inflateMark(var strm: z_stream): LongInt;
 | 
			
		||||
function inflateGetHeader(var strm: z_stream; var head: gz_header): Integer;
 | 
			
		||||
function inflateBackInit(var strm: z_stream;
 | 
			
		||||
                         windowBits: Integer; window: PChar): Integer;
 | 
			
		||||
function inflateBack(var strm: z_stream; in_fn: in_func; in_desc: Pointer;
 | 
			
		||||
@@ -123,7 +152,9 @@ function uncompress(dest: PChar; var destLen: LongInt;
 | 
			
		||||
 | 
			
		||||
(* checksum functions *)
 | 
			
		||||
function adler32(adler: LongInt; const buf: PChar; len: Integer): LongInt;
 | 
			
		||||
function adler32_combine(adler1, adler2, len2: LongInt): LongInt;
 | 
			
		||||
function crc32(crc: LongInt; const buf: PChar; len: Integer): LongInt;
 | 
			
		||||
function crc32_combine(crc1, crc2, len2: LongInt): LongInt;
 | 
			
		||||
 | 
			
		||||
(* various hacks, don't look :) *)
 | 
			
		||||
function deflateInit_(var strm: z_stream; level: Integer;
 | 
			
		||||
@@ -155,10 +186,12 @@ implementation
 | 
			
		||||
{$L zutil.obj}
 | 
			
		||||
 | 
			
		||||
function adler32; external;
 | 
			
		||||
function adler32_combine; external;
 | 
			
		||||
function compress; external;
 | 
			
		||||
function compress2; external;
 | 
			
		||||
function compressBound; external;
 | 
			
		||||
function crc32; external;
 | 
			
		||||
function crc32_combine; external;
 | 
			
		||||
function deflate; external;
 | 
			
		||||
function deflateBound; external;
 | 
			
		||||
function deflateCopy; external;
 | 
			
		||||
@@ -166,18 +199,25 @@ function deflateEnd; external;
 | 
			
		||||
function deflateInit_; external;
 | 
			
		||||
function deflateInit2_; external;
 | 
			
		||||
function deflateParams; external;
 | 
			
		||||
function deflatePending; external;
 | 
			
		||||
function deflatePrime; external;
 | 
			
		||||
function deflateReset; external;
 | 
			
		||||
function deflateSetDictionary; external;
 | 
			
		||||
function deflateSetHeader; external;
 | 
			
		||||
function deflateTune; external;
 | 
			
		||||
function inflate; external;
 | 
			
		||||
function inflateBack; external;
 | 
			
		||||
function inflateBackEnd; external;
 | 
			
		||||
function inflateBackInit_; external;
 | 
			
		||||
function inflateCopy; external;
 | 
			
		||||
function inflateEnd; external;
 | 
			
		||||
function inflateGetHeader; external;
 | 
			
		||||
function inflateInit_; external;
 | 
			
		||||
function inflateInit2_; external;
 | 
			
		||||
function inflateMark; external;
 | 
			
		||||
function inflatePrime; external;
 | 
			
		||||
function inflateReset; external;
 | 
			
		||||
function inflateReset2; external;
 | 
			
		||||
function inflateSetDictionary; external;
 | 
			
		||||
function inflateSync; external;
 | 
			
		||||
function uncompress; external;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,42 @@
 | 
			
		||||
puff: puff.c puff.h
 | 
			
		||||
	cc -DTEST -o puff puff.c
 | 
			
		||||
CFLAGS=-O
 | 
			
		||||
 | 
			
		||||
puff: puff.o pufftest.o
 | 
			
		||||
 | 
			
		||||
puff.o: puff.h
 | 
			
		||||
 | 
			
		||||
pufftest.o: puff.h
 | 
			
		||||
 | 
			
		||||
test: puff
 | 
			
		||||
	puff zeros.raw
 | 
			
		||||
 | 
			
		||||
puft: puff.c puff.h pufftest.o
 | 
			
		||||
	cc -fprofile-arcs -ftest-coverage -o puft puff.c pufftest.o
 | 
			
		||||
 | 
			
		||||
# puff full coverage test (should say 100%)
 | 
			
		||||
cov: puft
 | 
			
		||||
	@rm -f *.gcov *.gcda
 | 
			
		||||
	@puft -w zeros.raw 2>&1 | cat > /dev/null
 | 
			
		||||
	@echo '04' | xxd -r -p | puft 2> /dev/null || test $$? -eq 2
 | 
			
		||||
	@echo '00' | xxd -r -p | puft 2> /dev/null || test $$? -eq 2
 | 
			
		||||
	@echo '00 00 00 00 00' | xxd -r -p | puft 2> /dev/null || test $$? -eq 254
 | 
			
		||||
	@echo '00 01 00 fe ff' | xxd -r -p | puft 2> /dev/null || test $$? -eq 2
 | 
			
		||||
	@echo '01 01 00 fe ff 0a' | xxd -r -p | puft -f 2>&1 | cat > /dev/null
 | 
			
		||||
	@echo '02 7e ff ff' | xxd -r -p | puft 2> /dev/null || test $$? -eq 246
 | 
			
		||||
	@echo '02' | xxd -r -p | puft 2> /dev/null || test $$? -eq 2
 | 
			
		||||
	@echo '04 80 49 92 24 49 92 24 0f b4 ff ff c3 04' | xxd -r -p | puft 2> /dev/null || test $$? -eq 2
 | 
			
		||||
	@echo '04 80 49 92 24 49 92 24 71 ff ff 93 11 00' | xxd -r -p | puft 2> /dev/null || test $$? -eq 249
 | 
			
		||||
	@echo '04 c0 81 08 00 00 00 00 20 7f eb 0b 00 00' | xxd -r -p | puft 2> /dev/null || test $$? -eq 246
 | 
			
		||||
	@echo '0b 00 00' | xxd -r -p | puft -f 2>&1 | cat > /dev/null
 | 
			
		||||
	@echo '1a 07' | xxd -r -p | puft 2> /dev/null || test $$? -eq 246
 | 
			
		||||
	@echo '0c c0 81 00 00 00 00 00 90 ff 6b 04' | xxd -r -p | puft 2> /dev/null || test $$? -eq 245
 | 
			
		||||
	@puft -f zeros.raw 2>&1 | cat > /dev/null
 | 
			
		||||
	@echo 'fc 00 00' | xxd -r -p | puft 2> /dev/null || test $$? -eq 253
 | 
			
		||||
	@echo '04 00 fe ff' | xxd -r -p | puft 2> /dev/null || test $$? -eq 252
 | 
			
		||||
	@echo '04 00 24 49' | xxd -r -p | puft 2> /dev/null || test $$? -eq 251
 | 
			
		||||
	@echo '04 80 49 92 24 49 92 24 0f b4 ff ff c3 84' | xxd -r -p | puft 2> /dev/null || test $$? -eq 248
 | 
			
		||||
	@echo '04 00 24 e9 ff ff' | xxd -r -p | puft 2> /dev/null || test $$? -eq 250
 | 
			
		||||
	@echo '04 00 24 e9 ff 6d' | xxd -r -p | puft 2> /dev/null || test $$? -eq 247
 | 
			
		||||
	@gcov -n puff.c
 | 
			
		||||
 | 
			
		||||
clean:
 | 
			
		||||
	rm -f puff puff.o
 | 
			
		||||
	rm -f puff puft *.o *.gc*
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
/*
 | 
			
		||||
 * puff.c
 | 
			
		||||
 * Copyright (C) 2002-2008 Mark Adler
 | 
			
		||||
 * Copyright (C) 2002-2013 Mark Adler
 | 
			
		||||
 * For conditions of distribution and use, see copyright notice in puff.h
 | 
			
		||||
 * version 2.0, 25 Jul 2008
 | 
			
		||||
 * version 2.3, 21 Jan 2013
 | 
			
		||||
 *
 | 
			
		||||
 * puff.c is a simple inflate written to be an unambiguous way to specify the
 | 
			
		||||
 * deflate format.  It is not written for speed but rather simplicity.  As a
 | 
			
		||||
@@ -49,9 +49,9 @@
 | 
			
		||||
 *                      - Fix fixed codes table error
 | 
			
		||||
 *                      - Provide a scanning mode for determining size of
 | 
			
		||||
 *                        uncompressed data
 | 
			
		||||
 * 1.3  20 Mar 2002     - Go back to lengths for puff() parameters [Jean-loup]
 | 
			
		||||
 * 1.3  20 Mar 2002     - Go back to lengths for puff() parameters [Gailly]
 | 
			
		||||
 *                      - Add a puff.h file for the interface
 | 
			
		||||
 *                      - Add braces in puff() for else do [Jean-loup]
 | 
			
		||||
 *                      - Add braces in puff() for else do [Gailly]
 | 
			
		||||
 *                      - Use indexes instead of pointers for readability
 | 
			
		||||
 * 1.4  31 Mar 2002     - Simplify construct() code set check
 | 
			
		||||
 *                      - Fix some comments
 | 
			
		||||
@@ -67,13 +67,22 @@
 | 
			
		||||
 *                      - Add option in TEST code for puff to write the data
 | 
			
		||||
 *                      - Add option in TEST code to skip input bytes
 | 
			
		||||
 *                      - Allow TEST code to read from piped stdin
 | 
			
		||||
 * 2.1   4 Apr 2010     - Avoid variable initialization for happier compilers
 | 
			
		||||
 *                      - Avoid unsigned comparisons for even happier compilers
 | 
			
		||||
 * 2.2  25 Apr 2010     - Fix bug in variable initializations [Oberhumer]
 | 
			
		||||
 *                      - Add const where appropriate [Oberhumer]
 | 
			
		||||
 *                      - Split if's and ?'s for coverage testing
 | 
			
		||||
 *                      - Break out test code to separate file
 | 
			
		||||
 *                      - Move NIL to puff.h
 | 
			
		||||
 *                      - Allow incomplete code only if single code length is 1
 | 
			
		||||
 *                      - Add full code coverage test to Makefile
 | 
			
		||||
 * 2.3  21 Jan 2013     - Check for invalid code length codes in dynamic blocks
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <setjmp.h>             /* for setjmp(), longjmp(), and jmp_buf */
 | 
			
		||||
#include "puff.h"               /* prototype for puff() */
 | 
			
		||||
 | 
			
		||||
#define local static            /* for local function definitions */
 | 
			
		||||
#define NIL ((unsigned char *)0)        /* for no output option */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Maximums for allocations and loops.  It is not useful to change these --
 | 
			
		||||
@@ -93,7 +102,7 @@ struct state {
 | 
			
		||||
    unsigned long outcnt;       /* bytes written to out so far */
 | 
			
		||||
 | 
			
		||||
    /* input state */
 | 
			
		||||
    unsigned char *in;          /* input buffer */
 | 
			
		||||
    const unsigned char *in;    /* input buffer */
 | 
			
		||||
    unsigned long inlen;        /* available input at in */
 | 
			
		||||
    unsigned long incnt;        /* bytes read so far */
 | 
			
		||||
    int bitbuf;                 /* bit buffer */
 | 
			
		||||
@@ -121,7 +130,8 @@ local int bits(struct state *s, int need)
 | 
			
		||||
    /* load at least need bits into val */
 | 
			
		||||
    val = s->bitbuf;
 | 
			
		||||
    while (s->bitcnt < need) {
 | 
			
		||||
        if (s->incnt == s->inlen) longjmp(s->env, 1);   /* out of input */
 | 
			
		||||
        if (s->incnt == s->inlen)
 | 
			
		||||
            longjmp(s->env, 1);         /* out of input */
 | 
			
		||||
        val |= (long)(s->in[s->incnt++]) << s->bitcnt;  /* load eight bits */
 | 
			
		||||
        s->bitcnt += 8;
 | 
			
		||||
    }
 | 
			
		||||
@@ -160,7 +170,8 @@ local int stored(struct state *s)
 | 
			
		||||
    s->bitcnt = 0;
 | 
			
		||||
 | 
			
		||||
    /* get length and check against its one's complement */
 | 
			
		||||
    if (s->incnt + 4 > s->inlen) return 2;      /* not enough input */
 | 
			
		||||
    if (s->incnt + 4 > s->inlen)
 | 
			
		||||
        return 2;                               /* not enough input */
 | 
			
		||||
    len = s->in[s->incnt++];
 | 
			
		||||
    len |= s->in[s->incnt++] << 8;
 | 
			
		||||
    if (s->in[s->incnt++] != (~len & 0xff) ||
 | 
			
		||||
@@ -168,7 +179,8 @@ local int stored(struct state *s)
 | 
			
		||||
        return -2;                              /* didn't match complement! */
 | 
			
		||||
 | 
			
		||||
    /* copy len bytes from in to out */
 | 
			
		||||
    if (s->incnt + len > s->inlen) return 2;    /* not enough input */
 | 
			
		||||
    if (s->incnt + len > s->inlen)
 | 
			
		||||
        return 2;                               /* not enough input */
 | 
			
		||||
    if (s->out != NIL) {
 | 
			
		||||
        if (s->outcnt + len > s->outlen)
 | 
			
		||||
            return 1;                           /* not enough output space */
 | 
			
		||||
@@ -220,7 +232,7 @@ struct huffman {
 | 
			
		||||
 *   in the deflate format.  See the format notes for fixed() and dynamic().
 | 
			
		||||
 */
 | 
			
		||||
#ifdef SLOW
 | 
			
		||||
local int decode(struct state *s, struct huffman *h)
 | 
			
		||||
local int decode(struct state *s, const struct huffman *h)
 | 
			
		||||
{
 | 
			
		||||
    int len;            /* current number of bits in code */
 | 
			
		||||
    int code;           /* len bits being decoded */
 | 
			
		||||
@@ -248,7 +260,7 @@ local int decode(struct state *s, struct huffman *h)
 | 
			
		||||
 * a few percent larger.
 | 
			
		||||
 */
 | 
			
		||||
#else /* !SLOW */
 | 
			
		||||
local int decode(struct state *s, struct huffman *h)
 | 
			
		||||
local int decode(struct state *s, const struct huffman *h)
 | 
			
		||||
{
 | 
			
		||||
    int len;            /* current number of bits in code */
 | 
			
		||||
    int code;           /* len bits being decoded */
 | 
			
		||||
@@ -281,10 +293,13 @@ local int decode(struct state *s, struct huffman *h)
 | 
			
		||||
            len++;
 | 
			
		||||
        }
 | 
			
		||||
        left = (MAXBITS+1) - len;
 | 
			
		||||
        if (left == 0) break;
 | 
			
		||||
        if (s->incnt == s->inlen) longjmp(s->env, 1);   /* out of input */
 | 
			
		||||
        if (left == 0)
 | 
			
		||||
            break;
 | 
			
		||||
        if (s->incnt == s->inlen)
 | 
			
		||||
            longjmp(s->env, 1);         /* out of input */
 | 
			
		||||
        bitbuf = s->in[s->incnt++];
 | 
			
		||||
        if (left > 8) left = 8;
 | 
			
		||||
        if (left > 8)
 | 
			
		||||
            left = 8;
 | 
			
		||||
    }
 | 
			
		||||
    return -10;                         /* ran out of codes */
 | 
			
		||||
}
 | 
			
		||||
@@ -322,7 +337,7 @@ local int decode(struct state *s, struct huffman *h)
 | 
			
		||||
 * - Within a given code length, the symbols are kept in ascending order for
 | 
			
		||||
 *   the code bits definition.
 | 
			
		||||
 */
 | 
			
		||||
local int construct(struct huffman *h, short *length, int n)
 | 
			
		||||
local int construct(struct huffman *h, const short *length, int n)
 | 
			
		||||
{
 | 
			
		||||
    int symbol;         /* current symbol when stepping through length[] */
 | 
			
		||||
    int len;            /* current length when stepping through h->count[] */
 | 
			
		||||
@@ -342,7 +357,8 @@ local int construct(struct huffman *h, short *length, int n)
 | 
			
		||||
    for (len = 1; len <= MAXBITS; len++) {
 | 
			
		||||
        left <<= 1;                     /* one more bit, double codes left */
 | 
			
		||||
        left -= h->count[len];          /* deduct count from possible codes */
 | 
			
		||||
        if (left < 0) return left;      /* over-subscribed--return negative */
 | 
			
		||||
        if (left < 0)
 | 
			
		||||
            return left;                /* over-subscribed--return negative */
 | 
			
		||||
    }                                   /* left > 0 means incomplete */
 | 
			
		||||
 | 
			
		||||
    /* generate offsets into symbol table for each length for sorting */
 | 
			
		||||
@@ -418,8 +434,8 @@ local int construct(struct huffman *h, short *length, int n)
 | 
			
		||||
 *   defined to do the wrong thing in this case.
 | 
			
		||||
 */
 | 
			
		||||
local int codes(struct state *s,
 | 
			
		||||
                struct huffman *lencode,
 | 
			
		||||
                struct huffman *distcode)
 | 
			
		||||
                const struct huffman *lencode,
 | 
			
		||||
                const struct huffman *distcode)
 | 
			
		||||
{
 | 
			
		||||
    int symbol;         /* decoded symbol */
 | 
			
		||||
    int len;            /* length for copy */
 | 
			
		||||
@@ -442,11 +458,13 @@ local int codes(struct state *s,
 | 
			
		||||
    /* decode literals and length/distance pairs */
 | 
			
		||||
    do {
 | 
			
		||||
        symbol = decode(s, lencode);
 | 
			
		||||
        if (symbol < 0) return symbol;  /* invalid symbol */
 | 
			
		||||
        if (symbol < 0)
 | 
			
		||||
            return symbol;              /* invalid symbol */
 | 
			
		||||
        if (symbol < 256) {             /* literal: symbol is the byte */
 | 
			
		||||
            /* write out the literal */
 | 
			
		||||
            if (s->out != NIL) {
 | 
			
		||||
                if (s->outcnt == s->outlen) return 1;
 | 
			
		||||
                if (s->outcnt == s->outlen)
 | 
			
		||||
                    return 1;
 | 
			
		||||
                s->out[s->outcnt] = symbol;
 | 
			
		||||
            }
 | 
			
		||||
            s->outcnt++;
 | 
			
		||||
@@ -454,12 +472,14 @@ local int codes(struct state *s,
 | 
			
		||||
        else if (symbol > 256) {        /* length */
 | 
			
		||||
            /* get and compute length */
 | 
			
		||||
            symbol -= 257;
 | 
			
		||||
            if (symbol >= 29) return -10;       /* invalid fixed code */
 | 
			
		||||
            if (symbol >= 29)
 | 
			
		||||
                return -10;             /* invalid fixed code */
 | 
			
		||||
            len = lens[symbol] + bits(s, lext[symbol]);
 | 
			
		||||
 | 
			
		||||
            /* get and check distance */
 | 
			
		||||
            symbol = decode(s, distcode);
 | 
			
		||||
            if (symbol < 0) return symbol;      /* invalid symbol */
 | 
			
		||||
            if (symbol < 0)
 | 
			
		||||
                return symbol;          /* invalid symbol */
 | 
			
		||||
            dist = dists[symbol] + bits(s, dext[symbol]);
 | 
			
		||||
#ifndef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
 | 
			
		||||
            if (dist > s->outcnt)
 | 
			
		||||
@@ -468,11 +488,13 @@ local int codes(struct state *s,
 | 
			
		||||
 | 
			
		||||
            /* copy length bytes from distance bytes back */
 | 
			
		||||
            if (s->out != NIL) {
 | 
			
		||||
                if (s->outcnt + len > s->outlen) return 1;
 | 
			
		||||
                if (s->outcnt + len > s->outlen)
 | 
			
		||||
                    return 1;
 | 
			
		||||
                while (len--) {
 | 
			
		||||
                    s->out[s->outcnt] =
 | 
			
		||||
#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
 | 
			
		||||
                        dist > s->outcnt ? 0 :
 | 
			
		||||
                        dist > s->outcnt ?
 | 
			
		||||
                            0 :
 | 
			
		||||
#endif
 | 
			
		||||
                            s->out[s->outcnt - dist];
 | 
			
		||||
                    s->outcnt++;
 | 
			
		||||
@@ -516,14 +538,19 @@ local int fixed(struct state *s)
 | 
			
		||||
    static int virgin = 1;
 | 
			
		||||
    static short lencnt[MAXBITS+1], lensym[FIXLCODES];
 | 
			
		||||
    static short distcnt[MAXBITS+1], distsym[MAXDCODES];
 | 
			
		||||
    static struct huffman lencode = {lencnt, lensym};
 | 
			
		||||
    static struct huffman distcode = {distcnt, distsym};
 | 
			
		||||
    static struct huffman lencode, distcode;
 | 
			
		||||
 | 
			
		||||
    /* build fixed huffman tables if first call (may not be thread safe) */
 | 
			
		||||
    if (virgin) {
 | 
			
		||||
        int symbol;
 | 
			
		||||
        short lengths[FIXLCODES];
 | 
			
		||||
 | 
			
		||||
        /* construct lencode and distcode */
 | 
			
		||||
        lencode.count = lencnt;
 | 
			
		||||
        lencode.symbol = lensym;
 | 
			
		||||
        distcode.count = distcnt;
 | 
			
		||||
        distcode.symbol = distsym;
 | 
			
		||||
 | 
			
		||||
        /* literal/length table */
 | 
			
		||||
        for (symbol = 0; symbol < 144; symbol++)
 | 
			
		||||
            lengths[symbol] = 8;
 | 
			
		||||
@@ -643,11 +670,16 @@ local int dynamic(struct state *s)
 | 
			
		||||
    short lengths[MAXCODES];            /* descriptor code lengths */
 | 
			
		||||
    short lencnt[MAXBITS+1], lensym[MAXLCODES];         /* lencode memory */
 | 
			
		||||
    short distcnt[MAXBITS+1], distsym[MAXDCODES];       /* distcode memory */
 | 
			
		||||
    struct huffman lencode = {lencnt, lensym};          /* length code */
 | 
			
		||||
    struct huffman distcode = {distcnt, distsym};       /* distance code */
 | 
			
		||||
    struct huffman lencode, distcode;   /* length and distance codes */
 | 
			
		||||
    static const short order[19] =      /* permutation of code length codes */
 | 
			
		||||
        {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15};
 | 
			
		||||
 | 
			
		||||
    /* construct lencode and distcode */
 | 
			
		||||
    lencode.count = lencnt;
 | 
			
		||||
    lencode.symbol = lensym;
 | 
			
		||||
    distcode.count = distcnt;
 | 
			
		||||
    distcode.symbol = distsym;
 | 
			
		||||
 | 
			
		||||
    /* get number of lengths in each table, check lengths */
 | 
			
		||||
    nlen = bits(s, 5) + 257;
 | 
			
		||||
    ndist = bits(s, 5) + 1;
 | 
			
		||||
@@ -663,7 +695,8 @@ local int dynamic(struct state *s)
 | 
			
		||||
 | 
			
		||||
    /* build huffman table for code lengths codes (use lencode temporarily) */
 | 
			
		||||
    err = construct(&lencode, lengths, 19);
 | 
			
		||||
    if (err != 0) return -4;            /* require complete code set here */
 | 
			
		||||
    if (err != 0)               /* require complete code set here */
 | 
			
		||||
        return -4;
 | 
			
		||||
 | 
			
		||||
    /* read length/literal and distance code length tables */
 | 
			
		||||
    index = 0;
 | 
			
		||||
@@ -672,12 +705,15 @@ local int dynamic(struct state *s)
 | 
			
		||||
        int len;                /* last length to repeat */
 | 
			
		||||
 | 
			
		||||
        symbol = decode(s, &lencode);
 | 
			
		||||
        if (symbol < 0)
 | 
			
		||||
            return symbol;          /* invalid symbol */
 | 
			
		||||
        if (symbol < 16)                /* length in 0..15 */
 | 
			
		||||
            lengths[index++] = symbol;
 | 
			
		||||
        else {                          /* repeat instruction */
 | 
			
		||||
            len = 0;                    /* assume repeating zeros */
 | 
			
		||||
            if (symbol == 16) {         /* repeat last length 3..6 times */
 | 
			
		||||
                if (index == 0) return -5;      /* no last length! */
 | 
			
		||||
                if (index == 0)
 | 
			
		||||
                    return -5;          /* no last length! */
 | 
			
		||||
                len = lengths[index - 1];       /* last length */
 | 
			
		||||
                symbol = 3 + bits(s, 2);
 | 
			
		||||
            }
 | 
			
		||||
@@ -698,13 +734,13 @@ local int dynamic(struct state *s)
 | 
			
		||||
 | 
			
		||||
    /* build huffman table for literal/length codes */
 | 
			
		||||
    err = construct(&lencode, lengths, nlen);
 | 
			
		||||
    if (err < 0 || (err > 0 && nlen - lencode.count[0] != 1))
 | 
			
		||||
        return -7;      /* only allow incomplete codes if just one code */
 | 
			
		||||
    if (err && (err < 0 || nlen != lencode.count[0] + lencode.count[1]))
 | 
			
		||||
        return -7;      /* incomplete code ok only for single length 1 code */
 | 
			
		||||
 | 
			
		||||
    /* build huffman table for distance codes */
 | 
			
		||||
    err = construct(&distcode, lengths + nlen, ndist);
 | 
			
		||||
    if (err < 0 || (err > 0 && ndist - distcode.count[0] != 1))
 | 
			
		||||
        return -8;      /* only allow incomplete codes if just one code */
 | 
			
		||||
    if (err && (err < 0 || ndist != distcode.count[0] + distcode.count[1]))
 | 
			
		||||
        return -8;      /* incomplete code ok only for single length 1 code */
 | 
			
		||||
 | 
			
		||||
    /* decode data until end-of-block code */
 | 
			
		||||
    return codes(s, &lencode, &distcode);
 | 
			
		||||
@@ -756,7 +792,7 @@ local int dynamic(struct state *s)
 | 
			
		||||
 */
 | 
			
		||||
int puff(unsigned char *dest,           /* pointer to destination pointer */
 | 
			
		||||
         unsigned long *destlen,        /* amount of output space */
 | 
			
		||||
         unsigned char *source,         /* pointer to source data pointer */
 | 
			
		||||
         const unsigned char *source,   /* pointer to source data pointer */
 | 
			
		||||
         unsigned long *sourcelen)      /* amount of input available */
 | 
			
		||||
{
 | 
			
		||||
    struct state s;             /* input/output state */
 | 
			
		||||
@@ -783,11 +819,15 @@ int puff(unsigned char *dest,           /* pointer to destination pointer */
 | 
			
		||||
        do {
 | 
			
		||||
            last = bits(&s, 1);         /* one if last block */
 | 
			
		||||
            type = bits(&s, 2);         /* block type 0..3 */
 | 
			
		||||
            err = type == 0 ? stored(&s) :
 | 
			
		||||
                  (type == 1 ? fixed(&s) :
 | 
			
		||||
                   (type == 2 ? dynamic(&s) :
 | 
			
		||||
            err = type == 0 ?
 | 
			
		||||
                    stored(&s) :
 | 
			
		||||
                    (type == 1 ?
 | 
			
		||||
                        fixed(&s) :
 | 
			
		||||
                        (type == 2 ?
 | 
			
		||||
                            dynamic(&s) :
 | 
			
		||||
                            -1));       /* type == 3, invalid */
 | 
			
		||||
            if (err != 0) break;        /* return with error */
 | 
			
		||||
            if (err != 0)
 | 
			
		||||
                break;                  /* return with error */
 | 
			
		||||
        } while (!last);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -798,145 +838,3 @@ int puff(unsigned char *dest,           /* pointer to destination pointer */
 | 
			
		||||
    }
 | 
			
		||||
    return err;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#ifdef TEST
 | 
			
		||||
/* Examples of how to use puff().
 | 
			
		||||
 | 
			
		||||
   Usage: puff [-w] [-nnn] file
 | 
			
		||||
          ... | puff [-w] [-nnn]
 | 
			
		||||
 | 
			
		||||
   where file is the input file with deflate data, nnn is the number of bytes
 | 
			
		||||
   of input to skip before inflating (e.g. to skip a zlib or gzip header), and
 | 
			
		||||
   -w is used to write the decompressed data to stdout */
 | 
			
		||||
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
 | 
			
		||||
/* Return size times approximately the cube root of 2, keeping the result as 1,
 | 
			
		||||
   3, or 5 times a power of 2 -- the result is always > size, until the result
 | 
			
		||||
   is the maximum value of an unsigned long, where it remains.  This is useful
 | 
			
		||||
   to keep reallocations less than ~33% over the actual data. */
 | 
			
		||||
local size_t bythirds(size_t size)
 | 
			
		||||
{
 | 
			
		||||
    int n;
 | 
			
		||||
    size_t m;
 | 
			
		||||
 | 
			
		||||
    m = size;
 | 
			
		||||
    for (n = 0; m; n++)
 | 
			
		||||
        m >>= 1;
 | 
			
		||||
    if (n < 3)
 | 
			
		||||
        return size + 1;
 | 
			
		||||
    n -= 3;
 | 
			
		||||
    m = size >> n;
 | 
			
		||||
    m += m == 6 ? 2 : 1;
 | 
			
		||||
    m <<= n;
 | 
			
		||||
    return m > size ? m : (size_t)(-1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Read the input file *name, or stdin if name is NULL, into allocated memory.
 | 
			
		||||
   Reallocate to larger buffers until the entire file is read in.  Return a
 | 
			
		||||
   pointer to the allocated data, or NULL if there was a memory allocation
 | 
			
		||||
   failure.  *len is the number of bytes of data read from the input file (even
 | 
			
		||||
   if load() returns NULL).  If the input file was empty or could not be opened
 | 
			
		||||
   or read, *len is zero. */
 | 
			
		||||
local void *load(char *name, size_t *len)
 | 
			
		||||
{
 | 
			
		||||
    size_t size;
 | 
			
		||||
    void *buf, *swap;
 | 
			
		||||
    FILE *in;
 | 
			
		||||
 | 
			
		||||
    *len = 0;
 | 
			
		||||
    buf = malloc(size = 4096);
 | 
			
		||||
    if (buf == NULL)
 | 
			
		||||
        return NULL;
 | 
			
		||||
    in = name == NULL ? stdin : fopen(name, "rb");
 | 
			
		||||
    if (in != NULL) {
 | 
			
		||||
        for (;;) {
 | 
			
		||||
            *len += fread((char *)buf + *len, 1, size - *len, in);
 | 
			
		||||
            if (*len < size) break;
 | 
			
		||||
            size = bythirds(size);
 | 
			
		||||
            if (size == *len || (swap = realloc(buf, size)) == NULL) {
 | 
			
		||||
                free(buf);
 | 
			
		||||
                buf = NULL;
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
            buf = swap;
 | 
			
		||||
        }
 | 
			
		||||
        fclose(in);
 | 
			
		||||
    }
 | 
			
		||||
    return buf;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int main(int argc, char **argv)
 | 
			
		||||
{
 | 
			
		||||
    int ret, skip = 0, put = 0;
 | 
			
		||||
    char *arg, *name = NULL;
 | 
			
		||||
    unsigned char *source = NULL, *dest;
 | 
			
		||||
    size_t len = 0;
 | 
			
		||||
    unsigned long sourcelen, destlen;
 | 
			
		||||
 | 
			
		||||
    /* process arguments */
 | 
			
		||||
    while (arg = *++argv, --argc)
 | 
			
		||||
        if (arg[0] == '-') {
 | 
			
		||||
            if (arg[1] == 'w' && arg[2] == 0)
 | 
			
		||||
                put = 1;
 | 
			
		||||
            else if (arg[1] >= '0' && arg[1] <= '9')
 | 
			
		||||
                skip = atoi(arg + 1);
 | 
			
		||||
            else {
 | 
			
		||||
                fprintf(stderr, "invalid option %s\n", arg);
 | 
			
		||||
                return 3;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        else if (name != NULL) {
 | 
			
		||||
            fprintf(stderr, "only one file name allowed\n");
 | 
			
		||||
            return 3;
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
            name = arg;
 | 
			
		||||
    source = load(name, &len);
 | 
			
		||||
    if (source == NULL) {
 | 
			
		||||
        fprintf(stderr, "memory allocation failure\n");
 | 
			
		||||
        return 4;
 | 
			
		||||
    }
 | 
			
		||||
    if (len == 0) {
 | 
			
		||||
        fprintf(stderr, "could not read %s, or it was empty\n",
 | 
			
		||||
                name == NULL ? "<stdin>" : name);
 | 
			
		||||
        free(source);
 | 
			
		||||
        return 3;
 | 
			
		||||
    }
 | 
			
		||||
    if (skip >= len) {
 | 
			
		||||
        fprintf(stderr, "skip request of %d leaves no input\n", skip);
 | 
			
		||||
        free(source);
 | 
			
		||||
        return 3;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /* test inflate data with offset skip */
 | 
			
		||||
    len -= skip;
 | 
			
		||||
    sourcelen = (unsigned long)len;
 | 
			
		||||
    ret = puff(NIL, &destlen, source + skip, &sourcelen);
 | 
			
		||||
    if (ret)
 | 
			
		||||
        fprintf(stderr, "puff() failed with return code %d\n", ret);
 | 
			
		||||
    else {
 | 
			
		||||
        fprintf(stderr, "puff() succeeded uncompressing %lu bytes\n", destlen);
 | 
			
		||||
        if (sourcelen < len) fprintf(stderr, "%lu compressed bytes unused\n",
 | 
			
		||||
                                     len - sourcelen);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /* if requested, inflate again and write decompressd data to stdout */
 | 
			
		||||
    if (put) {
 | 
			
		||||
        dest = malloc(destlen);
 | 
			
		||||
        if (dest == NULL) {
 | 
			
		||||
            fprintf(stderr, "memory allocation failure\n");
 | 
			
		||||
            free(source);
 | 
			
		||||
            return 4;
 | 
			
		||||
        }
 | 
			
		||||
        puff(dest, &destlen, source + skip, &sourcelen);
 | 
			
		||||
        fwrite(dest, 1, destlen, stdout);
 | 
			
		||||
        free(dest);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /* clean up */
 | 
			
		||||
    free(source);
 | 
			
		||||
    return ret;
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
/* puff.h
 | 
			
		||||
  Copyright (C) 2002-2008 Mark Adler, all rights reserved
 | 
			
		||||
  version 1.9, 10 Jan 2008
 | 
			
		||||
  Copyright (C) 2002-2013 Mark Adler, all rights reserved
 | 
			
		||||
  version 2.3, 21 Jan 2013
 | 
			
		||||
 | 
			
		||||
  This software is provided 'as-is', without any express or implied
 | 
			
		||||
  warranty.  In no event will the author be held liable for any damages
 | 
			
		||||
@@ -25,7 +25,11 @@
 | 
			
		||||
/*
 | 
			
		||||
 * See puff.c for purpose and usage.
 | 
			
		||||
 */
 | 
			
		||||
#ifndef NIL
 | 
			
		||||
#  define NIL ((unsigned char *)0)      /* for no output option */
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
int puff(unsigned char *dest,           /* pointer to destination pointer */
 | 
			
		||||
         unsigned long *destlen,        /* amount of output space */
 | 
			
		||||
         unsigned char *source,         /* pointer to source data pointer */
 | 
			
		||||
         const unsigned char *source,   /* pointer to source data pointer */
 | 
			
		||||
         unsigned long *sourcelen);     /* amount of input available */
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										165
									
								
								contrib/puff/pufftest.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										165
									
								
								contrib/puff/pufftest.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,165 @@
 | 
			
		||||
/*
 | 
			
		||||
 * pufftest.c
 | 
			
		||||
 * Copyright (C) 2002-2013 Mark Adler
 | 
			
		||||
 * For conditions of distribution and use, see copyright notice in puff.h
 | 
			
		||||
 * version 2.3, 21 Jan 2013
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* Example of how to use puff().
 | 
			
		||||
 | 
			
		||||
   Usage: puff [-w] [-f] [-nnn] file
 | 
			
		||||
          ... | puff [-w] [-f] [-nnn]
 | 
			
		||||
 | 
			
		||||
   where file is the input file with deflate data, nnn is the number of bytes
 | 
			
		||||
   of input to skip before inflating (e.g. to skip a zlib or gzip header), and
 | 
			
		||||
   -w is used to write the decompressed data to stdout.  -f is for coverage
 | 
			
		||||
   testing, and causes pufftest to fail with not enough output space (-f does
 | 
			
		||||
   a write like -w, so -w is not required). */
 | 
			
		||||
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include "puff.h"
 | 
			
		||||
 | 
			
		||||
#if defined(MSDOS) || defined(OS2) || defined(WIN32) || defined(__CYGWIN__)
 | 
			
		||||
#  include <fcntl.h>
 | 
			
		||||
#  include <io.h>
 | 
			
		||||
#  define SET_BINARY_MODE(file) setmode(fileno(file), O_BINARY)
 | 
			
		||||
#else
 | 
			
		||||
#  define SET_BINARY_MODE(file)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define local static
 | 
			
		||||
 | 
			
		||||
/* Return size times approximately the cube root of 2, keeping the result as 1,
 | 
			
		||||
   3, or 5 times a power of 2 -- the result is always > size, until the result
 | 
			
		||||
   is the maximum value of an unsigned long, where it remains.  This is useful
 | 
			
		||||
   to keep reallocations less than ~33% over the actual data. */
 | 
			
		||||
local size_t bythirds(size_t size)
 | 
			
		||||
{
 | 
			
		||||
    int n;
 | 
			
		||||
    size_t m;
 | 
			
		||||
 | 
			
		||||
    m = size;
 | 
			
		||||
    for (n = 0; m; n++)
 | 
			
		||||
        m >>= 1;
 | 
			
		||||
    if (n < 3)
 | 
			
		||||
        return size + 1;
 | 
			
		||||
    n -= 3;
 | 
			
		||||
    m = size >> n;
 | 
			
		||||
    m += m == 6 ? 2 : 1;
 | 
			
		||||
    m <<= n;
 | 
			
		||||
    return m > size ? m : (size_t)(-1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Read the input file *name, or stdin if name is NULL, into allocated memory.
 | 
			
		||||
   Reallocate to larger buffers until the entire file is read in.  Return a
 | 
			
		||||
   pointer to the allocated data, or NULL if there was a memory allocation
 | 
			
		||||
   failure.  *len is the number of bytes of data read from the input file (even
 | 
			
		||||
   if load() returns NULL).  If the input file was empty or could not be opened
 | 
			
		||||
   or read, *len is zero. */
 | 
			
		||||
local void *load(const char *name, size_t *len)
 | 
			
		||||
{
 | 
			
		||||
    size_t size;
 | 
			
		||||
    void *buf, *swap;
 | 
			
		||||
    FILE *in;
 | 
			
		||||
 | 
			
		||||
    *len = 0;
 | 
			
		||||
    buf = malloc(size = 4096);
 | 
			
		||||
    if (buf == NULL)
 | 
			
		||||
        return NULL;
 | 
			
		||||
    in = name == NULL ? stdin : fopen(name, "rb");
 | 
			
		||||
    if (in != NULL) {
 | 
			
		||||
        for (;;) {
 | 
			
		||||
            *len += fread((char *)buf + *len, 1, size - *len, in);
 | 
			
		||||
            if (*len < size) break;
 | 
			
		||||
            size = bythirds(size);
 | 
			
		||||
            if (size == *len || (swap = realloc(buf, size)) == NULL) {
 | 
			
		||||
                free(buf);
 | 
			
		||||
                buf = NULL;
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
            buf = swap;
 | 
			
		||||
        }
 | 
			
		||||
        fclose(in);
 | 
			
		||||
    }
 | 
			
		||||
    return buf;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int main(int argc, char **argv)
 | 
			
		||||
{
 | 
			
		||||
    int ret, put = 0, fail = 0;
 | 
			
		||||
    unsigned skip = 0;
 | 
			
		||||
    char *arg, *name = NULL;
 | 
			
		||||
    unsigned char *source = NULL, *dest;
 | 
			
		||||
    size_t len = 0;
 | 
			
		||||
    unsigned long sourcelen, destlen;
 | 
			
		||||
 | 
			
		||||
    /* process arguments */
 | 
			
		||||
    while (arg = *++argv, --argc)
 | 
			
		||||
        if (arg[0] == '-') {
 | 
			
		||||
            if (arg[1] == 'w' && arg[2] == 0)
 | 
			
		||||
                put = 1;
 | 
			
		||||
            else if (arg[1] == 'f' && arg[2] == 0)
 | 
			
		||||
                fail = 1, put = 1;
 | 
			
		||||
            else if (arg[1] >= '0' && arg[1] <= '9')
 | 
			
		||||
                skip = (unsigned)atoi(arg + 1);
 | 
			
		||||
            else {
 | 
			
		||||
                fprintf(stderr, "invalid option %s\n", arg);
 | 
			
		||||
                return 3;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        else if (name != NULL) {
 | 
			
		||||
            fprintf(stderr, "only one file name allowed\n");
 | 
			
		||||
            return 3;
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
            name = arg;
 | 
			
		||||
    source = load(name, &len);
 | 
			
		||||
    if (source == NULL) {
 | 
			
		||||
        fprintf(stderr, "memory allocation failure\n");
 | 
			
		||||
        return 4;
 | 
			
		||||
    }
 | 
			
		||||
    if (len == 0) {
 | 
			
		||||
        fprintf(stderr, "could not read %s, or it was empty\n",
 | 
			
		||||
                name == NULL ? "<stdin>" : name);
 | 
			
		||||
        free(source);
 | 
			
		||||
        return 3;
 | 
			
		||||
    }
 | 
			
		||||
    if (skip >= len) {
 | 
			
		||||
        fprintf(stderr, "skip request of %d leaves no input\n", skip);
 | 
			
		||||
        free(source);
 | 
			
		||||
        return 3;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /* test inflate data with offset skip */
 | 
			
		||||
    len -= skip;
 | 
			
		||||
    sourcelen = (unsigned long)len;
 | 
			
		||||
    ret = puff(NIL, &destlen, source + skip, &sourcelen);
 | 
			
		||||
    if (ret)
 | 
			
		||||
        fprintf(stderr, "puff() failed with return code %d\n", ret);
 | 
			
		||||
    else {
 | 
			
		||||
        fprintf(stderr, "puff() succeeded uncompressing %lu bytes\n", destlen);
 | 
			
		||||
        if (sourcelen < len) fprintf(stderr, "%lu compressed bytes unused\n",
 | 
			
		||||
                                     len - sourcelen);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /* if requested, inflate again and write decompressd data to stdout */
 | 
			
		||||
    if (put && ret == 0) {
 | 
			
		||||
        if (fail)
 | 
			
		||||
            destlen >>= 1;
 | 
			
		||||
        dest = malloc(destlen);
 | 
			
		||||
        if (dest == NULL) {
 | 
			
		||||
            fprintf(stderr, "memory allocation failure\n");
 | 
			
		||||
            free(source);
 | 
			
		||||
            return 4;
 | 
			
		||||
        }
 | 
			
		||||
        puff(dest, &destlen, source + skip, &sourcelen);
 | 
			
		||||
        SET_BINARY_MODE(stdout);
 | 
			
		||||
        fwrite(dest, 1, destlen, stdout);
 | 
			
		||||
        free(dest);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /* clean up */
 | 
			
		||||
    free(source);
 | 
			
		||||
    return ret;
 | 
			
		||||
}
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							@@ -116,10 +116,10 @@ DWORD GetMsecSincePerfCounter(LARGE_INTEGER beginTime64,BOOL fComputeTimeQueryPe
 | 
			
		||||
    return dwRet;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int ReadFileMemory(const char* filename,long* plFileSize,void** pFilePtr)
 | 
			
		||||
int ReadFileMemory(const char* filename,long* plFileSize,unsigned char** pFilePtr)
 | 
			
		||||
{
 | 
			
		||||
    FILE* stream;
 | 
			
		||||
    void* ptr;
 | 
			
		||||
    unsigned char* ptr;
 | 
			
		||||
    int retVal=1;
 | 
			
		||||
    stream=fopen(filename, "rb");
 | 
			
		||||
    if (stream==NULL)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
Building instructions for the DLL versions of Zlib 1.2.3
 | 
			
		||||
Building instructions for the DLL versions of Zlib 1.2.8
 | 
			
		||||
========================================================
 | 
			
		||||
 | 
			
		||||
This directory contains projects that build zlib and minizip using
 | 
			
		||||
Microsoft Visual C++ 7.0/7.1/8.0/9.0/10.0, and Visual C++ .
 | 
			
		||||
Microsoft Visual C++ 9.0/10.0.
 | 
			
		||||
 | 
			
		||||
You don't need to build these projects yourself. You can download the
 | 
			
		||||
binaries from:
 | 
			
		||||
@@ -10,57 +10,28 @@ binaries from:
 | 
			
		||||
 | 
			
		||||
More information can be found at this site.
 | 
			
		||||
 | 
			
		||||
first compile assembly code by running
 | 
			
		||||
bld_ml64.bat in contrib\masmx64
 | 
			
		||||
bld_ml32.bat in contrib\masmx86
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Build instructions for Visual Studio 7.x (32 bits)
 | 
			
		||||
--------------------------------------------------
 | 
			
		||||
- Uncompress current zlib, including all contrib/* files
 | 
			
		||||
- Download the crtdll library from
 | 
			
		||||
    http://www.winimage.com/zLibDll/crtdll.zip
 | 
			
		||||
  Unzip crtdll.zip to extract crtdll.lib on contrib\vstudio\vc7.
 | 
			
		||||
- Open contrib\vstudio\vc7\zlibvc.sln with Microsoft Visual C++ 7.x
 | 
			
		||||
  (Visual Studio .Net 2002 or 2003).
 | 
			
		||||
 | 
			
		||||
Build instructions for Visual Studio 2005 (32 bits or 64 bits)
 | 
			
		||||
--------------------------------------------------------------
 | 
			
		||||
- Uncompress current zlib, including all contrib/* files
 | 
			
		||||
- For 32 bits only: download the crtdll library from
 | 
			
		||||
    http://www.winimage.com/zLibDll/crtdll.zip
 | 
			
		||||
  Unzip crtdll.zip to extract crtdll.lib on contrib\vstudio\vc8.
 | 
			
		||||
- Open contrib\vstudio\vc8\zlibvc.sln with Microsoft Visual C++ 2005
 | 
			
		||||
 | 
			
		||||
Build instructions for Visual Studio 2005 64 bits, PSDK compiler
 | 
			
		||||
----------------------------------------------------------------
 | 
			
		||||
at the time of writing this text file, Visual Studio 2005 (and
 | 
			
		||||
  Microsoft Visual C++ 8.0) is on the beta 2 stage.
 | 
			
		||||
Using you can get the free 64 bits compiler from Platform SDK,
 | 
			
		||||
  which is NOT a beta, and compile using the Visual studio 2005 IDE
 | 
			
		||||
see http://www.winimage.com/misc/sdk64onvs2005/ for instruction
 | 
			
		||||
 | 
			
		||||
- Uncompress current zlib, including all contrib/* files
 | 
			
		||||
- start Visual Studio 2005 from a platform SDK command prompt, using
 | 
			
		||||
  the /useenv switch
 | 
			
		||||
- Open contrib\vstudio\vc8\zlibvc.sln with Microsoft Visual C++ 2005
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Build instructions for Visual Studio 2008 (32 bits or 64 bits)
 | 
			
		||||
--------------------------------------------------------------
 | 
			
		||||
- Uncompress current zlib, including all contrib/* files
 | 
			
		||||
- For 32 bits only: download the crtdll library from
 | 
			
		||||
    http://www.winimage.com/zLibDll/crtdll.zip
 | 
			
		||||
  Unzip crtdll.zip to extract crtdll.lib on contrib\vstudio\vc9.
 | 
			
		||||
- Open contrib\vstudio\vc9\zlibvc.sln with Microsoft Visual C++ 2008.0
 | 
			
		||||
- Compile assembly code (with Visual Studio Command Prompt) by running:
 | 
			
		||||
   bld_ml64.bat (in contrib\masmx64)
 | 
			
		||||
   bld_ml32.bat (in contrib\masmx86)
 | 
			
		||||
- Open contrib\vstudio\vc9\zlibvc.sln with Microsoft Visual C++ 2008
 | 
			
		||||
- Or run: vcbuild /rebuild contrib\vstudio\vc9\zlibvc.sln "Release|Win32"
 | 
			
		||||
 | 
			
		||||
Build instructions for Visual Studio 2010 (32 bits or 64 bits)
 | 
			
		||||
--------------------------------------------------------------
 | 
			
		||||
- Uncompress current zlib, including all contrib/* files
 | 
			
		||||
- For 32 bits only: download the crtdll library from
 | 
			
		||||
    http://www.winimage.com/zLibDll/crtdll.zip
 | 
			
		||||
  Unzip crtdll.zip to extract crtdll.lib on contrib\vstudio\vc10.
 | 
			
		||||
- Open contrib\vstudio\vc10\zlibvc.sln with Microsoft Visual C++ 2010.0
 | 
			
		||||
- Open contrib\vstudio\vc10\zlibvc.sln with Microsoft Visual C++ 2010
 | 
			
		||||
 | 
			
		||||
Build instructions for Visual Studio 2012 (32 bits or 64 bits)
 | 
			
		||||
--------------------------------------------------------------
 | 
			
		||||
- Uncompress current zlib, including all contrib/* files
 | 
			
		||||
- Open contrib\vstudio\vc11\zlibvc.sln with Microsoft Visual C++ 2012
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Important
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +0,0 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
			
		||||
</Project>
 | 
			
		||||
@@ -1,3 +0,0 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
			
		||||
</Project>
 | 
			
		||||
@@ -194,7 +194,7 @@
 | 
			
		||||
      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>..\..\masmx86\gvmat32.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)testzlib.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile>
 | 
			
		||||
@@ -254,7 +254,7 @@
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>..\..\masmx86\gvmat32.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)testzlib.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
@@ -397,14 +397,6 @@
 | 
			
		||||
    <ClCompile Include="..\..\..\compress.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\crc32.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\deflate.c" />
 | 
			
		||||
    <ClCompile Include="..\..\masmx86\gvmat32c.c">
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\infback.c" />
 | 
			
		||||
    <ClCompile Include="..\..\masmx64\inffas8664.c">
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</ExcludedFromBuild>
 | 
			
		||||
 
 | 
			
		||||
@@ -27,9 +27,6 @@
 | 
			
		||||
    <ClCompile Include="..\..\..\deflate.c">
 | 
			
		||||
      <Filter>Source Files</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\masmx86\gvmat32c.c">
 | 
			
		||||
      <Filter>Source Files</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\infback.c">
 | 
			
		||||
      <Filter>Source Files</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +0,0 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
			
		||||
</Project>
 | 
			
		||||
@@ -139,7 +139,7 @@
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>x86\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)testzlib.exe</OutputFile>
 | 
			
		||||
      <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
@@ -169,7 +169,7 @@
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>x86\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)testzlib.exe</OutputFile>
 | 
			
		||||
      <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
      <OptimizeReferences>true</OptimizeReferences>
 | 
			
		||||
@@ -200,7 +200,7 @@
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>x64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)testzlib.exe</OutputFile>
 | 
			
		||||
      <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
@@ -227,7 +227,7 @@
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>ia64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)testzlib.exe</OutputFile>
 | 
			
		||||
      <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
@@ -257,7 +257,7 @@
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>x64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)testzlib.exe</OutputFile>
 | 
			
		||||
      <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
      <OptimizeReferences>true</OptimizeReferences>
 | 
			
		||||
@@ -288,7 +288,7 @@
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>ia64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)testzlib.exe</OutputFile>
 | 
			
		||||
      <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
      <OptimizeReferences>true</OptimizeReferences>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +0,0 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
			
		||||
</Project>
 | 
			
		||||
@@ -2,8 +2,8 @@
 | 
			
		||||
 | 
			
		||||
#define IDR_VERSION1  1
 | 
			
		||||
IDR_VERSION1	VERSIONINFO	MOVEABLE IMPURE LOADONCALL DISCARDABLE
 | 
			
		||||
  FILEVERSION	 1,2,3,0
 | 
			
		||||
  PRODUCTVERSION 1,2,3,0
 | 
			
		||||
  FILEVERSION	 1,2,8,0
 | 
			
		||||
  PRODUCTVERSION 1,2,8,0
 | 
			
		||||
  FILEFLAGSMASK	VS_FFI_FILEFLAGSMASK
 | 
			
		||||
  FILEFLAGS	0
 | 
			
		||||
  FILEOS	VOS_DOS_WINDOWS32
 | 
			
		||||
@@ -16,13 +16,13 @@ BEGIN
 | 
			
		||||
    //language ID = U.S. English, char set = Windows, Multilingual
 | 
			
		||||
 | 
			
		||||
    BEGIN
 | 
			
		||||
      VALUE "FileDescription", "zlib data compression library\0"
 | 
			
		||||
      VALUE "FileVersion",	"1.2.3.0\0"
 | 
			
		||||
      VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0"
 | 
			
		||||
      VALUE "FileVersion",	"1.2.8\0"
 | 
			
		||||
      VALUE "InternalName",	"zlib\0"
 | 
			
		||||
      VALUE "OriginalFilename",	"zlib.dll\0"
 | 
			
		||||
      VALUE "OriginalFilename",	"zlibwapi.dll\0"
 | 
			
		||||
      VALUE "ProductName",	"ZLib.DLL\0"
 | 
			
		||||
      VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0"
 | 
			
		||||
      VALUE "LegalCopyright", "(C) 1995-2003 Jean-loup Gailly & Mark Adler\0"
 | 
			
		||||
      VALUE "LegalCopyright", "(C) 1995-2013 Jean-loup Gailly & Mark Adler\0"
 | 
			
		||||
    END
 | 
			
		||||
  END
 | 
			
		||||
  BLOCK "VarFileInfo"
 | 
			
		||||
 
 | 
			
		||||
@@ -182,6 +182,10 @@
 | 
			
		||||
      <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
    </Lib>
 | 
			
		||||
    <PreBuildEvent>
 | 
			
		||||
      <Command>cd ..\..\masmx86
 | 
			
		||||
bld_ml32.bat</Command>
 | 
			
		||||
    </PreBuildEvent>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
@@ -206,10 +210,14 @@
 | 
			
		||||
    </ResourceCompile>
 | 
			
		||||
    <Lib>
 | 
			
		||||
      <AdditionalOptions>/MACHINE:X86 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
 | 
			
		||||
      <AdditionalDependencies>..\..\masmx86\gvmat32.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
    </Lib>
 | 
			
		||||
    <PreBuildEvent>
 | 
			
		||||
      <Command>cd ..\..\masmx86
 | 
			
		||||
bld_ml32.bat</Command>
 | 
			
		||||
    </PreBuildEvent>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
@@ -266,6 +274,10 @@
 | 
			
		||||
      <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
    </Lib>
 | 
			
		||||
    <PreBuildEvent>
 | 
			
		||||
      <Command>cd ..\..\masmx64
 | 
			
		||||
bld_ml64.bat</Command>
 | 
			
		||||
    </PreBuildEvent>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
@@ -326,6 +338,10 @@
 | 
			
		||||
      <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
    </Lib>
 | 
			
		||||
    <PreBuildEvent>
 | 
			
		||||
      <Command>cd ..\..\masmx64
 | 
			
		||||
bld_ml64.bat</Command>
 | 
			
		||||
    </PreBuildEvent>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
@@ -422,16 +438,7 @@
 | 
			
		||||
    <ClCompile Include="..\..\..\compress.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\crc32.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\deflate.c" />
 | 
			
		||||
    <ClCompile Include="..\..\masmx86\gvmat32c.c">
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\gzclose.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\gzio.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\gzlib.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\gzread.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\gzwrite.c" />
 | 
			
		||||
 
 | 
			
		||||
@@ -18,15 +18,9 @@
 | 
			
		||||
    <ClCompile Include="..\..\..\deflate.c">
 | 
			
		||||
      <Filter>Source Files</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\masmx86\gvmat32c.c">
 | 
			
		||||
      <Filter>Source Files</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\gzclose.c">
 | 
			
		||||
      <Filter>Source Files</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\gzio.c">
 | 
			
		||||
      <Filter>Source Files</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\gzlib.c">
 | 
			
		||||
      <Filter>Source Files</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +0,0 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
			
		||||
</Project>
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
LIBRARY
 | 
			
		||||
; zlib data compression and ZIP file I/O library
 | 
			
		||||
 | 
			
		||||
VERSION		1.23
 | 
			
		||||
 | 
			
		||||
HEAPSIZE	1048576,8192
 | 
			
		||||
VERSION		1.2.8
 | 
			
		||||
 | 
			
		||||
EXPORTS
 | 
			
		||||
        adler32                                  @1
 | 
			
		||||
@@ -55,6 +55,7 @@ EXPORTS
 | 
			
		||||
        gzungetc                                 @49
 | 
			
		||||
        zlibCompileFlags                         @50
 | 
			
		||||
        deflatePrime                             @51
 | 
			
		||||
        deflatePending                           @52
 | 
			
		||||
 | 
			
		||||
        unzOpen                                  @61
 | 
			
		||||
        unzClose                                 @62
 | 
			
		||||
@@ -90,11 +91,12 @@ EXPORTS
 | 
			
		||||
        unzGoToFilePos                           @101
 | 
			
		||||
 | 
			
		||||
        fill_win32_filefunc                      @110
 | 
			
		||||
 | 
			
		||||
; zlibwapi v1.2.4 added:
 | 
			
		||||
        fill_win32_filefunc64                   @111
 | 
			
		||||
        fill_win32_filefunc64A                  @112
 | 
			
		||||
        fill_win32_filefunc64W                  @113
 | 
			
		||||
 | 
			
		||||
; quick hack by hkuno@microhouse.co.jp
 | 
			
		||||
        unzOpen64                               @120
 | 
			
		||||
        unzOpen2_64                             @121
 | 
			
		||||
        unzGetGlobalInfo64                      @122
 | 
			
		||||
@@ -111,4 +113,31 @@ EXPORTS
 | 
			
		||||
        zipOpenNewFileInZip3_64                 @134
 | 
			
		||||
        zipOpenNewFileInZip4_64                 @135
 | 
			
		||||
        zipCloseFileInZipRaw64                  @136
 | 
			
		||||
; end hack
 | 
			
		||||
 | 
			
		||||
; zlib1 v1.2.4 added:
 | 
			
		||||
        adler32_combine                         @140
 | 
			
		||||
        crc32_combine                           @142
 | 
			
		||||
        deflateSetHeader                        @144
 | 
			
		||||
        deflateTune                             @145
 | 
			
		||||
        gzbuffer                                @146
 | 
			
		||||
        gzclose_r                               @147
 | 
			
		||||
        gzclose_w                               @148
 | 
			
		||||
        gzdirect                                @149
 | 
			
		||||
        gzoffset                                @150
 | 
			
		||||
        inflateGetHeader                        @156
 | 
			
		||||
        inflateMark                             @157
 | 
			
		||||
        inflatePrime                            @158
 | 
			
		||||
        inflateReset2                           @159
 | 
			
		||||
        inflateUndermine                        @160
 | 
			
		||||
 | 
			
		||||
; zlib1 v1.2.6 added:
 | 
			
		||||
        gzgetc_                                 @161
 | 
			
		||||
        inflateResetKeep                        @163
 | 
			
		||||
        deflateResetKeep                        @164
 | 
			
		||||
 | 
			
		||||
; zlib1 v1.2.7 added:
 | 
			
		||||
        gzopen_w                                @165
 | 
			
		||||
 | 
			
		||||
; zlib1 v1.2.8 added:
 | 
			
		||||
        inflateGetDictionary                    @166
 | 
			
		||||
        gzvprintf                               @167
 | 
			
		||||
 
 | 
			
		||||
@@ -36,8 +36,8 @@ Global
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Itanium.Build.0 = Release|Itanium
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.ActiveCfg = Release|Win32
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.Build.0 = Release|Win32
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.ActiveCfg = ReleaseWithoutAsm|x64
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.Build.0 = ReleaseWithoutAsm|x64
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.ActiveCfg = Release|x64
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.Build.0 = Release|x64
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Itanium
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Itanium.Build.0 = ReleaseWithoutAsm|Itanium
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
 | 
			
		||||
@@ -94,8 +94,8 @@ Global
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|x64.Build.0 = Release|x64
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Itanium
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Itanium.Build.0 = Release|Itanium
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Itanium
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Itanium
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.ActiveCfg = Debug|Itanium
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.Build.0 = Debug|Itanium
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.ActiveCfg = Debug|Win32
 | 
			
		||||
@@ -110,8 +110,8 @@ Global
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.Build.0 = Release|x64
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Itanium
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.Build.0 = Release|Itanium
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Itanium
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Itanium
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Itanium.ActiveCfg = Debug|Itanium
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Itanium.Build.0 = Debug|Itanium
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Win32.ActiveCfg = Debug|Win32
 | 
			
		||||
@@ -126,8 +126,8 @@ Global
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|x64.Build.0 = Release|x64
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Itanium
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Itanium.Build.0 = Release|Itanium
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Itanium
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Itanium
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
 | 
			
		||||
	EndGlobalSection
 | 
			
		||||
	GlobalSection(SolutionProperties) = preSolution
 | 
			
		||||
		HideSolutionNode = FALSE
 | 
			
		||||
 
 | 
			
		||||
@@ -180,6 +180,12 @@
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
 | 
			
		||||
    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">zlibwapid</TargetName>
 | 
			
		||||
    <TargetName Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">zlibwapi</TargetName>
 | 
			
		||||
    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">zlibwapi</TargetName>
 | 
			
		||||
    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">zlibwapid</TargetName>
 | 
			
		||||
    <TargetName Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">zlibwapi</TargetName>
 | 
			
		||||
    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">zlibwapi</TargetName>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
@@ -213,20 +219,20 @@
 | 
			
		||||
    </ResourceCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>
 | 
			
		||||
      <AdditionalDependencies>..\..\masmx86\gvmat32.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
 | 
			
		||||
      <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <GenerateMapFile>true</GenerateMapFile>
 | 
			
		||||
      <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
 | 
			
		||||
      <SubSystem>Windows</SubSystem>
 | 
			
		||||
      <RandomizedBaseAddress>false</RandomizedBaseAddress>
 | 
			
		||||
      <DataExecutionPrevention>
 | 
			
		||||
      </DataExecutionPrevention>
 | 
			
		||||
      <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
 | 
			
		||||
    </Link>
 | 
			
		||||
    <PreBuildEvent>
 | 
			
		||||
      <Command>cd ..\..\masmx86
 | 
			
		||||
bld_ml32.bat</Command>
 | 
			
		||||
    </PreBuildEvent>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
@@ -262,18 +268,14 @@
 | 
			
		||||
    </ResourceCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>
 | 
			
		||||
      <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
 | 
			
		||||
      <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <GenerateMapFile>true</GenerateMapFile>
 | 
			
		||||
      <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
 | 
			
		||||
      <SubSystem>Windows</SubSystem>
 | 
			
		||||
      <RandomizedBaseAddress>false</RandomizedBaseAddress>
 | 
			
		||||
      <DataExecutionPrevention>
 | 
			
		||||
      </DataExecutionPrevention>
 | 
			
		||||
      <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 | 
			
		||||
@@ -291,7 +293,7 @@
 | 
			
		||||
      <StringPooling>true</StringPooling>
 | 
			
		||||
      <ExceptionHandling>
 | 
			
		||||
      </ExceptionHandling>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
 | 
			
		||||
      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
			
		||||
      <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
 | 
			
		||||
@@ -310,20 +312,20 @@
 | 
			
		||||
    </ResourceCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>
 | 
			
		||||
      <AdditionalDependencies>..\..\masmx86\gvmat32.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
 | 
			
		||||
      <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
 | 
			
		||||
      <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <GenerateMapFile>true</GenerateMapFile>
 | 
			
		||||
      <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
 | 
			
		||||
      <SubSystem>Windows</SubSystem>
 | 
			
		||||
      <RandomizedBaseAddress>false</RandomizedBaseAddress>
 | 
			
		||||
      <DataExecutionPrevention>
 | 
			
		||||
      </DataExecutionPrevention>
 | 
			
		||||
      <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
 | 
			
		||||
    </Link>
 | 
			
		||||
    <PreBuildEvent>
 | 
			
		||||
      <Command>cd ..\..\masmx86
 | 
			
		||||
bld_ml32.bat</Command>
 | 
			
		||||
    </PreBuildEvent>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
@@ -357,17 +359,17 @@
 | 
			
		||||
    </ResourceCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>..\..\masmx64\gvmat64.obj;..\..\masmx64\inffasx64.obj;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <GenerateMapFile>true</GenerateMapFile>
 | 
			
		||||
      <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
 | 
			
		||||
      <SubSystem>Windows</SubSystem>
 | 
			
		||||
      <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
 | 
			
		||||
      <TargetMachine>MachineX64</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
    <PreBuildEvent>
 | 
			
		||||
      <Command>cd ..\..\masmx64
 | 
			
		||||
bld_ml64.bat</Command>
 | 
			
		||||
    </PreBuildEvent>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
@@ -445,15 +447,11 @@
 | 
			
		||||
      <Culture>0x040c</Culture>
 | 
			
		||||
    </ResourceCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
 | 
			
		||||
      <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <GenerateMapFile>true</GenerateMapFile>
 | 
			
		||||
      <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
 | 
			
		||||
      <SubSystem>Windows</SubSystem>
 | 
			
		||||
      <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
 | 
			
		||||
      <TargetMachine>MachineX64</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
@@ -536,17 +534,17 @@
 | 
			
		||||
    </ResourceCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>..\..\masmx64\gvmat64.obj;..\..\masmx64\inffasx64.obj;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
 | 
			
		||||
      <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <GenerateMapFile>true</GenerateMapFile>
 | 
			
		||||
      <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
 | 
			
		||||
      <SubSystem>Windows</SubSystem>
 | 
			
		||||
      <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
 | 
			
		||||
      <TargetMachine>MachineX64</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
    <PreBuildEvent>
 | 
			
		||||
      <Command>cd ..\..\masmx64
 | 
			
		||||
bld_ml64.bat</Command>
 | 
			
		||||
    </PreBuildEvent>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
@@ -598,17 +596,7 @@
 | 
			
		||||
    <ClCompile Include="..\..\..\compress.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\crc32.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\deflate.c" />
 | 
			
		||||
    <ClCompile Include="..\..\masmx86\gvmat32c.c">
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\gzclose.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\gzio.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\gzlib.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\gzread.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\gzwrite.c" />
 | 
			
		||||
 
 | 
			
		||||
@@ -27,15 +27,9 @@
 | 
			
		||||
    <ClCompile Include="..\..\..\deflate.c">
 | 
			
		||||
      <Filter>Source Files</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\masmx86\gvmat32c.c">
 | 
			
		||||
      <Filter>Source Files</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\gzclose.c">
 | 
			
		||||
      <Filter>Source Files</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\gzio.c">
 | 
			
		||||
      <Filter>Source Files</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\gzlib.c">
 | 
			
		||||
      <Filter>Source Files</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +0,0 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
			
		||||
</Project>
 | 
			
		||||
							
								
								
									
										314
									
								
								contrib/vstudio/vc11/miniunz.vcxproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										314
									
								
								contrib/vstudio/vc11/miniunz.vcxproj
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,314 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
			
		||||
  <ItemGroup Label="ProjectConfigurations">
 | 
			
		||||
    <ProjectConfiguration Include="Debug|Itanium">
 | 
			
		||||
      <Configuration>Debug</Configuration>
 | 
			
		||||
      <Platform>Itanium</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Debug|Win32">
 | 
			
		||||
      <Configuration>Debug</Configuration>
 | 
			
		||||
      <Platform>Win32</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Debug|x64">
 | 
			
		||||
      <Configuration>Debug</Configuration>
 | 
			
		||||
      <Platform>x64</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Release|Itanium">
 | 
			
		||||
      <Configuration>Release</Configuration>
 | 
			
		||||
      <Platform>Itanium</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Release|Win32">
 | 
			
		||||
      <Configuration>Release</Configuration>
 | 
			
		||||
      <Platform>Win32</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Release|x64">
 | 
			
		||||
      <Configuration>Release</Configuration>
 | 
			
		||||
      <Platform>x64</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <PropertyGroup Label="Globals">
 | 
			
		||||
    <ProjectGuid>{C52F9E7B-498A-42BE-8DB4-85A15694382A}</ProjectGuid>
 | 
			
		||||
    <Keyword>Win32Proj</Keyword>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>Application</ConfigurationType>
 | 
			
		||||
    <CharacterSet>MultiByte</CharacterSet>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>Application</ConfigurationType>
 | 
			
		||||
    <CharacterSet>Unicode</CharacterSet>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>Application</ConfigurationType>
 | 
			
		||||
    <CharacterSet>MultiByte</CharacterSet>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>Application</ConfigurationType>
 | 
			
		||||
    <CharacterSet>MultiByte</CharacterSet>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>Application</ConfigurationType>
 | 
			
		||||
    <CharacterSet>MultiByte</CharacterSet>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>Application</ConfigurationType>
 | 
			
		||||
    <CharacterSet>MultiByte</CharacterSet>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
			
		||||
  <ImportGroup Label="ExtensionSettings">
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <PropertyGroup Label="UserMacros" />
 | 
			
		||||
  <PropertyGroup>
 | 
			
		||||
    <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\MiniUnzip$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\MiniUnzip$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</GenerateManifest>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\MiniUnzip$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\MiniUnzip$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</GenerateManifest>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\MiniUnzip$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\MiniUnzip$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</GenerateManifest>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\MiniUnzip$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\MiniUnzip$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">false</GenerateManifest>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\MiniUnzip$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\MiniUnzip$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</GenerateManifest>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\MiniUnzip$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\MiniUnzip$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</GenerateManifest>
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>Disabled</Optimization>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <MinimalRebuild>true</MinimalRebuild>
 | 
			
		||||
      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <PrecompiledHeader>
 | 
			
		||||
      </PrecompiledHeader>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>x86\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)miniunz.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)miniunz.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
      <RandomizedBaseAddress>false</RandomizedBaseAddress>
 | 
			
		||||
      <DataExecutionPrevention>
 | 
			
		||||
      </DataExecutionPrevention>
 | 
			
		||||
      <TargetMachine>MachineX86</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>MaxSpeed</Optimization>
 | 
			
		||||
      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 | 
			
		||||
      <OmitFramePointers>true</OmitFramePointers>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <StringPooling>true</StringPooling>
 | 
			
		||||
      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
 | 
			
		||||
      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
			
		||||
      <PrecompiledHeader>
 | 
			
		||||
      </PrecompiledHeader>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>x86\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)miniunz.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
      <OptimizeReferences>true</OptimizeReferences>
 | 
			
		||||
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 | 
			
		||||
      <RandomizedBaseAddress>false</RandomizedBaseAddress>
 | 
			
		||||
      <DataExecutionPrevention>
 | 
			
		||||
      </DataExecutionPrevention>
 | 
			
		||||
      <TargetMachine>MachineX86</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <TargetEnvironment>X64</TargetEnvironment>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>Disabled</Optimization>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <MinimalRebuild>true</MinimalRebuild>
 | 
			
		||||
      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <PrecompiledHeader>
 | 
			
		||||
      </PrecompiledHeader>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>x64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)miniunz.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)miniunz.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
      <TargetMachine>MachineX64</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <TargetEnvironment>Itanium</TargetEnvironment>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>Disabled</Optimization>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <MinimalRebuild>true</MinimalRebuild>
 | 
			
		||||
      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <PrecompiledHeader>
 | 
			
		||||
      </PrecompiledHeader>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>ia64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)miniunz.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)miniunz.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
      <TargetMachine>MachineIA64</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <TargetEnvironment>X64</TargetEnvironment>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>MaxSpeed</Optimization>
 | 
			
		||||
      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 | 
			
		||||
      <OmitFramePointers>true</OmitFramePointers>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <StringPooling>true</StringPooling>
 | 
			
		||||
      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
			
		||||
      <PrecompiledHeader>
 | 
			
		||||
      </PrecompiledHeader>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>x64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)miniunz.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
      <OptimizeReferences>true</OptimizeReferences>
 | 
			
		||||
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 | 
			
		||||
      <TargetMachine>MachineX64</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <TargetEnvironment>Itanium</TargetEnvironment>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>MaxSpeed</Optimization>
 | 
			
		||||
      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 | 
			
		||||
      <OmitFramePointers>true</OmitFramePointers>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <StringPooling>true</StringPooling>
 | 
			
		||||
      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
			
		||||
      <PrecompiledHeader>
 | 
			
		||||
      </PrecompiledHeader>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>ia64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)miniunz.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
      <OptimizeReferences>true</OptimizeReferences>
 | 
			
		||||
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 | 
			
		||||
      <TargetMachine>MachineIA64</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ClCompile Include="..\..\minizip\miniunz.c" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ProjectReference Include="zlibvc.vcxproj">
 | 
			
		||||
      <Project>{8fd826f8-3739-44e6-8cc8-997122e53b8d}</Project>
 | 
			
		||||
    </ProjectReference>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
 | 
			
		||||
  <ImportGroup Label="ExtensionTargets">
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
</Project>
 | 
			
		||||
							
								
								
									
										311
									
								
								contrib/vstudio/vc11/minizip.vcxproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										311
									
								
								contrib/vstudio/vc11/minizip.vcxproj
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,311 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
			
		||||
  <ItemGroup Label="ProjectConfigurations">
 | 
			
		||||
    <ProjectConfiguration Include="Debug|Itanium">
 | 
			
		||||
      <Configuration>Debug</Configuration>
 | 
			
		||||
      <Platform>Itanium</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Debug|Win32">
 | 
			
		||||
      <Configuration>Debug</Configuration>
 | 
			
		||||
      <Platform>Win32</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Debug|x64">
 | 
			
		||||
      <Configuration>Debug</Configuration>
 | 
			
		||||
      <Platform>x64</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Release|Itanium">
 | 
			
		||||
      <Configuration>Release</Configuration>
 | 
			
		||||
      <Platform>Itanium</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Release|Win32">
 | 
			
		||||
      <Configuration>Release</Configuration>
 | 
			
		||||
      <Platform>Win32</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Release|x64">
 | 
			
		||||
      <Configuration>Release</Configuration>
 | 
			
		||||
      <Platform>x64</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <PropertyGroup Label="Globals">
 | 
			
		||||
    <ProjectGuid>{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}</ProjectGuid>
 | 
			
		||||
    <Keyword>Win32Proj</Keyword>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>Application</ConfigurationType>
 | 
			
		||||
    <CharacterSet>MultiByte</CharacterSet>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>Application</ConfigurationType>
 | 
			
		||||
    <CharacterSet>Unicode</CharacterSet>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>Application</ConfigurationType>
 | 
			
		||||
    <CharacterSet>MultiByte</CharacterSet>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>Application</ConfigurationType>
 | 
			
		||||
    <CharacterSet>MultiByte</CharacterSet>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>Application</ConfigurationType>
 | 
			
		||||
    <CharacterSet>MultiByte</CharacterSet>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>Application</ConfigurationType>
 | 
			
		||||
    <CharacterSet>MultiByte</CharacterSet>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
			
		||||
  <ImportGroup Label="ExtensionSettings">
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <PropertyGroup Label="UserMacros" />
 | 
			
		||||
  <PropertyGroup>
 | 
			
		||||
    <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\MiniZip$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\MiniZip$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</GenerateManifest>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\MiniZip$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\MiniZip$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\$(Configuration)\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</GenerateManifest>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\$(Configuration)\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">false</GenerateManifest>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\$(Configuration)\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\$(Configuration)\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</LinkIncremental>
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>Disabled</Optimization>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <MinimalRebuild>true</MinimalRebuild>
 | 
			
		||||
      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <PrecompiledHeader>
 | 
			
		||||
      </PrecompiledHeader>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>x86\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)minizip.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)minizip.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
      <RandomizedBaseAddress>false</RandomizedBaseAddress>
 | 
			
		||||
      <DataExecutionPrevention>
 | 
			
		||||
      </DataExecutionPrevention>
 | 
			
		||||
      <TargetMachine>MachineX86</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>MaxSpeed</Optimization>
 | 
			
		||||
      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 | 
			
		||||
      <OmitFramePointers>true</OmitFramePointers>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <StringPooling>true</StringPooling>
 | 
			
		||||
      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
 | 
			
		||||
      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
			
		||||
      <PrecompiledHeader>
 | 
			
		||||
      </PrecompiledHeader>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>x86\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)minizip.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
      <OptimizeReferences>true</OptimizeReferences>
 | 
			
		||||
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 | 
			
		||||
      <RandomizedBaseAddress>false</RandomizedBaseAddress>
 | 
			
		||||
      <DataExecutionPrevention>
 | 
			
		||||
      </DataExecutionPrevention>
 | 
			
		||||
      <TargetMachine>MachineX86</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <TargetEnvironment>X64</TargetEnvironment>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>Disabled</Optimization>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <MinimalRebuild>true</MinimalRebuild>
 | 
			
		||||
      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <PrecompiledHeader>
 | 
			
		||||
      </PrecompiledHeader>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>x64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)minizip.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)minizip.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
      <TargetMachine>MachineX64</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <TargetEnvironment>Itanium</TargetEnvironment>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>Disabled</Optimization>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <MinimalRebuild>true</MinimalRebuild>
 | 
			
		||||
      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <PrecompiledHeader>
 | 
			
		||||
      </PrecompiledHeader>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>ia64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)minizip.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)minizip.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
      <TargetMachine>MachineIA64</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <TargetEnvironment>X64</TargetEnvironment>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>MaxSpeed</Optimization>
 | 
			
		||||
      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 | 
			
		||||
      <OmitFramePointers>true</OmitFramePointers>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <StringPooling>true</StringPooling>
 | 
			
		||||
      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
			
		||||
      <PrecompiledHeader>
 | 
			
		||||
      </PrecompiledHeader>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>x64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)minizip.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
      <OptimizeReferences>true</OptimizeReferences>
 | 
			
		||||
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 | 
			
		||||
      <TargetMachine>MachineX64</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <TargetEnvironment>Itanium</TargetEnvironment>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>MaxSpeed</Optimization>
 | 
			
		||||
      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 | 
			
		||||
      <OmitFramePointers>true</OmitFramePointers>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <StringPooling>true</StringPooling>
 | 
			
		||||
      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
			
		||||
      <PrecompiledHeader>
 | 
			
		||||
      </PrecompiledHeader>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>ia64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)minizip.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
      <OptimizeReferences>true</OptimizeReferences>
 | 
			
		||||
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 | 
			
		||||
      <TargetMachine>MachineIA64</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ClCompile Include="..\..\minizip\minizip.c" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ProjectReference Include="zlibvc.vcxproj">
 | 
			
		||||
      <Project>{8fd826f8-3739-44e6-8cc8-997122e53b8d}</Project>
 | 
			
		||||
    </ProjectReference>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
 | 
			
		||||
  <ImportGroup Label="ExtensionTargets">
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
</Project>
 | 
			
		||||
							
								
								
									
										426
									
								
								contrib/vstudio/vc11/testzlib.vcxproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										426
									
								
								contrib/vstudio/vc11/testzlib.vcxproj
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,426 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
			
		||||
  <ItemGroup Label="ProjectConfigurations">
 | 
			
		||||
    <ProjectConfiguration Include="Debug|Itanium">
 | 
			
		||||
      <Configuration>Debug</Configuration>
 | 
			
		||||
      <Platform>Itanium</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Debug|Win32">
 | 
			
		||||
      <Configuration>Debug</Configuration>
 | 
			
		||||
      <Platform>Win32</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Debug|x64">
 | 
			
		||||
      <Configuration>Debug</Configuration>
 | 
			
		||||
      <Platform>x64</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="ReleaseWithoutAsm|Itanium">
 | 
			
		||||
      <Configuration>ReleaseWithoutAsm</Configuration>
 | 
			
		||||
      <Platform>Itanium</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="ReleaseWithoutAsm|Win32">
 | 
			
		||||
      <Configuration>ReleaseWithoutAsm</Configuration>
 | 
			
		||||
      <Platform>Win32</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="ReleaseWithoutAsm|x64">
 | 
			
		||||
      <Configuration>ReleaseWithoutAsm</Configuration>
 | 
			
		||||
      <Platform>x64</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Release|Itanium">
 | 
			
		||||
      <Configuration>Release</Configuration>
 | 
			
		||||
      <Platform>Itanium</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Release|Win32">
 | 
			
		||||
      <Configuration>Release</Configuration>
 | 
			
		||||
      <Platform>Win32</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Release|x64">
 | 
			
		||||
      <Configuration>Release</Configuration>
 | 
			
		||||
      <Platform>x64</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <PropertyGroup Label="Globals">
 | 
			
		||||
    <ProjectGuid>{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}</ProjectGuid>
 | 
			
		||||
    <RootNamespace>testzlib</RootNamespace>
 | 
			
		||||
    <Keyword>Win32Proj</Keyword>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>Application</ConfigurationType>
 | 
			
		||||
    <CharacterSet>MultiByte</CharacterSet>
 | 
			
		||||
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>Application</ConfigurationType>
 | 
			
		||||
    <CharacterSet>MultiByte</CharacterSet>
 | 
			
		||||
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>Application</ConfigurationType>
 | 
			
		||||
    <CharacterSet>Unicode</CharacterSet>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>Application</ConfigurationType>
 | 
			
		||||
    <CharacterSet>MultiByte</CharacterSet>
 | 
			
		||||
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>Application</ConfigurationType>
 | 
			
		||||
    <CharacterSet>MultiByte</CharacterSet>
 | 
			
		||||
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>Application</ConfigurationType>
 | 
			
		||||
    <CharacterSet>MultiByte</CharacterSet>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>Application</ConfigurationType>
 | 
			
		||||
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>Application</ConfigurationType>
 | 
			
		||||
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>Application</ConfigurationType>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
			
		||||
  <ImportGroup Label="ExtensionSettings">
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <PropertyGroup Label="UserMacros" />
 | 
			
		||||
  <PropertyGroup>
 | 
			
		||||
    <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\TestZlib$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\TestZlib$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</GenerateManifest>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\TestZlib$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\TestZlib$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">false</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">false</GenerateManifest>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\TestZlib$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\TestZlib$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</GenerateManifest>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\TestZlib$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\TestZlib$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</GenerateManifest>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\TestZlib$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\TestZlib$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">false</GenerateManifest>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\TestZlib$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\TestZlib$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">false</GenerateManifest>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\TestZlib$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\TestZlib$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">false</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">false</GenerateManifest>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\TestZlib$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\TestZlib$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</GenerateManifest>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\TestZlib$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\TestZlib$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</GenerateManifest>
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>Disabled</Optimization>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>ASMV;ASMINF;WIN32;ZLIB_WINAPI;_DEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <MinimalRebuild>true</MinimalRebuild>
 | 
			
		||||
      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <PrecompiledHeader>
 | 
			
		||||
      </PrecompiledHeader>
 | 
			
		||||
      <AssemblerOutput>AssemblyAndSourceCode</AssemblerOutput>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)testzlib.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
      <RandomizedBaseAddress>false</RandomizedBaseAddress>
 | 
			
		||||
      <DataExecutionPrevention>
 | 
			
		||||
      </DataExecutionPrevention>
 | 
			
		||||
      <TargetMachine>MachineX86</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>MaxSpeed</Optimization>
 | 
			
		||||
      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 | 
			
		||||
      <OmitFramePointers>true</OmitFramePointers>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <StringPooling>true</StringPooling>
 | 
			
		||||
      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
 | 
			
		||||
      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
			
		||||
      <PrecompiledHeader>
 | 
			
		||||
      </PrecompiledHeader>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <OutputFile>$(OutDir)testzlib.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
      <OptimizeReferences>true</OptimizeReferences>
 | 
			
		||||
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 | 
			
		||||
      <RandomizedBaseAddress>false</RandomizedBaseAddress>
 | 
			
		||||
      <DataExecutionPrevention>
 | 
			
		||||
      </DataExecutionPrevention>
 | 
			
		||||
      <TargetMachine>MachineX86</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>MaxSpeed</Optimization>
 | 
			
		||||
      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 | 
			
		||||
      <OmitFramePointers>true</OmitFramePointers>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>ASMV;ASMINF;WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <StringPooling>true</StringPooling>
 | 
			
		||||
      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
 | 
			
		||||
      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
			
		||||
      <PrecompiledHeader>
 | 
			
		||||
      </PrecompiledHeader>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)testzlib.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
      <OptimizeReferences>true</OptimizeReferences>
 | 
			
		||||
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 | 
			
		||||
      <RandomizedBaseAddress>false</RandomizedBaseAddress>
 | 
			
		||||
      <DataExecutionPrevention>
 | 
			
		||||
      </DataExecutionPrevention>
 | 
			
		||||
      <TargetMachine>MachineX86</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>ASMV;ASMINF;WIN32;ZLIB_WINAPI;_DEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>..\..\masmx64\gvmat64.obj;..\..\masmx64\inffasx64.obj;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <TargetEnvironment>Itanium</TargetEnvironment>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>Disabled</Optimization>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>ZLIB_WINAPI;_DEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <MinimalRebuild>true</MinimalRebuild>
 | 
			
		||||
      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <PrecompiledHeader>
 | 
			
		||||
      </PrecompiledHeader>
 | 
			
		||||
      <AssemblerOutput>AssemblyAndSourceCode</AssemblerOutput>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <OutputFile>$(OutDir)testzlib.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
      <TargetMachine>MachineIA64</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <TargetEnvironment>Itanium</TargetEnvironment>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>MaxSpeed</Optimization>
 | 
			
		||||
      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 | 
			
		||||
      <OmitFramePointers>true</OmitFramePointers>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <StringPooling>true</StringPooling>
 | 
			
		||||
      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
			
		||||
      <PrecompiledHeader>
 | 
			
		||||
      </PrecompiledHeader>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <OutputFile>$(OutDir)testzlib.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
      <OptimizeReferences>true</OptimizeReferences>
 | 
			
		||||
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 | 
			
		||||
      <TargetMachine>MachineIA64</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>ASMV;ASMINF;WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>..\..\masmx64\gvmat64.obj;..\..\masmx64\inffasx64.obj;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <TargetEnvironment>Itanium</TargetEnvironment>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>MaxSpeed</Optimization>
 | 
			
		||||
      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 | 
			
		||||
      <OmitFramePointers>true</OmitFramePointers>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <StringPooling>true</StringPooling>
 | 
			
		||||
      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
			
		||||
      <PrecompiledHeader>
 | 
			
		||||
      </PrecompiledHeader>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <OutputFile>$(OutDir)testzlib.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
      <OptimizeReferences>true</OptimizeReferences>
 | 
			
		||||
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 | 
			
		||||
      <TargetMachine>MachineIA64</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ClCompile Include="..\..\..\adler32.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\compress.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\crc32.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\deflate.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\infback.c" />
 | 
			
		||||
    <ClCompile Include="..\..\masmx64\inffas8664.c">
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\inffast.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\inflate.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\inftrees.c" />
 | 
			
		||||
    <ClCompile Include="..\..\testzlib\testzlib.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\trees.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\uncompr.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\zutil.c" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
 | 
			
		||||
  <ImportGroup Label="ExtensionTargets">
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
</Project>
 | 
			
		||||
							
								
								
									
										314
									
								
								contrib/vstudio/vc11/testzlibdll.vcxproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										314
									
								
								contrib/vstudio/vc11/testzlibdll.vcxproj
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,314 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
			
		||||
  <ItemGroup Label="ProjectConfigurations">
 | 
			
		||||
    <ProjectConfiguration Include="Debug|Itanium">
 | 
			
		||||
      <Configuration>Debug</Configuration>
 | 
			
		||||
      <Platform>Itanium</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Debug|Win32">
 | 
			
		||||
      <Configuration>Debug</Configuration>
 | 
			
		||||
      <Platform>Win32</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Debug|x64">
 | 
			
		||||
      <Configuration>Debug</Configuration>
 | 
			
		||||
      <Platform>x64</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Release|Itanium">
 | 
			
		||||
      <Configuration>Release</Configuration>
 | 
			
		||||
      <Platform>Itanium</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Release|Win32">
 | 
			
		||||
      <Configuration>Release</Configuration>
 | 
			
		||||
      <Platform>Win32</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Release|x64">
 | 
			
		||||
      <Configuration>Release</Configuration>
 | 
			
		||||
      <Platform>x64</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <PropertyGroup Label="Globals">
 | 
			
		||||
    <ProjectGuid>{C52F9E7B-498A-42BE-8DB4-85A15694366A}</ProjectGuid>
 | 
			
		||||
    <Keyword>Win32Proj</Keyword>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>Application</ConfigurationType>
 | 
			
		||||
    <CharacterSet>MultiByte</CharacterSet>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>Application</ConfigurationType>
 | 
			
		||||
    <CharacterSet>Unicode</CharacterSet>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>Application</ConfigurationType>
 | 
			
		||||
    <CharacterSet>MultiByte</CharacterSet>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>Application</ConfigurationType>
 | 
			
		||||
    <CharacterSet>MultiByte</CharacterSet>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>Application</ConfigurationType>
 | 
			
		||||
    <CharacterSet>MultiByte</CharacterSet>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>Application</ConfigurationType>
 | 
			
		||||
    <CharacterSet>MultiByte</CharacterSet>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
			
		||||
  <ImportGroup Label="ExtensionSettings">
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <PropertyGroup Label="UserMacros" />
 | 
			
		||||
  <PropertyGroup>
 | 
			
		||||
    <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\TestZlibDll$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\TestZlibDll$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</GenerateManifest>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\TestZlibDll$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\TestZlibDll$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</GenerateManifest>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\TestZlibDll$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\TestZlibDll$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</GenerateManifest>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\TestZlibDll$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\TestZlibDll$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">false</GenerateManifest>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\TestZlibDll$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\TestZlibDll$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</GenerateManifest>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\TestZlibDll$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\TestZlibDll$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</GenerateManifest>
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>Disabled</Optimization>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <MinimalRebuild>true</MinimalRebuild>
 | 
			
		||||
      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <PrecompiledHeader>
 | 
			
		||||
      </PrecompiledHeader>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>x86\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
      <RandomizedBaseAddress>false</RandomizedBaseAddress>
 | 
			
		||||
      <DataExecutionPrevention>
 | 
			
		||||
      </DataExecutionPrevention>
 | 
			
		||||
      <TargetMachine>MachineX86</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>MaxSpeed</Optimization>
 | 
			
		||||
      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 | 
			
		||||
      <OmitFramePointers>true</OmitFramePointers>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <StringPooling>true</StringPooling>
 | 
			
		||||
      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
 | 
			
		||||
      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
			
		||||
      <PrecompiledHeader>
 | 
			
		||||
      </PrecompiledHeader>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>x86\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
      <OptimizeReferences>true</OptimizeReferences>
 | 
			
		||||
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 | 
			
		||||
      <RandomizedBaseAddress>false</RandomizedBaseAddress>
 | 
			
		||||
      <DataExecutionPrevention>
 | 
			
		||||
      </DataExecutionPrevention>
 | 
			
		||||
      <TargetMachine>MachineX86</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <TargetEnvironment>X64</TargetEnvironment>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>Disabled</Optimization>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <MinimalRebuild>true</MinimalRebuild>
 | 
			
		||||
      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <PrecompiledHeader>
 | 
			
		||||
      </PrecompiledHeader>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>x64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
      <TargetMachine>MachineX64</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <TargetEnvironment>Itanium</TargetEnvironment>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>Disabled</Optimization>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <MinimalRebuild>true</MinimalRebuild>
 | 
			
		||||
      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <PrecompiledHeader>
 | 
			
		||||
      </PrecompiledHeader>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>ia64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
      <TargetMachine>MachineIA64</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <TargetEnvironment>X64</TargetEnvironment>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>MaxSpeed</Optimization>
 | 
			
		||||
      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 | 
			
		||||
      <OmitFramePointers>true</OmitFramePointers>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <StringPooling>true</StringPooling>
 | 
			
		||||
      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
			
		||||
      <PrecompiledHeader>
 | 
			
		||||
      </PrecompiledHeader>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>x64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
      <OptimizeReferences>true</OptimizeReferences>
 | 
			
		||||
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 | 
			
		||||
      <TargetMachine>MachineX64</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <TargetEnvironment>Itanium</TargetEnvironment>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>MaxSpeed</Optimization>
 | 
			
		||||
      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 | 
			
		||||
      <OmitFramePointers>true</OmitFramePointers>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <StringPooling>true</StringPooling>
 | 
			
		||||
      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
			
		||||
      <PrecompiledHeader>
 | 
			
		||||
      </PrecompiledHeader>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>ia64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
      <OptimizeReferences>true</OptimizeReferences>
 | 
			
		||||
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 | 
			
		||||
      <TargetMachine>MachineIA64</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ClCompile Include="..\..\testzlib\testzlib.c" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ProjectReference Include="zlibvc.vcxproj">
 | 
			
		||||
      <Project>{8fd826f8-3739-44e6-8cc8-997122e53b8d}</Project>
 | 
			
		||||
    </ProjectReference>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
 | 
			
		||||
  <ImportGroup Label="ExtensionTargets">
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
</Project>
 | 
			
		||||
							
								
								
									
										32
									
								
								contrib/vstudio/vc11/zlib.rc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								contrib/vstudio/vc11/zlib.rc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
#include <windows.h>
 | 
			
		||||
 | 
			
		||||
#define IDR_VERSION1  1
 | 
			
		||||
IDR_VERSION1	VERSIONINFO	MOVEABLE IMPURE LOADONCALL DISCARDABLE
 | 
			
		||||
  FILEVERSION	 1,2,8,0
 | 
			
		||||
  PRODUCTVERSION 1,2,8,0
 | 
			
		||||
  FILEFLAGSMASK	VS_FFI_FILEFLAGSMASK
 | 
			
		||||
  FILEFLAGS	0
 | 
			
		||||
  FILEOS	VOS_DOS_WINDOWS32
 | 
			
		||||
  FILETYPE	VFT_DLL
 | 
			
		||||
  FILESUBTYPE	0	// not used
 | 
			
		||||
BEGIN
 | 
			
		||||
  BLOCK "StringFileInfo"
 | 
			
		||||
  BEGIN
 | 
			
		||||
    BLOCK "040904E4"
 | 
			
		||||
    //language ID = U.S. English, char set = Windows, Multilingual
 | 
			
		||||
 | 
			
		||||
    BEGIN
 | 
			
		||||
      VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0"
 | 
			
		||||
      VALUE "FileVersion",	"1.2.8\0"
 | 
			
		||||
      VALUE "InternalName",	"zlib\0"
 | 
			
		||||
      VALUE "OriginalFilename",	"zlibwapi.dll\0"
 | 
			
		||||
      VALUE "ProductName",	"ZLib.DLL\0"
 | 
			
		||||
      VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0"
 | 
			
		||||
      VALUE "LegalCopyright", "(C) 1995-2013 Jean-loup Gailly & Mark Adler\0"
 | 
			
		||||
    END
 | 
			
		||||
  END
 | 
			
		||||
  BLOCK "VarFileInfo"
 | 
			
		||||
  BEGIN
 | 
			
		||||
    VALUE "Translation", 0x0409, 1252
 | 
			
		||||
  END
 | 
			
		||||
END
 | 
			
		||||
							
								
								
									
										464
									
								
								contrib/vstudio/vc11/zlibstat.vcxproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										464
									
								
								contrib/vstudio/vc11/zlibstat.vcxproj
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,464 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
			
		||||
  <ItemGroup Label="ProjectConfigurations">
 | 
			
		||||
    <ProjectConfiguration Include="Debug|Itanium">
 | 
			
		||||
      <Configuration>Debug</Configuration>
 | 
			
		||||
      <Platform>Itanium</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Debug|Win32">
 | 
			
		||||
      <Configuration>Debug</Configuration>
 | 
			
		||||
      <Platform>Win32</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Debug|x64">
 | 
			
		||||
      <Configuration>Debug</Configuration>
 | 
			
		||||
      <Platform>x64</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="ReleaseWithoutAsm|Itanium">
 | 
			
		||||
      <Configuration>ReleaseWithoutAsm</Configuration>
 | 
			
		||||
      <Platform>Itanium</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="ReleaseWithoutAsm|Win32">
 | 
			
		||||
      <Configuration>ReleaseWithoutAsm</Configuration>
 | 
			
		||||
      <Platform>Win32</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="ReleaseWithoutAsm|x64">
 | 
			
		||||
      <Configuration>ReleaseWithoutAsm</Configuration>
 | 
			
		||||
      <Platform>x64</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Release|Itanium">
 | 
			
		||||
      <Configuration>Release</Configuration>
 | 
			
		||||
      <Platform>Itanium</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Release|Win32">
 | 
			
		||||
      <Configuration>Release</Configuration>
 | 
			
		||||
      <Platform>Win32</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Release|x64">
 | 
			
		||||
      <Configuration>Release</Configuration>
 | 
			
		||||
      <Platform>x64</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <PropertyGroup Label="Globals">
 | 
			
		||||
    <ProjectGuid>{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}</ProjectGuid>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
			
		||||
    <UseOfMfc>false</UseOfMfc>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
			
		||||
    <UseOfMfc>false</UseOfMfc>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
			
		||||
    <UseOfMfc>false</UseOfMfc>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
    <CharacterSet>Unicode</CharacterSet>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
			
		||||
    <UseOfMfc>false</UseOfMfc>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
			
		||||
    <UseOfMfc>false</UseOfMfc>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
			
		||||
    <UseOfMfc>false</UseOfMfc>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
			
		||||
    <UseOfMfc>false</UseOfMfc>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
			
		||||
    <UseOfMfc>false</UseOfMfc>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
			
		||||
    <UseOfMfc>false</UseOfMfc>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
			
		||||
  <ImportGroup Label="ExtensionSettings">
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <PropertyGroup Label="UserMacros" />
 | 
			
		||||
  <PropertyGroup>
 | 
			
		||||
    <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\ZlibStat$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\ZlibStat$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\ZlibStat$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\ZlibStat$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\ZlibStat$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\ZlibStat$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\ZlibStat$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\ZlibStat$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\ZlibStat$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\ZlibStat$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\ZlibStat$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\ZlibStat$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\ZlibStat$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\ZlibStat$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\ZlibStat$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\ZlibStat$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\ZlibStat$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\ZlibStat$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>Disabled</Optimization>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <ExceptionHandling>
 | 
			
		||||
      </ExceptionHandling>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <ObjectFileName>$(IntDir)</ObjectFileName>
 | 
			
		||||
      <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <DebugInformationFormat>OldStyle</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ResourceCompile>
 | 
			
		||||
      <Culture>0x040c</Culture>
 | 
			
		||||
    </ResourceCompile>
 | 
			
		||||
    <Lib>
 | 
			
		||||
      <AdditionalOptions>/MACHINE:X86 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
 | 
			
		||||
      <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
    </Lib>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ASMV;ASMINF;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <StringPooling>true</StringPooling>
 | 
			
		||||
      <ExceptionHandling>
 | 
			
		||||
      </ExceptionHandling>
 | 
			
		||||
      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
			
		||||
      <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <ObjectFileName>$(IntDir)</ObjectFileName>
 | 
			
		||||
      <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ResourceCompile>
 | 
			
		||||
      <Culture>0x040c</Culture>
 | 
			
		||||
    </ResourceCompile>
 | 
			
		||||
    <Lib>
 | 
			
		||||
      <AdditionalOptions>/MACHINE:X86 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
 | 
			
		||||
      <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
    </Lib>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <StringPooling>true</StringPooling>
 | 
			
		||||
      <ExceptionHandling>
 | 
			
		||||
      </ExceptionHandling>
 | 
			
		||||
      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
			
		||||
      <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <ObjectFileName>$(IntDir)</ObjectFileName>
 | 
			
		||||
      <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ResourceCompile>
 | 
			
		||||
      <Culture>0x040c</Culture>
 | 
			
		||||
    </ResourceCompile>
 | 
			
		||||
    <Lib>
 | 
			
		||||
      <AdditionalOptions>/MACHINE:X86 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
 | 
			
		||||
      <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
    </Lib>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <TargetEnvironment>X64</TargetEnvironment>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>Disabled</Optimization>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <ExceptionHandling>
 | 
			
		||||
      </ExceptionHandling>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <ObjectFileName>$(IntDir)</ObjectFileName>
 | 
			
		||||
      <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <DebugInformationFormat>OldStyle</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ResourceCompile>
 | 
			
		||||
      <Culture>0x040c</Culture>
 | 
			
		||||
    </ResourceCompile>
 | 
			
		||||
    <Lib>
 | 
			
		||||
      <AdditionalOptions>/MACHINE:AMD64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
 | 
			
		||||
      <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
    </Lib>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <TargetEnvironment>Itanium</TargetEnvironment>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>Disabled</Optimization>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <ExceptionHandling>
 | 
			
		||||
      </ExceptionHandling>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <ObjectFileName>$(IntDir)</ObjectFileName>
 | 
			
		||||
      <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <DebugInformationFormat>OldStyle</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ResourceCompile>
 | 
			
		||||
      <Culture>0x040c</Culture>
 | 
			
		||||
    </ResourceCompile>
 | 
			
		||||
    <Lib>
 | 
			
		||||
      <AdditionalOptions>/MACHINE:IA64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
 | 
			
		||||
      <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
    </Lib>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <TargetEnvironment>X64</TargetEnvironment>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ASMV;ASMINF;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <StringPooling>true</StringPooling>
 | 
			
		||||
      <ExceptionHandling>
 | 
			
		||||
      </ExceptionHandling>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
			
		||||
      <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <ObjectFileName>$(IntDir)</ObjectFileName>
 | 
			
		||||
      <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ResourceCompile>
 | 
			
		||||
      <Culture>0x040c</Culture>
 | 
			
		||||
    </ResourceCompile>
 | 
			
		||||
    <Lib>
 | 
			
		||||
      <AdditionalOptions>/MACHINE:AMD64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
 | 
			
		||||
      <AdditionalDependencies>..\..\masmx64\gvmat64.obj;..\..\masmx64\inffasx64.obj;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
    </Lib>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <TargetEnvironment>Itanium</TargetEnvironment>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <StringPooling>true</StringPooling>
 | 
			
		||||
      <ExceptionHandling>
 | 
			
		||||
      </ExceptionHandling>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
			
		||||
      <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <ObjectFileName>$(IntDir)</ObjectFileName>
 | 
			
		||||
      <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ResourceCompile>
 | 
			
		||||
      <Culture>0x040c</Culture>
 | 
			
		||||
    </ResourceCompile>
 | 
			
		||||
    <Lib>
 | 
			
		||||
      <AdditionalOptions>/MACHINE:IA64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
 | 
			
		||||
      <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
    </Lib>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <TargetEnvironment>X64</TargetEnvironment>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <StringPooling>true</StringPooling>
 | 
			
		||||
      <ExceptionHandling>
 | 
			
		||||
      </ExceptionHandling>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
			
		||||
      <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <ObjectFileName>$(IntDir)</ObjectFileName>
 | 
			
		||||
      <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ResourceCompile>
 | 
			
		||||
      <Culture>0x040c</Culture>
 | 
			
		||||
    </ResourceCompile>
 | 
			
		||||
    <Lib>
 | 
			
		||||
      <AdditionalOptions>/MACHINE:AMD64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
 | 
			
		||||
      <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
    </Lib>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <TargetEnvironment>Itanium</TargetEnvironment>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <StringPooling>true</StringPooling>
 | 
			
		||||
      <ExceptionHandling>
 | 
			
		||||
      </ExceptionHandling>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
			
		||||
      <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <ObjectFileName>$(IntDir)</ObjectFileName>
 | 
			
		||||
      <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ResourceCompile>
 | 
			
		||||
      <Culture>0x040c</Culture>
 | 
			
		||||
    </ResourceCompile>
 | 
			
		||||
    <Lib>
 | 
			
		||||
      <AdditionalOptions>/MACHINE:IA64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
 | 
			
		||||
      <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
    </Lib>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ClCompile Include="..\..\..\adler32.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\compress.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\crc32.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\deflate.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\gzclose.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\gzlib.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\gzread.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\gzwrite.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\infback.c" />
 | 
			
		||||
    <ClCompile Include="..\..\masmx64\inffas8664.c">
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\inffast.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\inflate.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\inftrees.c" />
 | 
			
		||||
    <ClCompile Include="..\..\minizip\ioapi.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\trees.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\uncompr.c" />
 | 
			
		||||
    <ClCompile Include="..\..\minizip\unzip.c" />
 | 
			
		||||
    <ClCompile Include="..\..\minizip\zip.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\zutil.c" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ResourceCompile Include="zlib.rc" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <None Include="zlibvc.def" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
 | 
			
		||||
  <ImportGroup Label="ExtensionTargets">
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
</Project>
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
LIBRARY
 | 
			
		||||
; zlib data compression and ZIP file I/O library
 | 
			
		||||
 | 
			
		||||
VERSION		1.23
 | 
			
		||||
 | 
			
		||||
HEAPSIZE	1048576,8192
 | 
			
		||||
VERSION		1.2.8
 | 
			
		||||
 | 
			
		||||
EXPORTS
 | 
			
		||||
        adler32                                  @1
 | 
			
		||||
@@ -55,6 +55,7 @@ EXPORTS
 | 
			
		||||
        gzungetc                                 @49
 | 
			
		||||
        zlibCompileFlags                         @50
 | 
			
		||||
        deflatePrime                             @51
 | 
			
		||||
        deflatePending                           @52
 | 
			
		||||
 | 
			
		||||
        unzOpen                                  @61
 | 
			
		||||
        unzClose                                 @62
 | 
			
		||||
@@ -90,11 +91,12 @@ EXPORTS
 | 
			
		||||
        unzGoToFilePos                           @101
 | 
			
		||||
 | 
			
		||||
        fill_win32_filefunc                      @110
 | 
			
		||||
 | 
			
		||||
; zlibwapi v1.2.4 added:
 | 
			
		||||
        fill_win32_filefunc64                   @111
 | 
			
		||||
        fill_win32_filefunc64A                  @112
 | 
			
		||||
        fill_win32_filefunc64W                  @113
 | 
			
		||||
 | 
			
		||||
; quick hack by hkuno@microhouse.co.jp
 | 
			
		||||
        unzOpen64                               @120
 | 
			
		||||
        unzOpen2_64                             @121
 | 
			
		||||
        unzGetGlobalInfo64                      @122
 | 
			
		||||
@@ -111,4 +113,31 @@ EXPORTS
 | 
			
		||||
        zipOpenNewFileInZip3_64                 @134
 | 
			
		||||
        zipOpenNewFileInZip4_64                 @135
 | 
			
		||||
        zipCloseFileInZipRaw64                  @136
 | 
			
		||||
; end hack
 | 
			
		||||
 | 
			
		||||
; zlib1 v1.2.4 added:
 | 
			
		||||
        adler32_combine                         @140
 | 
			
		||||
        crc32_combine                           @142
 | 
			
		||||
        deflateSetHeader                        @144
 | 
			
		||||
        deflateTune                             @145
 | 
			
		||||
        gzbuffer                                @146
 | 
			
		||||
        gzclose_r                               @147
 | 
			
		||||
        gzclose_w                               @148
 | 
			
		||||
        gzdirect                                @149
 | 
			
		||||
        gzoffset                                @150
 | 
			
		||||
        inflateGetHeader                        @156
 | 
			
		||||
        inflateMark                             @157
 | 
			
		||||
        inflatePrime                            @158
 | 
			
		||||
        inflateReset2                           @159
 | 
			
		||||
        inflateUndermine                        @160
 | 
			
		||||
 | 
			
		||||
; zlib1 v1.2.6 added:
 | 
			
		||||
        gzgetc_                                 @161
 | 
			
		||||
        inflateResetKeep                        @163
 | 
			
		||||
        deflateResetKeep                        @164
 | 
			
		||||
 | 
			
		||||
; zlib1 v1.2.7 added:
 | 
			
		||||
        gzopen_w                                @165
 | 
			
		||||
 | 
			
		||||
; zlib1 v1.2.8 added:
 | 
			
		||||
        inflateGetDictionary                    @166
 | 
			
		||||
        gzvprintf                               @167
 | 
			
		||||
							
								
								
									
										117
									
								
								contrib/vstudio/vc11/zlibvc.sln
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										117
									
								
								contrib/vstudio/vc11/zlibvc.sln
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,117 @@
 | 
			
		||||
 | 
			
		||||
Microsoft Visual Studio Solution File, Format Version 12.00
 | 
			
		||||
# Visual Studio 2012
 | 
			
		||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibvc", "zlibvc.vcxproj", "{8FD826F8-3739-44E6-8CC8-997122E53B8D}"
 | 
			
		||||
EndProject
 | 
			
		||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibstat", "zlibstat.vcxproj", "{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}"
 | 
			
		||||
EndProject
 | 
			
		||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testzlib", "testzlib.vcxproj", "{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}"
 | 
			
		||||
EndProject
 | 
			
		||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testzlibdll", "testzlibdll.vcxproj", "{C52F9E7B-498A-42BE-8DB4-85A15694366A}"
 | 
			
		||||
EndProject
 | 
			
		||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "minizip", "minizip.vcxproj", "{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}"
 | 
			
		||||
EndProject
 | 
			
		||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "miniunz", "miniunz.vcxproj", "{C52F9E7B-498A-42BE-8DB4-85A15694382A}"
 | 
			
		||||
EndProject
 | 
			
		||||
Global
 | 
			
		||||
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 | 
			
		||||
		Debug|Itanium = Debug|Itanium
 | 
			
		||||
		Debug|Win32 = Debug|Win32
 | 
			
		||||
		Debug|x64 = Debug|x64
 | 
			
		||||
		Release|Itanium = Release|Itanium
 | 
			
		||||
		Release|Win32 = Release|Win32
 | 
			
		||||
		Release|x64 = Release|x64
 | 
			
		||||
		ReleaseWithoutAsm|Itanium = ReleaseWithoutAsm|Itanium
 | 
			
		||||
		ReleaseWithoutAsm|Win32 = ReleaseWithoutAsm|Win32
 | 
			
		||||
		ReleaseWithoutAsm|x64 = ReleaseWithoutAsm|x64
 | 
			
		||||
	EndGlobalSection
 | 
			
		||||
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Itanium.ActiveCfg = Debug|Win32
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Win32.ActiveCfg = Debug|Win32
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Win32.Build.0 = Debug|Win32
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|x64.ActiveCfg = Debug|x64
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|x64.Build.0 = Debug|x64
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Itanium.ActiveCfg = Release|Win32
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.ActiveCfg = Release|Win32
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.Build.0 = Release|Win32
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.ActiveCfg = Release|x64
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.Build.0 = Release|x64
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Win32
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
 | 
			
		||||
		{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Itanium.ActiveCfg = Debug|Win32
 | 
			
		||||
		{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.ActiveCfg = Debug|Win32
 | 
			
		||||
		{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.Build.0 = Debug|Win32
 | 
			
		||||
		{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.ActiveCfg = Debug|x64
 | 
			
		||||
		{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.Build.0 = Debug|x64
 | 
			
		||||
		{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Itanium.ActiveCfg = Release|Win32
 | 
			
		||||
		{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.ActiveCfg = Release|Win32
 | 
			
		||||
		{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.Build.0 = Release|Win32
 | 
			
		||||
		{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.ActiveCfg = Release|x64
 | 
			
		||||
		{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.Build.0 = Release|x64
 | 
			
		||||
		{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Win32
 | 
			
		||||
		{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
 | 
			
		||||
		{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
 | 
			
		||||
		{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
 | 
			
		||||
		{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
 | 
			
		||||
		{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.ActiveCfg = Debug|Win32
 | 
			
		||||
		{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.ActiveCfg = Debug|Win32
 | 
			
		||||
		{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.Build.0 = Debug|Win32
 | 
			
		||||
		{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.ActiveCfg = Debug|x64
 | 
			
		||||
		{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.Build.0 = Debug|x64
 | 
			
		||||
		{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Itanium.ActiveCfg = Release|Win32
 | 
			
		||||
		{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.ActiveCfg = Release|Win32
 | 
			
		||||
		{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.Build.0 = Release|Win32
 | 
			
		||||
		{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.ActiveCfg = Release|x64
 | 
			
		||||
		{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.Build.0 = Release|x64
 | 
			
		||||
		{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Win32
 | 
			
		||||
		{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
 | 
			
		||||
		{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
 | 
			
		||||
		{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
 | 
			
		||||
		{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Itanium.ActiveCfg = Debug|Win32
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Win32.ActiveCfg = Debug|Win32
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Win32.Build.0 = Debug|Win32
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|x64.ActiveCfg = Debug|x64
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|x64.Build.0 = Debug|x64
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Itanium.ActiveCfg = Release|Win32
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Win32.ActiveCfg = Release|Win32
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Win32.Build.0 = Release|Win32
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|x64.ActiveCfg = Release|x64
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|x64.Build.0 = Release|x64
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Win32
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.ActiveCfg = Debug|Win32
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.ActiveCfg = Debug|Win32
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.Build.0 = Debug|Win32
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.ActiveCfg = Debug|x64
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.Build.0 = Debug|x64
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Itanium.ActiveCfg = Release|Win32
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.ActiveCfg = Release|Win32
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.Build.0 = Release|Win32
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.ActiveCfg = Release|x64
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.Build.0 = Release|x64
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Win32
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Itanium.ActiveCfg = Debug|Win32
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Win32.ActiveCfg = Debug|Win32
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Win32.Build.0 = Debug|Win32
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|x64.ActiveCfg = Debug|x64
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|x64.Build.0 = Debug|x64
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Itanium.ActiveCfg = Release|Win32
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Win32.ActiveCfg = Release|Win32
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Win32.Build.0 = Release|Win32
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|x64.ActiveCfg = Release|x64
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|x64.Build.0 = Release|x64
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Win32
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
 | 
			
		||||
	EndGlobalSection
 | 
			
		||||
	GlobalSection(SolutionProperties) = preSolution
 | 
			
		||||
		HideSolutionNode = FALSE
 | 
			
		||||
	EndGlobalSection
 | 
			
		||||
EndGlobal
 | 
			
		||||
							
								
								
									
										688
									
								
								contrib/vstudio/vc11/zlibvc.vcxproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										688
									
								
								contrib/vstudio/vc11/zlibvc.vcxproj
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,688 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
			
		||||
  <ItemGroup Label="ProjectConfigurations">
 | 
			
		||||
    <ProjectConfiguration Include="Debug|Itanium">
 | 
			
		||||
      <Configuration>Debug</Configuration>
 | 
			
		||||
      <Platform>Itanium</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Debug|Win32">
 | 
			
		||||
      <Configuration>Debug</Configuration>
 | 
			
		||||
      <Platform>Win32</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Debug|x64">
 | 
			
		||||
      <Configuration>Debug</Configuration>
 | 
			
		||||
      <Platform>x64</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="ReleaseWithoutAsm|Itanium">
 | 
			
		||||
      <Configuration>ReleaseWithoutAsm</Configuration>
 | 
			
		||||
      <Platform>Itanium</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="ReleaseWithoutAsm|Win32">
 | 
			
		||||
      <Configuration>ReleaseWithoutAsm</Configuration>
 | 
			
		||||
      <Platform>Win32</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="ReleaseWithoutAsm|x64">
 | 
			
		||||
      <Configuration>ReleaseWithoutAsm</Configuration>
 | 
			
		||||
      <Platform>x64</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Release|Itanium">
 | 
			
		||||
      <Configuration>Release</Configuration>
 | 
			
		||||
      <Platform>Itanium</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Release|Win32">
 | 
			
		||||
      <Configuration>Release</Configuration>
 | 
			
		||||
      <Platform>Win32</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Release|x64">
 | 
			
		||||
      <Configuration>Release</Configuration>
 | 
			
		||||
      <Platform>x64</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <PropertyGroup Label="Globals">
 | 
			
		||||
    <ProjectGuid>{8FD826F8-3739-44E6-8CC8-997122E53B8D}</ProjectGuid>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>DynamicLibrary</ConfigurationType>
 | 
			
		||||
    <UseOfMfc>false</UseOfMfc>
 | 
			
		||||
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>DynamicLibrary</ConfigurationType>
 | 
			
		||||
    <UseOfMfc>false</UseOfMfc>
 | 
			
		||||
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>DynamicLibrary</ConfigurationType>
 | 
			
		||||
    <UseOfMfc>false</UseOfMfc>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
    <CharacterSet>Unicode</CharacterSet>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>DynamicLibrary</ConfigurationType>
 | 
			
		||||
    <UseOfMfc>false</UseOfMfc>
 | 
			
		||||
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>DynamicLibrary</ConfigurationType>
 | 
			
		||||
    <UseOfMfc>false</UseOfMfc>
 | 
			
		||||
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>DynamicLibrary</ConfigurationType>
 | 
			
		||||
    <UseOfMfc>false</UseOfMfc>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>DynamicLibrary</ConfigurationType>
 | 
			
		||||
    <UseOfMfc>false</UseOfMfc>
 | 
			
		||||
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>DynamicLibrary</ConfigurationType>
 | 
			
		||||
    <UseOfMfc>false</UseOfMfc>
 | 
			
		||||
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>DynamicLibrary</ConfigurationType>
 | 
			
		||||
    <UseOfMfc>false</UseOfMfc>
 | 
			
		||||
    <PlatformToolset>v110</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
			
		||||
  <ImportGroup Label="ExtensionSettings">
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <PropertyGroup Label="UserMacros" />
 | 
			
		||||
  <PropertyGroup>
 | 
			
		||||
    <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\ZlibDll$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\ZlibDll$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</GenerateManifest>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\ZlibDll$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\ZlibDll$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">false</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">false</GenerateManifest>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\ZlibDll$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\ZlibDll$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</GenerateManifest>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\ZlibDll$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\ZlibDll$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</GenerateManifest>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\ZlibDll$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\ZlibDll$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">false</GenerateManifest>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\ZlibDll$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\ZlibDll$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">false</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">false</GenerateManifest>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\ZlibDll$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\ZlibDll$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">false</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">false</GenerateManifest>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\ZlibDll$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\ZlibDll$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</GenerateManifest>
 | 
			
		||||
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\ZlibDll$(Configuration)\</OutDir>
 | 
			
		||||
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\ZlibDll$(Configuration)\Tmp\</IntDir>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</LinkIncremental>
 | 
			
		||||
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</GenerateManifest>
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
 | 
			
		||||
    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">zlibwapi</TargetName>
 | 
			
		||||
    <TargetName Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">zlibwapi</TargetName>
 | 
			
		||||
    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">zlibwapi</TargetName>
 | 
			
		||||
    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">zlibwapi</TargetName>
 | 
			
		||||
    <TargetName Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">zlibwapi</TargetName>
 | 
			
		||||
    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">zlibwapi</TargetName>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <MkTypLibCompatible>true</MkTypLibCompatible>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <TargetEnvironment>Win32</TargetEnvironment>
 | 
			
		||||
      <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>Disabled</Optimization>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <ExceptionHandling>
 | 
			
		||||
      </ExceptionHandling>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <ObjectFileName>$(IntDir)</ObjectFileName>
 | 
			
		||||
      <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
 | 
			
		||||
      <BrowseInformation>
 | 
			
		||||
      </BrowseInformation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ResourceCompile>
 | 
			
		||||
      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <Culture>0x040c</Culture>
 | 
			
		||||
    </ResourceCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>
 | 
			
		||||
      <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <GenerateMapFile>true</GenerateMapFile>
 | 
			
		||||
      <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
 | 
			
		||||
      <SubSystem>Windows</SubSystem>
 | 
			
		||||
      <RandomizedBaseAddress>false</RandomizedBaseAddress>
 | 
			
		||||
      <DataExecutionPrevention>
 | 
			
		||||
      </DataExecutionPrevention>
 | 
			
		||||
      <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
 | 
			
		||||
    </Link>
 | 
			
		||||
    <PreBuildEvent>
 | 
			
		||||
      <Command>cd ..\..\masmx86
 | 
			
		||||
bld_ml32.bat</Command>
 | 
			
		||||
    </PreBuildEvent>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <MkTypLibCompatible>true</MkTypLibCompatible>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <TargetEnvironment>Win32</TargetEnvironment>
 | 
			
		||||
      <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <StringPooling>true</StringPooling>
 | 
			
		||||
      <ExceptionHandling>
 | 
			
		||||
      </ExceptionHandling>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
			
		||||
      <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
 | 
			
		||||
      <AssemblerOutput>All</AssemblerOutput>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <ObjectFileName>$(IntDir)</ObjectFileName>
 | 
			
		||||
      <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
 | 
			
		||||
      <BrowseInformation>
 | 
			
		||||
      </BrowseInformation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ResourceCompile>
 | 
			
		||||
      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <Culture>0x040c</Culture>
 | 
			
		||||
    </ResourceCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>
 | 
			
		||||
      <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
 | 
			
		||||
      <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <GenerateMapFile>true</GenerateMapFile>
 | 
			
		||||
      <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
 | 
			
		||||
      <SubSystem>Windows</SubSystem>
 | 
			
		||||
      <RandomizedBaseAddress>false</RandomizedBaseAddress>
 | 
			
		||||
      <DataExecutionPrevention>
 | 
			
		||||
      </DataExecutionPrevention>
 | 
			
		||||
      <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <MkTypLibCompatible>true</MkTypLibCompatible>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <TargetEnvironment>Win32</TargetEnvironment>
 | 
			
		||||
      <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <StringPooling>true</StringPooling>
 | 
			
		||||
      <ExceptionHandling>
 | 
			
		||||
      </ExceptionHandling>
 | 
			
		||||
      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
			
		||||
      <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
 | 
			
		||||
      <AssemblerOutput>All</AssemblerOutput>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <ObjectFileName>$(IntDir)</ObjectFileName>
 | 
			
		||||
      <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
 | 
			
		||||
      <BrowseInformation>
 | 
			
		||||
      </BrowseInformation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ResourceCompile>
 | 
			
		||||
      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <Culture>0x040c</Culture>
 | 
			
		||||
    </ResourceCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>
 | 
			
		||||
      <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
 | 
			
		||||
      <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <GenerateMapFile>true</GenerateMapFile>
 | 
			
		||||
      <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
 | 
			
		||||
      <SubSystem>Windows</SubSystem>
 | 
			
		||||
      <RandomizedBaseAddress>false</RandomizedBaseAddress>
 | 
			
		||||
      <DataExecutionPrevention>
 | 
			
		||||
      </DataExecutionPrevention>
 | 
			
		||||
      <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
 | 
			
		||||
    </Link>
 | 
			
		||||
    <PreBuildEvent>
 | 
			
		||||
      <Command>cd ..\..\masmx86
 | 
			
		||||
bld_ml32.bat</Command>
 | 
			
		||||
    </PreBuildEvent>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <MkTypLibCompatible>true</MkTypLibCompatible>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <TargetEnvironment>X64</TargetEnvironment>
 | 
			
		||||
      <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>Disabled</Optimization>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <ExceptionHandling>
 | 
			
		||||
      </ExceptionHandling>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <ObjectFileName>$(IntDir)</ObjectFileName>
 | 
			
		||||
      <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
 | 
			
		||||
      <BrowseInformation>
 | 
			
		||||
      </BrowseInformation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ResourceCompile>
 | 
			
		||||
      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <Culture>0x040c</Culture>
 | 
			
		||||
    </ResourceCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>..\..\masmx64\gvmat64.obj;..\..\masmx64\inffasx64.obj;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <GenerateMapFile>true</GenerateMapFile>
 | 
			
		||||
      <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
 | 
			
		||||
      <SubSystem>Windows</SubSystem>
 | 
			
		||||
      <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
 | 
			
		||||
      <TargetMachine>MachineX64</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
    <PreBuildEvent>
 | 
			
		||||
      <Command>cd ..\..\contrib\masmx64
 | 
			
		||||
bld_ml64.bat</Command>
 | 
			
		||||
    </PreBuildEvent>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <MkTypLibCompatible>true</MkTypLibCompatible>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <TargetEnvironment>Itanium</TargetEnvironment>
 | 
			
		||||
      <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>Disabled</Optimization>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <ExceptionHandling>
 | 
			
		||||
      </ExceptionHandling>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <ObjectFileName>$(IntDir)</ObjectFileName>
 | 
			
		||||
      <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
 | 
			
		||||
      <BrowseInformation>
 | 
			
		||||
      </BrowseInformation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ResourceCompile>
 | 
			
		||||
      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <Culture>0x040c</Culture>
 | 
			
		||||
    </ResourceCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <GenerateMapFile>true</GenerateMapFile>
 | 
			
		||||
      <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
 | 
			
		||||
      <SubSystem>Windows</SubSystem>
 | 
			
		||||
      <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
 | 
			
		||||
      <TargetMachine>MachineIA64</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <MkTypLibCompatible>true</MkTypLibCompatible>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <TargetEnvironment>X64</TargetEnvironment>
 | 
			
		||||
      <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <StringPooling>true</StringPooling>
 | 
			
		||||
      <ExceptionHandling>
 | 
			
		||||
      </ExceptionHandling>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
			
		||||
      <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
 | 
			
		||||
      <AssemblerOutput>All</AssemblerOutput>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <ObjectFileName>$(IntDir)</ObjectFileName>
 | 
			
		||||
      <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
 | 
			
		||||
      <BrowseInformation>
 | 
			
		||||
      </BrowseInformation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ResourceCompile>
 | 
			
		||||
      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <Culture>0x040c</Culture>
 | 
			
		||||
    </ResourceCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
 | 
			
		||||
      <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <GenerateMapFile>true</GenerateMapFile>
 | 
			
		||||
      <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
 | 
			
		||||
      <SubSystem>Windows</SubSystem>
 | 
			
		||||
      <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
 | 
			
		||||
      <TargetMachine>MachineX64</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <MkTypLibCompatible>true</MkTypLibCompatible>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <TargetEnvironment>Itanium</TargetEnvironment>
 | 
			
		||||
      <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <StringPooling>true</StringPooling>
 | 
			
		||||
      <ExceptionHandling>
 | 
			
		||||
      </ExceptionHandling>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
			
		||||
      <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
 | 
			
		||||
      <AssemblerOutput>All</AssemblerOutput>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <ObjectFileName>$(IntDir)</ObjectFileName>
 | 
			
		||||
      <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
 | 
			
		||||
      <BrowseInformation>
 | 
			
		||||
      </BrowseInformation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ResourceCompile>
 | 
			
		||||
      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <Culture>0x040c</Culture>
 | 
			
		||||
    </ResourceCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
 | 
			
		||||
      <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <GenerateMapFile>true</GenerateMapFile>
 | 
			
		||||
      <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
 | 
			
		||||
      <SubSystem>Windows</SubSystem>
 | 
			
		||||
      <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
 | 
			
		||||
      <TargetMachine>MachineIA64</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <MkTypLibCompatible>true</MkTypLibCompatible>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <TargetEnvironment>X64</TargetEnvironment>
 | 
			
		||||
      <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <StringPooling>true</StringPooling>
 | 
			
		||||
      <ExceptionHandling>
 | 
			
		||||
      </ExceptionHandling>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
			
		||||
      <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
 | 
			
		||||
      <AssemblerOutput>All</AssemblerOutput>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <ObjectFileName>$(IntDir)</ObjectFileName>
 | 
			
		||||
      <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
 | 
			
		||||
      <BrowseInformation>
 | 
			
		||||
      </BrowseInformation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ResourceCompile>
 | 
			
		||||
      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <Culture>0x040c</Culture>
 | 
			
		||||
    </ResourceCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <AdditionalDependencies>..\..\masmx64\gvmat64.obj;..\..\masmx64\inffasx64.obj;%(AdditionalDependencies)</AdditionalDependencies>
 | 
			
		||||
      <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
 | 
			
		||||
      <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <GenerateMapFile>true</GenerateMapFile>
 | 
			
		||||
      <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
 | 
			
		||||
      <SubSystem>Windows</SubSystem>
 | 
			
		||||
      <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
 | 
			
		||||
      <TargetMachine>MachineX64</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
    <PreBuildEvent>
 | 
			
		||||
      <Command>cd ..\..\masmx64
 | 
			
		||||
bld_ml64.bat</Command>
 | 
			
		||||
    </PreBuildEvent>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <MkTypLibCompatible>true</MkTypLibCompatible>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <TargetEnvironment>Itanium</TargetEnvironment>
 | 
			
		||||
      <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <StringPooling>true</StringPooling>
 | 
			
		||||
      <ExceptionHandling>
 | 
			
		||||
      </ExceptionHandling>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
 | 
			
		||||
      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
			
		||||
      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
			
		||||
      <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
 | 
			
		||||
      <AssemblerOutput>All</AssemblerOutput>
 | 
			
		||||
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
 | 
			
		||||
      <ObjectFileName>$(IntDir)</ObjectFileName>
 | 
			
		||||
      <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
 | 
			
		||||
      <BrowseInformation>
 | 
			
		||||
      </BrowseInformation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ResourceCompile>
 | 
			
		||||
      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <Culture>0x040c</Culture>
 | 
			
		||||
    </ResourceCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
 | 
			
		||||
      <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
 | 
			
		||||
      <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <GenerateMapFile>true</GenerateMapFile>
 | 
			
		||||
      <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
 | 
			
		||||
      <SubSystem>Windows</SubSystem>
 | 
			
		||||
      <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
 | 
			
		||||
      <TargetMachine>MachineIA64</TargetMachine>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ClCompile Include="..\..\..\adler32.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\compress.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\crc32.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\deflate.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\gzclose.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\gzlib.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\gzread.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\gzwrite.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\infback.c" />
 | 
			
		||||
    <ClCompile Include="..\..\masmx64\inffas8664.c">
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">true</ExcludedFromBuild>
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\inffast.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\inflate.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\inftrees.c" />
 | 
			
		||||
    <ClCompile Include="..\..\minizip\ioapi.c" />
 | 
			
		||||
    <ClCompile Include="..\..\minizip\iowin32.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\trees.c" />
 | 
			
		||||
    <ClCompile Include="..\..\..\uncompr.c" />
 | 
			
		||||
    <ClCompile Include="..\..\minizip\unzip.c">
 | 
			
		||||
      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\minizip\zip.c">
 | 
			
		||||
      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\zutil.c" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ResourceCompile Include="zlib.rc" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <None Include="zlibvc.def" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ClInclude Include="..\..\..\deflate.h" />
 | 
			
		||||
    <ClInclude Include="..\..\..\infblock.h" />
 | 
			
		||||
    <ClInclude Include="..\..\..\infcodes.h" />
 | 
			
		||||
    <ClInclude Include="..\..\..\inffast.h" />
 | 
			
		||||
    <ClInclude Include="..\..\..\inftrees.h" />
 | 
			
		||||
    <ClInclude Include="..\..\..\infutil.h" />
 | 
			
		||||
    <ClInclude Include="..\..\..\zconf.h" />
 | 
			
		||||
    <ClInclude Include="..\..\..\zlib.h" />
 | 
			
		||||
    <ClInclude Include="..\..\..\zutil.h" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
 | 
			
		||||
  <ImportGroup Label="ExtensionTargets">
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
</Project>
 | 
			
		||||
@@ -1,114 +0,0 @@
 | 
			
		||||
 | 
			
		||||
VERSION		1.23
 | 
			
		||||
 | 
			
		||||
HEAPSIZE	1048576,8192
 | 
			
		||||
 | 
			
		||||
EXPORTS
 | 
			
		||||
        adler32                                  @1
 | 
			
		||||
        compress                                 @2
 | 
			
		||||
        crc32                                    @3
 | 
			
		||||
        deflate                                  @4
 | 
			
		||||
        deflateCopy                              @5
 | 
			
		||||
        deflateEnd                               @6
 | 
			
		||||
        deflateInit2_                            @7
 | 
			
		||||
        deflateInit_                             @8
 | 
			
		||||
        deflateParams                            @9
 | 
			
		||||
        deflateReset                             @10
 | 
			
		||||
        deflateSetDictionary                     @11
 | 
			
		||||
        gzclose                                  @12
 | 
			
		||||
        gzdopen                                  @13
 | 
			
		||||
        gzerror                                  @14
 | 
			
		||||
        gzflush                                  @15
 | 
			
		||||
        gzopen                                   @16
 | 
			
		||||
        gzread                                   @17
 | 
			
		||||
        gzwrite                                  @18
 | 
			
		||||
        inflate                                  @19
 | 
			
		||||
        inflateEnd                               @20
 | 
			
		||||
        inflateInit2_                            @21
 | 
			
		||||
        inflateInit_                             @22
 | 
			
		||||
        inflateReset                             @23
 | 
			
		||||
        inflateSetDictionary                     @24
 | 
			
		||||
        inflateSync                              @25
 | 
			
		||||
        uncompress                               @26
 | 
			
		||||
        zlibVersion                              @27
 | 
			
		||||
        gzprintf                                 @28
 | 
			
		||||
        gzputc                                   @29
 | 
			
		||||
        gzgetc                                   @30
 | 
			
		||||
        gzseek                                   @31
 | 
			
		||||
        gzrewind                                 @32
 | 
			
		||||
        gztell                                   @33
 | 
			
		||||
        gzeof                                    @34
 | 
			
		||||
        gzsetparams                              @35
 | 
			
		||||
        zError                                   @36
 | 
			
		||||
        inflateSyncPoint                         @37
 | 
			
		||||
        get_crc_table                            @38
 | 
			
		||||
        compress2                                @39
 | 
			
		||||
        gzputs                                   @40
 | 
			
		||||
        gzgets                                   @41
 | 
			
		||||
        inflateCopy                              @42
 | 
			
		||||
        inflateBackInit_                         @43
 | 
			
		||||
        inflateBack                              @44
 | 
			
		||||
        inflateBackEnd                           @45
 | 
			
		||||
        compressBound                            @46
 | 
			
		||||
        deflateBound                             @47
 | 
			
		||||
        gzclearerr                               @48
 | 
			
		||||
        gzungetc                                 @49
 | 
			
		||||
        zlibCompileFlags                         @50
 | 
			
		||||
        deflatePrime                             @51
 | 
			
		||||
 | 
			
		||||
        unzOpen                                  @61
 | 
			
		||||
        unzClose                                 @62
 | 
			
		||||
        unzGetGlobalInfo                         @63
 | 
			
		||||
        unzGetCurrentFileInfo                    @64
 | 
			
		||||
        unzGoToFirstFile                         @65
 | 
			
		||||
        unzGoToNextFile                          @66
 | 
			
		||||
        unzOpenCurrentFile                       @67
 | 
			
		||||
        unzReadCurrentFile                       @68
 | 
			
		||||
        unzOpenCurrentFile3                      @69
 | 
			
		||||
        unztell                                  @70
 | 
			
		||||
        unzeof                                   @71
 | 
			
		||||
        unzCloseCurrentFile                      @72
 | 
			
		||||
        unzGetGlobalComment                      @73
 | 
			
		||||
        unzStringFileNameCompare                 @74
 | 
			
		||||
        unzLocateFile                            @75
 | 
			
		||||
        unzGetLocalExtrafield                    @76
 | 
			
		||||
        unzOpen2                                 @77
 | 
			
		||||
        unzOpenCurrentFile2                      @78
 | 
			
		||||
        unzOpenCurrentFilePassword               @79
 | 
			
		||||
 | 
			
		||||
        zipOpen                                  @80
 | 
			
		||||
        zipOpenNewFileInZip                      @81
 | 
			
		||||
        zipWriteInFileInZip                      @82
 | 
			
		||||
        zipCloseFileInZip                        @83
 | 
			
		||||
        zipClose                                 @84
 | 
			
		||||
        zipOpenNewFileInZip2                     @86
 | 
			
		||||
        zipCloseFileInZipRaw                     @87
 | 
			
		||||
        zipOpen2                                 @88
 | 
			
		||||
        zipOpenNewFileInZip3                     @89
 | 
			
		||||
 | 
			
		||||
        unzGetFilePos                            @100
 | 
			
		||||
        unzGoToFilePos                           @101
 | 
			
		||||
 | 
			
		||||
        fill_win32_filefunc                      @110
 | 
			
		||||
        fill_win32_filefunc64                    @111
 | 
			
		||||
        fill_win32_filefunc64A                   @112
 | 
			
		||||
        fill_win32_filefunc64W                   @113
 | 
			
		||||
 | 
			
		||||
; quick hack by hkuno@microhouse.co.jp
 | 
			
		||||
        unzOpen64                         @120
 | 
			
		||||
        unzOpen2_64                       @121
 | 
			
		||||
        unzGetGlobalInfo64                @122
 | 
			
		||||
        unzGetCurrentFileInfo64           @124
 | 
			
		||||
        unzGetCurrentFileZStreamPos64     @125
 | 
			
		||||
        unztell64                         @126
 | 
			
		||||
        unzGetFilePos64                   @127
 | 
			
		||||
        unzGoToFilePos64                  @128
 | 
			
		||||
 | 
			
		||||
        zipOpen64                         @130
 | 
			
		||||
        zipOpen2_64                       @131
 | 
			
		||||
        zipOpenNewFileInZip64             @132
 | 
			
		||||
        zipOpenNewFileInZip2_64           @133
 | 
			
		||||
        zipOpenNewFileInZip3_64           @134
 | 
			
		||||
        zipOpenNewFileInZip4_64           @135
 | 
			
		||||
        zipCloseFileInZipRaw64            @136
 | 
			
		||||
; end hack
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
<?xml version="1.0" encoding="Windows-1252"?>
 | 
			
		||||
<VisualStudioProject
 | 
			
		||||
	ProjectType="Visual C++"
 | 
			
		||||
	Version="9.00"
 | 
			
		||||
	Version="9,00"
 | 
			
		||||
	Name="testzlib"
 | 
			
		||||
	ProjectGUID="{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}"
 | 
			
		||||
	RootNamespace="testzlib"
 | 
			
		||||
@@ -71,7 +71,7 @@
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCLinkerTool"
 | 
			
		||||
				AdditionalDependencies="..\..\masmx86\gvmat32.obj ..\..\masmx86\inffas32.obj"
 | 
			
		||||
				AdditionalDependencies="..\..\masmx86\match686.obj ..\..\masmx86\inffas32.obj"
 | 
			
		||||
				OutputFile="$(OutDir)/testzlib.exe"
 | 
			
		||||
				LinkIncremental="2"
 | 
			
		||||
				GenerateManifest="false"
 | 
			
		||||
@@ -104,179 +104,6 @@
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
		</Configuration>
 | 
			
		||||
		<Configuration
 | 
			
		||||
			Name="ReleaseWithoutAsm|Win32"
 | 
			
		||||
			OutputDirectory="x86\TestZlib$(ConfigurationName)"
 | 
			
		||||
			IntermediateDirectory="x86\TestZlib$(ConfigurationName)\Tmp"
 | 
			
		||||
			ConfigurationType="1"
 | 
			
		||||
			CharacterSet="2"
 | 
			
		||||
			WholeProgramOptimization="1"
 | 
			
		||||
			>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPreBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCCustomBuildTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCXMLDataGeneratorTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCWebServiceProxyGeneratorTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCMIDLTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCCLCompilerTool"
 | 
			
		||||
				Optimization="2"
 | 
			
		||||
				InlineFunctionExpansion="1"
 | 
			
		||||
				OmitFramePointers="true"
 | 
			
		||||
				AdditionalIncludeDirectories="..\..\.."
 | 
			
		||||
				PreprocessorDefinitions="WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS"
 | 
			
		||||
				StringPooling="true"
 | 
			
		||||
				BasicRuntimeChecks="0"
 | 
			
		||||
				RuntimeLibrary="0"
 | 
			
		||||
				BufferSecurityCheck="false"
 | 
			
		||||
				EnableFunctionLevelLinking="true"
 | 
			
		||||
				UsePrecompiledHeader="0"
 | 
			
		||||
				AssemblerListingLocation="$(IntDir)\"
 | 
			
		||||
				WarningLevel="3"
 | 
			
		||||
				Detect64BitPortabilityProblems="true"
 | 
			
		||||
				DebugInformationFormat="3"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCManagedResourceCompilerTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCResourceCompilerTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPreLinkEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCLinkerTool"
 | 
			
		||||
				OutputFile="$(OutDir)/testzlib.exe"
 | 
			
		||||
				LinkIncremental="1"
 | 
			
		||||
				GenerateManifest="false"
 | 
			
		||||
				GenerateDebugInformation="true"
 | 
			
		||||
				SubSystem="1"
 | 
			
		||||
				OptimizeReferences="2"
 | 
			
		||||
				EnableCOMDATFolding="2"
 | 
			
		||||
				OptimizeForWindows98="1"
 | 
			
		||||
				RandomizedBaseAddress="1"
 | 
			
		||||
				DataExecutionPrevention="0"
 | 
			
		||||
				TargetMachine="1"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCALinkTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCManifestTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCXDCMakeTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCBscMakeTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCFxCopTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCAppVerifierTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
		</Configuration>
 | 
			
		||||
		<Configuration
 | 
			
		||||
			Name="Release|Win32"
 | 
			
		||||
			OutputDirectory="x86\TestZlib$(ConfigurationName)"
 | 
			
		||||
			IntermediateDirectory="x86\TestZlib$(ConfigurationName)\Tmp"
 | 
			
		||||
			ConfigurationType="1"
 | 
			
		||||
			CharacterSet="2"
 | 
			
		||||
			WholeProgramOptimization="1"
 | 
			
		||||
			>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPreBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCCustomBuildTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCXMLDataGeneratorTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCWebServiceProxyGeneratorTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCMIDLTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCCLCompilerTool"
 | 
			
		||||
				Optimization="2"
 | 
			
		||||
				InlineFunctionExpansion="1"
 | 
			
		||||
				OmitFramePointers="true"
 | 
			
		||||
				AdditionalIncludeDirectories="..\..\.."
 | 
			
		||||
				PreprocessorDefinitions="ASMV;ASMINF;WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS"
 | 
			
		||||
				StringPooling="true"
 | 
			
		||||
				BasicRuntimeChecks="0"
 | 
			
		||||
				RuntimeLibrary="0"
 | 
			
		||||
				BufferSecurityCheck="false"
 | 
			
		||||
				EnableFunctionLevelLinking="true"
 | 
			
		||||
				UsePrecompiledHeader="0"
 | 
			
		||||
				AssemblerListingLocation="$(IntDir)\"
 | 
			
		||||
				WarningLevel="3"
 | 
			
		||||
				Detect64BitPortabilityProblems="true"
 | 
			
		||||
				DebugInformationFormat="3"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCManagedResourceCompilerTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCResourceCompilerTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPreLinkEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCLinkerTool"
 | 
			
		||||
				AdditionalDependencies="..\..\masmx86\gvmat32.obj ..\..\masmx86\inffas32.obj"
 | 
			
		||||
				OutputFile="$(OutDir)/testzlib.exe"
 | 
			
		||||
				LinkIncremental="1"
 | 
			
		||||
				GenerateManifest="false"
 | 
			
		||||
				GenerateDebugInformation="true"
 | 
			
		||||
				SubSystem="1"
 | 
			
		||||
				OptimizeReferences="2"
 | 
			
		||||
				EnableCOMDATFolding="2"
 | 
			
		||||
				OptimizeForWindows98="1"
 | 
			
		||||
				RandomizedBaseAddress="1"
 | 
			
		||||
				DataExecutionPrevention="0"
 | 
			
		||||
				TargetMachine="1"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCALinkTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCManifestTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCXDCMakeTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCBscMakeTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCFxCopTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCAppVerifierTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
		</Configuration>
 | 
			
		||||
		<Configuration
 | 
			
		||||
			Name="Debug|x64"
 | 
			
		||||
			OutputDirectory="x64\TestZlib$(ConfigurationName)"
 | 
			
		||||
@@ -339,9 +166,6 @@
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCAppVerifierTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCWebDeploymentTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
@@ -423,7 +247,90 @@
 | 
			
		||||
				Name="VCAppVerifierTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCWebDeploymentTool"
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
		</Configuration>
 | 
			
		||||
		<Configuration
 | 
			
		||||
			Name="ReleaseWithoutAsm|Win32"
 | 
			
		||||
			OutputDirectory="x86\TestZlib$(ConfigurationName)"
 | 
			
		||||
			IntermediateDirectory="x86\TestZlib$(ConfigurationName)\Tmp"
 | 
			
		||||
			ConfigurationType="1"
 | 
			
		||||
			CharacterSet="2"
 | 
			
		||||
			WholeProgramOptimization="1"
 | 
			
		||||
			>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPreBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCCustomBuildTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCXMLDataGeneratorTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCWebServiceProxyGeneratorTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCMIDLTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCCLCompilerTool"
 | 
			
		||||
				Optimization="2"
 | 
			
		||||
				InlineFunctionExpansion="1"
 | 
			
		||||
				OmitFramePointers="true"
 | 
			
		||||
				AdditionalIncludeDirectories="..\..\.."
 | 
			
		||||
				PreprocessorDefinitions="WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS"
 | 
			
		||||
				StringPooling="true"
 | 
			
		||||
				BasicRuntimeChecks="0"
 | 
			
		||||
				RuntimeLibrary="0"
 | 
			
		||||
				BufferSecurityCheck="false"
 | 
			
		||||
				EnableFunctionLevelLinking="true"
 | 
			
		||||
				UsePrecompiledHeader="0"
 | 
			
		||||
				AssemblerListingLocation="$(IntDir)\"
 | 
			
		||||
				WarningLevel="3"
 | 
			
		||||
				Detect64BitPortabilityProblems="true"
 | 
			
		||||
				DebugInformationFormat="3"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCManagedResourceCompilerTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCResourceCompilerTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPreLinkEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCLinkerTool"
 | 
			
		||||
				OutputFile="$(OutDir)/testzlib.exe"
 | 
			
		||||
				LinkIncremental="1"
 | 
			
		||||
				GenerateManifest="false"
 | 
			
		||||
				GenerateDebugInformation="true"
 | 
			
		||||
				SubSystem="1"
 | 
			
		||||
				OptimizeReferences="2"
 | 
			
		||||
				EnableCOMDATFolding="2"
 | 
			
		||||
				OptimizeForWindows98="1"
 | 
			
		||||
				RandomizedBaseAddress="1"
 | 
			
		||||
				DataExecutionPrevention="0"
 | 
			
		||||
				TargetMachine="1"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCALinkTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCManifestTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCXDCMakeTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCBscMakeTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCFxCopTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCAppVerifierTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
@@ -492,9 +399,6 @@
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCAppVerifierTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCWebDeploymentTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
@@ -581,7 +485,91 @@
 | 
			
		||||
				Name="VCAppVerifierTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCWebDeploymentTool"
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
		</Configuration>
 | 
			
		||||
		<Configuration
 | 
			
		||||
			Name="Release|Win32"
 | 
			
		||||
			OutputDirectory="x86\TestZlib$(ConfigurationName)"
 | 
			
		||||
			IntermediateDirectory="x86\TestZlib$(ConfigurationName)\Tmp"
 | 
			
		||||
			ConfigurationType="1"
 | 
			
		||||
			CharacterSet="2"
 | 
			
		||||
			WholeProgramOptimization="1"
 | 
			
		||||
			>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPreBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCCustomBuildTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCXMLDataGeneratorTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCWebServiceProxyGeneratorTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCMIDLTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCCLCompilerTool"
 | 
			
		||||
				Optimization="2"
 | 
			
		||||
				InlineFunctionExpansion="1"
 | 
			
		||||
				OmitFramePointers="true"
 | 
			
		||||
				AdditionalIncludeDirectories="..\..\.."
 | 
			
		||||
				PreprocessorDefinitions="ASMV;ASMINF;WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS"
 | 
			
		||||
				StringPooling="true"
 | 
			
		||||
				BasicRuntimeChecks="0"
 | 
			
		||||
				RuntimeLibrary="0"
 | 
			
		||||
				BufferSecurityCheck="false"
 | 
			
		||||
				EnableFunctionLevelLinking="true"
 | 
			
		||||
				UsePrecompiledHeader="0"
 | 
			
		||||
				AssemblerListingLocation="$(IntDir)\"
 | 
			
		||||
				WarningLevel="3"
 | 
			
		||||
				Detect64BitPortabilityProblems="true"
 | 
			
		||||
				DebugInformationFormat="3"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCManagedResourceCompilerTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCResourceCompilerTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPreLinkEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCLinkerTool"
 | 
			
		||||
				AdditionalDependencies="..\..\masmx86\match686.obj ..\..\masmx86\inffas32.obj"
 | 
			
		||||
				OutputFile="$(OutDir)/testzlib.exe"
 | 
			
		||||
				LinkIncremental="1"
 | 
			
		||||
				GenerateManifest="false"
 | 
			
		||||
				GenerateDebugInformation="true"
 | 
			
		||||
				SubSystem="1"
 | 
			
		||||
				OptimizeReferences="2"
 | 
			
		||||
				EnableCOMDATFolding="2"
 | 
			
		||||
				OptimizeForWindows98="1"
 | 
			
		||||
				RandomizedBaseAddress="1"
 | 
			
		||||
				DataExecutionPrevention="0"
 | 
			
		||||
				TargetMachine="1"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCALinkTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCManifestTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCXDCMakeTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCBscMakeTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCFxCopTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCAppVerifierTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
@@ -614,7 +602,7 @@
 | 
			
		||||
				AdditionalIncludeDirectories="..\..\.."
 | 
			
		||||
				PreprocessorDefinitions="ASMV;ASMINF;WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS"
 | 
			
		||||
				BasicRuntimeChecks="0"
 | 
			
		||||
				RuntimeLibrary="2"
 | 
			
		||||
				RuntimeLibrary="0"
 | 
			
		||||
				BufferSecurityCheck="false"
 | 
			
		||||
				AssemblerListingLocation="$(IntDir)\"
 | 
			
		||||
			/>
 | 
			
		||||
@@ -650,9 +638,6 @@
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCAppVerifierTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCWebDeploymentTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
@@ -738,9 +723,6 @@
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCAppVerifierTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCWebDeploymentTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
@@ -769,82 +751,6 @@
 | 
			
		||||
				RelativePath="..\..\..\deflate.c"
 | 
			
		||||
				>
 | 
			
		||||
			</File>
 | 
			
		||||
			<File
 | 
			
		||||
				RelativePath="..\..\masmx86\gvmat32c.c"
 | 
			
		||||
				>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="Debug|x64"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="Debug|Itanium"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="ReleaseWithoutAsm|x64"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="ReleaseWithoutAsm|Itanium"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="Release|x64"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="Release|Itanium"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="Debug|Win64 (AMD64)"
 | 
			
		||||
					ExcludedFromBuild="TRUE"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="Release|Win64 (AMD64)"
 | 
			
		||||
					ExcludedFromBuild="TRUE"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="ReleaseAsm|Win64 (AMD64)"
 | 
			
		||||
					ExcludedFromBuild="TRUE"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
			</File>
 | 
			
		||||
			<File
 | 
			
		||||
				RelativePath="..\..\..\infback.c"
 | 
			
		||||
				>
 | 
			
		||||
@@ -860,22 +766,6 @@
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="ReleaseWithoutAsm|Win32"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="Release|Win32"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="Debug|Itanium"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
@@ -884,6 +774,14 @@
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="ReleaseWithoutAsm|Win32"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="ReleaseWithoutAsm|Itanium"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
@@ -892,6 +790,14 @@
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="Release|Win32"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="Release|Itanium"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
 
 | 
			
		||||
@@ -2,8 +2,8 @@
 | 
			
		||||
 | 
			
		||||
#define IDR_VERSION1  1
 | 
			
		||||
IDR_VERSION1	VERSIONINFO	MOVEABLE IMPURE LOADONCALL DISCARDABLE
 | 
			
		||||
  FILEVERSION	 1,2,3,0
 | 
			
		||||
  PRODUCTVERSION 1,2,3,0
 | 
			
		||||
  FILEVERSION	 1,2,8,0
 | 
			
		||||
  PRODUCTVERSION 1,2,8,0
 | 
			
		||||
  FILEFLAGSMASK	VS_FFI_FILEFLAGSMASK
 | 
			
		||||
  FILEFLAGS	0
 | 
			
		||||
  FILEOS	VOS_DOS_WINDOWS32
 | 
			
		||||
@@ -16,13 +16,13 @@ BEGIN
 | 
			
		||||
    //language ID = U.S. English, char set = Windows, Multilingual
 | 
			
		||||
 | 
			
		||||
    BEGIN
 | 
			
		||||
      VALUE "FileDescription", "zlib data compression library\0"
 | 
			
		||||
      VALUE "FileVersion",	"1.2.3.0\0"
 | 
			
		||||
      VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0"
 | 
			
		||||
      VALUE "FileVersion",	"1.2.8\0"
 | 
			
		||||
      VALUE "InternalName",	"zlib\0"
 | 
			
		||||
      VALUE "OriginalFilename",	"zlib.dll\0"
 | 
			
		||||
      VALUE "OriginalFilename",	"zlibwapi.dll\0"
 | 
			
		||||
      VALUE "ProductName",	"ZLib.DLL\0"
 | 
			
		||||
      VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0"
 | 
			
		||||
      VALUE "LegalCopyright", "(C) 1995-2003 Jean-loup Gailly & Mark Adler\0"
 | 
			
		||||
      VALUE "LegalCopyright", "(C) 1995-2013 Jean-loup Gailly & Mark Adler\0"
 | 
			
		||||
    END
 | 
			
		||||
  END
 | 
			
		||||
  BLOCK "VarFileInfo"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
<?xml version="1.0" encoding="Windows-1252"?>
 | 
			
		||||
<VisualStudioProject
 | 
			
		||||
	ProjectType="Visual C++"
 | 
			
		||||
	Version="9.00"
 | 
			
		||||
	Version="9,00"
 | 
			
		||||
	Name="zlibstat"
 | 
			
		||||
	ProjectGUID="{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}"
 | 
			
		||||
	TargetFrameworkVersion="131072"
 | 
			
		||||
@@ -93,153 +93,6 @@
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
		</Configuration>
 | 
			
		||||
		<Configuration
 | 
			
		||||
			Name="Release|Win32"
 | 
			
		||||
			OutputDirectory="x86\ZlibStat$(ConfigurationName)"
 | 
			
		||||
			IntermediateDirectory="x86\ZlibStat$(ConfigurationName)\Tmp"
 | 
			
		||||
			ConfigurationType="4"
 | 
			
		||||
			InheritedPropertySheets="UpgradeFromVC70.vsprops"
 | 
			
		||||
			UseOfMFC="0"
 | 
			
		||||
			ATLMinimizesCRunTimeLibraryUsage="false"
 | 
			
		||||
			>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPreBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCCustomBuildTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCXMLDataGeneratorTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCWebServiceProxyGeneratorTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCMIDLTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCCLCompilerTool"
 | 
			
		||||
				InlineFunctionExpansion="1"
 | 
			
		||||
				AdditionalIncludeDirectories="..\..\..;..\..\masmx86"
 | 
			
		||||
				PreprocessorDefinitions="WIN32;ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ASMV;ASMINF"
 | 
			
		||||
				StringPooling="true"
 | 
			
		||||
				ExceptionHandling="0"
 | 
			
		||||
				RuntimeLibrary="0"
 | 
			
		||||
				BufferSecurityCheck="false"
 | 
			
		||||
				EnableFunctionLevelLinking="true"
 | 
			
		||||
				PrecompiledHeaderFile="$(IntDir)/zlibstat.pch"
 | 
			
		||||
				AssemblerListingLocation="$(IntDir)\"
 | 
			
		||||
				ObjectFile="$(IntDir)\"
 | 
			
		||||
				ProgramDataBaseFileName="$(OutDir)\"
 | 
			
		||||
				WarningLevel="3"
 | 
			
		||||
				SuppressStartupBanner="true"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCManagedResourceCompilerTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCResourceCompilerTool"
 | 
			
		||||
				Culture="1036"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPreLinkEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCLibrarianTool"
 | 
			
		||||
				AdditionalOptions="/MACHINE:X86 /NODEFAULTLIB"
 | 
			
		||||
				AdditionalDependencies="..\..\masmx86\gvmat32.obj ..\..\masmx86\inffas32.obj "
 | 
			
		||||
				OutputFile="$(OutDir)\zlibstat.lib"
 | 
			
		||||
				SuppressStartupBanner="true"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCALinkTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCXDCMakeTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCBscMakeTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCFxCopTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
		</Configuration>
 | 
			
		||||
		<Configuration
 | 
			
		||||
			Name="ReleaseWithoutAsm|Win32"
 | 
			
		||||
			OutputDirectory="x86\ZlibStat$(ConfigurationName)"
 | 
			
		||||
			IntermediateDirectory="x86\ZlibStat$(ConfigurationName)\Tmp"
 | 
			
		||||
			ConfigurationType="4"
 | 
			
		||||
			InheritedPropertySheets="UpgradeFromVC70.vsprops"
 | 
			
		||||
			UseOfMFC="0"
 | 
			
		||||
			ATLMinimizesCRunTimeLibraryUsage="false"
 | 
			
		||||
			>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPreBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCCustomBuildTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCXMLDataGeneratorTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCWebServiceProxyGeneratorTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCMIDLTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCCLCompilerTool"
 | 
			
		||||
				InlineFunctionExpansion="1"
 | 
			
		||||
				AdditionalIncludeDirectories="..\..\..;..\..\masmx86"
 | 
			
		||||
				PreprocessorDefinitions="WIN32;ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS"
 | 
			
		||||
				StringPooling="true"
 | 
			
		||||
				ExceptionHandling="0"
 | 
			
		||||
				RuntimeLibrary="0"
 | 
			
		||||
				BufferSecurityCheck="false"
 | 
			
		||||
				EnableFunctionLevelLinking="true"
 | 
			
		||||
				PrecompiledHeaderFile="$(IntDir)/zlibstat.pch"
 | 
			
		||||
				AssemblerListingLocation="$(IntDir)\"
 | 
			
		||||
				ObjectFile="$(IntDir)\"
 | 
			
		||||
				ProgramDataBaseFileName="$(OutDir)\"
 | 
			
		||||
				WarningLevel="3"
 | 
			
		||||
				SuppressStartupBanner="true"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCManagedResourceCompilerTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCResourceCompilerTool"
 | 
			
		||||
				Culture="1036"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPreLinkEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCLibrarianTool"
 | 
			
		||||
				AdditionalOptions="/MACHINE:X86 /NODEFAULTLIB"
 | 
			
		||||
				OutputFile="$(OutDir)\zlibstat.lib"
 | 
			
		||||
				SuppressStartupBanner="true"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCALinkTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCXDCMakeTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCBscMakeTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCFxCopTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
		</Configuration>
 | 
			
		||||
		<Configuration
 | 
			
		||||
			Name="Debug|x64"
 | 
			
		||||
			OutputDirectory="x64\ZlibStat$(ConfigurationName)"
 | 
			
		||||
@@ -388,6 +241,80 @@
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
		</Configuration>
 | 
			
		||||
		<Configuration
 | 
			
		||||
			Name="Release|Win32"
 | 
			
		||||
			OutputDirectory="x86\ZlibStat$(ConfigurationName)"
 | 
			
		||||
			IntermediateDirectory="x86\ZlibStat$(ConfigurationName)\Tmp"
 | 
			
		||||
			ConfigurationType="4"
 | 
			
		||||
			InheritedPropertySheets="UpgradeFromVC70.vsprops"
 | 
			
		||||
			UseOfMFC="0"
 | 
			
		||||
			ATLMinimizesCRunTimeLibraryUsage="false"
 | 
			
		||||
			>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPreBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCCustomBuildTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCXMLDataGeneratorTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCWebServiceProxyGeneratorTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCMIDLTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCCLCompilerTool"
 | 
			
		||||
				InlineFunctionExpansion="1"
 | 
			
		||||
				AdditionalIncludeDirectories="..\..\..;..\..\masmx86"
 | 
			
		||||
				PreprocessorDefinitions="WIN32;ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ASMV;ASMINF"
 | 
			
		||||
				StringPooling="true"
 | 
			
		||||
				ExceptionHandling="0"
 | 
			
		||||
				RuntimeLibrary="0"
 | 
			
		||||
				BufferSecurityCheck="false"
 | 
			
		||||
				EnableFunctionLevelLinking="true"
 | 
			
		||||
				PrecompiledHeaderFile="$(IntDir)/zlibstat.pch"
 | 
			
		||||
				AssemblerListingLocation="$(IntDir)\"
 | 
			
		||||
				ObjectFile="$(IntDir)\"
 | 
			
		||||
				ProgramDataBaseFileName="$(OutDir)\"
 | 
			
		||||
				WarningLevel="3"
 | 
			
		||||
				SuppressStartupBanner="true"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCManagedResourceCompilerTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCResourceCompilerTool"
 | 
			
		||||
				Culture="1036"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPreLinkEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCLibrarianTool"
 | 
			
		||||
				AdditionalOptions="/MACHINE:X86 /NODEFAULTLIB"
 | 
			
		||||
				AdditionalDependencies="..\..\masmx86\match686.obj ..\..\masmx86\inffas32.obj "
 | 
			
		||||
				OutputFile="$(OutDir)\zlibstat.lib"
 | 
			
		||||
				SuppressStartupBanner="true"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCALinkTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCXDCMakeTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCBscMakeTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCFxCopTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
		</Configuration>
 | 
			
		||||
		<Configuration
 | 
			
		||||
			Name="Release|x64"
 | 
			
		||||
			OutputDirectory="x64\ZlibStat$(ConfigurationName)"
 | 
			
		||||
@@ -537,6 +464,79 @@
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
		</Configuration>
 | 
			
		||||
		<Configuration
 | 
			
		||||
			Name="ReleaseWithoutAsm|Win32"
 | 
			
		||||
			OutputDirectory="x86\ZlibStat$(ConfigurationName)"
 | 
			
		||||
			IntermediateDirectory="x86\ZlibStat$(ConfigurationName)\Tmp"
 | 
			
		||||
			ConfigurationType="4"
 | 
			
		||||
			InheritedPropertySheets="UpgradeFromVC70.vsprops"
 | 
			
		||||
			UseOfMFC="0"
 | 
			
		||||
			ATLMinimizesCRunTimeLibraryUsage="false"
 | 
			
		||||
			>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPreBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCCustomBuildTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCXMLDataGeneratorTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCWebServiceProxyGeneratorTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCMIDLTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCCLCompilerTool"
 | 
			
		||||
				InlineFunctionExpansion="1"
 | 
			
		||||
				AdditionalIncludeDirectories="..\..\..;..\..\masmx86"
 | 
			
		||||
				PreprocessorDefinitions="WIN32;ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS"
 | 
			
		||||
				StringPooling="true"
 | 
			
		||||
				ExceptionHandling="0"
 | 
			
		||||
				RuntimeLibrary="0"
 | 
			
		||||
				BufferSecurityCheck="false"
 | 
			
		||||
				EnableFunctionLevelLinking="true"
 | 
			
		||||
				PrecompiledHeaderFile="$(IntDir)/zlibstat.pch"
 | 
			
		||||
				AssemblerListingLocation="$(IntDir)\"
 | 
			
		||||
				ObjectFile="$(IntDir)\"
 | 
			
		||||
				ProgramDataBaseFileName="$(OutDir)\"
 | 
			
		||||
				WarningLevel="3"
 | 
			
		||||
				SuppressStartupBanner="true"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCManagedResourceCompilerTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCResourceCompilerTool"
 | 
			
		||||
				Culture="1036"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPreLinkEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCLibrarianTool"
 | 
			
		||||
				AdditionalOptions="/MACHINE:X86 /NODEFAULTLIB"
 | 
			
		||||
				OutputFile="$(OutDir)\zlibstat.lib"
 | 
			
		||||
				SuppressStartupBanner="true"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCALinkTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCXDCMakeTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCBscMakeTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCFxCopTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
		</Configuration>
 | 
			
		||||
		<Configuration
 | 
			
		||||
			Name="ReleaseWithoutAsm|x64"
 | 
			
		||||
			OutputDirectory="x64\ZlibStat$(ConfigurationName)"
 | 
			
		||||
@@ -708,64 +708,12 @@
 | 
			
		||||
				RelativePath="..\..\..\deflate.c"
 | 
			
		||||
				>
 | 
			
		||||
			</File>
 | 
			
		||||
			<File
 | 
			
		||||
				RelativePath="..\..\masmx86\gvmat32c.c"
 | 
			
		||||
				>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="Debug|x64"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="Debug|Itanium"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="Release|x64"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="Release|Itanium"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="ReleaseWithoutAsm|x64"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="ReleaseWithoutAsm|Itanium"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
			</File>
 | 
			
		||||
			<File
 | 
			
		||||
				RelativePath="..\..\..\gzclose.c"
 | 
			
		||||
				>
 | 
			
		||||
			</File>
 | 
			
		||||
			<File
 | 
			
		||||
				RelativePath="..\..\..\gzio.c"
 | 
			
		||||
				RelativePath="..\..\..\gzguts.h"
 | 
			
		||||
				>
 | 
			
		||||
			</File>
 | 
			
		||||
			<File
 | 
			
		||||
@@ -795,22 +743,6 @@
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="Release|Win32"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="ReleaseWithoutAsm|Win32"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="Debug|Itanium"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
@@ -819,6 +751,14 @@
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="Release|Win32"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="Release|Itanium"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
@@ -827,6 +767,14 @@
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="ReleaseWithoutAsm|Win32"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="ReleaseWithoutAsm|Itanium"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
LIBRARY
 | 
			
		||||
; zlib data compression and ZIP file I/O library
 | 
			
		||||
 | 
			
		||||
VERSION		1.23
 | 
			
		||||
 | 
			
		||||
HEAPSIZE	1048576,8192
 | 
			
		||||
VERSION		1.2.8
 | 
			
		||||
 | 
			
		||||
EXPORTS
 | 
			
		||||
        adler32                                  @1
 | 
			
		||||
@@ -55,6 +55,7 @@ EXPORTS
 | 
			
		||||
        gzungetc                                 @49
 | 
			
		||||
        zlibCompileFlags                         @50
 | 
			
		||||
        deflatePrime                             @51
 | 
			
		||||
        deflatePending                           @52
 | 
			
		||||
 | 
			
		||||
        unzOpen                                  @61
 | 
			
		||||
        unzClose                                 @62
 | 
			
		||||
@@ -90,11 +91,12 @@ EXPORTS
 | 
			
		||||
        unzGoToFilePos                           @101
 | 
			
		||||
 | 
			
		||||
        fill_win32_filefunc                      @110
 | 
			
		||||
 | 
			
		||||
; zlibwapi v1.2.4 added:
 | 
			
		||||
        fill_win32_filefunc64                   @111
 | 
			
		||||
        fill_win32_filefunc64A                  @112
 | 
			
		||||
        fill_win32_filefunc64W                  @113
 | 
			
		||||
 | 
			
		||||
; quick hack by hkuno@microhouse.co.jp
 | 
			
		||||
        unzOpen64                               @120
 | 
			
		||||
        unzOpen2_64                             @121
 | 
			
		||||
        unzGetGlobalInfo64                      @122
 | 
			
		||||
@@ -111,4 +113,31 @@ EXPORTS
 | 
			
		||||
        zipOpenNewFileInZip3_64                 @134
 | 
			
		||||
        zipOpenNewFileInZip4_64                 @135
 | 
			
		||||
        zipCloseFileInZipRaw64                  @136
 | 
			
		||||
; end hack
 | 
			
		||||
 | 
			
		||||
; zlib1 v1.2.4 added:
 | 
			
		||||
        adler32_combine                         @140
 | 
			
		||||
        crc32_combine                           @142
 | 
			
		||||
        deflateSetHeader                        @144
 | 
			
		||||
        deflateTune                             @145
 | 
			
		||||
        gzbuffer                                @146
 | 
			
		||||
        gzclose_r                               @147
 | 
			
		||||
        gzclose_w                               @148
 | 
			
		||||
        gzdirect                                @149
 | 
			
		||||
        gzoffset                                @150
 | 
			
		||||
        inflateGetHeader                        @156
 | 
			
		||||
        inflateMark                             @157
 | 
			
		||||
        inflatePrime                            @158
 | 
			
		||||
        inflateReset2                           @159
 | 
			
		||||
        inflateUndermine                        @160
 | 
			
		||||
 | 
			
		||||
; zlib1 v1.2.6 added:
 | 
			
		||||
        gzgetc_                                 @161
 | 
			
		||||
        inflateResetKeep                        @163
 | 
			
		||||
        deflateResetKeep                        @164
 | 
			
		||||
 | 
			
		||||
; zlib1 v1.2.7 added:
 | 
			
		||||
        gzopen_w                                @165
 | 
			
		||||
 | 
			
		||||
; zlib1 v1.2.8 added:
 | 
			
		||||
        inflateGetDictionary                    @166
 | 
			
		||||
        gzvprintf                               @167
 | 
			
		||||
 
 | 
			
		||||
@@ -45,8 +45,8 @@ Global
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Itanium.Build.0 = Release|Itanium
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.ActiveCfg = Release|Win32
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.Build.0 = Release|Win32
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.ActiveCfg = ReleaseWithoutAsm|x64
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.Build.0 = ReleaseWithoutAsm|x64
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.ActiveCfg = Release|x64
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.Build.0 = Release|x64
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Itanium
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Itanium.Build.0 = ReleaseWithoutAsm|Itanium
 | 
			
		||||
		{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
 | 
			
		||||
@@ -103,8 +103,8 @@ Global
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|x64.Build.0 = Release|x64
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Itanium
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Itanium.Build.0 = Release|Itanium
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Itanium
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Itanium
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.ActiveCfg = Debug|Itanium
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.Build.0 = Debug|Itanium
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.ActiveCfg = Debug|Win32
 | 
			
		||||
@@ -119,8 +119,8 @@ Global
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.Build.0 = Release|x64
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Itanium
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.Build.0 = Release|Itanium
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Itanium
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Itanium
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
 | 
			
		||||
		{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Itanium.ActiveCfg = Debug|Itanium
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Itanium.Build.0 = Debug|Itanium
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Win32.ActiveCfg = Debug|Win32
 | 
			
		||||
@@ -135,8 +135,8 @@ Global
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|x64.Build.0 = Release|x64
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Itanium
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Itanium.Build.0 = Release|Itanium
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Itanium
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|Itanium
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
 | 
			
		||||
		{C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
 | 
			
		||||
	EndGlobalSection
 | 
			
		||||
	GlobalSection(SolutionProperties) = preSolution
 | 
			
		||||
		HideSolutionNode = FALSE
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,10 @@
 | 
			
		||||
<?xml version="1.0" encoding="Windows-1252"?>
 | 
			
		||||
<VisualStudioProject
 | 
			
		||||
	ProjectType="Visual C++"
 | 
			
		||||
	Version="9.00"
 | 
			
		||||
	Version="9,00"
 | 
			
		||||
	Name="zlibvc"
 | 
			
		||||
	ProjectGUID="{8FD826F8-3739-44E6-8CC8-997122E53B8D}"
 | 
			
		||||
	RootNamespace="zlibvc"
 | 
			
		||||
	TargetFrameworkVersion="131072"
 | 
			
		||||
	>
 | 
			
		||||
	<Platforms>
 | 
			
		||||
@@ -80,7 +81,7 @@
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCLinkerTool"
 | 
			
		||||
				AdditionalOptions="/MACHINE:I386"
 | 
			
		||||
				AdditionalDependencies="..\..\masmx86\gvmat32.obj ..\..\masmx86\inffas32.obj"
 | 
			
		||||
				AdditionalDependencies="..\..\masmx86\match686.obj ..\..\masmx86\inffas32.obj"
 | 
			
		||||
				OutputFile="$(OutDir)\zlibwapi.dll"
 | 
			
		||||
				LinkIncremental="2"
 | 
			
		||||
				SuppressStartupBanner="true"
 | 
			
		||||
@@ -117,6 +118,195 @@
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
		</Configuration>
 | 
			
		||||
		<Configuration
 | 
			
		||||
			Name="Debug|x64"
 | 
			
		||||
			OutputDirectory="x64\ZlibDll$(ConfigurationName)"
 | 
			
		||||
			IntermediateDirectory="x64\ZlibDll$(ConfigurationName)\Tmp"
 | 
			
		||||
			ConfigurationType="2"
 | 
			
		||||
			InheritedPropertySheets="UpgradeFromVC70.vsprops"
 | 
			
		||||
			UseOfMFC="0"
 | 
			
		||||
			ATLMinimizesCRunTimeLibraryUsage="false"
 | 
			
		||||
			>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPreBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCCustomBuildTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCXMLDataGeneratorTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCWebServiceProxyGeneratorTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCMIDLTool"
 | 
			
		||||
				PreprocessorDefinitions="_DEBUG"
 | 
			
		||||
				MkTypLibCompatible="true"
 | 
			
		||||
				SuppressStartupBanner="true"
 | 
			
		||||
				TargetEnvironment="3"
 | 
			
		||||
				TypeLibraryName="$(OutDir)/zlibvc.tlb"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCCLCompilerTool"
 | 
			
		||||
				Optimization="0"
 | 
			
		||||
				AdditionalIncludeDirectories="..\..\..;..\..\masmx86"
 | 
			
		||||
				PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF;WIN64"
 | 
			
		||||
				ExceptionHandling="0"
 | 
			
		||||
				RuntimeLibrary="3"
 | 
			
		||||
				BufferSecurityCheck="false"
 | 
			
		||||
				PrecompiledHeaderFile="$(IntDir)/zlibvc.pch"
 | 
			
		||||
				AssemblerListingLocation="$(IntDir)\"
 | 
			
		||||
				ObjectFile="$(IntDir)\"
 | 
			
		||||
				ProgramDataBaseFileName="$(OutDir)\"
 | 
			
		||||
				BrowseInformation="0"
 | 
			
		||||
				WarningLevel="3"
 | 
			
		||||
				SuppressStartupBanner="true"
 | 
			
		||||
				DebugInformationFormat="3"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCManagedResourceCompilerTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCResourceCompilerTool"
 | 
			
		||||
				PreprocessorDefinitions="_DEBUG"
 | 
			
		||||
				Culture="1036"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPreLinkEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCLinkerTool"
 | 
			
		||||
				AdditionalDependencies="..\..\masmx64\gvmat64.obj ..\..\masmx64\inffasx64.obj "
 | 
			
		||||
				OutputFile="$(OutDir)\zlibwapi.dll"
 | 
			
		||||
				LinkIncremental="2"
 | 
			
		||||
				SuppressStartupBanner="true"
 | 
			
		||||
				GenerateManifest="false"
 | 
			
		||||
				ModuleDefinitionFile=".\zlibvc.def"
 | 
			
		||||
				GenerateDebugInformation="true"
 | 
			
		||||
				ProgramDatabaseFile="$(OutDir)/zlibwapi.pdb"
 | 
			
		||||
				GenerateMapFile="true"
 | 
			
		||||
				MapFileName="$(OutDir)/zlibwapi.map"
 | 
			
		||||
				SubSystem="2"
 | 
			
		||||
				ImportLibrary="$(OutDir)/zlibwapi.lib"
 | 
			
		||||
				TargetMachine="17"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCALinkTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCManifestTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCXDCMakeTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCBscMakeTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCFxCopTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCAppVerifierTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
		</Configuration>
 | 
			
		||||
		<Configuration
 | 
			
		||||
			Name="Debug|Itanium"
 | 
			
		||||
			OutputDirectory="ia64\ZlibDll$(ConfigurationName)"
 | 
			
		||||
			IntermediateDirectory="ia64\ZlibDll$(ConfigurationName)\Tmp"
 | 
			
		||||
			ConfigurationType="2"
 | 
			
		||||
			InheritedPropertySheets="UpgradeFromVC70.vsprops"
 | 
			
		||||
			UseOfMFC="0"
 | 
			
		||||
			ATLMinimizesCRunTimeLibraryUsage="false"
 | 
			
		||||
			>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPreBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCCustomBuildTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCXMLDataGeneratorTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCWebServiceProxyGeneratorTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCMIDLTool"
 | 
			
		||||
				PreprocessorDefinitions="_DEBUG"
 | 
			
		||||
				MkTypLibCompatible="true"
 | 
			
		||||
				SuppressStartupBanner="true"
 | 
			
		||||
				TargetEnvironment="2"
 | 
			
		||||
				TypeLibraryName="$(OutDir)/zlibvc.tlb"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCCLCompilerTool"
 | 
			
		||||
				Optimization="0"
 | 
			
		||||
				AdditionalIncludeDirectories="..\..\..;..\..\masmx86"
 | 
			
		||||
				PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64"
 | 
			
		||||
				ExceptionHandling="0"
 | 
			
		||||
				RuntimeLibrary="3"
 | 
			
		||||
				BufferSecurityCheck="false"
 | 
			
		||||
				PrecompiledHeaderFile="$(IntDir)/zlibvc.pch"
 | 
			
		||||
				AssemblerListingLocation="$(IntDir)\"
 | 
			
		||||
				ObjectFile="$(IntDir)\"
 | 
			
		||||
				ProgramDataBaseFileName="$(OutDir)\"
 | 
			
		||||
				BrowseInformation="0"
 | 
			
		||||
				WarningLevel="3"
 | 
			
		||||
				SuppressStartupBanner="true"
 | 
			
		||||
				DebugInformationFormat="3"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCManagedResourceCompilerTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCResourceCompilerTool"
 | 
			
		||||
				PreprocessorDefinitions="_DEBUG"
 | 
			
		||||
				Culture="1036"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPreLinkEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCLinkerTool"
 | 
			
		||||
				OutputFile="$(OutDir)\zlibwapi.dll"
 | 
			
		||||
				LinkIncremental="2"
 | 
			
		||||
				SuppressStartupBanner="true"
 | 
			
		||||
				GenerateManifest="false"
 | 
			
		||||
				ModuleDefinitionFile=".\zlibvc.def"
 | 
			
		||||
				GenerateDebugInformation="true"
 | 
			
		||||
				ProgramDatabaseFile="$(OutDir)/zlibwapi.pdb"
 | 
			
		||||
				GenerateMapFile="true"
 | 
			
		||||
				MapFileName="$(OutDir)/zlibwapi.map"
 | 
			
		||||
				SubSystem="2"
 | 
			
		||||
				ImportLibrary="$(OutDir)/zlibwapi.lib"
 | 
			
		||||
				TargetMachine="5"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCALinkTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCManifestTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCXDCMakeTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCBscMakeTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCFxCopTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCAppVerifierTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
		</Configuration>
 | 
			
		||||
		<Configuration
 | 
			
		||||
			Name="ReleaseWithoutAsm|Win32"
 | 
			
		||||
			OutputDirectory="x86\ZlibDll$(ConfigurationName)"
 | 
			
		||||
@@ -217,302 +407,6 @@
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
		</Configuration>
 | 
			
		||||
		<Configuration
 | 
			
		||||
			Name="Release|Win32"
 | 
			
		||||
			OutputDirectory="x86\ZlibDll$(ConfigurationName)"
 | 
			
		||||
			IntermediateDirectory="x86\ZlibDll$(ConfigurationName)\Tmp"
 | 
			
		||||
			ConfigurationType="2"
 | 
			
		||||
			InheritedPropertySheets="UpgradeFromVC70.vsprops"
 | 
			
		||||
			UseOfMFC="0"
 | 
			
		||||
			ATLMinimizesCRunTimeLibraryUsage="false"
 | 
			
		||||
			WholeProgramOptimization="1"
 | 
			
		||||
			>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPreBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCCustomBuildTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCXMLDataGeneratorTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCWebServiceProxyGeneratorTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCMIDLTool"
 | 
			
		||||
				PreprocessorDefinitions="NDEBUG"
 | 
			
		||||
				MkTypLibCompatible="true"
 | 
			
		||||
				SuppressStartupBanner="true"
 | 
			
		||||
				TargetEnvironment="1"
 | 
			
		||||
				TypeLibraryName="$(OutDir)/zlibvc.tlb"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCCLCompilerTool"
 | 
			
		||||
				InlineFunctionExpansion="1"
 | 
			
		||||
				AdditionalIncludeDirectories="..\..\..;..\..\masmx86"
 | 
			
		||||
				PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF"
 | 
			
		||||
				StringPooling="true"
 | 
			
		||||
				ExceptionHandling="0"
 | 
			
		||||
				RuntimeLibrary="2"
 | 
			
		||||
				BufferSecurityCheck="false"
 | 
			
		||||
				EnableFunctionLevelLinking="true"
 | 
			
		||||
				PrecompiledHeaderFile="$(IntDir)/zlibvc.pch"
 | 
			
		||||
				AssemblerOutput="2"
 | 
			
		||||
				AssemblerListingLocation="$(IntDir)\"
 | 
			
		||||
				ObjectFile="$(IntDir)\"
 | 
			
		||||
				ProgramDataBaseFileName="$(OutDir)\"
 | 
			
		||||
				BrowseInformation="0"
 | 
			
		||||
				WarningLevel="3"
 | 
			
		||||
				SuppressStartupBanner="true"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCManagedResourceCompilerTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCResourceCompilerTool"
 | 
			
		||||
				PreprocessorDefinitions="NDEBUG"
 | 
			
		||||
				Culture="1036"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPreLinkEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCLinkerTool"
 | 
			
		||||
				AdditionalOptions="/MACHINE:I386"
 | 
			
		||||
				AdditionalDependencies="..\..\masmx86\gvmat32.obj ..\..\masmx86\inffas32.obj "
 | 
			
		||||
				OutputFile="$(OutDir)\zlibwapi.dll"
 | 
			
		||||
				LinkIncremental="1"
 | 
			
		||||
				SuppressStartupBanner="true"
 | 
			
		||||
				GenerateManifest="false"
 | 
			
		||||
				IgnoreAllDefaultLibraries="false"
 | 
			
		||||
				ModuleDefinitionFile=".\zlibvc.def"
 | 
			
		||||
				ProgramDatabaseFile="$(OutDir)/zlibwapi.pdb"
 | 
			
		||||
				GenerateMapFile="true"
 | 
			
		||||
				MapFileName="$(OutDir)/zlibwapi.map"
 | 
			
		||||
				SubSystem="2"
 | 
			
		||||
				OptimizeForWindows98="1"
 | 
			
		||||
				RandomizedBaseAddress="1"
 | 
			
		||||
				DataExecutionPrevention="0"
 | 
			
		||||
				ImportLibrary="$(OutDir)/zlibwapi.lib"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCALinkTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCManifestTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCXDCMakeTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCBscMakeTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCFxCopTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCAppVerifierTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
		</Configuration>
 | 
			
		||||
		<Configuration
 | 
			
		||||
			Name="Debug|x64"
 | 
			
		||||
			OutputDirectory="x64\ZlibDll$(ConfigurationName)"
 | 
			
		||||
			IntermediateDirectory="x64\ZlibDll$(ConfigurationName)\Tmp"
 | 
			
		||||
			ConfigurationType="2"
 | 
			
		||||
			InheritedPropertySheets="UpgradeFromVC70.vsprops"
 | 
			
		||||
			UseOfMFC="0"
 | 
			
		||||
			ATLMinimizesCRunTimeLibraryUsage="false"
 | 
			
		||||
			>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPreBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCCustomBuildTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCXMLDataGeneratorTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCWebServiceProxyGeneratorTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCMIDLTool"
 | 
			
		||||
				PreprocessorDefinitions="_DEBUG"
 | 
			
		||||
				MkTypLibCompatible="true"
 | 
			
		||||
				SuppressStartupBanner="true"
 | 
			
		||||
				TargetEnvironment="3"
 | 
			
		||||
				TypeLibraryName="$(OutDir)/zlibvc.tlb"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCCLCompilerTool"
 | 
			
		||||
				Optimization="0"
 | 
			
		||||
				AdditionalIncludeDirectories="..\..\..;..\..\masmx86"
 | 
			
		||||
				PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF;WIN64"
 | 
			
		||||
				ExceptionHandling="0"
 | 
			
		||||
				RuntimeLibrary="3"
 | 
			
		||||
				BufferSecurityCheck="false"
 | 
			
		||||
				PrecompiledHeaderFile="$(IntDir)/zlibvc.pch"
 | 
			
		||||
				AssemblerListingLocation="$(IntDir)\"
 | 
			
		||||
				ObjectFile="$(IntDir)\"
 | 
			
		||||
				ProgramDataBaseFileName="$(OutDir)\"
 | 
			
		||||
				BrowseInformation="0"
 | 
			
		||||
				WarningLevel="3"
 | 
			
		||||
				SuppressStartupBanner="true"
 | 
			
		||||
				DebugInformationFormat="3"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCManagedResourceCompilerTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCResourceCompilerTool"
 | 
			
		||||
				PreprocessorDefinitions="_DEBUG"
 | 
			
		||||
				Culture="1036"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPreLinkEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCLinkerTool"
 | 
			
		||||
				AdditionalDependencies="..\..\masmx64\gvmat64.obj ..\..\masmx64\inffasx64.obj "
 | 
			
		||||
				OutputFile="$(OutDir)\zlibwapi.dll"
 | 
			
		||||
				LinkIncremental="2"
 | 
			
		||||
				SuppressStartupBanner="true"
 | 
			
		||||
				GenerateManifest="false"
 | 
			
		||||
				ModuleDefinitionFile=".\zlibvc.def"
 | 
			
		||||
				GenerateDebugInformation="true"
 | 
			
		||||
				ProgramDatabaseFile="$(OutDir)/zlibwapi.pdb"
 | 
			
		||||
				GenerateMapFile="true"
 | 
			
		||||
				MapFileName="$(OutDir)/zlibwapi.map"
 | 
			
		||||
				SubSystem="2"
 | 
			
		||||
				ImportLibrary="$(OutDir)/zlibwapi.lib"
 | 
			
		||||
				TargetMachine="17"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCALinkTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCManifestTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCXDCMakeTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCBscMakeTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCFxCopTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCAppVerifierTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCWebDeploymentTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
		</Configuration>
 | 
			
		||||
		<Configuration
 | 
			
		||||
			Name="Debug|Itanium"
 | 
			
		||||
			OutputDirectory="ia64\ZlibDll$(ConfigurationName)"
 | 
			
		||||
			IntermediateDirectory="ia64\ZlibDll$(ConfigurationName)\Tmp"
 | 
			
		||||
			ConfigurationType="2"
 | 
			
		||||
			InheritedPropertySheets="UpgradeFromVC70.vsprops"
 | 
			
		||||
			UseOfMFC="0"
 | 
			
		||||
			ATLMinimizesCRunTimeLibraryUsage="false"
 | 
			
		||||
			>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPreBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCCustomBuildTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCXMLDataGeneratorTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCWebServiceProxyGeneratorTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCMIDLTool"
 | 
			
		||||
				PreprocessorDefinitions="_DEBUG"
 | 
			
		||||
				MkTypLibCompatible="true"
 | 
			
		||||
				SuppressStartupBanner="true"
 | 
			
		||||
				TargetEnvironment="2"
 | 
			
		||||
				TypeLibraryName="$(OutDir)/zlibvc.tlb"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCCLCompilerTool"
 | 
			
		||||
				Optimization="0"
 | 
			
		||||
				AdditionalIncludeDirectories="..\..\..;..\..\masmx86"
 | 
			
		||||
				PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64"
 | 
			
		||||
				ExceptionHandling="0"
 | 
			
		||||
				RuntimeLibrary="3"
 | 
			
		||||
				BufferSecurityCheck="false"
 | 
			
		||||
				PrecompiledHeaderFile="$(IntDir)/zlibvc.pch"
 | 
			
		||||
				AssemblerListingLocation="$(IntDir)\"
 | 
			
		||||
				ObjectFile="$(IntDir)\"
 | 
			
		||||
				ProgramDataBaseFileName="$(OutDir)\"
 | 
			
		||||
				BrowseInformation="0"
 | 
			
		||||
				WarningLevel="3"
 | 
			
		||||
				SuppressStartupBanner="true"
 | 
			
		||||
				DebugInformationFormat="3"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCManagedResourceCompilerTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCResourceCompilerTool"
 | 
			
		||||
				PreprocessorDefinitions="_DEBUG"
 | 
			
		||||
				Culture="1036"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPreLinkEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCLinkerTool"
 | 
			
		||||
				OutputFile="$(OutDir)\zlibwapi.dll"
 | 
			
		||||
				LinkIncremental="2"
 | 
			
		||||
				SuppressStartupBanner="true"
 | 
			
		||||
				GenerateManifest="false"
 | 
			
		||||
				ModuleDefinitionFile=".\zlibvc.def"
 | 
			
		||||
				GenerateDebugInformation="true"
 | 
			
		||||
				ProgramDatabaseFile="$(OutDir)/zlibwapi.pdb"
 | 
			
		||||
				GenerateMapFile="true"
 | 
			
		||||
				MapFileName="$(OutDir)/zlibwapi.map"
 | 
			
		||||
				SubSystem="2"
 | 
			
		||||
				ImportLibrary="$(OutDir)/zlibwapi.lib"
 | 
			
		||||
				TargetMachine="5"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCALinkTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCManifestTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCXDCMakeTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCBscMakeTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCFxCopTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCAppVerifierTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCWebDeploymentTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
		</Configuration>
 | 
			
		||||
		<Configuration
 | 
			
		||||
			Name="ReleaseWithoutAsm|x64"
 | 
			
		||||
			OutputDirectory="x64\ZlibDll$(ConfigurationName)"
 | 
			
		||||
@@ -607,9 +501,6 @@
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCAppVerifierTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCWebDeploymentTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
@@ -709,7 +600,105 @@
 | 
			
		||||
				Name="VCAppVerifierTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCWebDeploymentTool"
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
		</Configuration>
 | 
			
		||||
		<Configuration
 | 
			
		||||
			Name="Release|Win32"
 | 
			
		||||
			OutputDirectory="x86\ZlibDll$(ConfigurationName)"
 | 
			
		||||
			IntermediateDirectory="x86\ZlibDll$(ConfigurationName)\Tmp"
 | 
			
		||||
			ConfigurationType="2"
 | 
			
		||||
			InheritedPropertySheets="UpgradeFromVC70.vsprops"
 | 
			
		||||
			UseOfMFC="0"
 | 
			
		||||
			ATLMinimizesCRunTimeLibraryUsage="false"
 | 
			
		||||
			WholeProgramOptimization="1"
 | 
			
		||||
			>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPreBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCCustomBuildTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCXMLDataGeneratorTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCWebServiceProxyGeneratorTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCMIDLTool"
 | 
			
		||||
				PreprocessorDefinitions="NDEBUG"
 | 
			
		||||
				MkTypLibCompatible="true"
 | 
			
		||||
				SuppressStartupBanner="true"
 | 
			
		||||
				TargetEnvironment="1"
 | 
			
		||||
				TypeLibraryName="$(OutDir)/zlibvc.tlb"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCCLCompilerTool"
 | 
			
		||||
				InlineFunctionExpansion="1"
 | 
			
		||||
				AdditionalIncludeDirectories="..\..\..;..\..\masmx86"
 | 
			
		||||
				PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF"
 | 
			
		||||
				StringPooling="true"
 | 
			
		||||
				ExceptionHandling="0"
 | 
			
		||||
				RuntimeLibrary="0"
 | 
			
		||||
				BufferSecurityCheck="false"
 | 
			
		||||
				EnableFunctionLevelLinking="true"
 | 
			
		||||
				PrecompiledHeaderFile="$(IntDir)/zlibvc.pch"
 | 
			
		||||
				AssemblerOutput="2"
 | 
			
		||||
				AssemblerListingLocation="$(IntDir)\"
 | 
			
		||||
				ObjectFile="$(IntDir)\"
 | 
			
		||||
				ProgramDataBaseFileName="$(OutDir)\"
 | 
			
		||||
				BrowseInformation="0"
 | 
			
		||||
				WarningLevel="3"
 | 
			
		||||
				SuppressStartupBanner="true"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCManagedResourceCompilerTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCResourceCompilerTool"
 | 
			
		||||
				PreprocessorDefinitions="NDEBUG"
 | 
			
		||||
				Culture="1036"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPreLinkEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCLinkerTool"
 | 
			
		||||
				AdditionalOptions="/MACHINE:I386"
 | 
			
		||||
				AdditionalDependencies="..\..\masmx86\match686.obj ..\..\masmx86\inffas32.obj "
 | 
			
		||||
				OutputFile="$(OutDir)\zlibwapi.dll"
 | 
			
		||||
				LinkIncremental="1"
 | 
			
		||||
				SuppressStartupBanner="true"
 | 
			
		||||
				GenerateManifest="false"
 | 
			
		||||
				IgnoreAllDefaultLibraries="false"
 | 
			
		||||
				ModuleDefinitionFile=".\zlibvc.def"
 | 
			
		||||
				ProgramDatabaseFile="$(OutDir)/zlibwapi.pdb"
 | 
			
		||||
				GenerateMapFile="true"
 | 
			
		||||
				MapFileName="$(OutDir)/zlibwapi.map"
 | 
			
		||||
				SubSystem="2"
 | 
			
		||||
				OptimizeForWindows98="1"
 | 
			
		||||
				RandomizedBaseAddress="1"
 | 
			
		||||
				DataExecutionPrevention="0"
 | 
			
		||||
				ImportLibrary="$(OutDir)/zlibwapi.lib"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCALinkTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCManifestTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCXDCMakeTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCBscMakeTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCFxCopTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCAppVerifierTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
@@ -810,9 +799,6 @@
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCAppVerifierTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCWebDeploymentTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
@@ -911,9 +897,6 @@
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCAppVerifierTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCWebDeploymentTool"
 | 
			
		||||
			/>
 | 
			
		||||
			<Tool
 | 
			
		||||
				Name="VCPostBuildEventTool"
 | 
			
		||||
			/>
 | 
			
		||||
@@ -942,72 +925,12 @@
 | 
			
		||||
				RelativePath="..\..\..\deflate.c"
 | 
			
		||||
				>
 | 
			
		||||
			</File>
 | 
			
		||||
			<File
 | 
			
		||||
				RelativePath="..\..\masmx86\gvmat32c.c"
 | 
			
		||||
				>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="ReleaseWithoutAsm|Win32"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="Debug|x64"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="Debug|Itanium"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="ReleaseWithoutAsm|x64"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="ReleaseWithoutAsm|Itanium"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="Release|x64"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="Release|Itanium"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
			</File>
 | 
			
		||||
			<File
 | 
			
		||||
				RelativePath="..\..\..\gzclose.c"
 | 
			
		||||
				>
 | 
			
		||||
			</File>
 | 
			
		||||
			<File
 | 
			
		||||
				RelativePath="..\..\..\gzio.c"
 | 
			
		||||
				RelativePath="..\..\..\gzguts.h"
 | 
			
		||||
				>
 | 
			
		||||
			</File>
 | 
			
		||||
			<File
 | 
			
		||||
@@ -1037,22 +960,6 @@
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="ReleaseWithoutAsm|Win32"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="Release|Win32"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="Debug|Itanium"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
@@ -1061,6 +968,14 @@
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="ReleaseWithoutAsm|Win32"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="ReleaseWithoutAsm|Itanium"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
@@ -1069,6 +984,14 @@
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="Release|Win32"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
					>
 | 
			
		||||
					<Tool
 | 
			
		||||
						Name="VCCLCompilerTool"
 | 
			
		||||
					/>
 | 
			
		||||
				</FileConfiguration>
 | 
			
		||||
				<FileConfiguration
 | 
			
		||||
					Name="Release|Itanium"
 | 
			
		||||
					ExcludedFromBuild="true"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										85
									
								
								crc32.c
									
									
									
									
									
								
							
							
						
						
									
										85
									
								
								crc32.c
									
									
									
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
/* crc32.c -- compute the CRC-32 of a data stream
 | 
			
		||||
 * Copyright (C) 1995-2006 Mark Adler
 | 
			
		||||
 * Copyright (C) 1995-2006, 2010, 2011, 2012 Mark Adler
 | 
			
		||||
 * For conditions of distribution and use, see copyright notice in zlib.h
 | 
			
		||||
 *
 | 
			
		||||
 * Thanks to Rodney Brown <rbrown64@csc.com.au> for his contribution of faster
 | 
			
		||||
@@ -17,6 +17,8 @@
 | 
			
		||||
  of the crc tables.  Therefore, if you #define DYNAMIC_CRC_TABLE, you should
 | 
			
		||||
  first call get_crc_table() to initialize the tables before allowing more than
 | 
			
		||||
  one thread to use crc32().
 | 
			
		||||
 | 
			
		||||
  DYNAMIC_CRC_TABLE and MAKECRCH can be #defined to write out crc32.h.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifdef MAKECRCH
 | 
			
		||||
@@ -30,31 +32,11 @@
 | 
			
		||||
 | 
			
		||||
#define local static
 | 
			
		||||
 | 
			
		||||
/* Find a four-byte integer type for crc32_little() and crc32_big(). */
 | 
			
		||||
#ifndef NOBYFOUR
 | 
			
		||||
#  ifdef STDC           /* need ANSI C limits.h to determine sizes */
 | 
			
		||||
#    include <limits.h>
 | 
			
		||||
#    define BYFOUR
 | 
			
		||||
#    if (UINT_MAX == 0xffffffffUL)
 | 
			
		||||
       typedef unsigned int u4;
 | 
			
		||||
#    else
 | 
			
		||||
#      if (ULONG_MAX == 0xffffffffUL)
 | 
			
		||||
         typedef unsigned long u4;
 | 
			
		||||
#      else
 | 
			
		||||
#        if (USHRT_MAX == 0xffffffffUL)
 | 
			
		||||
           typedef unsigned short u4;
 | 
			
		||||
#        else
 | 
			
		||||
#          undef BYFOUR     /* can't find a four-byte integer type! */
 | 
			
		||||
#        endif
 | 
			
		||||
#      endif
 | 
			
		||||
#    endif
 | 
			
		||||
#  endif /* STDC */
 | 
			
		||||
#endif /* !NOBYFOUR */
 | 
			
		||||
 | 
			
		||||
/* Definitions for doing the crc four data bytes at a time. */
 | 
			
		||||
#if !defined(NOBYFOUR) && defined(Z_U4)
 | 
			
		||||
#  define BYFOUR
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef BYFOUR
 | 
			
		||||
#  define REV(w) ((((w)>>24)&0xff)+(((w)>>8)&0xff00)+ \
 | 
			
		||||
                (((w)&0xff00)<<8)+(((w)&0xff)<<24))
 | 
			
		||||
   local unsigned long crc32_little OF((unsigned long,
 | 
			
		||||
                        const unsigned char FAR *, unsigned));
 | 
			
		||||
   local unsigned long crc32_big OF((unsigned long,
 | 
			
		||||
@@ -68,16 +50,16 @@
 | 
			
		||||
local unsigned long gf2_matrix_times OF((unsigned long *mat,
 | 
			
		||||
                                         unsigned long vec));
 | 
			
		||||
local void gf2_matrix_square OF((unsigned long *square, unsigned long *mat));
 | 
			
		||||
local uLong crc32_combine_(uLong crc1, uLong crc2, z_off64_t len2);
 | 
			
		||||
local uLong crc32_combine_ OF((uLong crc1, uLong crc2, z_off64_t len2));
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifdef DYNAMIC_CRC_TABLE
 | 
			
		||||
 | 
			
		||||
local volatile int crc_table_empty = 1;
 | 
			
		||||
local unsigned long FAR crc_table[TBLS][256];
 | 
			
		||||
local z_crc_t FAR crc_table[TBLS][256];
 | 
			
		||||
local void make_crc_table OF((void));
 | 
			
		||||
#ifdef MAKECRCH
 | 
			
		||||
   local void write_table OF((FILE *, const unsigned long FAR *));
 | 
			
		||||
   local void write_table OF((FILE *, const z_crc_t FAR *));
 | 
			
		||||
#endif /* MAKECRCH */
 | 
			
		||||
/*
 | 
			
		||||
  Generate tables for a byte-wise 32-bit CRC calculation on the polynomial:
 | 
			
		||||
@@ -107,9 +89,9 @@ local void make_crc_table OF((void));
 | 
			
		||||
*/
 | 
			
		||||
local void make_crc_table()
 | 
			
		||||
{
 | 
			
		||||
    unsigned long c;
 | 
			
		||||
    z_crc_t c;
 | 
			
		||||
    int n, k;
 | 
			
		||||
    unsigned long poly;                 /* polynomial exclusive-or pattern */
 | 
			
		||||
    z_crc_t poly;                       /* polynomial exclusive-or pattern */
 | 
			
		||||
    /* terms of polynomial defining this crc (except x^32): */
 | 
			
		||||
    static volatile int first = 1;      /* flag to limit concurrent making */
 | 
			
		||||
    static const unsigned char p[] = {0,1,2,4,5,7,8,10,11,12,16,22,23,26};
 | 
			
		||||
@@ -121,13 +103,13 @@ local void make_crc_table()
 | 
			
		||||
        first = 0;
 | 
			
		||||
 | 
			
		||||
        /* make exclusive-or pattern from polynomial (0xedb88320UL) */
 | 
			
		||||
        poly = 0UL;
 | 
			
		||||
        for (n = 0; n < sizeof(p)/sizeof(unsigned char); n++)
 | 
			
		||||
            poly |= 1UL << (31 - p[n]);
 | 
			
		||||
        poly = 0;
 | 
			
		||||
        for (n = 0; n < (int)(sizeof(p)/sizeof(unsigned char)); n++)
 | 
			
		||||
            poly |= (z_crc_t)1 << (31 - p[n]);
 | 
			
		||||
 | 
			
		||||
        /* generate a crc for every 8-bit value */
 | 
			
		||||
        for (n = 0; n < 256; n++) {
 | 
			
		||||
            c = (unsigned long)n;
 | 
			
		||||
            c = (z_crc_t)n;
 | 
			
		||||
            for (k = 0; k < 8; k++)
 | 
			
		||||
                c = c & 1 ? poly ^ (c >> 1) : c >> 1;
 | 
			
		||||
            crc_table[0][n] = c;
 | 
			
		||||
@@ -138,11 +120,11 @@ local void make_crc_table()
 | 
			
		||||
           and then the byte reversal of those as well as the first table */
 | 
			
		||||
        for (n = 0; n < 256; n++) {
 | 
			
		||||
            c = crc_table[0][n];
 | 
			
		||||
            crc_table[4][n] = REV(c);
 | 
			
		||||
            crc_table[4][n] = ZSWAP32(c);
 | 
			
		||||
            for (k = 1; k < 4; k++) {
 | 
			
		||||
                c = crc_table[0][c & 0xff] ^ (c >> 8);
 | 
			
		||||
                crc_table[k][n] = c;
 | 
			
		||||
                crc_table[k + 4][n] = REV(c);
 | 
			
		||||
                crc_table[k + 4][n] = ZSWAP32(c);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
#endif /* BYFOUR */
 | 
			
		||||
@@ -164,7 +146,7 @@ local void make_crc_table()
 | 
			
		||||
        if (out == NULL) return;
 | 
			
		||||
        fprintf(out, "/* crc32.h -- tables for rapid CRC calculation\n");
 | 
			
		||||
        fprintf(out, " * Generated automatically by crc32.c\n */\n\n");
 | 
			
		||||
        fprintf(out, "local const unsigned long FAR ");
 | 
			
		||||
        fprintf(out, "local const z_crc_t FAR ");
 | 
			
		||||
        fprintf(out, "crc_table[TBLS][256] =\n{\n  {\n");
 | 
			
		||||
        write_table(out, crc_table[0]);
 | 
			
		||||
#  ifdef BYFOUR
 | 
			
		||||
@@ -184,12 +166,13 @@ local void make_crc_table()
 | 
			
		||||
#ifdef MAKECRCH
 | 
			
		||||
local void write_table(out, table)
 | 
			
		||||
    FILE *out;
 | 
			
		||||
    const unsigned long FAR *table;
 | 
			
		||||
    const z_crc_t FAR *table;
 | 
			
		||||
{
 | 
			
		||||
    int n;
 | 
			
		||||
 | 
			
		||||
    for (n = 0; n < 256; n++)
 | 
			
		||||
        fprintf(out, "%s0x%08lxUL%s", n % 5 ? "" : "    ", table[n],
 | 
			
		||||
        fprintf(out, "%s0x%08lxUL%s", n % 5 ? "" : "    ",
 | 
			
		||||
                (unsigned long)(table[n]),
 | 
			
		||||
                n == 255 ? "\n" : (n % 5 == 4 ? ",\n" : ", "));
 | 
			
		||||
}
 | 
			
		||||
#endif /* MAKECRCH */
 | 
			
		||||
@@ -204,13 +187,13 @@ local void write_table(out, table)
 | 
			
		||||
/* =========================================================================
 | 
			
		||||
 * This function can be used by asm versions of crc32()
 | 
			
		||||
 */
 | 
			
		||||
const unsigned long FAR * ZEXPORT get_crc_table()
 | 
			
		||||
const z_crc_t FAR * ZEXPORT get_crc_table()
 | 
			
		||||
{
 | 
			
		||||
#ifdef DYNAMIC_CRC_TABLE
 | 
			
		||||
    if (crc_table_empty)
 | 
			
		||||
        make_crc_table();
 | 
			
		||||
#endif /* DYNAMIC_CRC_TABLE */
 | 
			
		||||
    return (const unsigned long FAR *)crc_table;
 | 
			
		||||
    return (const z_crc_t FAR *)crc_table;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* ========================================================================= */
 | 
			
		||||
@@ -221,7 +204,7 @@ const unsigned long FAR * ZEXPORT get_crc_table()
 | 
			
		||||
unsigned long ZEXPORT crc32(crc, buf, len)
 | 
			
		||||
    unsigned long crc;
 | 
			
		||||
    const unsigned char FAR *buf;
 | 
			
		||||
    unsigned len;
 | 
			
		||||
    uInt len;
 | 
			
		||||
{
 | 
			
		||||
    if (buf == Z_NULL) return 0UL;
 | 
			
		||||
 | 
			
		||||
@@ -232,7 +215,7 @@ unsigned long ZEXPORT crc32(crc, buf, len)
 | 
			
		||||
 | 
			
		||||
#ifdef BYFOUR
 | 
			
		||||
    if (sizeof(void *) == sizeof(ptrdiff_t)) {
 | 
			
		||||
        u4 endian;
 | 
			
		||||
        z_crc_t endian;
 | 
			
		||||
 | 
			
		||||
        endian = 1;
 | 
			
		||||
        if (*((unsigned char *)(&endian)))
 | 
			
		||||
@@ -266,17 +249,17 @@ local unsigned long crc32_little(crc, buf, len)
 | 
			
		||||
    const unsigned char FAR *buf;
 | 
			
		||||
    unsigned len;
 | 
			
		||||
{
 | 
			
		||||
    register u4 c;
 | 
			
		||||
    register const u4 FAR *buf4;
 | 
			
		||||
    register z_crc_t c;
 | 
			
		||||
    register const z_crc_t FAR *buf4;
 | 
			
		||||
 | 
			
		||||
    c = (u4)crc;
 | 
			
		||||
    c = (z_crc_t)crc;
 | 
			
		||||
    c = ~c;
 | 
			
		||||
    while (len && ((ptrdiff_t)buf & 3)) {
 | 
			
		||||
        c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8);
 | 
			
		||||
        len--;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    buf4 = (const u4 FAR *)(const void FAR *)buf;
 | 
			
		||||
    buf4 = (const z_crc_t FAR *)(const void FAR *)buf;
 | 
			
		||||
    while (len >= 32) {
 | 
			
		||||
        DOLIT32;
 | 
			
		||||
        len -= 32;
 | 
			
		||||
@@ -306,17 +289,17 @@ local unsigned long crc32_big(crc, buf, len)
 | 
			
		||||
    const unsigned char FAR *buf;
 | 
			
		||||
    unsigned len;
 | 
			
		||||
{
 | 
			
		||||
    register u4 c;
 | 
			
		||||
    register const u4 FAR *buf4;
 | 
			
		||||
    register z_crc_t c;
 | 
			
		||||
    register const z_crc_t FAR *buf4;
 | 
			
		||||
 | 
			
		||||
    c = REV((u4)crc);
 | 
			
		||||
    c = ZSWAP32((z_crc_t)crc);
 | 
			
		||||
    c = ~c;
 | 
			
		||||
    while (len && ((ptrdiff_t)buf & 3)) {
 | 
			
		||||
        c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8);
 | 
			
		||||
        len--;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    buf4 = (const u4 FAR *)(const void FAR *)buf;
 | 
			
		||||
    buf4 = (const z_crc_t FAR *)(const void FAR *)buf;
 | 
			
		||||
    buf4--;
 | 
			
		||||
    while (len >= 32) {
 | 
			
		||||
        DOBIG32;
 | 
			
		||||
@@ -333,7 +316,7 @@ local unsigned long crc32_big(crc, buf, len)
 | 
			
		||||
        c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8);
 | 
			
		||||
    } while (--len);
 | 
			
		||||
    c = ~c;
 | 
			
		||||
    return (unsigned long)(REV(c));
 | 
			
		||||
    return (unsigned long)(ZSWAP32(c));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif /* BYFOUR */
 | 
			
		||||
 
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user